extends Node2D var parent : Node2D @export var center = Vector2.ZERO var angle = 0 var up : Vector2 : get(): return global_from_local(Vector2.UP) var down : Vector2 : get(): return global_from_local(Vector2.DOWN) var right : Vector2 : get(): return global_from_local(Vector2.RIGHT) var left : Vector2 : get(): return global_from_local(Vector2.LEFT) func _ready() -> void: parent = get_parent() align() func _process(_delta: float) -> void: align() func align(): angle = -(parent.position - center).angle_to(Vector2.UP) parent.rotation = angle; func global_from_local (_velocity: Vector2) -> Vector2: return _velocity.rotated(angle) func local_from_global (_velocity: Vector2) -> Vector2: return _velocity.rotated(-angle)