UNPKG

@drincs/pixi-vn-json

Version:

Pixi'VN can be integrated with JSON files to create a visual novel.

3 lines (2 loc) 22.4 kB
import {LabelAbstract,ChoiceMenuOption,narration,storage,SYSTEM_RESERVED_STORAGE_KEYS,createExportableElement,Assets,shakeEffect,ZoomTicker,canvas,RotateTicker,MoveTicker,FadeAlphaTicker,ImageContainer,VideoSprite,ImageSprite,sound,NarrationManagerStatic,pushOut,zoomOut,moveOut,removeWithDissolveTransition,removeWithFadeTransition,pushIn,zoomIn,moveIn,showWithDissolveTransition,showWithFadeTransition}from'@drincs/pixi-vn';var ae=Object.create;var U=Object.defineProperty;var re=Object.getOwnPropertyDescriptor;var se=Object.getOwnPropertyNames;var oe=Object.getPrototypeOf,le=Object.prototype.hasOwnProperty;var H=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(i,e)=>(typeof require<"u"?require:i)[e]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var X=(t,i)=>()=>(i||t((i={exports:{}}).exports,i),i.exports);var fe=(t,i,e,a)=>{if(i&&typeof i=="object"||typeof i=="function")for(let r of se(i))!le.call(t,r)&&r!==e&&U(t,r,{get:()=>i[r],enumerable:!(a=re(i,r))||a.enumerable});return t};var ce=(t,i,e)=>(e=t!=null?ae(oe(t)):{},fe(U(e,"default",{value:t,enumerable:true}),t));var q=X((L,Y)=>{(function(t,i){typeof L=="object"?Y.exports=L=i():typeof define=="function"&&define.amd?define([],i):t.CryptoJS=i();})(L,function(){var t=t||function(i,e){var a;if(typeof window<"u"&&window.crypto&&(a=window.crypto),typeof self<"u"&&self.crypto&&(a=self.crypto),typeof globalThis<"u"&&globalThis.crypto&&(a=globalThis.crypto),!a&&typeof window<"u"&&window.msCrypto&&(a=window.msCrypto),!a&&typeof global<"u"&&global.crypto&&(a=global.crypto),!a&&typeof H=="function")try{a=H("crypto");}catch{}var r=function(){if(a){if(typeof a.getRandomValues=="function")try{return a.getRandomValues(new Uint32Array(1))[0]}catch{}if(typeof a.randomBytes=="function")try{return a.randomBytes(4).readInt32LE()}catch{}}throw new Error("Native crypto module could not be used to get secure random number.")},l=Object.create||function(){function n(){}return function(s){var g;return n.prototype=s,g=new n,n.prototype=null,g}}(),p={},c=p.lib={},u=c.Base=function(){return {extend:function(n){var s=l(this);return n&&s.mixIn(n),(!s.hasOwnProperty("init")||this.init===s.init)&&(s.init=function(){s.$super.init.apply(this,arguments);}),s.init.prototype=s,s.$super=this,s},create:function(){var n=this.extend();return n.init.apply(n,arguments),n},init:function(){},mixIn:function(n){for(var s in n)n.hasOwnProperty(s)&&(this[s]=n[s]);n.hasOwnProperty("toString")&&(this.toString=n.toString);},clone:function(){return this.init.prototype.extend(this)}}}(),h=c.WordArray=u.extend({init:function(n,s){n=this.words=n||[],s!=e?this.sigBytes=s:this.sigBytes=n.length*4;},toString:function(n){return (n||d).stringify(this)},concat:function(n){var s=this.words,g=n.words,y=this.sigBytes,V=n.sigBytes;if(this.clamp(),y%4)for(var P=0;P<V;P++){var F=g[P>>>2]>>>24-P%4*8&255;s[y+P>>>2]|=F<<24-(y+P)%4*8;}else for(var C=0;C<V;C+=4)s[y+C>>>2]=g[C>>>2];return this.sigBytes+=V,this},clamp:function(){var n=this.words,s=this.sigBytes;n[s>>>2]&=4294967295<<32-s%4*8,n.length=i.ceil(s/4);},clone:function(){var n=u.clone.call(this);return n.words=this.words.slice(0),n},random:function(n){for(var s=[],g=0;g<n;g+=4)s.push(r());return new h.init(s,n)}}),f=p.enc={},d=f.Hex={stringify:function(n){for(var s=n.words,g=n.sigBytes,y=[],V=0;V<g;V++){var P=s[V>>>2]>>>24-V%4*8&255;y.push((P>>>4).toString(16)),y.push((P&15).toString(16));}return y.join("")},parse:function(n){for(var s=n.length,g=[],y=0;y<s;y+=2)g[y>>>3]|=parseInt(n.substr(y,2),16)<<24-y%8*4;return new h.init(g,s/2)}},m=f.Latin1={stringify:function(n){for(var s=n.words,g=n.sigBytes,y=[],V=0;V<g;V++){var P=s[V>>>2]>>>24-V%4*8&255;y.push(String.fromCharCode(P));}return y.join("")},parse:function(n){for(var s=n.length,g=[],y=0;y<s;y++)g[y>>>2]|=(n.charCodeAt(y)&255)<<24-y%4*8;return new h.init(g,s)}},T=f.Utf8={stringify:function(n){try{return decodeURIComponent(escape(m.stringify(n)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(n){return m.parse(unescape(encodeURIComponent(n)))}},x=c.BufferedBlockAlgorithm=u.extend({reset:function(){this._data=new h.init,this._nDataBytes=0;},_append:function(n){typeof n=="string"&&(n=T.parse(n)),this._data.concat(n),this._nDataBytes+=n.sigBytes;},_process:function(n){var s,g=this._data,y=g.words,V=g.sigBytes,P=this.blockSize,F=P*4,C=V/F;n?C=i.ceil(C):C=i.max((C|0)-this._minBufferSize,0);var O=C*P,j=i.min(O*4,V);if(O){for(var $=0;$<O;$+=P)this._doProcessBlock(y,$);s=y.splice(0,O),g.sigBytes-=j;}return new h.init(s,j)},clone:function(){var n=u.clone.call(this);return n._data=this._data.clone(),n},_minBufferSize:0});c.Hasher=x.extend({cfg:u.extend(),init:function(n){this.cfg=this.cfg.extend(n),this.reset();},reset:function(){x.reset.call(this),this._doReset();},update:function(n){return this._append(n),this._process(),this},finalize:function(n){n&&this._append(n);var s=this._doFinalize();return s},blockSize:512/32,_createHelper:function(n){return function(s,g){return new n.init(g).finalize(s)}},_createHmacHelper:function(n){return function(s,g){return new N.HMAC.init(n,g).finalize(s)}}});var N=p.algo={};return p}(Math);return t});});var Q=X((I,Z)=>{(function(t,i){typeof I=="object"?Z.exports=I=i(q()):typeof define=="function"&&define.amd?define(["./core"],i):i(t.CryptoJS);})(I,function(t){return function(){var i=t,e=i.lib,a=e.WordArray,r=e.Hasher,l=i.algo,p=[],c=l.SHA1=r.extend({_doReset:function(){this._hash=new a.init([1732584193,4023233417,2562383102,271733878,3285377520]);},_doProcessBlock:function(u,h){for(var f=this._hash.words,d=f[0],m=f[1],T=f[2],x=f[3],b=f[4],N=0;N<80;N++){if(N<16)p[N]=u[h+N]|0;else {var n=p[N-3]^p[N-8]^p[N-14]^p[N-16];p[N]=n<<1|n>>>31;}var s=(d<<5|d>>>27)+b+p[N];N<20?s+=(m&T|~m&x)+1518500249:N<40?s+=(m^T^x)+1859775393:N<60?s+=(m&T|m&x|T&x)-1894007588:s+=(m^T^x)-899497514,b=x,x=T,T=m<<30|m>>>2,m=d,d=s;}f[0]=f[0]+d|0,f[1]=f[1]+m|0,f[2]=f[2]+T|0,f[3]=f[3]+x|0,f[4]=f[4]+b|0;},_doFinalize:function(){var u=this._data,h=u.words,f=this._nDataBytes*8,d=u.sigBytes*8;return h[d>>>5]|=128<<24-d%32,h[(d+64>>>9<<4)+14]=Math.floor(f/4294967296),h[(d+64>>>9<<4)+15]=f,u.sigBytes=h.length*4,this._process(),this._hash},clone:function(){var u=r.clone.call(this);return u._hash=this._hash.clone(),u}});i.SHA1=r._createHelper(c),i.HmacSHA1=r._createHmacHelper(c);}(),t.SHA1});});var ne=ce(Q());var E="___param___";var J=class t{static _beforeToTranslate=void 0;static _translate=i=>i;static _afterToTranslate=void 0;static t(i){return Array.isArray(i)?i.map(e=>t.translate(`${e}`)):t.translate(`${i}`)}static set beforeToTranslate(i){t._beforeToTranslate=i;}static set translate(i){t._translate=i;}static get translate(){return i=>{let e=i;return t._beforeToTranslate&&(e=t._beforeToTranslate(e)),e=t._translate(e),t._afterToTranslate&&(e=t._afterToTranslate(e)),e}}static set afterToTranslate(i){t._afterToTranslate=i;}static addKey(i,e,a){let r=a.defaultValue||"empty_string";typeof e=="string"&&(e=[e]),Array.isArray(e)&&e.forEach(l=>{i[l]===void 0&&(r==="empty_string"?i[l]="":r==="copy_key"&&(t._beforeToTranslate?i[l]=t._beforeToTranslate(l):i[l]=l));});}static getConditionalsThenElse(i,e=[]){if(typeof i=="object"&&i&&"type"in i)if(i.type==="ifelse")i.then&&t.getConditionalsThenElse(i.then,e),i.else&&t.getConditionalsThenElse(i.else,e);else if(i.type==="stepswitch"){if(i.elements)if(Array.isArray(i.elements))i.elements.forEach(a=>{t.getConditionalsThenElse(a,e);});else if(i.elements.type==="ifelse"){let a=[];t.getConditionalsThenElse(i.elements,a),a.forEach(r=>{e.push(...r);});}else if(i.elements.type==="stepswitch"){let a=[];t.getConditionalsThenElse(i.elements,a),a.forEach(r=>{e.push(...r);});}else t.getConditionalsThenElse(i.elements,e);}else i.type==="resulttocombine"?(i.firstItem&&t.getConditionalsThenElse(i.firstItem,e),i.secondConditionalItem&&i.secondConditionalItem.forEach(a=>{t.getConditionalsThenElse(a,e);})):e.push(i);else i&&e.push(i);return e}static generateJsonTranslation(i,e={},a={}){return i.forEach(r=>{if(r.choices){let l=[];Array.isArray(r.choices)?l=[r.choices]:l=t.getConditionalsThenElse(r.choices),l.forEach(p=>p.forEach(c=>{if("type"in c){let u=[];c.type==="ifelse"||c.type==="stepswitch"?t.getConditionalsThenElse(c,u):u=[c],u.map(f=>t.getConditionalsThenElse(f.text)).forEach(f=>{Array.isArray(f)&&f.forEach(d=>{Array.isArray(d)?d.forEach(m=>{typeof m=="string"?t.addKey(e,m,a):t.getConditionalsThenElse(m).forEach(T=>{Array.isArray(T)?T.forEach(x=>{typeof x=="string"&&t.addKey(e,x,a);}):typeof T=="string"&&t.addKey(e,T,a);});}):typeof d=="string"&&t.addKey(e,d,a);});});}}));}if(r.dialogue){let l=[];Array.isArray(r.dialogue)?l=[r.dialogue]:l=t.getConditionalsThenElse(r.dialogue),l.forEach(p=>{typeof p=="string"?t.addKey(e,p,a):"text"in p&&Array.isArray(p.text)&&p.text.forEach(c=>{typeof c=="string"?t.addKey(e,c,a):t.getConditionalsThenElse(c).forEach(h=>{typeof h=="string"?t.addKey(e,h,a):Array.isArray(h)&&h.forEach(f=>{typeof f=="string"?t.addKey(e,f,a):t.getConditionalsThenElse(f).forEach(d=>{typeof d=="string"&&t.addKey(e,d,a);});});});});});}r.conditionalStep&&t.getConditionalsThenElse(r.conditionalStep).forEach(p=>{Array.isArray(p)?t.generateJsonTranslation(p,e,a):t.generateJsonTranslation([p],e,a);});}),e}};var D=J;function pe(t,i){return Math.floor(Math.random()*(i-t+1)+t)}function de(t){if(Array.isArray(t)||!t)return t;if(t&&typeof t=="object"&&"type"in t)switch(t.type){case "resulttocombine":return ge(t);case "ifelse":return o(t.condition)?o(t.then):o(t.else);case "stepswitch":let e=o(t.elements)||[];if(e.length===0){console.error("[Pixi\u2019VN Json] getValueFromConditionalStatements elements.length === 0");return}switch(t.choiceType){case "random":let a=pe(0,e.length-1);return o(e[a]);case "loop":let r=NarrationManagerStatic.getCurrentStepTimesCounter(t.nestedId)-1;return r>e.length-1&&(r=r%e.length),o(e[r]);case "sequential":let l,p=NarrationManagerStatic.getCurrentStepTimesCounter(t.nestedId)-1;return t.end=="lastItem"&&(l=o(e[e.length-1])),p>e.length-1?l:o(e[p]);case "sequentialrandom":let c=NarrationManagerStatic.getRandomNumber(0,e.length-1,{nestedId:t.nestedId,onceOnly:true});if(c==null&&t.end=="lastItem"){let u=NarrationManagerStatic.getCurrentStepTimesCounterData(t.nestedId);if(!u||!u?.usedRandomNumbers){console.warn("[Pixi\u2019VN Json] getValueFromConditionalStatements randomIndexWhitExclude == undefined");return}let h=u.usedRandomNumbers[`0-${e.length-1}`];return o(e[h[h.length-1]])}if(c==null){console.warn("[Pixi\u2019VN Json] getValueFromConditionalStatements randomIndexWhitExclude == undefined");return}return o(e[c])}}return t}function k(t){if(t.conditionalStep){let i=createExportableElement(o(t.conditionalStep));if(i?.glueEnabled===void 0&&delete i?.glueEnabled,i?.goNextStep===void 0&&delete i?.goNextStep,i?.end===void 0&&delete i?.end,i?.choices===void 0&&delete i?.choices,i?.dialogue===void 0&&delete i?.dialogue,i?.labelToOpen===void 0&&delete i?.labelToOpen,i?.operations===void 0&&delete i?.operations,i){let e={...t,conditionalStep:void 0,...i};return k(e)}else storage.getFlag(SYSTEM_RESERVED_STORAGE_KEYS.ADD_NEXT_DIALOG_TEXT_INTO_THE_CURRENT_DIALOG_FLAG_KEY)&&storage.setFlag(SYSTEM_RESERVED_STORAGE_KEYS.ADD_NEXT_DIALOG_TEXT_INTO_THE_CURRENT_DIALOG_FLAG_KEY,false);}return t}function ge(t){let i=t.firstItem,e=[];t.secondConditionalItem?.forEach(r=>{if(Array.isArray(r))r.forEach(l=>{let p=o(l);e.push(p);});else {let l=o(r);e.push(l);}});let a=i?[i,...e]:e;if(a.length===0){console.warn("[Pixi\u2019VN Json] combinateResult toCheck.length === 0");return}if(typeof a[0]=="string")return D.t(a).join("");if(typeof a[0]=="object"){let r=a,l,p=r.map((n,s)=>{n=k(n);let g=o(n.dialogue)||"";return s===0?(l=o(n.glueEnabled)||false,g):(typeof g=="object"&&"text"in g&&(g=g.character+": "+g.text),l===false&&(g=` `+g),l=o(n.glueEnabled)||false,g)}),c=o(p[0]),u=typeof c=="object"&&"character"in c?c.character:void 0,h=p.map(n=>{let s;n&&typeof n=="object"&&"text"in n?s=n.text:s=n;let g;return Array.isArray(s)?g=s.map(y=>{let V=o(y);return D.t(`${V}`)}).join(""):g=o(s)||"",D.t(g)}).join(""),f=r.find(n=>n.end),d=r.find(n=>n.choices),m=false,T=false;r.length>0&&(r[0].glueEnabled&&r[0].goNextStep&&r[0].dialogue===void 0&&storage.setFlag(SYSTEM_RESERVED_STORAGE_KEYS.ADD_NEXT_DIALOG_TEXT_INTO_THE_CURRENT_DIALOG_FLAG_KEY,true),m=r[r.length-1].glueEnabled,T=r.reverse().find(n=>!(n.operations&&(!n.dialogue||!n.choices)))?.goNextStep);let x=r.find(n=>n.labelToOpen),b=[];return r.forEach(n=>{n.operations&&b.forEach(s=>{b.push(s);});}),{dialogue:u?{character:u,text:h}:h,end:f?.end,choices:d?.choices,glueEnabled:m,goNextStep:T,labelToOpen:x?.labelToOpen,operations:b}}}function he(t){if(!t)return false;if(typeof t!="object"||!("type"in t))return !!t;switch(t.type){case "compare":let i=o(t.leftValue),e=o(t.rightValue);switch(t.operator){case "==":return i===e;case "!=":return i!==e;case "<":return i<e;case "<=":return i<=e;case ">":return i>e;case ">=":return i>=e;case "CONTAINS":return i.toString().includes(e.toString())}break;case "valueCondition":return !!o(t.value);case "union":return me(t)}return !!t}function ye(t){if(t&&typeof t=="object"&&"type"in t&&t.type==="value"&&t.storageOperationType==="get")switch(t.storageType){case "storage":case "tempstorage":return storage.getVariable(t.key);case "flagStorage":return storage.getFlag(t.key);case "label":return narration.getTimesLabelOpened(t.label);case "choice":return narration.getTimesChoiceMade(t.index);case "logic":return o(t.operation);case "params":let i=storage.getVariable(`${E}${narration.openedLabels.length-1}`)||[];if(i&&i.length>t.key)return i[t.key];console.warn("[Pixi\u2019VN Json] getValue params not found");return}return t}function me(t){if(t.unionType==="not")return !o(t.condition);let i=t.unionType==="and";for(let e=0;e<t.conditions.length;e++)if(i=o(t.conditions[e])||false,t.unionType==="and"){if(!i)return false}else if(i)return true;return i}function ee(t){let i=o(t.value),e;switch(i&&typeof i=="object"&&"type"in i?e=o(i):e=i,t.storageType){case "flagStorage":storage.setFlag(t.key,t.value);break;case "storage":storage.setVariable(t.key,e);break;case "tempstorage":storage.setTempVariable(t.key,e);break;case "params":let a=storage.getVariable(`${E}${narration.openedLabels.length-1}`)||[];a&&a.length-1>=t.key&&(a[t.key]=e),storage.setTempVariable(`${E}${narration.openedLabels.length-1}`,a);break}}function o(t){let i=de(t);if(i&&typeof i=="object"&&"type"in i)switch(i.type){case "value":return ye(i);case "arithmetic":case "arithmeticsingle":return Te(i);case "compare":case "valueCondition":case "union":return he(i)}return i}function Te(t){let i=o(t.leftValue);switch(t.type){case "arithmetic":let e=o(t.rightValue);switch(t.operator){case "*":return i*e;case "/":return i/e;case "+":return i+e;case "-":return i-e;case "%":return i%e;case "POW":return Math.pow(i,e);case "RANDOM":return narration.getRandomNumber(i,e)}case "arithmeticsingle":switch(t.operator){case "INT":return parseInt(i);case "FLOOR":return Math.floor(i);case "FLOAT":return parseFloat(i)}break}}async function ie(t){let i=o(t);if(i)switch(i.type){case "assets":switch(i.operationType){case "load":await Assets.load(i.assets);break}break}}async function z(t,i){let e=o(t);if(e)switch(e.type){case "sound":switch(e.operationType){case "play":sound.play(e.alias,e.props);break;case "stop":sound.stop(e.alias);break;case "pause":sound.pause(e.alias);break;case "resume":sound.resume(e.alias);break;case "volume":sound.volume(e.alias,e.value);break}break;case "assets":switch(e.operationType){case "load":let c=e.assets.map(u=>Assets.load(u));await Promise.all(c);break}break;case "image":switch(e.operationType){case "show":let c=new ImageSprite(e.props,e.url||e.alias);await W(c,e);break;case "edit":let u=canvas.find(e.alias);u?e.props&&await u.setMemory({...u.memory,...e.props}):console.error(`[Pixi\u2019VN Json] Image with alias ${e.alias} not found.`);break;case "remove":B(e);break}break;case "video":switch(e.operationType){case "show":let c=new VideoSprite(e.props,e.url||e.alias);await W(c,e);break;case "edit":let u=canvas.find(e.alias);u?e.props&&await u.setMemory({...u.memory,...e.props}):console.error(`[Pixi\u2019VN Json] Video with alias ${e.alias} not found.`);break;case "remove":B(e);break;case "pause":let h=canvas.find(e.alias);h?h.paused=true:console.error(`[Pixi\u2019VN Json] Video with alias ${e.alias} not found.`);break;case "resume":let f=canvas.find(e.alias);f?f.paused=false:console.error(`[Pixi\u2019VN Json] Video with alias ${e.alias} not found.`);break}break;case "imagecontainer":switch(e.operationType){case "show":let c=new ImageContainer(e.props,e.urls);await W(c,e);break;case "edit":let u=canvas.find(e.alias);u?e.props&&await u.setMemory({...u.memory,...e.props}):console.error(`[Pixi\u2019VN Json] ImageContainer with alias ${e.alias} not found.`);break;case "remove":B(e);break}break;case "canvaselement":switch(e.operationType){case "edit":try{let c=canvas.find(e.alias);c?e.props&&(c.memory={...c.memory,...e.props}):console.error(`[Pixi\u2019VN Json] Canvas Element with alias ${e.alias} not found.`);}catch(c){console.error(`[Pixi\u2019VN Json] There was an error while trying to edit the canvas element with alias ${e.alias}.`,c);}break;case "remove":B(e);break}break;case "value":ee(e);break;case "operationtoconvert":if(i){let c="";e.values.forEach(h=>{if(typeof h=="string")c+=h;else {let f=o(h);c+=`${f}`;}});let u=await i(c);u&&await z(u,i);}break;case "input":switch(e.operationType){case "request":narration.requestInput({type:e.valueType},e.defaultValue);break}break;case "fade":let a=new FadeAlphaTicker(e.props,e.duration,e.priority);canvas.addTicker(e.alias,a);break;case "move":let r=new MoveTicker(e.props,e.duration,e.priority);canvas.addTicker(e.alias,r);break;case "rotate":let l=new RotateTicker(e.props,e.duration,e.priority);canvas.addTicker(e.alias,l);break;case "zoom":let p=new ZoomTicker(e.props,e.duration,e.priority);canvas.addTicker(e.alias,p);break;case "shake":await shakeEffect(e.alias,e.props,e.priority);break}}async function W(t,i){if(i.transition)switch(i.transition.type){case "fade":await showWithFadeTransition(i.alias,t,i.transition.props,i.transition.priority);break;case "dissolve":await showWithDissolveTransition(i.alias,t,i.transition.props,i.transition.priority);break;case "movein":case "moveout":await moveIn(i.alias,t,i.transition.props,i.transition.priority);break;case "zoomin":case "zoomout":await zoomIn(i.alias,t,i.transition.props,i.transition.priority);break;case "pushin":case "pushout":await pushIn(i.alias,t,i.transition.props,i.transition.priority);break}else await t.load(),canvas.add(i.alias,t);}function B(t){if(t.transition)switch(t.transition.type){case "fade":removeWithFadeTransition(t.alias,t.transition.props,t.transition.priority);break;case "dissolve":removeWithDissolveTransition(t.alias,t.transition.props,t.transition.priority);break;case "movein":case "moveout":moveOut(t.alias,t.transition.props,t.transition.priority);break;case "zoomin":case "zoomout":zoomOut(t.alias,t.transition.props,t.transition.priority);break;case "pushin":case "pushout":pushOut(t.alias,t.transition.props,t.transition.priority);break}else canvas.remove(t.alias);}var K=class extends LabelAbstract{constructor(i,e,a,r={}){a||(a={}),a.onLoadingLabel=async()=>{for(let l of e){let p;if(typeof l=="function"?p=l():p=l,p=k(p),p.operations){let c=p.operations.map(u=>ie(u));await Promise.all(c);}}},super(i,a),this._steps=e,this.operationStringConvert=r.operationStringConvert,this.skipEmptyDialogs=r.skipEmptyDialogs||false;}_steps;get steps(){return this._steps.map(i=>this.stepConverter(i))}operationStringConvert;skipEmptyDialogs=false;getStepSha1(i){if(i<0||i>=this.steps.length)return;let e=this._steps[i];return (0, ne.default)(e.toString().toLocaleLowerCase()).toString()}getDialogueText(i){let e="";if(Array.isArray(i)){let a=[];i.forEach(r=>{if(typeof r=="string")a.push(r);else if(r&&typeof r=="object"){let l=o(r);l?(l&&!Array.isArray(l)&&typeof l=="object"&&(l=o(l)||""),Array.isArray(l)?a=a.concat(l):a.push(`${l}`)):a.push(`${r}`);}}),e=a;}else {let a=o(i)||"";a&&!Array.isArray(a)&&typeof a=="object"&&(a=o(a)||""),e=a;}return `${e}`}getDialogue(i){if(i==null)return;let e=o(i);return e==null?"":typeof e=="object"&&"character"in e&&"text"in e?{character:e.character,text:J.t(this.getDialogueText(e.text))}:J.t(this.getDialogueText(e))}getChoices(i){return o(i)?.map(r=>o(r)).filter(r=>r!==void 0)}stepConverter(i){return async e=>{let a;if(typeof i=="function"?a=i():a=i,a=k(a),a.operations)for(let f of a.operations)await z(f,this.operationStringConvert?d=>this.operationStringConvert(d,a,e):void 0);let r=this.getChoices(a.choices),l=o(a.glueEnabled),p=this.getDialogue(a.dialogue),c=[];a.labelToOpen&&(Array.isArray(a.labelToOpen)||(a.labelToOpen=[a.labelToOpen]),a.labelToOpen.forEach(f=>{let d=o(f);d&&c.push(d);}));let u=o(a.goNextStep),h=o(a.end);if(r){let f=r.map(d=>{let m="";if(Array.isArray(d.text)){let T=[];d.text.forEach(x=>{if(typeof x=="string")T.push(J.t(x));else if(x&&typeof x=="object"){let b=o(x);b&&!Array.isArray(b)&&typeof b=="object"&&(b=o(b)||""),b&&(Array.isArray(b)?T=T.concat(J.t(b)):T.push(J.t(b)));}}),m=T.join();}else typeof d.text=="string"&&(m=J.t(d.text));return new ChoiceMenuOption(m,d.label,d.props,{type:d.type,oneTime:d.oneTime,onlyHaveNoChoice:d.onlyHaveNoChoice,autoSelect:d.autoSelect})});narration.choiceMenuOptions=f;}else narration.choiceMenuOptions=void 0;p!==void 0&&(narration.dialogue=p,this.skipEmptyDialogs&&typeof p=="string"&&(p===""||RegExp(/^\s+$/).test(p))&&(u=true)),l?storage.setFlag(SYSTEM_RESERVED_STORAGE_KEYS.ADD_NEXT_DIALOG_TEXT_INTO_THE_CURRENT_DIALOG_FLAG_KEY,true):l===false&&storage.setFlag(SYSTEM_RESERVED_STORAGE_KEYS.ADD_NEXT_DIALOG_TEXT_INTO_THE_CURRENT_DIALOG_FLAG_KEY,false);for(let f of c){let d=f.label;typeof d=="object"&&(d=o(d)||"");let m=f.params?.map(T=>o(T));e={...e,...f.props},f.type==="jump"?(narration.closeCurrentLabel(),storage.setTempVariable(`${E}${narration.openedLabels.length}`,m),await narration.callLabel(d,e)):(storage.setTempVariable(`${E}${narration.openedLabels.length}`,m),await narration.callLabel(d,e));}h==="game_end"?(narration.closeAllLabels(),await narration.goNext(e,{runNow:true})):h==="label_end"&&narration.closeCurrentLabel(),u&&await narration.goNext(e,{runNow:true});}}};export{K as default};