Files
project-thor/Scripts/person.gd
Nikolai Fesenko 5637c82eb7 added user action
2025-08-17 16:21:34 +02:00

60 lines
1.4 KiB
GDScript

extends CharacterBody3D
var nav_agent: NavigationAgent3D
var shirt_shader: ShaderMaterial
var meshI: MeshInstance3D
var start_pos: Vector3
var target_object: Node3D
func _ready() -> void:
nav_agent = $NavigationAgent3D
meshI = $MeshInstance3D
shirt_shader = meshI.get_surface_override_material(1)
BuildManager.object_added.connect(_on_object_added)
set_random_shirt()
start_pos = global_position
#nav_agent.target_position = Vector3(-15.955,3.486,-58.942)
func _physics_process(delta: float) -> void:
var new_velocity = global_position.direction_to(nav_agent.get_next_path_position()) * 5.0
look_at(nav_agent.target_position)
velocity = new_velocity
move_and_slide()
func _input(event: InputEvent) -> void:
if event.is_action_pressed("test"):
set_target_position()
func _on_object_added(object):
set_target(object)
func set_random_shirt():
var new_shirt_color = Vector3(randf(),randf(),randf())
shirt_shader.set_shader_parameter("shirt_color", new_shirt_color)
pass
func set_target(object):
target_object = object
#nav_agent.target_position = target_object.ActionNode.global_position
func set_target_position():
var newPos = target_object.ActionNode.global_position
newPos.y = self.position.y
nav_agent.target_position = newPos
#nav_agent.target_position = start_pos
func _on_navigation_agent_3d_target_reached() -> void:
if target_object != null:
Global.interact.emit(self, target_object.ActionNode)
pass