summaryrefslogtreecommitdiff
path: root/TrayItem.gd
blob: 2cdb5f2018748a353ea31ebacba87513c37cd674 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class_name TrayItem
extends Control


@export_file("*.tscn") var object_path: String
@onready var object: BuilderObject = load(object_path).instantiate()

var preview: BuilderObject


func _ready():
	var sprite: Sprite2D = object.get_node("Sprite2D")
	var texture = AtlasTexture.new()
	texture.atlas = sprite.texture
	texture.region = sprite.region_rect
	%Image.texture = texture
	await get_tree().process_frame


func _on_gui_input(event: InputEvent):
	if event.is_action_pressed("drag_start"):
		get_tree().current_scene.can_drag = false
		preview = object.duplicate()
		preview.drag_start()
		get_tree().current_scene.get_node("%DropTarget").add_child(preview)
	if event.is_action_released("drag_start"):
		get_tree().current_scene.can_drag = true
		preview.drag_end()
		preview = null