@drincs/pixi-vn
Version:
Pixi'VN is a npm package that provides various features for creating visual novels.
1 lines • 23 kB
Source Map (JSON)
{"version":3,"sources":["../src/storage/StorageManagerStatic.ts","../src/storage/StorageManager.ts","../src/storage/classes/StoredClassModel.ts","../src/storage/index.ts"],"names":["_StorageManagerStatic","openedLabelsNumber","deadline","key","TEMP_STORAGE_KEY","prefix","value","result","createExportableElement","flags","FLAGS_KEY","index","__publicField","CachedMap","StorageManagerStatic","StorageManager","MAIN_STORAGE_KEY","GameUnifier","main","tempDeadlines","data","item","NARRATION_STORAGE_KEY","SYSTEM_RESERVED_STORAGE_KEYS","flag","logger","StoredClassModel","categoryId","id","oldCategoryId","oldStorage","propertyName","propertyValue","idToUse","storage"],"mappings":"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","file":"chunk-TKYEUKV4.mjs","sourcesContent":["import { CachedMap } from \"../classes\";\nimport { FLAGS_KEY, TEMP_STORAGE_KEY } from \"../constants\";\nimport { createExportableElement } from \"../utils/export-utility\";\nimport { StorageElementType } from \"./types/StorageElementType\";\n\nexport default class StorageManagerStatic {\n static storage = new CachedMap<string, any>({ cacheSize: 50 });\n static default = new CachedMap<string, any>({ cacheSize: 10 });\n static tempStorageDeadlines = new Map<string, number>();\n\n private constructor() {}\n\n static clearOldTempVariables(openedLabelsNumber: number) {\n StorageManagerStatic.tempStorageDeadlines.forEach((deadline, key) => {\n if (deadline > openedLabelsNumber) {\n StorageManagerStatic.removeVariable(TEMP_STORAGE_KEY, key);\n StorageManagerStatic.tempStorageDeadlines.delete(key);\n }\n });\n }\n\n static setVariable(prefix: string, key: string, value: StorageElementType) {\n if (value === undefined || value === null) {\n StorageManagerStatic.storage.delete(`${prefix}:${key}`);\n } else {\n StorageManagerStatic.storage.set(`${prefix}:${key}`, value);\n }\n }\n\n static getVariable<T extends StorageElementType>(prefix: string, key: string): T | undefined {\n let result = StorageManagerStatic.storage.get(`${prefix}:${key}`);\n return createExportableElement(result) as T;\n }\n\n static removeVariable(prefix: string, key: string) {\n StorageManagerStatic.storage.delete(`${prefix}:${key}`);\n }\n\n static setFlag(key: string, value: boolean) {\n const flags = StorageManagerStatic.storage.get(FLAGS_KEY) || [];\n if (value) {\n if (!flags.includes(key)) {\n flags.push(key);\n }\n } else {\n let index = flags.indexOf(key);\n if (index > -1) {\n flags.splice(index, 1);\n }\n }\n StorageManagerStatic.storage.set(FLAGS_KEY, flags);\n }\n\n static getFlag(key: string): boolean {\n const flags = StorageManagerStatic.storage.get(FLAGS_KEY) || [];\n return flags.includes(key);\n }\n}\n","import { GameUnifier } from \"@drincs/pixi-vn/core\";\nimport { MAIN_STORAGE_KEY, NARRATION_STORAGE_KEY, SYSTEM_RESERVED_STORAGE_KEYS, TEMP_STORAGE_KEY } from \"../constants\";\nimport { createExportableElement } from \"../utils/export-utility\";\nimport { logger } from \"../utils/log-utility\";\nimport StorageGameState, { StorageGameStateItem } from \"./interfaces/StorageGameState\";\nimport StorageManagerInterface from \"./interfaces/StorageManagerInterface\";\nimport StorageManagerStatic from \"./StorageManagerStatic\";\nimport { StorageElementType } from \"./types/StorageElementType\";\n\nexport default class StorageManager implements StorageManagerInterface {\n get base() {\n return StorageManagerStatic.storage.map;\n }\n get cache() {\n return StorageManagerStatic.storage.cache as any;\n }\n get tempStorageDeadlines() {\n return StorageManagerStatic.tempStorageDeadlines;\n }\n set default(value: { [key: string]: StorageElementType }) {\n Object.entries(value).forEach(([key, value]) => {\n StorageManagerStatic.default.map.set(key, value);\n });\n }\n public set(key: string, value: StorageElementType) {\n return StorageManagerStatic.setVariable(MAIN_STORAGE_KEY, key, value);\n }\n public get<T extends StorageElementType>(key: string): T | undefined {\n let result = StorageManagerStatic.getVariable<T>(TEMP_STORAGE_KEY, key);\n if (result === undefined) {\n result = StorageManagerStatic.getVariable<T>(MAIN_STORAGE_KEY, key);\n }\n if (result === undefined) {\n result = createExportableElement(StorageManagerStatic.default.get(key));\n }\n return result;\n }\n public remove(key: string) {\n this.removeTempVariable(key);\n return StorageManagerStatic.removeVariable(MAIN_STORAGE_KEY, key);\n }\n public setTempVariable(key: string, value: StorageElementType) {\n if (value === undefined || value === null) {\n this.removeTempVariable(key);\n return;\n } else {\n StorageManagerStatic.setVariable(TEMP_STORAGE_KEY, key, value);\n if (!this.tempStorageDeadlines.has(key)) {\n this.tempStorageDeadlines.set(key, GameUnifier.openedLabels);\n }\n }\n }\n public removeTempVariable(key: string) {\n StorageManagerStatic.removeVariable(TEMP_STORAGE_KEY, key);\n if (this.tempStorageDeadlines.has(key)) {\n this.tempStorageDeadlines.delete(key);\n }\n }\n setFlag(key: string, value: boolean) {\n return StorageManagerStatic.setFlag(key, value);\n }\n getFlag(key: string): boolean {\n return StorageManagerStatic.getFlag(key);\n }\n public clear() {\n this.base.clear();\n this.cache.clear();\n this.tempStorageDeadlines.clear();\n }\n public export(): StorageGameState {\n let main: StorageGameStateItem[] = [];\n [...this.base.keys()].forEach((key) => {\n main.push({ key, value: this.base.get(key) });\n });\n let tempDeadlines: StorageGameStateItem<number>[] = [];\n [...StorageManagerStatic.tempStorageDeadlines.keys()].forEach((key) => {\n tempDeadlines.push({ key, value: this.tempStorageDeadlines.get(key)! });\n });\n return createExportableElement({\n main,\n tempDeadlines,\n });\n }\n public restore(data: StorageGameState) {\n this.clear();\n try {\n if (data) {\n (data.base as any)?.forEach((item: StorageGameStateItem) => {\n switch (item.key) {\n case \"___current_dialogue_memory___\":\n StorageManagerStatic.setVariable(\n NARRATION_STORAGE_KEY,\n SYSTEM_RESERVED_STORAGE_KEYS.CURRENT_DIALOGUE_MEMORY_KEY,\n item.value,\n );\n break;\n case \"___last_dialogue_added_in_step_memory___\":\n StorageManagerStatic.setVariable(\n NARRATION_STORAGE_KEY,\n SYSTEM_RESERVED_STORAGE_KEYS.LAST_DIALOGUE_ADDED_IN_STEP_MEMORY_KEY,\n item.value,\n );\n break;\n case \"___current_menu_options_memory___\":\n StorageManagerStatic.setVariable(\n NARRATION_STORAGE_KEY,\n SYSTEM_RESERVED_STORAGE_KEYS.CURRENT_MENU_OPTIONS_MEMORY_KEY,\n item.value,\n );\n break;\n case \"___last_menu_options_added_in_step_memory___\":\n StorageManagerStatic.setVariable(\n NARRATION_STORAGE_KEY,\n SYSTEM_RESERVED_STORAGE_KEYS.LAST_MENU_OPTIONS_ADDED_IN_STEP_MEMORY_KEY,\n item.value,\n );\n break;\n case \"_input_value_\":\n StorageManagerStatic.setVariable(\n NARRATION_STORAGE_KEY,\n SYSTEM_RESERVED_STORAGE_KEYS.CURRENT_INPUT_VALUE_MEMORY_KEY,\n item.value,\n );\n break;\n case \"___last_input_added_in_step_memory___\":\n StorageManagerStatic.setVariable(\n NARRATION_STORAGE_KEY,\n SYSTEM_RESERVED_STORAGE_KEYS.LAST_INPUT_ADDED_IN_STEP_MEMORY_KEY,\n item.value,\n );\n break;\n case \"___current_input_info_memory___\":\n StorageManagerStatic.setVariable(\n NARRATION_STORAGE_KEY,\n SYSTEM_RESERVED_STORAGE_KEYS.CURRENT_INPUT_INFO_MEMORY_KEY,\n item.value,\n );\n break;\n case \"___opened_labels_counter___\":\n StorageManagerStatic.setVariable(\n NARRATION_STORAGE_KEY,\n SYSTEM_RESERVED_STORAGE_KEYS.OPENED_LABELS_COUNTER_KEY,\n item.value,\n );\n break;\n case \"___all_choices_made___\":\n StorageManagerStatic.setVariable(\n NARRATION_STORAGE_KEY,\n SYSTEM_RESERVED_STORAGE_KEYS.ALL_CHOICES_MADE_KEY,\n item.value,\n );\n break;\n case \"___current_step_times_counter___\":\n StorageManagerStatic.setVariable(\n NARRATION_STORAGE_KEY,\n SYSTEM_RESERVED_STORAGE_KEYS.CURRENT_STEP_TIMES_COUNTER_KEY,\n item.value,\n );\n break;\n case \"___last_step_glued___\":\n StorageManagerStatic.setVariable(\n NARRATION_STORAGE_KEY,\n SYSTEM_RESERVED_STORAGE_KEYS.LAST_STEP_GLUED,\n item.value,\n );\n break;\n default:\n StorageManagerStatic.setVariable(MAIN_STORAGE_KEY, item.key, item.value);\n }\n });\n (data.temp as any)?.forEach((item: StorageGameStateItem) => {\n StorageManagerStatic.setVariable(TEMP_STORAGE_KEY, item.key, item.value);\n });\n (data.flags as any)?.forEach((flag: string) => {\n StorageManagerStatic.setFlag(flag, true);\n });\n (data.main as any)?.forEach((item: StorageGameStateItem) => {\n this.base.set(item.key, item.value);\n });\n (data.tempDeadlines as any)?.forEach((item: StorageGameStateItem<number>) => {\n this.tempStorageDeadlines.set(item.key, item.value);\n });\n } else {\n logger.warn(\"No storage data found\");\n }\n } catch (e) {\n logger.error(\"Error importing data\", e);\n }\n }\n}\n","import { MAIN_STORAGE_KEY } from \"../../constants\";\nimport StorageManagerStatic from \"../StorageManagerStatic\";\nimport { StorageElementType } from \"../types/StorageElementType\";\n\n/**\n * StoredClassModel is a abstract class that contains the methods to store a class in the game.\n * I suggest you extend this class to create your own stored class.\n * @example\n * ```typescript\n * export class CharacterBaseModel extends StoredClassModel implements CharacterBaseModelProps {\n * constructor(id: string, props: CharacterBaseModelProps) {\n * super(\"___character___\", id)\n * this.defaultName = props.name\n * this.defaultSurname = props.surname\n * }\n * private defaultName: string = \"\"\n * get name(): string {\n * return this.getStorageProperty<string>(\"name\") || this.defaultName\n * }\n * set name(value: string) {\n * this.setStorageProperty<string>(\"name\", value)\n * }\n * private defaultSurname?: string\n * get surname(): string | undefined {\n * return this.getStorageProperty<string>(\"surname\") || this.defaultSurname\n * }\n * set surname(value: string | undefined) {\n * this.setStorageProperty<string>(\"surname\", value)\n * }\n * }\n * ```\n */\nexport default class StoredClassModel {\n /**\n * @param categoryId The id of the category. For example if you are storing a character class, you can use \"characters\" as categoryId. so all instances of the character class will be stored in the \"characters\" category.\n * @param id The id of instance of the class. This id must be unique for the category.\n */\n constructor(categoryId: string, id: string) {\n this.categoryId = categoryId;\n this.id = id;\n this.migrateOldStorage();\n }\n protected migrateOldStorage(oldCategoryId: string = this.categoryId) {\n const oldStorage = StorageManagerStatic.getVariable<any>(MAIN_STORAGE_KEY, oldCategoryId);\n if (oldStorage) {\n Object.entries(oldStorage).forEach(([id, value]) => {\n if (typeof value === \"object\" && value !== null) {\n Object.entries(value).forEach(([propertyName, propertyValue]) => {\n StorageManagerStatic.setVariable(this.categoryId, `${id}:${propertyName}`, propertyValue);\n });\n }\n });\n StorageManagerStatic.removeVariable(MAIN_STORAGE_KEY, oldCategoryId);\n }\n }\n /**\n * Is id of the stored class. is unique for this class.\n */\n readonly id: string;\n private categoryId: string;\n /**\n * Update a property in the storage.\n * @param propertyName The name of the property to set.\n * @param value The value to set. If is undefined, the property will be removed from the storage.\n */\n protected setStorageProperty<T extends StorageElementType>(propertyName: string, value: T | undefined): void {\n StorageManagerStatic.setVariable(this.categoryId, `${this.id}:${propertyName}`, value);\n }\n /**\n * Get a property from the storage.\n * @param propertyName The name of the property to get.\n * @param idToUse The id of the instance to get the property. @default this.id\n * @returns The value of the property. If the property is not found, returns undefined.\n */\n protected getStorageProperty<T extends StorageElementType>(\n propertyName: string,\n idToUse: string = this.id,\n ): T | undefined {\n return StorageManagerStatic.getVariable<T>(this.categoryId, `${idToUse}:${propertyName}`);\n }\n}\n","import StorageManagerInterface from \"./interfaces/StorageManagerInterface\";\nimport StorageManager from \"./StorageManager\";\n\nexport { default as StoredClassModel } from \"./classes/StoredClassModel\";\nexport type { default as StorageGameState } from \"./interfaces/StorageGameState\";\nexport type { default as StorageManagerInterface } from \"./interfaces/StorageManagerInterface\";\nexport { default as StorageManagerStatic } from \"./StorageManagerStatic\";\nexport type { StorageElementType, StorageObjectType } from \"./types/StorageElementType\";\nexport { storage };\n\nconst storage: StorageManagerInterface = new StorageManager();\n"]}