Files
project-thor/Scripts/build_manager.gd
Nikolai Fesenko e32a58f416 update
2025-08-21 19:32:40 +02:00

77 lines
1.6 KiB
GDScript

extends Node
@onready var DoubleBeds = preload("res://Scenes/Prefabs/DoubleBeds.tscn")
@onready var Pot = preload("res://Scenes/Prefabs/Pot.tscn")
@onready var Battery = preload("res://Scenes/Prefabs/Battery.tscn")
@onready var Shelf = preload("res://Scenes/Prefabs/Shelf.tscn")
signal build_object_selected
signal exit_build_mode
signal enter_build_mode
signal preview_created
signal preview_destroyed
signal object_placed(build_postion)
signal object_added(object)
var build_mode: bool = false
var selected_object_id: int
var is_object_selected: bool
var global_y = 2.903
var builded_objects: Array
func _ready() -> void:
is_object_selected = false
build_object_selected.connect(_on_object_selected)
func _input(event: InputEvent) -> void:
if event.is_action_released("enter_build_mode"):
if build_mode:
exit_build_mode.emit()
build_mode = false
else:
enter_build_mode.emit()
build_mode = true
func get_preview_object():
var selected_object
match selected_object_id:
0:
selected_object = DoubleBeds
1:
selected_object = Pot
2:
selected_object = Battery
3:
selected_object = Shelf
return selected_object
func _on_object_selected():
is_object_selected = true
func add_object_to_array(object):
builded_objects.append(object)
object_added.emit(object)
func set_person_target_build(build_name, is_free):
var result = find_building(build_name, is_free)
if result != null:
return result
else:
return result
func find_building(build_name,is_free):
for build in builded_objects:
if build.ActionNode.build_name == build_name:
if build.ActionNode.can_be_used() == is_free:
return build
return null