Feature: Implement support for climb action bindings

This commit is contained in:
2026-04-30 00:14:57 +02:00
parent 7b03df09f6
commit fa14a0c17f
5 changed files with 69 additions and 0 deletions

View File

@@ -1826,6 +1826,11 @@ function readPlayerStartInputBindings(value: unknown, label: string) {
`${label}.keyboard.crouch`,
DEFAULT_PLAYER_START_KEYBOARD_BINDINGS.crouch
),
climb: readPlayerStartKeyboardBindingCode(
keyboard?.climb,
`${label}.keyboard.climb`,
DEFAULT_PLAYER_START_KEYBOARD_BINDINGS.climb
),
interact: readPlayerStartKeyboardBindingCode(
keyboard?.interact,
`${label}.keyboard.interact`,
@@ -1878,6 +1883,11 @@ function readPlayerStartInputBindings(value: unknown, label: string) {
`${label}.gamepad.crouch`,
DEFAULT_PLAYER_START_GAMEPAD_BINDINGS.crouch
),
climb: readPlayerStartGamepadActionBinding(
gamepad?.climb,
`${label}.gamepad.climb`,
DEFAULT_PLAYER_START_GAMEPAD_BINDINGS.climb
),
interact: readPlayerStartGamepadActionBinding(
gamepad?.interact,
`${label}.gamepad.interact`,

View File

@@ -3296,6 +3296,17 @@ function validatePlayerStartEntity(
);
}
if (!isPlayerStartKeyboardBindingCode(entity.inputBindings?.keyboard.climb)) {
diagnostics.push(
createDiagnostic(
"error",
"invalid-player-start-climb-keyboard-binding",
"Player Start climb keyboard binding must be a supported key code.",
`${path}.inputBindings.keyboard.climb`
)
);
}
if (
!isPlayerStartKeyboardBindingCode(entity.inputBindings?.keyboard.interact)
) {
@@ -3433,6 +3444,19 @@ function validatePlayerStartEntity(
);
}
if (
!isPlayerStartGamepadActionBinding(entity.inputBindings?.gamepad.climb)
) {
diagnostics.push(
createDiagnostic(
"error",
"invalid-player-start-climb-gamepad-binding",
"Player Start climb gamepad binding must be a supported standard-gamepad action input.",
`${path}.inputBindings.gamepad.climb`
)
);
}
if (
!isPlayerStartGamepadActionBinding(entity.inputBindings?.gamepad.interact)
) {