2 class_name InputHandler
8 func get_camera_input_direction() -> Vector2:
9 return Input.get_vector(
10 "camera-left", "camera-right", "camera-up", "camera-down"
14 # Get the XZ input direction based on player's input relative to the camera
15 func get_player_input_relative_to_camera(raw_input: Vector2) -> Vector3:
17 var forward := camera.global_basis.z
18 var right := camera.global_basis.x
20 forward * raw_input.y + right * raw_input.x
27 func get_player_input() -> InputPacket:
28 var p: InputPacket = InputPacket.new()
30 p.movement_direction = Input.get_vector(
31 "player-left", "player-right", "player-forward", "player-backward"
33 p.camera_movement_direction = get_player_input_relative_to_camera(
36 if p.movement_direction != Vector2.ZERO:
37 p.actions.append("walk")
39 if Input.is_action_just_pressed("player-dash"):
40 p.actions.append("dash")
42 if Input.is_action_just_pressed("player-slash"):
43 p.actions.append("slash")
45 if Input.is_action_just_pressed("player-shoot"):
46 p.actions.append("shoot")
48 if p.actions.is_empty():
49 p.actions.append("idle")