restructured folders
This commit is contained in:
parent
e3aec75404
commit
0f5045dc22
22 changed files with 32 additions and 21 deletions
53
ui/ingame_controls.gd
Normal file
53
ui/ingame_controls.gd
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
extends MarginContainer
|
||||
class_name IngameControls
|
||||
|
||||
signal menu_button_clicked
|
||||
signal settings_button_clicked
|
||||
signal save_button_clicked
|
||||
signal save_button_released
|
||||
signal save_timer_incremented(value: int)
|
||||
signal save_timer_reached
|
||||
|
||||
var save_button_held_down: bool = false
|
||||
var save_timer: float = 0.0
|
||||
var time_to_save: float = 0.8 # second
|
||||
|
||||
func _process(delta) -> void:
|
||||
if save_button_held_down:
|
||||
if save_timer >= time_to_save:
|
||||
save_timer_reached.emit()
|
||||
save_timer = 0.0
|
||||
|
||||
# Save the game
|
||||
SaveGame.save()
|
||||
|
||||
save_button_held_down = false
|
||||
else:
|
||||
save_timer_incremented.emit(ceili((save_timer / time_to_save) * 100))
|
||||
save_timer += delta
|
||||
|
||||
func _on_menu_button_pressed() -> void:
|
||||
menu_button_clicked.emit()
|
||||
|
||||
func _on_settings_button_pressed() -> void:
|
||||
settings_button_clicked.emit()
|
||||
|
||||
# the save function should work as follows:
|
||||
# a percentage sign with 0% should be shown
|
||||
# the player has to hold down the save button
|
||||
# during holding down, the percentage increases until 100%
|
||||
# a finishing animation plays, the game is saved and the countdown disappears again
|
||||
func _on_save_button_button_down() -> void:
|
||||
save_button_held_down = true
|
||||
save_button_clicked.emit()
|
||||
|
||||
func _on_save_button_button_up() -> void:
|
||||
save_button_held_down = false
|
||||
save_button_released.emit()
|
||||
save_timer = 0.0
|
||||
|
||||
func disable_save_button() -> void:
|
||||
%SaveButton.disabled = true
|
||||
|
||||
func enable_save_button() -> void:
|
||||
%SaveButton.disabled = false
|
||||
Loading…
Add table
Add a link
Reference in a new issue