37 lines
849 B
GDScript
37 lines
849 B
GDScript
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()
|