Refactor dialogue normalization functions in entity-instances.ts
This commit is contained in:
@@ -1293,17 +1293,6 @@ function normalizeNpcModelAssetId(
|
|||||||
return normalizedModelAssetId.length === 0 ? null : normalizedModelAssetId;
|
return normalizedModelAssetId.length === 0 ? null : normalizedModelAssetId;
|
||||||
}
|
}
|
||||||
|
|
||||||
function normalizeNpcDialogueId(
|
|
||||||
dialogueId: string | null | undefined
|
|
||||||
): string | null {
|
|
||||||
if (dialogueId === undefined || dialogueId === null) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
const normalizedDialogueId = dialogueId.trim();
|
|
||||||
return normalizedDialogueId.length === 0 ? null : normalizedDialogueId;
|
|
||||||
}
|
|
||||||
|
|
||||||
function normalizeNpcDialogues(
|
function normalizeNpcDialogues(
|
||||||
dialogues: ProjectDialogue[] | undefined
|
dialogues: ProjectDialogue[] | undefined
|
||||||
): ProjectDialogue[] {
|
): ProjectDialogue[] {
|
||||||
@@ -1316,14 +1305,15 @@ function normalizeNpcDialogues(
|
|||||||
|
|
||||||
function normalizeNpcDefaultDialogueId(
|
function normalizeNpcDefaultDialogueId(
|
||||||
defaultDialogueId: string | null | undefined,
|
defaultDialogueId: string | null | undefined,
|
||||||
dialogues: readonly ProjectDialogue[],
|
dialogues: readonly ProjectDialogue[]
|
||||||
legacyDialogueId?: string | null | undefined
|
|
||||||
): string | null {
|
): string | null {
|
||||||
const normalizedDefaultDialogueId = normalizeNpcDialogueId(
|
if (defaultDialogueId === undefined || defaultDialogueId === null) {
|
||||||
defaultDialogueId ?? legacyDialogueId ?? null
|
return null;
|
||||||
);
|
}
|
||||||
|
|
||||||
if (normalizedDefaultDialogueId === null) {
|
const normalizedDefaultDialogueId = defaultDialogueId.trim();
|
||||||
|
|
||||||
|
if (normalizedDefaultDialogueId.length === 0) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1493,7 +1483,6 @@ export function createNpcEntity(
|
|||||||
| "defaultDialogueId"
|
| "defaultDialogueId"
|
||||||
>
|
>
|
||||||
> & {
|
> & {
|
||||||
dialogueId?: string | null;
|
|
||||||
collider?: Partial<NpcColliderSettings>;
|
collider?: Partial<NpcColliderSettings>;
|
||||||
} = {}
|
} = {}
|
||||||
): NpcEntity {
|
): NpcEntity {
|
||||||
@@ -1507,8 +1496,7 @@ export function createNpcEntity(
|
|||||||
const dialogues = normalizeNpcDialogues(overrides.dialogues);
|
const dialogues = normalizeNpcDialogues(overrides.dialogues);
|
||||||
const defaultDialogueId = normalizeNpcDefaultDialogueId(
|
const defaultDialogueId = normalizeNpcDefaultDialogueId(
|
||||||
overrides.defaultDialogueId ?? DEFAULT_NPC_DIALOGUE_ID,
|
overrides.defaultDialogueId ?? DEFAULT_NPC_DIALOGUE_ID,
|
||||||
dialogues,
|
dialogues
|
||||||
overrides.dialogueId
|
|
||||||
);
|
);
|
||||||
const collider = createNpcColliderSettings(overrides.collider);
|
const collider = createNpcColliderSettings(overrides.collider);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user