sokoban
Diffstat (limited to 'console.gd')
-rw-r--r--console.gd32
1 files changed, 32 insertions, 0 deletions
diff --git a/console.gd b/console.gd
new file mode 100644
index 0000000..fcf17c7
--- /dev/null
+++ b/console.gd
@@ -0,0 +1,32 @@
+extends CanvasLayer
+
+onready var label = $Label
+onready var tween = $Tween
+
+
+func _ready():
+ MainInstances.console = self
+ label.percent_visible = 0
+
+
+func Log(new_text: String, time := .5, length := 2.5):
+ if tween.is_active():
+ return false
+ label.percent_visible = 0
+ label.text = new_text
+ tween_(0, 1, time)
+ yield(tween, "tween_all_completed")
+ yield(get_tree().create_timer(length), "timeout")
+ tween_(1, 0, time)
+ return true
+
+
+func _exit_tree():
+ MainInstances.console = null
+
+
+func tween_(from, to, time):
+ tween.interpolate_property(
+ $Label, "percent_visible", from, to, time, Tween.TRANS_LINEAR, Tween.EASE_IN_OUT
+ )
+ tween.start()