ld52_olive_harvest/items/BaseItem.gd

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