diff options
author | Daniel Weipert <git@mail.dweipert.de> | 2024-05-12 12:38:10 +0200 |
---|---|---|
committer | Daniel Weipert <git@mail.dweipert.de> | 2024-05-12 12:38:10 +0200 |
commit | f5593483ba906b66779cb4466a7f2c5b2ed004a8 (patch) | |
tree | 361c71e6318d1e83f9afcaa40aaddac5c190b240 /Tray.gd | |
parent | 7f3caaf1a254880b86bb4706f36505514c0a24d4 (diff) |
screen drag + visible object collision shapes
Diffstat (limited to 'Tray.gd')
-rw-r--r-- | Tray.gd | 46 |
1 files changed, 44 insertions, 2 deletions
@@ -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() |