extends Control var TrayItemScene = preload("res://TrayItem.tscn") var is_open = true 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()