Files
ludum_dare_46/src/Menus/DragNDrop/DragSource.gd
2020-04-20 23:21:39 +02:00

55 lines
1.2 KiB
GDScript

extends TextureRect
# CardDeck
var canNotPlace = false
export var Item:PackedScene
export var PreviewIcon:Texture
export var DeleteOnGrab:bool = false
var card_level = 0
#if a drag is initiated here
func get_drag_data(_pos):
if (canNotPlace):
return null
var ctrl = Control.new()
var TR = TextureRect.new()
TR.texture = get_resized_texture(PreviewIcon, 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 Item
# 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) == typeof(PackedScene)
# 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 and height > 0:
image.resize(width, height)
var itex = ImageTexture.new()
itex.create_from_image(image,0)
return itex
func upgrade_card():
match card_level:
0:
$AnimatedSprite.play("lvl1")
card_level += 1
1:
$AnimatedSprite.play("lvl2")
card_level += 1