Add tests for mouse camera inversion settings in player start entities
This commit is contained in:
@@ -578,6 +578,7 @@ describe("validateSceneDocument", () => {
|
|||||||
interactionAngleDegrees: Number.NaN,
|
interactionAngleDegrees: Number.NaN,
|
||||||
allowLookInputTargetSwitch: "yes" as unknown as boolean,
|
allowLookInputTargetSwitch: "yes" as unknown as boolean,
|
||||||
targetButtonCyclesActiveTarget: 1 as unknown as boolean,
|
targetButtonCyclesActiveTarget: 1 as unknown as boolean,
|
||||||
|
invertMouseCameraHorizontal: "yes" as unknown as boolean,
|
||||||
movementTemplate: {
|
movementTemplate: {
|
||||||
kind: "invalidTemplate",
|
kind: "invalidTemplate",
|
||||||
moveSpeed: 0,
|
moveSpeed: 0,
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ import {
|
|||||||
DEFAULT_PLAYER_START_CROUCH_SETTINGS,
|
DEFAULT_PLAYER_START_CROUCH_SETTINGS,
|
||||||
DEFAULT_PLAYER_START_EYE_HEIGHT,
|
DEFAULT_PLAYER_START_EYE_HEIGHT,
|
||||||
DEFAULT_PLAYER_START_ALLOW_LOOK_INPUT_TARGET_SWITCH,
|
DEFAULT_PLAYER_START_ALLOW_LOOK_INPUT_TARGET_SWITCH,
|
||||||
|
DEFAULT_PLAYER_START_INVERT_MOUSE_CAMERA_HORIZONTAL,
|
||||||
DEFAULT_PLAYER_START_INTERACTION_ANGLE_DEGREES,
|
DEFAULT_PLAYER_START_INTERACTION_ANGLE_DEGREES,
|
||||||
DEFAULT_PLAYER_START_INTERACTION_REACH_METERS,
|
DEFAULT_PLAYER_START_INTERACTION_REACH_METERS,
|
||||||
DEFAULT_PLAYER_START_JUMP_SETTINGS,
|
DEFAULT_PLAYER_START_JUMP_SETTINGS,
|
||||||
@@ -59,6 +60,8 @@ describe("entity registry defaults", () => {
|
|||||||
DEFAULT_PLAYER_START_ALLOW_LOOK_INPUT_TARGET_SWITCH,
|
DEFAULT_PLAYER_START_ALLOW_LOOK_INPUT_TARGET_SWITCH,
|
||||||
targetButtonCyclesActiveTarget:
|
targetButtonCyclesActiveTarget:
|
||||||
DEFAULT_PLAYER_START_TARGET_BUTTON_CYCLES_ACTIVE_TARGET,
|
DEFAULT_PLAYER_START_TARGET_BUTTON_CYCLES_ACTIVE_TARGET,
|
||||||
|
invertMouseCameraHorizontal:
|
||||||
|
DEFAULT_PLAYER_START_INVERT_MOUSE_CAMERA_HORIZONTAL,
|
||||||
movementTemplate: {
|
movementTemplate: {
|
||||||
kind: "default",
|
kind: "default",
|
||||||
moveSpeed: DEFAULT_PLAYER_START_MOVE_SPEED,
|
moveSpeed: DEFAULT_PLAYER_START_MOVE_SPEED,
|
||||||
|
|||||||
@@ -3,11 +3,13 @@ import { describe, expect, it } from "vitest";
|
|||||||
import { migrateSceneDocument } from "../../src/document/migrate-scene-document";
|
import { migrateSceneDocument } from "../../src/document/migrate-scene-document";
|
||||||
import {
|
import {
|
||||||
createEmptySceneDocument,
|
createEmptySceneDocument,
|
||||||
|
PLAYER_START_TARGETING_SETTINGS_SCENE_DOCUMENT_VERSION,
|
||||||
PLAYER_START_INTERACTION_REACH_SCENE_DOCUMENT_VERSION,
|
PLAYER_START_INTERACTION_REACH_SCENE_DOCUMENT_VERSION,
|
||||||
PLAYER_START_INTERACT_BINDINGS_SCENE_DOCUMENT_VERSION
|
PLAYER_START_INTERACT_BINDINGS_SCENE_DOCUMENT_VERSION
|
||||||
} from "../../src/document/scene-document";
|
} from "../../src/document/scene-document";
|
||||||
import {
|
import {
|
||||||
DEFAULT_PLAYER_START_ALLOW_LOOK_INPUT_TARGET_SWITCH,
|
DEFAULT_PLAYER_START_ALLOW_LOOK_INPUT_TARGET_SWITCH,
|
||||||
|
DEFAULT_PLAYER_START_INVERT_MOUSE_CAMERA_HORIZONTAL,
|
||||||
DEFAULT_PLAYER_START_INTERACTION_ANGLE_DEGREES,
|
DEFAULT_PLAYER_START_INTERACTION_ANGLE_DEGREES,
|
||||||
DEFAULT_PLAYER_START_INTERACTION_REACH_METERS,
|
DEFAULT_PLAYER_START_INTERACTION_REACH_METERS,
|
||||||
DEFAULT_PLAYER_START_TARGET_BUTTON_CYCLES_ACTIVE_TARGET,
|
DEFAULT_PLAYER_START_TARGET_BUTTON_CYCLES_ACTIVE_TARGET,
|
||||||
@@ -52,6 +54,7 @@ describe("Player Start interaction sector persistence", () => {
|
|||||||
interactionAngleDegrees: 42,
|
interactionAngleDegrees: 42,
|
||||||
allowLookInputTargetSwitch: false,
|
allowLookInputTargetSwitch: false,
|
||||||
targetButtonCyclesActiveTarget: true,
|
targetButtonCyclesActiveTarget: true,
|
||||||
|
invertMouseCameraHorizontal: true,
|
||||||
inputBindings: {
|
inputBindings: {
|
||||||
keyboard: {
|
keyboard: {
|
||||||
clearTarget: "KeyQ"
|
clearTarget: "KeyQ"
|
||||||
@@ -76,6 +79,7 @@ describe("Player Start interaction sector persistence", () => {
|
|||||||
interactionAngleDegrees: 42,
|
interactionAngleDegrees: 42,
|
||||||
allowLookInputTargetSwitch: false,
|
allowLookInputTargetSwitch: false,
|
||||||
targetButtonCyclesActiveTarget: true,
|
targetButtonCyclesActiveTarget: true,
|
||||||
|
invertMouseCameraHorizontal: true,
|
||||||
inputBindings: {
|
inputBindings: {
|
||||||
keyboard: {
|
keyboard: {
|
||||||
clearTarget: "KeyQ"
|
clearTarget: "KeyQ"
|
||||||
@@ -147,4 +151,29 @@ describe("Player Start interaction sector persistence", () => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("migrates version 83 player starts to include the mouse inversion default", () => {
|
||||||
|
const playerStart = createPlayerStartEntity({
|
||||||
|
id: "entity-player-start-mouse-invert-legacy"
|
||||||
|
});
|
||||||
|
const legacyPlayerStart = {
|
||||||
|
...playerStart
|
||||||
|
} as Record<string, unknown>;
|
||||||
|
|
||||||
|
delete legacyPlayerStart.invertMouseCameraHorizontal;
|
||||||
|
|
||||||
|
const migrated = migrateSceneDocument({
|
||||||
|
...createEmptySceneDocument({ name: "Legacy Player Mouse Invert Scene" }),
|
||||||
|
version: PLAYER_START_TARGETING_SETTINGS_SCENE_DOCUMENT_VERSION,
|
||||||
|
entities: {
|
||||||
|
[playerStart.id]: legacyPlayerStart
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(migrated.entities[playerStart.id]).toMatchObject({
|
||||||
|
kind: "playerStart",
|
||||||
|
invertMouseCameraHorizontal:
|
||||||
|
DEFAULT_PLAYER_START_INVERT_MOUSE_CAMERA_HORIZONTAL
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user