]> Untitled Git - frog-ninja.git/blobdiff - player/player.gd
Fixed MCV breakage by having Player manually associate skin with visuals, still not...
[frog-ninja.git] / player / player.gd
index 2c6782d20207e2bc1d76d34f37ae6293d06301ca..7df387172149f1741f341440decbe3ba86b28f51 100644 (file)
@@ -3,7 +3,7 @@ class_name Player
 
 
 @export_group("Movement")
 
 
 @export_group("Movement")
-@export var walk_speed := 8.0
+@export var walk_speed := 10.0
 @export var dash_length := 10.0
 @export var acceleration := 20.0
 @export var rotation_speed := 10.0
 @export var dash_length := 10.0
 @export var acceleration := 20.0
 @export var rotation_speed := 10.0
@@ -11,16 +11,31 @@ class_name Player
 
 
 var idle_time := 0.00
 
 
 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 floor_normal := Vector3.ZERO
 var ground_slope_input := 0.0
+var state := ""
+
+@onready var input: InputHandler = $Input
+@onready var model: PlayerModel = $Model
+@onready var visual: PlayerVisual = $Visual
+@onready var cameraHandler: PlayerCameraHandler = $CameraHandler
+@onready var skin: Node3D = $Model/Skeleton3D
+
 
 
-@onready var input: InputHandler = %Input
-@onready var model: PlayerModel = %Model
-@onready var skin: AnimatedSkin = %skin
+func _ready() -> void:
+       visual.assign_skeleton(model.skeleton)
 
 
 func _physics_process(delta: float) -> void:
        var input_pkt := input.get_player_input()
 
 
 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)
        model.update(input_pkt, delta)
+       
+       # TODO: this is bad!!
+       skin.global_position = global_position
+       visual.global_rotation = skin.global_rotation