Add presence validation and update NPC entity creation logic in App.tsx

This commit is contained in:
2026-04-13 23:51:33 +02:00
parent 72228c363f
commit eccbf8bb61

View File

@@ -5668,10 +5668,38 @@ export function App({ store, initialStatusMessage }: AppProps) {
try {
const trimmedModelAssetId = npcModelAssetIdDraft.trim();
const colliderMode = overrides.colliderMode ?? npcColliderModeDraft;
const presence =
npcPresenceModeDraft === "always"
? createNpcAlwaysPresence()
: createNpcTimeWindowPresence({
startHour: normalizeTimeOfDayHours(
readFiniteNumberDraft(
npcPresenceStartHourDraft,
"NPC presence start hour"
)
),
endHour: normalizeTimeOfDayHours(
readFiniteNumberDraft(
npcPresenceEndHourDraft,
"NPC presence end hour"
)
)
});
if (
presence.mode === "timeWindow" &&
presence.startHour === presence.endHour
) {
throw new Error(
"NPC presence window start and end hours must differ."
);
}
const nextEntity = createNpcEntity({
id: selectedNpc.id,
name: selectedNpc.name,
actorId: npcActorIdDraft,
presence,
position: snapVec3ToGrid(
readVec3Draft(entityPositionDraft, "NPC position"),
DEFAULT_GRID_SIZE