Swarm/InGameMenu.gd

59 lines
1.6 KiB
GDScript

extends Control
@onready var panel_container = $PanelContainer
@onready var margin_container2 = $Pivot/MarginContainer
const SETTINGS = preload("res://UI/Settings/Settings.tscn")
var mat: ShaderMaterial
func show_panel() -> void:
margin_container2.position.y = get_viewport().size.y
mat.set_shader_parameter("lod", 0)
visible = true
var tween = get_tree().create_tween()
tween.set_parallel(true)
tween.tween_method(tween_blur, 0.0, 1.0, 0.5).set_trans(Tween.TRANS_EXPO).set_ease(Tween.EASE_IN_OUT)
tween.tween_property(margin_container2, "position:y", 0.0, 0.5).set_trans(Tween.TRANS_BACK).set_ease(Tween.EASE_OUT)
# Called when the node enters the scene tree for the first time.
func _ready():
mat = panel_container.material
pass # Replace with function body.
func tween_blur(val: float) -> void:
mat.set_shader_parameter("lod", val)
pass
func hide_panel() -> void:
var tween = get_tree().create_tween()
tween.set_parallel(true)
tween.tween_method(tween_blur, 1.0, 0.0, 0.5).set_trans(Tween.TRANS_EXPO).set_ease(Tween.EASE_IN_OUT)
tween.tween_property(margin_container2, "position:y", get_viewport().size.y, 0.5).set_trans(Tween.TRANS_BACK).set_ease(Tween.EASE_IN)
tween.finished.connect(_on_panel_hidden)
func _on_panel_hidden() -> void:
visible = false
queue_free()
func _on_close_button_pressed():
hide_panel()
func _on_settings_pressed():
var settings = SETTINGS.instantiate()
get_tree().root.add_child(settings)
settings.show_panel()
func _on_exit_button_pressed():
Networking.disconnect_all()
get_tree().change_scene_to_file("res://UI/main_menu.tscn")
queue_free()