mirror of
https://github.com/thegatesbrowser/thegates.git
synced 2025-08-24 11:17:26 -04:00
57 lines
1.2 KiB
GDScript
57 lines
1.2 KiB
GDScript
extends Control
|
|
|
|
@export var gate_events: GateEvents
|
|
@export var history: History
|
|
@export var root: TextureButton
|
|
@export var reload: Button
|
|
@export var back: Button
|
|
@export var fade_in: float = 1.0
|
|
@export var fade_out: float = 0.2
|
|
|
|
const SHOWN = Color(1, 1, 1, 1)
|
|
const HIDDEN = Color(1, 1, 1, 0)
|
|
|
|
var tween: Tween
|
|
|
|
|
|
func _ready() -> void:
|
|
gate_events.not_responding.connect(show_message)
|
|
reload.pressed.connect(reload_gate)
|
|
root.pressed.connect(hide_message)
|
|
back.pressed.connect(Navigation.go_back)
|
|
|
|
visible = true
|
|
root.hide()
|
|
root.modulate = HIDDEN
|
|
root.mouse_filter = Control.MOUSE_FILTER_PASS
|
|
|
|
|
|
func show_message() -> void:
|
|
if root.visible: return
|
|
|
|
root.show()
|
|
|
|
if is_instance_valid(tween): tween.stop()
|
|
tween = get_tree().create_tween()
|
|
tween.tween_property(root, "modulate", SHOWN, fade_in)
|
|
await tween.finished
|
|
|
|
root.mouse_filter = Control.MOUSE_FILTER_STOP
|
|
|
|
|
|
func hide_message() -> void:
|
|
if not root.visible: return
|
|
|
|
root.mouse_filter = Control.MOUSE_FILTER_PASS
|
|
|
|
if is_instance_valid(tween): tween.stop()
|
|
tween = get_tree().create_tween()
|
|
tween.tween_property(root, "modulate", HIDDEN, fade_out)
|
|
await tween.finished
|
|
|
|
root.hide()
|
|
|
|
|
|
func reload_gate() -> void:
|
|
var location = history.get_current()
|
|
gate_events.open_gate_emit(location)
|