person interaction update

This commit is contained in:
Nikolai Fesenko
2025-08-17 20:49:29 +02:00
parent c073bb555f
commit a62d2e29bc
12 changed files with 128 additions and 21 deletions

View File

@@ -1,6 +1,8 @@
class_name Interactable
extends Node
signal action_stoped
var can_pick: bool
var can_store: bool
@@ -8,12 +10,41 @@ var stored_objects: Array
var max_person_using
var persons_using: Array
var persons_position: Array
func action(person, object):
func start_action(person, object):
print("action!")
func stop_action(person, object):
person.is_in_action = false
var pose = find_pose(person)
pose.remove_person()
person.visible = true
action_stoped.emit()
func add_person_using(person):
persons_using.append(person)
func remove_person_using(person):
persons_using.erase(person)
func set_person_pos(person):
for pose in persons_position:
if pose.is_free:
pose.set_person(person)
func find_pose(person):
return persons_position[persons_position.find(person)]
func can_be_used():
var used_poses = 0
for pose in persons_position:
if !pose.is_free:
used_poses += 1
if used_poses < max_person_using:
return true
else:
return false