feat: Add support for entity transforms (scale/rotation) and update scene document version
This commit is contained in:
@@ -34,7 +34,9 @@ import {
|
|||||||
DEFAULT_PLAYER_START_GAMEPAD_BINDINGS,
|
DEFAULT_PLAYER_START_GAMEPAD_BINDINGS,
|
||||||
DEFAULT_PLAYER_START_INTERACTION_REACH_METERS,
|
DEFAULT_PLAYER_START_INTERACTION_REACH_METERS,
|
||||||
DEFAULT_PLAYER_START_KEYBOARD_BINDINGS,
|
DEFAULT_PLAYER_START_KEYBOARD_BINDINGS,
|
||||||
|
DEFAULT_NPC_SCALE,
|
||||||
DEFAULT_PLAYER_START_TARGET_BUTTON_CYCLES_ACTIVE_TARGET,
|
DEFAULT_PLAYER_START_TARGET_BUTTON_CYCLES_ACTIVE_TARGET,
|
||||||
|
DEFAULT_TRIGGER_VOLUME_ROTATION_DEGREES,
|
||||||
createNpcAlwaysPresence,
|
createNpcAlwaysPresence,
|
||||||
createNpcEntity,
|
createNpcEntity,
|
||||||
createNpcColliderSettings,
|
createNpcColliderSettings,
|
||||||
@@ -178,6 +180,7 @@ import {
|
|||||||
CONTROL_SURFACE_FOUNDATION_SCENE_DOCUMENT_VERSION,
|
CONTROL_SURFACE_FOUNDATION_SCENE_DOCUMENT_VERSION,
|
||||||
DISTANCE_FOG_SCENE_DOCUMENT_VERSION,
|
DISTANCE_FOG_SCENE_DOCUMENT_VERSION,
|
||||||
DYNAMIC_GLOBAL_ILLUMINATION_SCENE_DOCUMENT_VERSION,
|
DYNAMIC_GLOBAL_ILLUMINATION_SCENE_DOCUMENT_VERSION,
|
||||||
|
ENTITY_TRANSFORMS_SCENE_DOCUMENT_VERSION,
|
||||||
FOLIAGE_BLOCKER_MASKS_SCENE_DOCUMENT_VERSION,
|
FOLIAGE_BLOCKER_MASKS_SCENE_DOCUMENT_VERSION,
|
||||||
FOLIAGE_FOUNDATION_SCENE_DOCUMENT_VERSION,
|
FOLIAGE_FOUNDATION_SCENE_DOCUMENT_VERSION,
|
||||||
FOLIAGE_MASKS_SCENE_DOCUMENT_VERSION,
|
FOLIAGE_MASKS_SCENE_DOCUMENT_VERSION,
|
||||||
@@ -4115,6 +4118,11 @@ function readTriggerVolumeEntity(
|
|||||||
DEFAULT_ENTITY_ENABLED
|
DEFAULT_ENTITY_ENABLED
|
||||||
),
|
),
|
||||||
position: readVec3(value.position, `${label}.position`),
|
position: readVec3(value.position, `${label}.position`),
|
||||||
|
rotationDegrees: readOptionalVec3(
|
||||||
|
value.rotationDegrees,
|
||||||
|
`${label}.rotationDegrees`,
|
||||||
|
DEFAULT_TRIGGER_VOLUME_ROTATION_DEGREES
|
||||||
|
),
|
||||||
size,
|
size,
|
||||||
triggerOnEnter: expectBoolean(
|
triggerOnEnter: expectBoolean(
|
||||||
value.triggerOnEnter,
|
value.triggerOnEnter,
|
||||||
@@ -4281,6 +4289,7 @@ function readNpcEntity(
|
|||||||
actorId: expectString(value.actorId, `${label}.actorId`),
|
actorId: expectString(value.actorId, `${label}.actorId`),
|
||||||
presence: readNpcPresence(value.presence, `${label}.presence`),
|
presence: readNpcPresence(value.presence, `${label}.presence`),
|
||||||
yawDegrees: expectFiniteNumber(value.yawDegrees, `${label}.yawDegrees`),
|
yawDegrees: expectFiniteNumber(value.yawDegrees, `${label}.yawDegrees`),
|
||||||
|
scale: readOptionalVec3(value.scale, `${label}.scale`, DEFAULT_NPC_SCALE),
|
||||||
modelAssetId:
|
modelAssetId:
|
||||||
value.modelAssetId === undefined || value.modelAssetId === null
|
value.modelAssetId === undefined || value.modelAssetId === null
|
||||||
? undefined
|
? undefined
|
||||||
@@ -6116,7 +6125,8 @@ export function migrateSceneDocument(source: unknown): SceneDocument {
|
|||||||
source.version !== SCENE_DOCUMENT_VERSION &&
|
source.version !== SCENE_DOCUMENT_VERSION &&
|
||||||
source.version !== PLAYER_START_EDGE_ASSIST_SCENE_DOCUMENT_VERSION &&
|
source.version !== PLAYER_START_EDGE_ASSIST_SCENE_DOCUMENT_VERSION &&
|
||||||
source.version !== WHITEBOX_FACE_CLIMBABLE_SCENE_DOCUMENT_VERSION &&
|
source.version !== WHITEBOX_FACE_CLIMBABLE_SCENE_DOCUMENT_VERSION &&
|
||||||
source.version !== FOLLOW_ACTOR_PATH_SMOOTH_SCENE_DOCUMENT_VERSION
|
source.version !== FOLLOW_ACTOR_PATH_SMOOTH_SCENE_DOCUMENT_VERSION &&
|
||||||
|
source.version !== ENTITY_TRANSFORMS_SCENE_DOCUMENT_VERSION
|
||||||
) {
|
) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
`Unsupported scene document version: ${String(source.version)}.`
|
`Unsupported scene document version: ${String(source.version)}.`
|
||||||
|
|||||||
@@ -35,7 +35,8 @@ import {
|
|||||||
type FoliagePrototypeRegistry
|
type FoliagePrototypeRegistry
|
||||||
} from "../foliage/foliage";
|
} from "../foliage/foliage";
|
||||||
|
|
||||||
export const SCENE_DOCUMENT_VERSION = 95 as const;
|
export const SCENE_DOCUMENT_VERSION = 96 as const;
|
||||||
|
export const ENTITY_TRANSFORMS_SCENE_DOCUMENT_VERSION = 96 as const;
|
||||||
export const FOLIAGE_BLOCKER_MASKS_SCENE_DOCUMENT_VERSION = 95 as const;
|
export const FOLIAGE_BLOCKER_MASKS_SCENE_DOCUMENT_VERSION = 95 as const;
|
||||||
export const FOLIAGE_QUALITY_SCENE_DOCUMENT_VERSION = 94 as const;
|
export const FOLIAGE_QUALITY_SCENE_DOCUMENT_VERSION = 94 as const;
|
||||||
export const FOLIAGE_MASKS_SCENE_DOCUMENT_VERSION = 93 as const;
|
export const FOLIAGE_MASKS_SCENE_DOCUMENT_VERSION = 93 as const;
|
||||||
|
|||||||
Reference in New Issue
Block a user