summaryrefslogtreecommitdiff
path: root/Tray.gd
diff options
context:
space:
mode:
Diffstat (limited to 'Tray.gd')
-rw-r--r--Tray.gd46
1 files changed, 44 insertions, 2 deletions
diff --git a/Tray.gd b/Tray.gd
index 136cf55..2ff15a9 100644
--- a/Tray.gd
+++ b/Tray.gd
@@ -1,15 +1,57 @@
-extends VBoxContainer
+extends Control
var TrayItemScene = preload("res://TrayItem.tscn")
+var is_open = true
+
-# Called when the node enters the scene tree for the first time.
func _ready():
for i in range(5):
add_item()
+
+ await get_tree().process_frame
+ _on_resized()
func add_item():
var tray_item = TrayItemScene.instantiate()
%Items.add_child(tray_item)
+
+
+func open():
+ is_open = true
+ var tween = create_tween()
+ tween.tween_property(
+ self,
+ "global_position",
+ Vector2(get_viewport_rect().end.x - size.x, position.y),
+ 0.25
+ )
+
+
+func close():
+ is_open = false
+ var tween = create_tween()
+ tween.tween_property(
+ self,
+ "global_position",
+ Vector2(get_viewport_rect().end.x, position.y),
+ 0.25
+ )
+
+
+func _on_resized():
+ %Button.global_position = global_position - Vector2(%Button.size.x, 0)
+
+ var shape = RectangleShape2D.new()
+ shape.size = size
+ $Area2D/CollisionShape2D.shape = shape
+ $Area2D/CollisionShape2D.position = size / 2
+
+
+func _on_button_pressed():
+ if is_open:
+ close()
+ else:
+ open()