extends Node @onready var actions: Array[Button] = [ $Action1, $Action2, $Action3, $Action4, $Action5, $Action6, $Action7, $Action8 ] @export var menu: Menu func _ready(): load_menu() ## Called when menu is changed func load_menu(): for i in range(len(menu.item_ids)): if actions[i] is TransitButton: actions[i].button_up.disconnect(transit_menu) match menu.item_actions[i]: Menu.Action.TransitAction: actions[i].set_script("res://scripts/Classes/transit_button.gd") actions[i].text = menu.item_ids[i] Menu.Action.ButtonAction: actions[i].set_script(menu.item_data[i]) actions[i].text = menu.item_ids[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].duplicate() menu = new_menu load_menu()