1 extends CharacterBody3D
5 @export_group("Movement")
6 @export var walk_speed := 10.0
7 @export var dash_length := 10.0
8 @export var acceleration := 20.0
9 @export var rotation_speed := 10.0
10 @export var idle_timeout := 5.0
14 var last_movement_direction := rotation
15 var floor_normal := Vector3.ZERO
16 var ground_slope_input := 0.0
19 @onready var input: InputHandler = $Input
20 @onready var model: PlayerModel = $Model
21 @onready var skin: SkeletonSkin3D = $Visual
22 @onready var cameraHandler: PlayerCameraHandler = $CameraHandler
25 func _ready() -> void:
26 skin.assign_skeleton(model.skeleton)
29 func _physics_process(delta: float) -> void:
30 var input_pkt := input.get_player_input()
31 cameraHandler.update(input_pkt, delta)
33 input_pkt.player_movement_direction = cameraHandler.get_xz_direction_relative_to_camera(
34 input_pkt.player_movement_direction
36 model.update(input_pkt, delta)
39 model.skeleton.global_transform = skin.global_transform