44 lines
836 B
GDScript
44 lines
836 B
GDScript
extends KinematicBody2D
|
|
|
|
var is_held = false
|
|
|
|
var sale_value = 10
|
|
|
|
func interact(player: Node2D):
|
|
if is_held:
|
|
return false
|
|
|
|
for i in range(1, 10):
|
|
var n = player.get_node_or_null("ItemHolder" + str(i))
|
|
if n == null:
|
|
return false
|
|
|
|
if n.get_child_count() > 0:
|
|
continue
|
|
|
|
var cur_parent = self.get_parent()
|
|
if cur_parent != null:
|
|
cur_parent.remove_child(self)
|
|
n.add_child(self)
|
|
self._on_picked_up()
|
|
is_held = true
|
|
self.position = Vector2.ZERO
|
|
return true
|
|
|
|
return false
|
|
|
|
func _on_picked_up():
|
|
pass
|
|
|
|
func _on_dropped():
|
|
pass
|
|
|
|
func drop(player: Node2D, offset: Vector2):
|
|
self._on_dropped()
|
|
var cur_parent = self.get_parent()
|
|
cur_parent.remove_child(self)
|
|
player.get_parent().add_child(self)
|
|
self.position = player.position + offset
|
|
#var _v = self.move_and_slide(Vector2(1, 0))
|
|
is_held = false
|