Feat: Add interaction angle to player start settings and update document migration
This commit is contained in:
@@ -28,6 +28,7 @@ import {
|
||||
createCameraRigLookAroundSettings,
|
||||
createCameraRigPlayerTargetRef,
|
||||
createCameraRigWorldPointTargetRef,
|
||||
DEFAULT_PLAYER_START_INTERACTION_ANGLE_DEGREES,
|
||||
DEFAULT_PLAYER_START_GAMEPAD_BINDINGS,
|
||||
DEFAULT_PLAYER_START_INTERACTION_REACH_METERS,
|
||||
DEFAULT_PLAYER_START_KEYBOARD_BINDINGS,
|
||||
@@ -189,6 +190,7 @@ import {
|
||||
PROJECT_TIME_DAY_NIGHT_PROFILE_SCENE_DOCUMENT_VERSION,
|
||||
PROJECT_TIME_NIGHT_BACKGROUND_SCENE_DOCUMENT_VERSION,
|
||||
PLAYER_START_AIR_CONTROL_SCENE_DOCUMENT_VERSION,
|
||||
PLAYER_START_INTERACTION_ANGLE_SCENE_DOCUMENT_VERSION,
|
||||
PLAYER_START_GAMEPAD_CAMERA_LOOK_SCENE_DOCUMENT_VERSION,
|
||||
PLAYER_START_INPUT_BINDINGS_SCENE_DOCUMENT_VERSION,
|
||||
PLAYER_START_NAVIGATION_MODE_SCENE_DOCUMENT_VERSION,
|
||||
@@ -3306,6 +3308,11 @@ function readPlayerStartEntity(value: unknown, label: string): EntityInstance {
|
||||
`${label}.interactionReachMeters`,
|
||||
DEFAULT_PLAYER_START_INTERACTION_REACH_METERS
|
||||
),
|
||||
interactionAngleDegrees: readOptionalFiniteNumber(
|
||||
value.interactionAngleDegrees,
|
||||
`${label}.interactionAngleDegrees`,
|
||||
DEFAULT_PLAYER_START_INTERACTION_ANGLE_DEGREES
|
||||
),
|
||||
movementTemplate: readPlayerStartMovementTemplate(
|
||||
value.movementTemplate,
|
||||
`${label}.movementTemplate`
|
||||
@@ -5455,6 +5462,7 @@ export function migrateSceneDocument(source: unknown): SceneDocument {
|
||||
source.version !==
|
||||
PLAYER_START_AIR_DIRECTION_CONTROL_SCENE_DOCUMENT_VERSION &&
|
||||
source.version !== PLAYER_START_AIR_CONTROL_SCENE_DOCUMENT_VERSION &&
|
||||
source.version !== PLAYER_START_INTERACTION_ANGLE_SCENE_DOCUMENT_VERSION &&
|
||||
source.version !== PLAYER_START_MOVEMENT_TEMPLATE_SCENE_DOCUMENT_VERSION &&
|
||||
source.version !== PROJECT_NAME_SCENE_DOCUMENT_VERSION &&
|
||||
source.version !== STATIC_SIMPLE_MODEL_COLLIDERS_SCENE_DOCUMENT_VERSION &&
|
||||
|
||||
@@ -29,7 +29,8 @@ import {
|
||||
} from "../sequencer/project-sequences";
|
||||
import type { Terrain } from "./terrains";
|
||||
|
||||
export const SCENE_DOCUMENT_VERSION = 80 as const;
|
||||
export const SCENE_DOCUMENT_VERSION = 81 as const;
|
||||
export const PLAYER_START_INTERACTION_ANGLE_SCENE_DOCUMENT_VERSION = 81 as const;
|
||||
export const PLAYER_START_INTERACTION_REACH_SCENE_DOCUMENT_VERSION = 80 as const;
|
||||
export const SHADER_SKY_AURORA_SCENE_DOCUMENT_VERSION = 79 as const;
|
||||
export const CAMERA_RIG_MAPPED_RAIL_SCENE_DOCUMENT_VERSION = 78 as const;
|
||||
|
||||
@@ -279,6 +279,7 @@ export interface RuntimePlayerStart {
|
||||
yawDegrees: number;
|
||||
navigationMode: RuntimeNavigationMode;
|
||||
interactionReachMeters: number;
|
||||
interactionAngleDegrees: number;
|
||||
movement: RuntimePlayerMovement;
|
||||
inputBindings: PlayerStartInputBindings;
|
||||
collider: FirstPersonPlayerShape;
|
||||
@@ -1593,6 +1594,7 @@ function buildRuntimeSceneCollections(
|
||||
yawDegrees: entity.yawDegrees,
|
||||
navigationMode: entity.navigationMode,
|
||||
interactionReachMeters: entity.interactionReachMeters,
|
||||
interactionAngleDegrees: entity.interactionAngleDegrees,
|
||||
movement: buildRuntimePlayerMovement(entity.movementTemplate),
|
||||
inputBindings: clonePlayerStartInputBindings(entity.inputBindings),
|
||||
collider: buildRuntimePlayerShape(entity)
|
||||
@@ -1990,6 +1992,7 @@ export function buildRuntimeSceneFromDocument(
|
||||
yawDegrees: playerStartEntity.yawDegrees,
|
||||
navigationMode,
|
||||
interactionReachMeters: playerStartEntity.interactionReachMeters,
|
||||
interactionAngleDegrees: playerStartEntity.interactionAngleDegrees,
|
||||
movement: cloneRuntimePlayerMovement(playerMovement),
|
||||
inputBindings: clonePlayerStartInputBindings(playerInputBindings),
|
||||
collider: playerCollider
|
||||
|
||||
Reference in New Issue
Block a user