X-Git-Url: http://git.purplebirdman.com/frog-ninja.git/blobdiff_plain/0b4b7dc3e7a9507f7b7c87e9cf0f606e051927f2..bbc4ebf3292684ec9b3aa9a3ba37ae4d748da305:/player/input/PlayerCameraHandler.gd diff --git a/player/input/PlayerCameraHandler.gd b/player/input/PlayerCameraHandler.gd index ab2b865..d6fbe9d 100644 --- a/player/input/PlayerCameraHandler.gd +++ b/player/input/PlayerCameraHandler.gd @@ -14,6 +14,7 @@ class_name PlayerCameraHandler @onready var spring: SpringArm3D = $SpringArm3D +@onready var camera: Camera3D = $SpringArm3D/Camera3D # Called when the node enters the scene tree for the first time. @@ -46,3 +47,14 @@ func update(input: InputPacket, delta: float): # horizontal camera rotation rotation.y -= camera_input_direction.x * delta + + +# Get the XZ input direction based on player's input relative to the camera +func get_xz_direction_relative_to_camera(d: Vector2) -> Vector2: + if camera: + var forward := camera.global_basis.z + var right := camera.global_basis.x + var dir3 := forward * d.y + right * d.x + return Vector2(dir3.x, dir3.z).normalized() + else: + return Vector2.ZERO