mirror of
https://github.com/creyD/ludum_dare_46.git
synced 2026-06-11 21:22:22 +02:00
55 lines
1.2 KiB
GDScript
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
|