Files
project-thor/Scripts/Interactable.gd
Nikolai Fesenko 8d00b1a40f update
2025-08-24 15:22:34 +02:00

61 lines
1.0 KiB
GDScript

class_name Interactable
extends Node
signal action_stoped
signal object_placed()
@export var area: Area3D
var build_name: String = "None"
var can_pick: bool
var can_store: bool
var stored_items: Array
var max_person_using
var persons_using: Array
var persons_position: Array
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)
break
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
func create():
pass