Created message class and updated menu system

This commit is contained in:
2ndbeam 2024-05-19 16:09:50 +03:00
commit 7134891e55
12 changed files with 62 additions and 13 deletions

View file

@ -0,0 +1,7 @@
extends MenuAction
## Message which will be send on click
var msg: Message
func action():
get_parent().transit_menu(id)

View file

@ -1,5 +1,6 @@
extends Node
## Array of menu actions represented as buttons
@onready var actions: Array[Button] = [
$Action1,
$Action2,
@ -11,6 +12,7 @@ extends Node
$Action8
]
## Script attached to transit buttons
const TRANSIT_BUTTON_SCRIPT = preload("res://scripts/Classes/Menu/transit_button.gd")
@export var menu: Menu = null
@ -22,22 +24,27 @@ func _ready():
func load_menu():
# iterating through all actions
for i in range(len(menu.item_ids)):
# disconnect previous action
if actions[i] is TransitButton:
actions[i].button_up.disconnect(transit_menu)
elif actions[i] is MenuAction:
actions[i].button_up.disconnect(actions[i].action)
# disconnect previous script
actions[i].set_script(null)
actions[i].text = menu.item_ids[i]
# assign new script
match menu.item_actions[i]:
Menu.Action.TransitAction:
actions[i].set_script(TRANSIT_BUTTON_SCRIPT)
actions[i].id = i
Menu.Action.ButtonAction:
actions[i].set_script(menu.item_data[i].load())
actions[i].set_script(menu.item_data[i].load_script())
Menu.Action.ComboAction:
actions[i].set_script(menu.item_data[i].load_script())
actions[i].id = i
## Called with transit_button, changes current menu
func transit_menu(id: int):
assert(id < len(menu.item_ids) and id >= 0)
var new_menu = menu.item_data[id].load().duplicate()
var new_menu = menu.item_data[id].load_menu().duplicate()
menu = new_menu
load_menu()

View file

@ -1,12 +0,0 @@
extends Button
class_name MenuAction
func _init():
get_tree().create_timer(0.05).timeout.connect(_ready)
func _ready():
button_up.connect(action)
func action():
pass