@drincs/pixi-vn
Version:
Pixi'VN is a npm package that provides various features for creating visual novels.
1 lines • 4.12 kB
JavaScript
import {a as a$1}from'./chunk-ZW3MIPMS.mjs';import {k,m,j,l,n}from'./chunk-IWAXXFXE.mjs';import {d,k as k$1,j as j$1}from'./chunk-D45QSSXG.mjs';import {GameUnifier}from'@drincs/pixi-vn/core';var s=class s{constructor(){}static clearOldTempVariables(t){s.tempStorageDeadlines.forEach((e,r)=>{e>t&&(s.removeVariable(k,r),s.tempStorageDeadlines.delete(r));});}static setVariable(t,e,r){r==null?s.storage.delete(`${t}:${e}`):s.storage.set(`${t}:${e}`,r);}static getVariable(t,e){let r=s.storage.get(`${t}:${e}`);return k$1(r)}static removeVariable(t,e){s.storage.delete(`${t}:${e}`);}static setFlag(t,e){let r=s.storage.get(m)||[];if(e)r.includes(t)||r.push(t);else {let g=r.indexOf(t);g>-1&&r.splice(g,1);}s.storage.set(m,r);}static getFlag(t){return (s.storage.get(m)||[]).includes(t)}};d(s,"storage",new a$1({cacheSize:50})),d(s,"default",new a$1({cacheSize:10})),d(s,"tempStorageDeadlines",new Map);var a=s;var p=class{get base(){return a.storage.map}get cache(){return a.storage.cache}get tempStorageDeadlines(){return a.tempStorageDeadlines}set default(t){Object.entries(t).forEach(([e,r])=>{a.default.map.set(e,r);});}set(t,e){return a.setVariable(j,t,e)}get(t){let e=a.getVariable(k,t);return e===void 0&&(e=a.getVariable(j,t)),e===void 0&&(e=k$1(a.default.get(t))),e}remove(t){return this.removeTempVariable(t),a.removeVariable(j,t)}setTempVariable(t,e){if(e==null){this.removeTempVariable(t);return}else a.setVariable(k,t,e),this.tempStorageDeadlines.has(t)||this.tempStorageDeadlines.set(t,GameUnifier.openedLabels);}removeTempVariable(t){a.removeVariable(k,t),this.tempStorageDeadlines.has(t)&&this.tempStorageDeadlines.delete(t);}setFlag(t,e){return a.setFlag(t,e)}getFlag(t){return a.getFlag(t)}clear(){this.base.clear(),this.cache.clear(),this.tempStorageDeadlines.clear();}export(){let t=[];[...this.base.keys()].forEach(r=>{t.push({key:r,value:this.base.get(r)});});let e=[];return [...a.tempStorageDeadlines.keys()].forEach(r=>{e.push({key:r,value:this.tempStorageDeadlines.get(r)});}),k$1({main:t,tempDeadlines:e})}restore(t){this.clear();try{t?(t.base?.forEach(e=>{switch(e.key){case "___current_dialogue_memory___":a.setVariable(l,n.CURRENT_DIALOGUE_MEMORY_KEY,e.value);break;case "___last_dialogue_added_in_step_memory___":a.setVariable(l,n.LAST_DIALOGUE_ADDED_IN_STEP_MEMORY_KEY,e.value);break;case "___current_menu_options_memory___":a.setVariable(l,n.CURRENT_MENU_OPTIONS_MEMORY_KEY,e.value);break;case "___last_menu_options_added_in_step_memory___":a.setVariable(l,n.LAST_MENU_OPTIONS_ADDED_IN_STEP_MEMORY_KEY,e.value);break;case "_input_value_":a.setVariable(l,n.CURRENT_INPUT_VALUE_MEMORY_KEY,e.value);break;case "___last_input_added_in_step_memory___":a.setVariable(l,n.LAST_INPUT_ADDED_IN_STEP_MEMORY_KEY,e.value);break;case "___current_input_info_memory___":a.setVariable(l,n.CURRENT_INPUT_INFO_MEMORY_KEY,e.value);break;case "___opened_labels_counter___":a.setVariable(l,n.OPENED_LABELS_COUNTER_KEY,e.value);break;case "___all_choices_made___":a.setVariable(l,n.ALL_CHOICES_MADE_KEY,e.value);break;case "___current_step_times_counter___":a.setVariable(l,n.CURRENT_STEP_TIMES_COUNTER_KEY,e.value);break;case "___last_step_glued___":a.setVariable(l,n.LAST_STEP_GLUED,e.value);break;default:a.setVariable(j,e.key,e.value);}}),t.temp?.forEach(e=>{a.setVariable(k,e.key,e.value);}),t.flags?.forEach(e=>{a.setFlag(e,!0);}),t.main?.forEach(e=>{this.base.set(e.key,e.value);}),t.tempDeadlines?.forEach(e=>{this.tempStorageDeadlines.set(e.key,e.value);})):j$1.warn("No storage data found");}catch(e){j$1.error("Error importing data",e);}}};var E=class{constructor(t,e){d(this,"id");d(this,"categoryId");this.categoryId=t,this.id=e,this.migrateOldStorage();}migrateOldStorage(t=this.categoryId){let e=a.getVariable(j,t);e&&(Object.entries(e).forEach(([r,g])=>{typeof g=="object"&&g!==null&&Object.entries(g).forEach(([f,b])=>{a.setVariable(this.categoryId,`${r}:${f}`,b);});}),a.removeVariable(j,t));}setStorageProperty(t,e){a.setVariable(this.categoryId,`${this.id}:${t}`,e);}getStorageProperty(t,e=this.id){return a.getVariable(this.categoryId,`${e}:${t}`)}};var P=new p;export{a,E as b,P as c};