]> Untitled Git - frog-ninja.git/commitdiff
Moved camera vector stuff into CameraHandler
authorClifton Palmer <clifton.james.palmer@protonmail.com>
Thu, 8 May 2025 12:34:29 +0000 (15:34 +0300)
committerClifton Palmer <clifton.james.palmer@protonmail.com>
Thu, 8 May 2025 12:34:29 +0000 (15:34 +0300)
player/input/PlayerCameraHandler.gd
player/player.gd

index ab2b8659d4d90ea39529d3b457998fc050970fe6..d6fbe9d246ffccddd4ac461e61e8079d3abe2840 100644 (file)
@@ -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
index 5964f1bbb8f7e09b44e35fce54fc2a1d0ab92b13..2e90774091c57a5d89ee7c046ad77f654d757526 100644 (file)
@@ -20,7 +20,6 @@ var state := ""
 @onready var model: PlayerModel = $Model
 @onready var skin: SkeletonSkin3D = $Visual
 @onready var cameraHandler: PlayerCameraHandler = $CameraHandler
-@onready var camera: Camera3D = $CameraHandler/SpringArm3D/Camera3D
 
 
 func _ready() -> void:
@@ -31,23 +30,10 @@ func _physics_process(delta: float) -> void:
        var input_pkt := input.get_player_input()
        cameraHandler.update(input_pkt, delta)
        
-       input_pkt.player_movement_direction = get_movement_relative_to_camera(
+       input_pkt.player_movement_direction = cameraHandler.get_xz_direction_relative_to_camera(
                input_pkt.player_movement_direction
                )
        model.update(input_pkt, delta)
        
        # TODO: this is bad!!
        model.skeleton.global_transform = skin.global_transform
-
-
-# Get the XZ input direction based on player's input relative to the camera
-func get_movement_relative_to_camera(movement_direction: Vector2) -> Vector2:
-       if camera:
-               var forward := camera.global_basis.z
-               var right := camera.global_basis.x
-               var dir := (
-                       forward * movement_direction.y + right * movement_direction.x
-                       ).normalized()
-               return Vector2(dir.x, dir.z).normalized()
-       else:
-               return Vector2.ZERO