func _process(delta):
if dragPreview != null:
dragPreview.rect_position = get_local_mouse_position() + Vector2(-4,-4)
var dragPreview
func get_drag_data(_position):
print("Getting drag data")
var item_index = get_index()
var item = inventory.remove_item(item_index)
if item != null:
var data = {}
data.item = item
data.item_index = item_index
# Dragpreview stuff
dragPreview = TextureRect.new()
dragPreview.texture = item.texture
dragPreview.modulate.a = 0.5
dragPreview.mouse_filter = Control.MOUSE_FILTER_IGNORE
add_child(dragPreview)
set_process(true)
return data
func can_drop_data(_position, data):
return data is Dictionary and data.has("item")
func drop_data(_position, data):
var my_item_index = get_index()
var my_item = inventory.items[my_item_index]
inventory.swap_item(my_item_index, data.item_index)
inventory.set_item(my_item_index, data.item)
if dragPreview != null:
dragPreview.queue_free()
set_process(false)
#Dragpreview not being freed?
1 messages · Page 1 of 1 (latest)
so, in drop_data I have dragPreview.queue_free()
but it's not being deleted for some reason
Ive been checking with the debugger and when it gets there it says dragPreview is aleady null. Which is weird because it's still in the node tree and I don't free it anywhere
(note, it's not the inbuilt dragpreview, it's my own attempt at making one because the other one wouldn't be on my mouse position or follow as the player moves)