feat: Add support for entity transforms (scale/rotation) and update scene document version

This commit is contained in:
2026-05-11 14:07:05 +02:00
parent 7abacca0bf
commit fd5b97f7db
2 changed files with 13 additions and 2 deletions

View File

@@ -34,7 +34,9 @@ import {
DEFAULT_PLAYER_START_GAMEPAD_BINDINGS,
DEFAULT_PLAYER_START_INTERACTION_REACH_METERS,
DEFAULT_PLAYER_START_KEYBOARD_BINDINGS,
DEFAULT_NPC_SCALE,
DEFAULT_PLAYER_START_TARGET_BUTTON_CYCLES_ACTIVE_TARGET,
DEFAULT_TRIGGER_VOLUME_ROTATION_DEGREES,
createNpcAlwaysPresence,
createNpcEntity,
createNpcColliderSettings,
@@ -178,6 +180,7 @@ import {
CONTROL_SURFACE_FOUNDATION_SCENE_DOCUMENT_VERSION,
DISTANCE_FOG_SCENE_DOCUMENT_VERSION,
DYNAMIC_GLOBAL_ILLUMINATION_SCENE_DOCUMENT_VERSION,
ENTITY_TRANSFORMS_SCENE_DOCUMENT_VERSION,
FOLIAGE_BLOCKER_MASKS_SCENE_DOCUMENT_VERSION,
FOLIAGE_FOUNDATION_SCENE_DOCUMENT_VERSION,
FOLIAGE_MASKS_SCENE_DOCUMENT_VERSION,
@@ -4115,6 +4118,11 @@ function readTriggerVolumeEntity(
DEFAULT_ENTITY_ENABLED
),
position: readVec3(value.position, `${label}.position`),
rotationDegrees: readOptionalVec3(
value.rotationDegrees,
`${label}.rotationDegrees`,
DEFAULT_TRIGGER_VOLUME_ROTATION_DEGREES
),
size,
triggerOnEnter: expectBoolean(
value.triggerOnEnter,
@@ -4281,6 +4289,7 @@ function readNpcEntity(
actorId: expectString(value.actorId, `${label}.actorId`),
presence: readNpcPresence(value.presence, `${label}.presence`),
yawDegrees: expectFiniteNumber(value.yawDegrees, `${label}.yawDegrees`),
scale: readOptionalVec3(value.scale, `${label}.scale`, DEFAULT_NPC_SCALE),
modelAssetId:
value.modelAssetId === undefined || value.modelAssetId === null
? undefined
@@ -6116,7 +6125,8 @@ export function migrateSceneDocument(source: unknown): SceneDocument {
source.version !== SCENE_DOCUMENT_VERSION &&
source.version !== PLAYER_START_EDGE_ASSIST_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(
`Unsupported scene document version: ${String(source.version)}.`

View File

@@ -35,7 +35,8 @@ import {
type FoliagePrototypeRegistry
} 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_QUALITY_SCENE_DOCUMENT_VERSION = 94 as const;
export const FOLIAGE_MASKS_SCENE_DOCUMENT_VERSION = 93 as const;