Add scale support to NPC creation and rotation support to Trigger Volume creation

This commit is contained in:
2026-05-11 13:51:41 +02:00
parent 6a6e3b4037
commit 495327cc6c

View File

@@ -2470,6 +2470,7 @@ export function createNpcEntity(
| "actorId"
| "presence"
| "yawDegrees"
| "scale"
| "modelAssetId"
| "dialogues"
| "defaultDialogueId"
@@ -2482,6 +2483,7 @@ export function createNpcEntity(
const actorId = normalizeNpcActorId(overrides.actorId);
const presence = normalizeNpcPresence(overrides.presence);
const yawDegrees = overrides.yawDegrees ?? DEFAULT_NPC_YAW_DEGREES;
const scale = cloneVec3(overrides.scale ?? DEFAULT_NPC_SCALE);
const modelAssetId = normalizeNpcModelAssetId(
overrides.modelAssetId ?? DEFAULT_NPC_MODEL_ASSET_ID
);
@@ -2493,6 +2495,7 @@ export function createNpcEntity(
const collider = createNpcColliderSettings(overrides.collider);
assertFiniteVec3(position, "NPC position");
assertPositiveFiniteVec3(scale, "NPC scale");
if (!Number.isFinite(yawDegrees)) {
throw new Error("NPC yaw must be a finite number.");
@@ -2508,6 +2511,7 @@ export function createNpcEntity(
actorId,
presence,
yawDegrees: normalizeYawDegrees(yawDegrees),
scale,
modelAssetId,
dialogues,
defaultDialogueId,
@@ -2584,6 +2588,7 @@ export function createTriggerVolumeEntity(
| "visible"
| "enabled"
| "position"
| "rotationDegrees"
| "size"
| "triggerOnEnter"
| "triggerOnExit"
@@ -2591,11 +2596,15 @@ export function createTriggerVolumeEntity(
> = {}
): TriggerVolumeEntity {
const position = cloneVec3(overrides.position ?? DEFAULT_ENTITY_POSITION);
const rotationDegrees = cloneVec3(
overrides.rotationDegrees ?? DEFAULT_TRIGGER_VOLUME_ROTATION_DEGREES
);
const size = cloneVec3(overrides.size ?? DEFAULT_TRIGGER_VOLUME_SIZE);
const triggerOnEnter = overrides.triggerOnEnter ?? true;
const triggerOnExit = overrides.triggerOnExit ?? false;
assertFiniteVec3(position, "Trigger Volume position");
assertFiniteVec3(rotationDegrees, "Trigger Volume rotation");
assertPositiveFiniteVec3(size, "Trigger Volume size");
assertBoolean(triggerOnEnter, "Trigger Volume triggerOnEnter");
assertBoolean(triggerOnExit, "Trigger Volume triggerOnExit");
@@ -2607,6 +2616,7 @@ export function createTriggerVolumeEntity(
visible: resolveAuthoredEntityVisibility(overrides.visible),
enabled: resolveAuthoredEntityEnabled(overrides.enabled),
position,
rotationDegrees,
size,
triggerOnEnter,
triggerOnExit