Created message class and updated menu system
This commit is contained in:
parent
6963cab2af
commit
7134891e55
12 changed files with 62 additions and 13 deletions
7
scripts/Base/Menu/send_message.gd
Normal file
7
scripts/Base/Menu/send_message.gd
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
extends MenuAction
|
||||
|
||||
## Message which will be send on click
|
||||
var msg: Message
|
||||
|
||||
func action():
|
||||
get_parent().transit_menu(id)
|
||||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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
|
||||
Loading…
Add table
Add a link
Reference in a new issue