X-Git-Url: http://git.purplebirdman.com/frog-ninja.git/blobdiff_plain/47f9406a184d838e4701978a1a6f2dd871326d51..refs/heads/state-machine:/player/player.gd diff --git a/player/player.gd b/player/player.gd index 6f82ce6..2e90774 100644 --- a/player/player.gd +++ b/player/player.gd @@ -3,23 +3,37 @@ class_name Player @export_group("Movement") -@export var walk_speed := 8.0 +@export var walk_speed := 10.0 @export var dash_length := 10.0 -@export var air_speed := 3.0 @export var acceleration := 20.0 @export var rotation_speed := 10.0 @export var idle_timeout := 5.0 + var idle_time := 0.00 -var last_movement_direction := Vector3.ZERO -var state := "" +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 cameraHandler: PlayerCameraHandler = $CameraHandler + -@onready var _input: InputHandler = %Input -@onready var _model: PlayerModel = %Model +func _ready() -> void: + skin.assign_skeleton(model.skeleton) func _physics_process(delta: float) -> void: - var input_pkt := _input.get_player_input() - _model.update(input_pkt, delta) + 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