class_name PlayerInputActions
extends RefCounted

## Stable Input Map action names consumed by the runtime player input adapter.
## Separate translation actions preserve the renderer sandbox while allowing
## Blizzlike335 defaults to match build-12340 movement bindings.

const MOVE_FORWARD := &"openwc_player_move_forward"
const MOVE_BACKWARD := &"openwc_player_move_backward"
const STRAFE_LEFT := &"openwc_player_strafe_left"
const STRAFE_RIGHT := &"openwc_player_strafe_right"
const BLIZZLIKE_STRAFE_LEFT := &"openwc_player_blizzlike_strafe_left"
const BLIZZLIKE_STRAFE_RIGHT := &"openwc_player_blizzlike_strafe_right"
const TURN_LEFT := &"openwc_player_turn_left"
const TURN_RIGHT := &"openwc_player_turn_right"
const DEBUG_FLY_UP := &"openwc_player_debug_fly_up"
const DEBUG_FLY_DOWN := &"openwc_player_debug_fly_down"
const DEBUG_SPRINT := &"openwc_player_debug_sprint"
const DEBUG_TOGGLE_FLIGHT := &"openwc_player_debug_toggle_flight"
const CAMERA_ROTATE := &"openwc_player_camera_rotate"
const CAMERA_ZOOM_IN := &"openwc_player_camera_zoom_in"
const CAMERA_ZOOM_OUT := &"openwc_player_camera_zoom_out"
const RELEASE_CURSOR := &"openwc_player_release_cursor"

const REQUIRED_ACTIONS: Array[StringName] = [
	MOVE_FORWARD,
	MOVE_BACKWARD,
	STRAFE_LEFT,
	STRAFE_RIGHT,
	BLIZZLIKE_STRAFE_LEFT,
	BLIZZLIKE_STRAFE_RIGHT,
	TURN_LEFT,
	TURN_RIGHT,
	DEBUG_FLY_UP,
	DEBUG_FLY_DOWN,
	DEBUG_SPRINT,
	DEBUG_TOGGLE_FLIGHT,
	CAMERA_ROTATE,
	CAMERA_ZOOM_IN,
	CAMERA_ZOOM_OUT,
	RELEASE_CURSOR,
]
