@drincs/pixi-vn
Version:
Pixi'VN is a npm package that provides various features for creating visual novels.
1 lines • 90.9 kB
Source Map (JSON)
{"version":3,"sources":["../src/narration/decorators/RegisteredLabels.ts","../src/narration/NarrationManagerStatic.ts","../src/narration/NarrationManager.ts","../src/narration/classes/ChoiceMenuOption.ts","../src/narration/types/CloseType.ts","../src/narration/classes/CloseChoiceOption.ts","../src/narration/classes/Label.ts","../src/narration/classes/LabelAbstract.ts","../src/narration/decorators/newLabel.ts","../src/narration/index.ts"],"names":["registeredLabels","CachedMap","RegisteredLabels","get","id","label","logger","add","l","values","has","keys","RegisteredLabels_default","_NarrationManagerStatic","GameUnifier","NARRATION_STORAGE_KEY","SYSTEM_RESERVED_STORAGE_KEYS","value","nestedId","currentLabelStepIndex","currentLabelStepIndexId","labelId","currentLabel","stepSha1","obj","data","lastStep","list","item","min","max","options","usedRandomNumbers","allNumbers","_","i","randomIndex","randomNumber","createExportableElement","stepIndex","allOpenedLabels","oldStepIndex","openCount","stepSha","choiceMade","allChoicesMade","alredyMade","PixiError","biggestStep","stepId","res","__publicField","NarrationManagerStatic","NarrationManager","ignoreSameStep","dialogue","choices","inputValue","isGlued","openedLabels","historyInfo","choice","index","showWarn","choiceMenuOptions","props","runNow","steps","result","e","step","err","lastHistoryStep","tempLabel","type","error","glueDialogue","newText","d","onlyHaveNoChoice","option","alreadyChoices","info","defaultValue","promise","labelInfo","newChoiceOption","text","Close","newCloseChoiceOption","import_sha1","P","v","LabelAbstract","Label","sha1","newLabel","narration"],"mappings":"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","file":"narration.mjs","sourcesContent":["import { CachedMap } from \"../../classes\";\nimport { logger } from \"../../utils/log-utility\";\nimport Label from \"../classes/Label\";\nimport LabelAbstract from \"../classes/LabelAbstract\";\nimport { LabelIdType } from \"../types/LabelIdType\";\n\n/**\n * A Map that contains all labels registered and available to be used.\n * The key is the id of the label and the value is the label itself.\n */\nconst registeredLabels = new CachedMap<LabelIdType, LabelAbstract<any> | Label<any>>({ cacheSize: 10 });\n\nnamespace RegisteredLabels {\n /**\n * Gets a label by its id\n * @param id The id of the label\n * @returns The label or undefined if it does not exist\n */\n export function get<T = LabelAbstract<any>>(id: LabelIdType): T | undefined {\n let label = registeredLabels.get(id);\n if (!label) {\n logger.error(`Label \"${id}\" not found`);\n return;\n }\n return label as T;\n }\n\n /**\n * Saves a label in the system\n * @param label The label to be saved\n */\n export function add(label: LabelAbstract<any, any> | LabelAbstract<any, any>[]) {\n if (Array.isArray(label)) {\n label.forEach((l) => add(l));\n return;\n }\n if (registeredLabels.has(label.id)) {\n logger.info(`Label \"${label.id}\" already exists, it will be overwritten`);\n }\n registeredLabels.set(label.id, label);\n }\n\n /**\n * Get a list of all labels registered.\n * @returns An array of labels.\n */\n export function values(): LabelAbstract<any>[] {\n return Array.from(registeredLabels.values());\n }\n\n /**\n * Check if a label is registered\n * @param id The id of the label\n * @returns True if the label is registered, false otherwise\n */\n export function has(id: string): boolean {\n return registeredLabels.has(id);\n }\n\n /**\n * Get a list of all label ids registered.\n * @returns An array of label ids.\n */\n export function keys(): string[] {\n return Array.from(registeredLabels.keys());\n }\n}\nexport default RegisteredLabels;\n","import { GameUnifier, PixiError } from \"@drincs/pixi-vn/core\";\nimport { LabelAbstract } from \".\";\nimport { NARRATION_STORAGE_KEY, SYSTEM_RESERVED_STORAGE_KEYS } from \"../constants\";\nimport { createExportableElement } from \"../utils\";\nimport { logger } from \"../utils/log-utility\";\nimport Label from \"./classes/Label\";\nimport RegisteredLabels from \"./decorators/RegisteredLabels\";\nimport HistoryStep from \"./interfaces/HistoryStep\";\nimport OpenedLabel from \"./interfaces/OpenedLabel\";\nimport ChoicesMadeType from \"./types/ChoicesMadeType\";\nimport { LabelIdType } from \"./types/LabelIdType\";\n\ntype AllOpenedLabelsType = { [key: LabelIdType]: { biggestStep: number; openCount: number } };\n\ntype CurrentStepTimesCounterMemotyData = {\n stepCounters?: number[];\n usedRandomNumbers?: { [minmaxkey: string]: number[] };\n stepSha1: string;\n};\ntype CurrentStepTimesCounterMemoty = {\n [key: LabelIdType]: {\n [key: string]: CurrentStepTimesCounterMemotyData;\n };\n};\n\nexport default class NarrationManagerStatic {\n private constructor() {}\n static choiceMadeTemp: undefined | number = undefined;\n static lastHistoryStep: Omit<HistoryStep, \"diff\"> | null = null;\n /**\n * is a list of all labels that have been opened during the progression of the steps.\n * the key is the label id and the biggest step opened.\n */\n static get allOpenedLabels() {\n return (\n GameUnifier.getVariable<AllOpenedLabelsType>(\n NARRATION_STORAGE_KEY,\n SYSTEM_RESERVED_STORAGE_KEYS.OPENED_LABELS_COUNTER_KEY,\n ) || {}\n );\n }\n static set allOpenedLabels(value: AllOpenedLabelsType) {\n GameUnifier.setVariable(NARRATION_STORAGE_KEY, SYSTEM_RESERVED_STORAGE_KEYS.OPENED_LABELS_COUNTER_KEY, value);\n }\n static getCurrentStepTimesCounterData(nestedId: string = \"\"): CurrentStepTimesCounterMemotyData | null {\n let currentLabelStepIndex = NarrationManagerStatic.currentLabelStepIndex;\n if (currentLabelStepIndex === null) {\n logger.error(\"currentLabelStepIndex is null\");\n return null;\n }\n let currentLabelStepIndexId = `${currentLabelStepIndex}${nestedId}`;\n let labelId = NarrationManagerStatic.currentLabelId;\n let currentLabel = NarrationManagerStatic._currentLabel;\n if (!labelId || currentLabelStepIndex === null || !currentLabel) {\n logger.error(\"currentLabelId or currentLabelStepIndex is null or currentLabel not found\");\n return null;\n }\n let stepSha1 = currentLabel.getStepSha(currentLabelStepIndex) || \"error\";\n let obj =\n GameUnifier.getVariable<CurrentStepTimesCounterMemoty>(\n NARRATION_STORAGE_KEY,\n SYSTEM_RESERVED_STORAGE_KEYS.CURRENT_STEP_TIMES_COUNTER_KEY,\n ) || {};\n if (!obj[labelId]) {\n obj[labelId] = {};\n }\n if (!obj[labelId][currentLabelStepIndexId] || obj[labelId][currentLabelStepIndexId].stepSha1 != stepSha1) {\n obj[labelId][currentLabelStepIndexId] = { stepSha1: stepSha1 };\n }\n return obj[labelId][currentLabelStepIndexId];\n }\n private static setCurrentStepTimesCounterData(nestedId: string = \"\", data: CurrentStepTimesCounterMemotyData) {\n let currentLabelStepIndex = NarrationManagerStatic.currentLabelStepIndex;\n let currentLabelStepIndexId = currentLabelStepIndex + nestedId;\n let labelId = NarrationManagerStatic.currentLabelId;\n if (!labelId || currentLabelStepIndex === null) {\n logger.error(\"currentLabelId or currentLabelStepIndex is null\");\n return;\n }\n let obj =\n GameUnifier.getVariable<CurrentStepTimesCounterMemoty>(\n NARRATION_STORAGE_KEY,\n SYSTEM_RESERVED_STORAGE_KEYS.CURRENT_STEP_TIMES_COUNTER_KEY,\n ) || {};\n if (!obj[labelId]) {\n obj[labelId] = {};\n }\n obj[labelId][currentLabelStepIndexId] = data;\n GameUnifier.setVariable(\n NARRATION_STORAGE_KEY,\n SYSTEM_RESERVED_STORAGE_KEYS.CURRENT_STEP_TIMES_COUNTER_KEY,\n obj,\n );\n }\n static getCurrentStepTimesCounter(nestedId: string = \"\"): number {\n let lastStep = NarrationManagerStatic._stepCounter;\n let obj = NarrationManagerStatic.getCurrentStepTimesCounterData(nestedId);\n if (!obj) {\n logger.error(\"getCurrentStepTimesCounter obj is null\");\n return 0;\n }\n let list = obj.stepCounters || [];\n let listContainLastStep = list.find((item) => item === lastStep);\n if (!listContainLastStep) {\n list.push(lastStep);\n obj.stepCounters = list;\n NarrationManagerStatic.setCurrentStepTimesCounterData(nestedId, obj);\n }\n return list.length;\n }\n static getRandomNumber(\n min: number,\n max: number,\n options: {\n onceOnly?: boolean;\n nestedId?: string;\n } = {},\n ): number | undefined {\n let nestedId = options.nestedId || \"\";\n let onceonly = options.onceOnly || false;\n if (onceonly) {\n let obj = NarrationManagerStatic.getCurrentStepTimesCounterData(nestedId);\n if (!obj) {\n return undefined;\n }\n let usedRandomNumbers = obj.usedRandomNumbers || {};\n // get a random number between min and max and not in the usedRandomNumbers, if all numbers are in the usedRandomNumbers, return null\n let allNumbers = Array.from({ length: max - min + 1 }, (_, i) => i + min).filter(\n (item) => !usedRandomNumbers[`${min}-${max}`]?.includes(item),\n );\n if (allNumbers.length === 0) {\n return undefined;\n }\n let randomIndex = Math.floor(Math.random() * allNumbers.length);\n let randomNumber = allNumbers[randomIndex];\n if (!usedRandomNumbers[`${min}-${max}`]) {\n usedRandomNumbers[`${min}-${max}`] = [];\n }\n usedRandomNumbers[`${min}-${max}`].push(randomNumber);\n obj.usedRandomNumbers = usedRandomNumbers;\n NarrationManagerStatic.setCurrentStepTimesCounterData(nestedId, obj);\n return randomNumber;\n }\n return Math.floor(Math.random() * (max - min + 1)) + min;\n }\n static resetCurrentStepTimesCounter(nestedId: string = \"\") {\n let currentLabelStepIndex = NarrationManagerStatic.currentLabelStepIndex;\n let currentLabelStepIndexId = currentLabelStepIndex + nestedId;\n let labelId = NarrationManagerStatic.currentLabelId;\n if (!labelId || currentLabelStepIndex === null) {\n logger.error(\"currentLabelId or currentLabelStepIndex is null\");\n return;\n }\n let obj =\n GameUnifier.getVariable<CurrentStepTimesCounterMemoty>(\n NARRATION_STORAGE_KEY,\n SYSTEM_RESERVED_STORAGE_KEYS.CURRENT_STEP_TIMES_COUNTER_KEY,\n ) || {};\n if (!obj[labelId]) {\n obj[labelId] = {};\n }\n obj[labelId][currentLabelStepIndexId] = { stepCounters: [], stepSha1: \"\" };\n GameUnifier.setVariable(\n NARRATION_STORAGE_KEY,\n SYSTEM_RESERVED_STORAGE_KEYS.CURRENT_STEP_TIMES_COUNTER_KEY,\n obj,\n );\n }\n /**\n * is a list of all choices made by the player during the progression of the steps.\n */\n static get allChoicesMade() {\n return (\n GameUnifier.getVariable<ChoicesMadeType[]>(\n NARRATION_STORAGE_KEY,\n SYSTEM_RESERVED_STORAGE_KEYS.ALL_CHOICES_MADE_KEY,\n ) || []\n );\n }\n static set allChoicesMade(value: ChoicesMadeType[]) {\n GameUnifier.setVariable(NARRATION_STORAGE_KEY, SYSTEM_RESERVED_STORAGE_KEYS.ALL_CHOICES_MADE_KEY, value);\n }\n static _stepCounter: number = 0;\n /**\n * Increase the last step index that occurred during the progression of the steps.\n */\n static increaseStepCounter() {\n NarrationManagerStatic._stepCounter++;\n }\n private static _openedLabels: OpenedLabel[] = [];\n static get openedLabels(): OpenedLabel[] {\n return createExportableElement(NarrationManagerStatic._openedLabels);\n }\n static set openedLabels(value: OpenedLabel[]) {\n NarrationManagerStatic._openedLabels = createExportableElement(value);\n }\n private static _originalOpenedLabels: OpenedLabel[] = [];\n static get originalOpenedLabels(): OpenedLabel[] {\n return createExportableElement(NarrationManagerStatic._originalOpenedLabels);\n }\n static set originalOpenedLabels(value: OpenedLabel[]) {\n NarrationManagerStatic._originalOpenedLabels = createExportableElement(value);\n }\n static get _currentLabel(): Label | undefined {\n if (NarrationManagerStatic.currentLabelId) {\n return RegisteredLabels.get(NarrationManagerStatic.currentLabelId);\n }\n }\n /**\n * currentLabelId is the current label id that occurred during the progression of the steps.\n */\n static get currentLabelId(): LabelIdType | undefined {\n if (NarrationManagerStatic._openedLabels.length > 0) {\n let item = NarrationManagerStatic._openedLabels[NarrationManagerStatic._openedLabels.length - 1];\n return item.label;\n }\n return undefined;\n }\n static get currentLabelStepIndex(): number | null {\n if (NarrationManagerStatic._openedLabels.length > 0) {\n let item = NarrationManagerStatic._openedLabels[NarrationManagerStatic._openedLabels.length - 1];\n return item.currentStepIndex;\n }\n return null;\n }\n\n /* Edit History Methods */\n\n /**\n * Add a label to the history.\n * @param label The label to add to the history.\n * @param stepIndex The step index of the label.\n */\n static addLabelHistory(label: LabelIdType, stepIndex: number) {\n let allOpenedLabels = NarrationManagerStatic.allOpenedLabels;\n let oldStepIndex = NarrationManagerStatic.allOpenedLabels[label]?.biggestStep || 0;\n let openCount = NarrationManagerStatic.allOpenedLabels[label]?.openCount || 0;\n if (!oldStepIndex || oldStepIndex < stepIndex) {\n allOpenedLabels[label] = { biggestStep: stepIndex, openCount: openCount };\n NarrationManagerStatic.allOpenedLabels = allOpenedLabels;\n }\n }\n static addChoicesMade(label: LabelIdType, stepIndex: number, stepSha: string, choiceMade: number) {\n let allChoicesMade = NarrationManagerStatic.allChoicesMade;\n let alredyMade = allChoicesMade.findIndex(\n (item) =>\n item.labelId === label &&\n item.stepIndex === stepIndex &&\n item.choiceIndex === choiceMade &&\n item.stepSha1 === stepSha,\n );\n if (alredyMade < 0) {\n allChoicesMade.push({\n labelId: label,\n stepIndex: stepIndex,\n choiceIndex: choiceMade,\n stepSha1: stepSha,\n madeTimes: 1,\n });\n } else {\n allChoicesMade[alredyMade].madeTimes++;\n }\n NarrationManagerStatic.allChoicesMade = allChoicesMade;\n }\n /**\n * Add a label to the history.\n * @param label The label to add to the history.\n * @throws {PixiError} when the label is not found in the registered labels.\n */\n static pushNewLabel(label: LabelIdType) {\n let currentLabel = RegisteredLabels.get(label);\n if (!currentLabel) {\n throw new PixiError(\"unregistered_element\", `Label ${label} not found`);\n }\n NarrationManagerStatic._openedLabels.push({\n label: label,\n currentStepIndex: 0,\n });\n let allOpenedLabels = NarrationManagerStatic.allOpenedLabels;\n let biggestStep = NarrationManagerStatic.allOpenedLabels[label]?.biggestStep || 0;\n let openCount = NarrationManagerStatic.allOpenedLabels[label]?.openCount || 0;\n allOpenedLabels[label] = { biggestStep: biggestStep, openCount: openCount + 1 };\n NarrationManagerStatic.allOpenedLabels = allOpenedLabels;\n }\n /**\n * Increase the current step index of the current label.\n */\n static increaseCurrentStepIndex() {\n if (NarrationManagerStatic._openedLabels.length > 0) {\n let item = NarrationManagerStatic._openedLabels[NarrationManagerStatic._openedLabels.length - 1];\n NarrationManagerStatic._openedLabels[NarrationManagerStatic._openedLabels.length - 1] = {\n ...item,\n currentStepIndex: item.currentStepIndex + 1,\n };\n }\n }\n\n private static _onStepStart?: (stepId: number, label: LabelAbstract<any>) => void | Promise<void>;\n static set onStepStart(value: (stepId: number, label: LabelAbstract<any>) => void | Promise<void>) {\n NarrationManagerStatic._onStepStart = value;\n }\n static get onStepStart(): ((stepId: number, label: LabelAbstract<any>) => Promise<void[]>) | undefined {\n return async (stepId: number, label: LabelAbstract<any>) => {\n let res: (Promise<void> | void)[] = [];\n if (NarrationManagerStatic.onLoadingLabel && stepId === 0) {\n res.push(NarrationManagerStatic.onLoadingLabel(stepId, label));\n }\n if (NarrationManagerStatic._onStepStart) {\n res.push(NarrationManagerStatic._onStepStart(stepId, label));\n }\n return await Promise.all(res);\n };\n }\n static onLoadingLabel?: (stepId: number, label: LabelAbstract<any>) => void | Promise<void>;\n static onStepEnd?: (stepId: number, label: LabelAbstract<any>) => void | Promise<void>;\n}\n","import { CharacterInterface, DialogueInterface } from \"@drincs/pixi-vn\";\nimport { GameUnifier, PixiError } from \"@drincs/pixi-vn/core\";\nimport { NARRATION_STORAGE_KEY, SYSTEM_RESERVED_STORAGE_KEYS } from \"../constants\";\nimport type { StorageElementType } from \"../storage\";\nimport { createExportableElement } from \"../utils\";\nimport { logger } from \"../utils/log-utility\";\nimport LabelAbstract from \"./classes/LabelAbstract\";\nimport RegisteredLabels from \"./decorators/RegisteredLabels\";\nimport { StoredDialogue } from \"./interfaces/DialogueInterface\";\nimport HistoryStep, { AdditionalShaSpetsEnum } from \"./interfaces/HistoryStep\";\nimport NarrationGameState from \"./interfaces/NarrationGameState\";\nimport NarrationManagerInterface from \"./interfaces/NarrationManagerInterface\";\nimport StoredChoiceInterface, { StoredIndexedChoiceInterface } from \"./interfaces/StoredChoiceInterface\";\nimport NarrationManagerStatic from \"./NarrationManagerStatic\";\nimport ChoicesMadeType from \"./types/ChoicesMadeType\";\nimport { InputInfo } from \"./types/InputInfo\";\nimport { LabelIdType } from \"./types/LabelIdType\";\nimport { StepLabelPropsType, StepLabelResultType } from \"./types/StepLabelType\";\n\n/**\n * This class is a class that manages the steps and labels of the game.\n */\nexport default class NarrationManager implements NarrationManagerInterface {\n get currentStepTimesCounter(): number {\n return NarrationManagerStatic.getCurrentStepTimesCounter();\n }\n set currentStepTimesCounter(_: 0) {\n NarrationManagerStatic.resetCurrentStepTimesCounter();\n }\n getRandomNumber(min: number, max: number, options: { onceOnly?: boolean } = {}): number | undefined {\n return NarrationManagerStatic.getRandomNumber(min, max, options);\n }\n get stepCounter() {\n return NarrationManagerStatic._stepCounter;\n }\n get openedLabels() {\n return NarrationManagerStatic.openedLabels;\n }\n get currentLabel(): LabelAbstract<any> | undefined {\n return NarrationManagerStatic._currentLabel;\n }\n\n /* Edit History Methods */\n\n /**\n * Add a label to the history.\n * @param stepSha The sha1 of the step.\n * @param options The options.\n */\n private addStepHistory(\n stepSha: string,\n options: {\n choiceMade?: number;\n ignoreSameStep?: boolean;\n } = {},\n ) {\n const { choiceMade, ignoreSameStep } = options;\n let dialogue: StoredDialogue | undefined = undefined;\n let choices: StoredChoiceInterface[] | undefined = undefined;\n let inputValue: StorageElementType | undefined = undefined;\n let isGlued =\n GameUnifier.getVariable(NARRATION_STORAGE_KEY, SYSTEM_RESERVED_STORAGE_KEYS.LAST_STEP_GLUED) ===\n this.stepCounter;\n if (\n GameUnifier.getVariable<number>(\n NARRATION_STORAGE_KEY,\n SYSTEM_RESERVED_STORAGE_KEYS.LAST_DIALOGUE_ADDED_IN_STEP_MEMORY_KEY,\n ) === this.stepCounter\n ) {\n dialogue = GameUnifier.getVariable<StoredDialogue>(\n NARRATION_STORAGE_KEY,\n SYSTEM_RESERVED_STORAGE_KEYS.CURRENT_DIALOGUE_MEMORY_KEY,\n );\n }\n if (\n GameUnifier.getVariable<number>(\n NARRATION_STORAGE_KEY,\n SYSTEM_RESERVED_STORAGE_KEYS.LAST_MENU_OPTIONS_ADDED_IN_STEP_MEMORY_KEY,\n ) === this.stepCounter\n ) {\n choices = GameUnifier.getVariable<any>(\n NARRATION_STORAGE_KEY,\n SYSTEM_RESERVED_STORAGE_KEYS.CURRENT_MENU_OPTIONS_MEMORY_KEY,\n ) as StoredChoiceInterface[];\n }\n if (\n GameUnifier.getVariable<StorageElementType>(\n NARRATION_STORAGE_KEY,\n SYSTEM_RESERVED_STORAGE_KEYS.LAST_INPUT_ADDED_IN_STEP_MEMORY_KEY,\n ) === this.stepCounter\n ) {\n inputValue = GameUnifier.getVariable(\n NARRATION_STORAGE_KEY,\n SYSTEM_RESERVED_STORAGE_KEYS.CURRENT_INPUT_VALUE_MEMORY_KEY,\n );\n }\n const openedLabels = NarrationManagerStatic.openedLabels;\n let historyInfo: Omit<HistoryStep, \"diff\"> = {\n currentLabel: NarrationManagerStatic.currentLabelId,\n dialogue: dialogue,\n choices: choices,\n stepSha1: stepSha,\n index: this.stepCounter,\n labelStepIndex: NarrationManagerStatic.currentLabelStepIndex,\n choiceIndexMade: choiceMade,\n inputValue: inputValue,\n alreadyMadeChoices: this.alreadyCurrentStepMadeChoices,\n isGlued: isGlued,\n openedLabels: openedLabels,\n };\n NarrationManagerStatic.originalOpenedLabels = openedLabels;\n GameUnifier.addHistoryItem(historyInfo, { ignoreSameStep });\n NarrationManagerStatic.lastHistoryStep = historyInfo;\n NarrationManagerStatic.increaseStepCounter();\n }\n closeCurrentLabel() {\n if (!NarrationManagerStatic.currentLabelId) {\n logger.warn(\"No label to close\");\n return;\n }\n if (!this.currentLabel) {\n logger.error(\"currentLabel not found\");\n return;\n }\n let openedLabels = NarrationManagerStatic.openedLabels;\n openedLabels.pop();\n NarrationManagerStatic.openedLabels = openedLabels;\n GameUnifier.onLabelClosing(this.openedLabels.length);\n }\n closeAllLabels() {\n while (NarrationManagerS