53 lines
1.0 KiB
GDScript
53 lines
1.0 KiB
GDScript
extends Interactable
|
|
|
|
|
|
var test: bool = false
|
|
|
|
@export var items_pos_master: Node
|
|
var item_poses: Array
|
|
|
|
|
|
func _init() -> void:
|
|
max_person_using = 1
|
|
can_store = true
|
|
func _ready() -> void:
|
|
self.owner = $".."
|
|
#object_placed.connect(_on_object_placed.bind(self))
|
|
|
|
|
|
|
|
|
|
func start_action(person, object):
|
|
if person.target_action == "take":
|
|
give_out(person)
|
|
|
|
|
|
func give_out(person):
|
|
var pose = get_item_pose(person.target_item)
|
|
pose.remove_item()
|
|
person.hold_item(person.target_item)
|
|
stored_items.erase(person.target_item)
|
|
|
|
|
|
func add_item(item):
|
|
stored_items.append(item)
|
|
|
|
for pose in item_poses:
|
|
if pose.is_free:
|
|
print(pose)
|
|
pose.add_item(item)
|
|
break
|
|
|
|
func get_item_pose(item):
|
|
for pose in item_poses:
|
|
if pose.item == item:
|
|
return pose
|
|
return null
|
|
|
|
func create():
|
|
for pose in items_pos_master.get_children():
|
|
item_poses.append(pose)
|
|
ItemManager.add_shelf(self)
|
|
ItemManager.add_item_to_shelf(self, ItemManager.create_item(0))
|
|
ItemManager.add_item_to_shelf(self, ItemManager.create_item(0))
|