Feature: Add support for inverted mouse camera horizontal setting to player start

This commit is contained in:
2026-04-27 17:17:05 +02:00
parent 82f2c75076
commit eed6afb58f
4 changed files with 24 additions and 1 deletions

View File

@@ -29,6 +29,7 @@ import {
createCameraRigPlayerTargetRef,
createCameraRigWorldPointTargetRef,
DEFAULT_PLAYER_START_ALLOW_LOOK_INPUT_TARGET_SWITCH,
DEFAULT_PLAYER_START_INVERT_MOUSE_CAMERA_HORIZONTAL,
DEFAULT_PLAYER_START_INTERACTION_ANGLE_DEGREES,
DEFAULT_PLAYER_START_GAMEPAD_BINDINGS,
DEFAULT_PLAYER_START_INTERACTION_REACH_METERS,
@@ -3348,6 +3349,11 @@ function readPlayerStartEntity(value: unknown, label: string): EntityInstance {
`${label}.targetButtonCyclesActiveTarget`,
DEFAULT_PLAYER_START_TARGET_BUTTON_CYCLES_ACTIVE_TARGET
),
invertMouseCameraHorizontal: readOptionalBoolean(
value.invertMouseCameraHorizontal,
`${label}.invertMouseCameraHorizontal`,
DEFAULT_PLAYER_START_INVERT_MOUSE_CAMERA_HORIZONTAL
),
movementTemplate: readPlayerStartMovementTemplate(
value.movementTemplate,
`${label}.movementTemplate`
@@ -5500,6 +5506,7 @@ export function migrateSceneDocument(source: unknown): SceneDocument {
source.version !== PLAYER_START_INTERACTION_REACH_SCENE_DOCUMENT_VERSION &&
source.version !== PLAYER_START_INTERACTION_ANGLE_SCENE_DOCUMENT_VERSION &&
source.version !== PLAYER_START_TARGETING_SETTINGS_SCENE_DOCUMENT_VERSION &&
source.version !== PLAYER_START_MOUSE_INVERT_SCENE_DOCUMENT_VERSION &&
source.version !== PLAYER_START_INTERACT_BINDINGS_SCENE_DOCUMENT_VERSION &&
source.version !== PLAYER_START_MOVEMENT_TEMPLATE_SCENE_DOCUMENT_VERSION &&
source.version !== PROJECT_NAME_SCENE_DOCUMENT_VERSION &&

View File

@@ -2699,6 +2699,17 @@ function validatePlayerStartEntity(
);
}
if (typeof entity.invertMouseCameraHorizontal !== "boolean") {
diagnostics.push(
createDiagnostic(
"error",
"invalid-player-start-invert-mouse-camera-horizontal",
"Player Start invertMouseCameraHorizontal must remain a boolean.",
`${path}.invertMouseCameraHorizontal`
)
);
}
if (!isPlayerStartMovementTemplateKind(entity.movementTemplate?.kind)) {
diagnostics.push(
createDiagnostic(

View File

@@ -29,7 +29,8 @@ import {
} from "../sequencer/project-sequences";
import type { Terrain } from "./terrains";
export const SCENE_DOCUMENT_VERSION = 83 as const;
export const SCENE_DOCUMENT_VERSION = 84 as const;
export const PLAYER_START_MOUSE_INVERT_SCENE_DOCUMENT_VERSION = 84 as const;
export const PLAYER_START_TARGETING_SETTINGS_SCENE_DOCUMENT_VERSION =
83 as const;
export const PLAYER_START_INTERACT_BINDINGS_SCENE_DOCUMENT_VERSION =