Simplify custom world result editing controls

This commit is contained in:
2026-04-08 19:07:46 +08:00
parent bd9fdcbe31
commit a02f7b6414
125 changed files with 8804 additions and 1462 deletions

View File

@@ -5,6 +5,8 @@ import type {
} from './attributes';
import type { CharacterBackstoryRevealConfig } from './characters';
import {
AnimationState,
type CharacterAnimationConfig,
type EquipmentSlotId,
type ItemRarity,
type WorldTemplateType,
@@ -99,6 +101,87 @@ export interface CustomWorldLockState {
lockedFactionIds: string[];
}
export interface CustomWorldSemanticAnchor {
genreSignals: string[];
conflictForms: string[];
institutionTypes: string[];
tabooTypes: string[];
carrierTypes: string[];
forceSystemTypes: string[];
atmosphereTags: string[];
}
export interface CustomWorldRuleProfile {
attributeSchema: WorldAttributeSchema;
resourceLabels: {
hp: string;
mp: string;
maxHp: string;
maxMp: string;
damage: string;
guard: string;
range: string;
cooldown: string;
manaCost: string;
currency: string;
};
economyProfile: {
initialCurrency: number;
};
}
export interface RoleArchetypeProfile {
id: string;
label: string;
combatFocus: string;
narrativeFunction: string;
sourceRoleIds: string[];
sourceTemplateCharacterIds: string[];
tags: string[];
}
export interface SceneArchetypeBucket {
id: string;
label: string;
moodTags: string[];
keywords: string[];
referenceLandmarkIds: string[];
}
export interface CreatureArchetypeProfile {
id: string;
label: string;
threatStyle: string;
keywords: string[];
}
export interface CustomWorldReferenceProfile {
roleArchetypes: RoleArchetypeProfile[];
sceneBuckets: SceneArchetypeBucket[];
creatureArchetypes: CreatureArchetypeProfile[];
}
export interface CustomWorldExpressionProfile {
themePack: ThemePack;
presentationTone: string[];
namingDirectives: string[];
clueDirectives: string[];
revealDirectives: string[];
}
export interface CustomWorldCompatibilityProfile {
legacyTemplateWorldType?: WorldTemplateType | null;
migrationVersion: string;
}
export interface CustomWorldOwnedSettingLayers {
semanticAnchor: CustomWorldSemanticAnchor;
ruleProfile: CustomWorldRuleProfile;
expressionProfile: CustomWorldExpressionProfile;
referenceProfile: CustomWorldReferenceProfile;
compatibilityProfile?: CustomWorldCompatibilityProfile | null;
}
export interface CustomWorldRoleSkill {
id: string;
name: string;
@@ -132,6 +215,10 @@ export interface CustomWorldRoleProfile {
backstoryReveal: CharacterBackstoryRevealConfig;
skills: CustomWorldRoleSkill[];
initialItems: CustomWorldRoleInitialItem[];
imageSrc?: string;
generatedVisualAssetId?: string;
generatedAnimationSetId?: string;
animationMap?: Partial<Record<AnimationState, CharacterAnimationConfig>>;
attributeProfile?: RoleAttributeProfile;
narrativeProfile?: ActorNarrativeProfile | null;
}
@@ -164,7 +251,6 @@ export interface CustomWorldPlayableNpc extends CustomWorldRoleProfile {
}
export interface CustomWorldNpc extends CustomWorldRoleProfile {
imageSrc?: string;
visual?: CustomWorldNpcVisual;
}
@@ -248,6 +334,7 @@ export interface CustomWorldProfile {
creatorIntent?: CustomWorldCreatorIntent | null;
anchorPack?: CustomWorldAnchorPack | null;
lockState?: CustomWorldLockState | null;
ownedSettingLayers?: CustomWorldOwnedSettingLayers | null;
generationMode?: CustomWorldGenerationMode | null;
generationStatus?: CustomWorldGenerationStatus | null;
scenarioPackId?: string | null;

View File

@@ -77,6 +77,7 @@ export interface QuestLogEntry {
issuerNpcId: string;
issuerNpcName: string;
sceneId: string | null;
chapterId?: string | null;
actId?: string | null;
threadId?: string | null;
contractId?: string | null;

View File

@@ -262,6 +262,8 @@ export interface ChapterState {
primaryThreadIds: string[];
stage: 'opening' | 'expansion' | 'turning_point' | 'climax' | 'aftermath';
chapterSummary: string;
sceneId?: string | null;
chapterQuestId?: string | null;
}
export interface JourneyBeat {
@@ -519,6 +521,7 @@ export interface StoryEngineMemoryState {
activeThreadIds: string[];
resolvedScarIds: string[];
recentCarrierIds: string[];
openedSceneChapterIds?: string[];
recentSignalIds?: string[];
recentCompanionReactions?: CompanionReactionRecord[];
currentChapter?: ChapterState | null;