This commit is contained in:
Nikolai Fesenko
2025-08-24 15:22:34 +02:00
parent e32a58f416
commit 8d00b1a40f
7 changed files with 31 additions and 13 deletions

View File

@@ -73,9 +73,10 @@ input_ray_pickable = false
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.218994, -0.287048, 0.10144) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.218994, -0.287048, 0.10144)
shape = SubResource("BoxShape3D_sp2kd") shape = SubResource("BoxShape3D_sp2kd")
[node name="ActionNode" type="Node3D" parent="."] [node name="ActionNode" type="Node3D" parent="." node_paths=PackedStringArray("area")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1.3739) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1.3739)
script = ExtResource("8_c1046") script = ExtResource("8_c1046")
area = NodePath("Area3d")
[node name="Area3d" type="Area3D" parent="ActionNode"] [node name="Area3d" type="Area3D" parent="ActionNode"]
input_ray_pickable = false input_ray_pickable = false

View File

@@ -88,9 +88,10 @@ surface_material_override/1 = SubResource("StandardMaterial3D_uhv8u")
surface_material_override/2 = SubResource("StandardMaterial3D_dn6sd") surface_material_override/2 = SubResource("StandardMaterial3D_dn6sd")
surface_material_override/3 = SubResource("StandardMaterial3D_rbvpf") surface_material_override/3 = SubResource("StandardMaterial3D_rbvpf")
[node name="ActionNode" type="Node3D" parent="."] [node name="ActionNode" type="Node3D" parent="." node_paths=PackedStringArray("area")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.26206, 2.41965) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.26206, 2.41965)
script = ExtResource("12_r71lq") script = ExtResource("12_r71lq")
area = NodePath("Area3d")
[node name="Area3d" type="Area3D" parent="ActionNode"] [node name="Area3d" type="Area3D" parent="ActionNode"]
input_ray_pickable = false input_ray_pickable = false

View File

@@ -4,6 +4,8 @@ extends Node
signal action_stoped signal action_stoped
signal object_placed() signal object_placed()
@export var area: Area3D
var build_name: String = "None" var build_name: String = "None"
@@ -38,6 +40,7 @@ func set_person_pos(person):
for pose in persons_position: for pose in persons_position:
if pose.is_free: if pose.is_free:
pose.set_person(person) pose.set_person(person)
break
func find_pose(person): func find_pose(person):

View File

@@ -39,8 +39,10 @@ func _input(event: InputEvent) -> void:
show_context_menu.emit() show_context_menu.emit()
func _on_interact(person, object): func _on_interact(person, object):
object.start_action(person, object) if object.name == "ActionNode":
object.start_action(person, object)
else:
object.ActionNode.start_action(person, object)
func _on_object_selected(object): func _on_object_selected(object):
if object_selected != null and object != object_selected: if object_selected != null and object != object_selected:

View File

@@ -11,7 +11,7 @@ func _ready() -> void:
func start_action(person, object): func start_action(person, object):
person.action = self person.action = self
person.visible = false
set_person_pos(person)
person.set_timer(5) person.set_timer(5)
func stop_action(person, object):
print("action stoped")

View File

@@ -79,16 +79,22 @@ func set_target_position():
var newPos = target_object.global_position var newPos = target_object.global_position
newPos.y = self.position.y newPos.y = self.position.y
nav_agent.target_position = newPos nav_agent.target_position = newPos
if target_object.name != "ActionNode":
target_object.ActionNode.area.body_entered.connect(on_target_reached)
else:
target_object.area.body_entered.connect(on_target_reached)
#nav_agent.target_position = start_pos #nav_agent.target_position = start_pos
func on_target_reached(body):
print("I reached ")
if body == self:
if target_object != null:
print("I reached a target")
is_target_reached = true
nav_agent.target_position = self.global_position
Global.interact.emit(self, target_object)
func _on_navigation_agent_3d_target_reached() -> void: func _on_navigation_agent_3d_target_reached() -> void:
if target_object != null:
print("I reached a target")
is_target_reached = true
nav_agent.target_position = self.global_position
Global.interact.emit(self, target_object)
pass pass
func set_timer(time): func set_timer(time):

View File

@@ -60,3 +60,8 @@ func go_cook():
else: else:
print("I cant find free pot") print("I cant find free pot")
pass pass
func cook(person, object):
person.set_timer(5)