person interaction update
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user