1
Fork 0
mirror of https://github.com/Steffo99/hella-farm.git synced 2024-11-23 00:24:21 +00:00
hella-farm/behaviours/move_towards_target.gd
2024-04-15 02:45:18 +02:00

29 lines
839 B
GDScript

extends Node2D
class_name MoveTowardsTarget
signal move(movement: Vector2)
@export var speed: float = 100.0
@export var target: Node2D
func get_followed_global_position():
return target.global_position
func get_followed_mouse_position():
var global_followed_position: Vector2 = get_followed_global_position()
var relative_followed_position: Vector2 = global_followed_position - global_position
return relative_followed_position
func _physics_process(delta: float) -> void:
if target == null:
return
var relative_followed_position: Vector2 = get_followed_mouse_position()
var direction: Vector2 = position.direction_to(relative_followed_position)
var actual_speed: float = min(delta * speed, relative_followed_position.length()) # Don't overshoot.
var movement: Vector2 = direction * actual_speed
move.emit(movement)