Files
Dawn-Godot/ui/gamemenu/GameMenu.gd
T
2026-06-14 10:19:31 -05:00

46 lines
1.1 KiB
GDScript

class_name GameMenu extends ClosableMenu
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:
super._ready()
SIDEBAR.item_selected.connect(_onTabSelected)
func _grabInitialFocus() -> void:
_selectTab(_currentTab)
SIDEBAR.select(_currentTab)
SIDEBAR.grab_focus()
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 _input(event:InputEvent) -> void:
if not event.is_action_pressed("menu"):
return
if isOpen:
close()
elif UI.FOCUS_STACK.top() == null and not UI.dialogueActive and SCENE.currentScene == SceneSingleton.SceneType.OVERWORLD:
open()
get_viewport().set_input_as_handled()
func _unhandled_input(event:InputEvent) -> void:
if event.is_action_pressed("ui_cancel"):
close()
get_viewport().set_input_as_handled()