78 lines
2.2 KiB
GDScript
78 lines
2.2 KiB
GDScript
extends Control
|
|
|
|
## Defines the height in pixels of the zone where moving the mouse in the top of the screen will
|
|
## make the bar to show. Note: This value will be affected by the Experimental Scale GUI checkbox
|
|
## in Project Settings > Popochiu > GUI.
|
|
@export var input_zone_height := 4
|
|
|
|
@onready var panel_container: PanelContainer = $PanelContainer
|
|
@onready var inventory = %Inventory
|
|
@onready var settings = %Settings
|
|
@onready var help = %Help
|
|
@onready var quit = %Quit
|
|
|
|
|
|
#region Godot ######################################################################################
|
|
func _ready():
|
|
inventory.pressed.connect(_on_inventory_pressed)
|
|
settings.pressed.connect(_on_settings_pressed)
|
|
help.pressed.connect(_on_help_pressed)
|
|
quit.pressed.connect(_on_quit_pressed)
|
|
|
|
hide()
|
|
|
|
|
|
func _input(event: InputEvent) -> void:
|
|
if PopochiuUtils.g.is_blocked: return
|
|
|
|
if event is InputEventMouseMotion:
|
|
var rect := panel_container.get_rect()
|
|
|
|
if not visible:
|
|
rect.size.y = input_zone_height
|
|
|
|
if PopochiuUtils.e.settings.scale_gui:
|
|
rect = Rect2(
|
|
panel_container.get_rect().position * PopochiuUtils.e.scale,
|
|
(Vector2(
|
|
panel_container.get_rect().size.x,
|
|
panel_container.get_rect().size.y if visible
|
|
else panel_container.get_rect().size.y / 2.0
|
|
)) * PopochiuUtils.e.scale
|
|
)
|
|
|
|
if not visible and rect.has_point(get_global_mouse_position()):
|
|
# Show the top menu
|
|
if not PopochiuUtils.i.active:
|
|
PopochiuUtils.cursor.show_cursor("gui")
|
|
show()
|
|
elif visible and not rect.has_point(get_global_mouse_position()):
|
|
# Hide the top menu
|
|
if not PopochiuUtils.i.active:
|
|
PopochiuUtils.cursor.show_cursor(PopochiuUtils.e.get_current_command_name().to_snake_case())
|
|
hide()
|
|
|
|
|
|
#endregion
|
|
|
|
#region Private ####################################################################################
|
|
func _on_inventory_pressed() -> void:
|
|
hide()
|
|
PopochiuUtils.g.popup_requested.emit("SierraInventoryPopup")
|
|
|
|
|
|
func _on_settings_pressed() -> void:
|
|
hide()
|
|
PopochiuUtils.g.popup_requested.emit("SierraSettingsPopup")
|
|
|
|
|
|
func _on_help_pressed() -> void:
|
|
# TODO: Open the help popup
|
|
pass
|
|
|
|
|
|
func _on_quit_pressed() -> void:
|
|
PopochiuUtils.g.popup_requested.emit("QuitPopup")
|
|
|
|
|
|
#endregion
|