35 lines
900 B
GDScript
35 lines
900 B
GDScript
class_name MeanDude
|
|
extends CharacterBody2D
|
|
|
|
@export var blackboard: Blackboard
|
|
|
|
func _ready():
|
|
$BeehaveTree.blackboard = blackboard
|
|
go_to_interesting_spot()
|
|
|
|
func _physics_process(delta):
|
|
if not $Navigation.is_navigation_finished():
|
|
if not $Navigation.is_target_reachable():
|
|
go_to_interesting_spot()
|
|
|
|
var pos = $Navigation.get_next_path_position()
|
|
var dir = position.direction_to(pos)
|
|
$Navigation.velocity = dir * 1000
|
|
transform = transform.looking_at(pos)
|
|
|
|
func say_shit(shit):
|
|
print(self.name, ": ", shit)
|
|
|
|
|
|
func can_see_name(actor_name: String) -> bool:
|
|
return $Eyes.get_overlapping_bodies().any(func(b): return b.name == actor_name)
|
|
|
|
|
|
func go_to_interesting_spot() -> void:
|
|
$Navigation.target_position = get_tree().get_nodes_in_group("InterestingSpot").pick_random().position
|
|
|
|
|
|
func _on_navigation_velocity_computed(safe_velocity):
|
|
velocity = safe_velocity
|
|
move_and_slide()
|