test-client-godot/scenes/GUI/GUI.gd

97 lines
2.6 KiB
GDScript3
Raw Normal View History

2018-07-25 07:36:19 +00:00
extends MarginContainer
signal logout_button_pressed
2018-07-25 07:36:19 +00:00
func _ready():
pause()
self.connect( "logout_button_pressed", global, "_on_logout_button_pressed" )
2018-07-25 07:36:19 +00:00
func _on_Home_setting_pressed():
$Home.hide()
$Settings.show()
$Help.hide()
func _on_Settings_return_pressed():
$Home.show()
$Settings.hide()
$Help.show()
func _on_Home_play_pressed():
if not get_tree().paused:
pause()
else:
play()
func _input(event):
2018-07-28 18:34:08 +00:00
if event.is_action_pressed("ui_test"):
print( "Event: ui_test" )
if event.is_action_pressed("ui_quit"):
get_tree().quit()
if event.is_action_pressed("ui_reload"):
if not $Settings.visible:
get_tree().reload_current_scene()
if event.is_action_pressed("ui_pause") and not event.is_echo():
if not $Settings.visible:
if not get_tree().paused:
pause()
else:
play()
2018-07-25 07:36:19 +00:00
# ----------------------------------
# Capturing/Freeing the cursor
if Input.is_action_just_pressed("ui_free_cursor"):
if Input.get_mouse_mode() == Input.MOUSE_MODE_VISIBLE:
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
else:
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
2018-07-25 07:36:19 +00:00
# ----------------------------------
2018-07-31 08:26:45 +00:00
if Input.is_action_just_pressed("ui_hide_all"):
self.visible = not self.visible
if Input.is_action_just_pressed("ui_hide_hud"):
$HUD.visible = not $HUD.visible
# Si on est en mode "deplacement", on desative le focus sur l'interface
# afin de ne pas naviguer dedans en même temps que l'on agit en jeu.
if Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED:
recursive_release_focus( self )
func recursive_release_focus( control ):
if control is Control:
if len(control.get_children()) > 0:
for child in control.get_children():
recursive_release_focus( child )
control.release_focus()
2018-07-25 07:36:19 +00:00
func pause():
get_tree().paused = true
show_menu()
func play():
get_tree().paused = false
hide_menu()
2018-07-28 18:34:08 +00:00
2018-07-25 07:36:19 +00:00
func show_menu():
$Home.show()
$Settings.hide()
$HUD.modulate.a = 0.5
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
func hide_menu():
$Settings.hide()
$Home.hide()
$Help.show()
$HUD.modulate.a = 1.0
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
func _on_Settings_font_changed( value ):
$HUD.get_theme().default_font.size = value
func _on_login_menu_login_button_pressed():
$login_menu.hide()
$character_selection_menu.show()
func _on_Home_logout_pressed():
emit_signal( "logout_button_pressed" )