A Minecraft style clone in Godot
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

80 lines
2.0 KiB

class_name UI
extends CanvasLayer
@onready var crosshair: CenterContainer = $Crosshair
@onready var quick_slots: MarginContainer = $QuickSlots
@onready var pause_menu: PauseMenu = $PauseMenu
@onready var save_load_ui: Control = $SaveLoadUI
@onready var settings_menu: SettingsMenu = $SettingsMenu
@onready var waila: Waila = $Waila
func _ready() -> void:
SignalManager.close_pause_menu.connect(_on_close_pause_menu)
SignalManager.open_pause_menu.connect(_on_open_pause_menu)
SignalManager.close_settings_menu.connect(_on_close_settings_menu)
SignalManager.open_settings_menu.connect(_on_open_settings_menu)
SignalManager.resume_game.connect(_on_resume_game)
SaveGameManager.close_save_list_ui.connect(_on_close_save_list_ui)
SaveGameManager.open_save_list_ui.connect(_on_open_save_list_ui)
_on_resume_game()
func hide_menus() -> void:
pause_menu.visible = false
settings_menu.visible = false
save_load_ui.visible = false
func hide_ui_elements() -> void:
crosshair.visible = false
quick_slots.visible = false
waila.visible = false
func _on_close_pause_menu() -> void:
SignalManager.resume_game.emit()
func _on_close_save_list_ui() -> void:
SignalManager.open_settings_menu.emit()
func _on_close_settings_menu() -> void:
SignalManager.resume_game.emit()
func _on_open_pause_menu() -> void:
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
hide_ui_elements()
hide_menus()
pause_menu.visible = true
get_tree().paused = true
func _on_open_save_list_ui() -> void:
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
hide_ui_elements()
hide_menus()
save_load_ui.visible = true
get_tree().paused = true
func _on_open_settings_menu() -> void:
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
hide_ui_elements()
hide_menus()
settings_menu.visible = true
get_tree().paused = true
func _on_resume_game() -> void:
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
hide_menus()
crosshair.visible = true
quick_slots.visible = true and GameSettingsManager.settings.game_options.enable_quickslots_ui
waila.visible = true
get_tree().paused = false