Files
ludum_dare_46/src/Menus/DragNDrop/DragSource.tscn
2020-04-18 18:56:05 +02:00

58 lines
1.4 KiB
Plaintext

[gd_scene load_steps=3 format=2]
[ext_resource path="res://icon.png" type="Texture" id=1]
[sub_resource type="GDScript" id=1]
script/source = "extends TextureRect
#CardDeck
export var ItemID:int=0
export var PreviewIcon:String = \"\"
export var DeleteOnGrab:bool = false
#if a drag is initiated here
func get_drag_data(_pos):
print(_pos)
var preview = load(PreviewIcon)
var ctrl = Control.new()
var TR = TextureRect.new()
TR.texture = get_resized_texture(preview,self.rect_size[0],self.rect_size[1])
TR.rect_size= self.rect_size
TR.set_position(_pos*-1,false)
ctrl.add_child(TR)
set_drag_preview(ctrl)
if DeleteOnGrab :
self.queue_free()
return ItemID
#stuff can be dropped here
#eg you picked the wrong thing up, let go and it returns to nothingness
func can_drop_data(_pos, data):
return typeof(data) == TYPE_INT
#do nothing if stuff is dropped here
func drop_data(_pos, _data):
pass
func get_resized_texture(t: Texture, width: int = 0, height: int = 0):
var image = t.get_data()
if width > 0 && height > 0:
image.resize(width, height)
var itex = ImageTexture.new()
itex.create_from_image(image,0)
return itex
"
[node name="DragSource" type="TextureRect"]
margin_left = 10.7364
margin_top = 227.792
margin_right = 42.7364
margin_bottom = 259.792
texture = ExtResource( 1 )
expand = true
script = SubResource( 1 )
__meta__ = {
"_edit_use_anchors_": false
}