summaryrefslogtreecommitdiff
path: root/Tray.gd
diff options
context:
space:
mode:
authorDaniel Weipert <git@mail.dweipert.de>2024-05-12 12:38:10 +0200
committerDaniel Weipert <git@mail.dweipert.de>2024-05-12 12:38:10 +0200
commitf5593483ba906b66779cb4466a7f2c5b2ed004a8 (patch)
tree361c71e6318d1e83f9afcaa40aaddac5c190b240 /Tray.gd
parent7f3caaf1a254880b86bb4706f36505514c0a24d4 (diff)
screen drag + visible object collision shapes
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()