@drincs/pixi-vn
Version:
Pixi'VN is a npm package that provides various features for creating visual novels.
1 lines • 2.94 kB
Source Map (JSON)
{"version":3,"sources":["../../src/decorators/CharacterDecorator.ts"],"names":[],"mappings":";AAEO,IAAM,uBAA6D,GAAC;AAYpE,SAAS,cAAiE,SAAoB,EAAA;AACjG,EAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,SAAS,CAAG,EAAA;AAC1B,IAAA,SAAA,CAAU,OAAQ,CAAA,CAAA,CAAA,KAAK,aAAc,CAAA,CAAC,CAAC,CAAA,CAAA;AACvC,IAAA,OAAA;AAAA,GACJ;AACA,EAAI,IAAA,oBAAA,CAAqB,SAAU,CAAA,EAAE,CAAG,EAAA;AACpC,IAAA,OAAA,CAAQ,IAAK,CAAA,CAAA,uBAAA,EAA0B,SAAU,CAAA,EAAE,CAAyC,uCAAA,CAAA,CAAA,CAAA;AAAA,GAChG;AACA,EAAqB,oBAAA,CAAA,SAAA,CAAU,EAAE,CAAI,GAAA,SAAA,CAAA;AACzC,CAAA;AAWO,SAAS,iBAA+C,EAA2B,EAAA;AACtF,EAAI,IAAA;AACA,IAAI,IAAA,SAAA,GAAY,qBAAqB,EAAE,CAAA,CAAA;AACvC,IAAA,IAAI,CAAC,SAAW,EAAA;AACZ,MAAQ,OAAA,CAAA,KAAA,CAAM,CAAuB,oBAAA,EAAA,EAAE,CAAY,UAAA,CAAA,CAAA,CAAA;AACnD,MAAA,OAAA;AAAA,KACJ;AACA,IAAO,OAAA,SAAA,CAAA;AAAA,WAEJ,CAAG,EAAA;AACN,IAAA,OAAA,CAAQ,KAAM,CAAA,CAAA,wCAAA,EAA2C,EAAE,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA;AAChE,IAAA,OAAA;AAAA,GACJ;AACJ,CAAA;AAUO,SAAS,gBAAsD,GAAA;AAClE,EAAO,OAAA,MAAA,CAAO,OAAO,oBAAoB,CAAA,CAAA;AAC7C","file":"CharacterDecorator.mjs","sourcesContent":["import { CharacterBaseModel } from \"../classes\"\n\nexport const registeredCharacters: { [id: string]: CharacterBaseModel } = {}\n/**\n * Is a function that saves the character. If the character already exists, it will be overwritten.\n * @param character is the character to save\n * @returns \n * @example\n * ```typescript\n * export const liam = new CharacterBaseModel('liam', { name: 'Liam'});\n * export const alice = new CharacterBaseModel('alice', { name: 'Alice'});\n * saveCharacter([liam, alice]);\n * ```\n */\nexport function saveCharacter<T extends CharacterBaseModel = CharacterBaseModel>(character: T | T[]) {\n if (Array.isArray(character)) {\n character.forEach(c => saveCharacter(c))\n return\n }\n if (registeredCharacters[character.id]) {\n console.info(`[Pixi'VN] Character id ${character.id} already exists, it will be overwritten`)\n }\n registeredCharacters[character.id] = character\n}\n\n/**\n * is a function that returns the character by the id\n * @param id is the id of the character\n * @returns the character\n * @example\n * ```typescript\n * const liam = getCharacterById('liam');\n * ```\n */\nexport function getCharacterById<T extends CharacterBaseModel>(id: string): T | undefined {\n try {\n let character = registeredCharacters[id]\n if (!character) {\n console.error(`[Pixi'VN] Character ${id} not found`)\n return\n }\n return character as T\n }\n catch (e) {\n console.error(`[Pixi'VN] Error while getting Character ${id}`, e)\n return\n }\n}\n\n/**\n * is a function that returns all characters\n * @returns all characters\n * @example\n * ```typescript\n * const allCharacters = getAllCharacters();\n * ```\n */\nexport function getAllCharacters<T extends CharacterBaseModel>(): T[] {\n return Object.values(registeredCharacters) as T[]\n}\n"]}