var idle_time := 0.00
-var last_movement_direction := rotation
+var last_movement_direction := rotation
var floor_normal := Vector3.ZERO
var ground_slope_input := 0.0
var state := ""
@onready var input: InputHandler = $Input
@onready var model: PlayerModel = $Model
@onready var skin: SkeletonSkin3D = $Visual
-@onready var camera_handler: CameraHandler = $CameraHandler
+@onready var cameraHandler: PlayerCameraHandler = $CameraHandler
func _ready() -> void:
- input.camera = %camera
- camera_handler.input = input
skin.assign_skeleton(model.skeleton)
func _physics_process(delta: float) -> void:
var input_pkt := input.get_player_input()
+ cameraHandler.update(input_pkt, delta)
+
+ 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