Files
Dawn-Godot/ui/gamemenu/GameMenu.gd
T
2026-06-12 09:08:13 -05:00

53 lines
1.1 KiB
GDScript

class_name GameMenu extends Control
enum Tab { PARTY, ITEMS }
@export var SIDEBAR:ItemList
@export var PARTY_TAB:GameMenuPartyTab
@export var ITEMS_TAB:GameMenuItemsTab
var _currentTab:Tab = Tab.PARTY
func _ready() -> void:
visible = false
SIDEBAR.item_selected.connect(_onTabSelected)
func open() -> void:
visible = true
_selectTab(_currentTab)
SIDEBAR.select(_currentTab)
SIDEBAR.grab_focus()
func close() -> void:
visible = false
func isOpen() -> bool:
return visible
func _onTabSelected(index:int) -> void:
_selectTab(index as Tab)
func _selectTab(tab:Tab) -> void:
_currentTab = tab
PARTY_TAB.visible = (tab == Tab.PARTY)
ITEMS_TAB.visible = (tab == Tab.ITEMS)
match tab:
Tab.PARTY:
PARTY_TAB.refresh()
Tab.ITEMS:
ITEMS_TAB.refresh()
func _unhandled_input(event:InputEvent) -> void:
if event.is_action_pressed("menu"):
if visible:
close()
elif !UI.dialogueActive && UI.MAIN_CHATBOX.isClosed:
open()
get_viewport().set_input_as_handled()
return
if !visible:
return
if event.is_action_pressed("ui_cancel"):
close()
get_viewport().set_input_as_handled()