@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
JavaScript
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 M=(i=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(i,{get:(t,e)=>(typeof require<"u"?require:t)[e]}):i)(function(i){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+i+'" is not supported')});var X=(i,t)=>()=>(t||i((t={exports:{}}).exports,t),t.exports);var fe=(i,t,e,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of se(t))!le.call(i,r)&&r!==e&&U(i,r,{get:()=>t[r],enumerable:!(a=re(t,r))||a.enumerable});return i};var ce=(i,t,e)=>(e=i!=null?ae(oe(i)):{},fe(U(e,"default",{value:i,enumerable:true}),i));var q=X((L,Y)=>{(function(i,t){typeof L=="object"?Y.exports=L=t():typeof define=="function"&&define.amd?define([],t):i.CryptoJS=t();})(L,function(){var i=i||function(t,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 M=="function")try{a=M("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 $=g[P>>>2]>>>24-P%4*8&255;s[y+P>>>2]|=$<<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=t.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,$=P*4,C=V/$;n?C=t.ceil(C):C=t.max((C|0)-this._minBufferSize,0);var O=C*P,j=t.min(O*4,V);if(O){for(var H=0;H<O;H+=P)this._doProcessBlock(y,H);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 i});});var Q=X((I,Z)=>{(function(i,t){typeof I=="object"?Z.exports=I=t(q()):typeof define=="function"&&define.amd?define(["./core"],t):t(i.CryptoJS);})(I,function(i){return function(){var t=i,e=t.lib,a=e.WordArray,r=e.Hasher,l=t.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}});t.SHA1=r._createHelper(c),t.HmacSHA1=r._createHmacHelper(c);}(),i.SHA1});});var ne=ce(Q());var E="___param___";var J=class i{static _beforeToTranslate=void 0;static _translate=t=>t;static _afterToTranslate=void 0;static t(t){return Array.isArray(t)?t.map(e=>i.translate(`${e}`)):i.translate(`${t}`)}static set beforeToTranslate(t){i._beforeToTranslate=t;}static set translate(t){i._translate=t;}static get translate(){return t=>{let e=t;return i._beforeToTranslate&&(e=i._beforeToTranslate(e)),e=i._translate(e),i._afterToTranslate&&(e=i._afterToTranslate(e)),e}}static set afterToTranslate(t){i._afterToTranslate=t;}static addKey(t,e,a){let r=a.defaultValue||"empty_string";typeof e=="string"&&(e=[e]),Array.isArray(e)&&e.forEach(l=>{t[l]===void 0&&(r==="empty_string"?t[l]="":r==="copy_key"&&(i._beforeToTranslate?t[l]=i._beforeToTranslate(l):t[l]=l));});}static getConditionalsThenElse(t,e=[]){if(typeof t=="object"&&t&&"type"in t)if(t.type==="ifelse")t.then&&i.getConditionalsThenElse(t.then,e),t.else&&i.getConditionalsThenElse(t.else,e);else if(t.type==="stepswitch"){if(t.elements)if(Array.isArray(t.elements))t.elements.forEach(a=>{i.getConditionalsThenElse(a,e);});else if(t.elements.type==="ifelse"){let a=[];i.getConditionalsThenElse(t.elements,a),a.forEach(r=>{e.push(...r);});}else if(t.elements.type==="stepswitch"){let a=[];i.getConditionalsThenElse(t.elements,a),a.forEach(r=>{e.push(...r);});}else i.getConditionalsThenElse(t.elements,e);}else t.type==="resulttocombine"?(t.firstItem&&i.getConditionalsThenElse(t.firstItem,e),t.secondConditionalItem&&t.secondConditionalItem.forEach(a=>{i.getConditionalsThenElse(a,e);})):e.push(t);else t&&e.push(t);return e}static generateJsonTranslation(t,e={},a={}){return t.forEach(r=>{if(r.choices){let l=[];Array.isArray(r.choices)?l=[r.choices]:l=i.getConditionalsThenElse(r.choices),l.forEach(p=>p.forEach(c=>{if("type"in c){let u=[];c.type==="ifelse"||c.type==="stepswitch"?i.getConditionalsThenElse(c,u):u=[c],u.map(f=>i.getConditionalsThenElse(f.text)).forEach(f=>{Array.isArray(f)&&f.forEach(d=>{Array.isArray(d)?d.forEach(m=>{typeof m=="string"?i.addKey(e,m,a):i.getConditionalsThenElse(m).forEach(T=>{Array.isArray(T)?T.forEach(x=>{typeof x=="string"&&i.addKey(e,x,a);}):typeof T=="string"&&i.addKey(e,T,a);});}):typeof d=="string"&&i.addKey(e,d,a);});});}}));}if(r.dialogue){let l=[];Array.isArray(r.dialogue)?l=[r.dialogue]:l=i.getConditionalsThenElse(r.dialogue),l.forEach(p=>{typeof p=="string"?i.addKey(e,p,a):"text"in p&&Array.isArray(p.text)&&p.text.forEach(c=>{typeof c=="string"?i.addKey(e,c,a):i.getConditionalsThenElse(c).forEach(h=>{typeof h=="string"?i.addKey(e,h,a):Array.isArray(h)&&h.forEach(f=>{typeof f=="string"?i.addKey(e,f,a):i.getConditionalsThenElse(f).forEach(d=>{typeof d=="string"&&i.addKey(e,d,a);});});});});});}r.conditionalStep&&i.getConditionalsThenElse(r.conditionalStep).forEach(p=>{Array.isArray(p)?i.generateJsonTranslation(p,e,a):i.generateJsonTranslation([p],e,a);});}),e}};var D=J;function pe(i,t){return Math.floor(Math.random()*(t-i+1)+i)}function de(i){if(Array.isArray(i)||!i)return i;if(i&&typeof i=="object"&&"type"in i)switch(i.type){case "resulttocombine":return ge(i);case "ifelse":return o(i.condition)?o(i.then):o(i.else);case "stepswitch":let e=o(i.elements)||[];if(e.length===0){console.error("[Pixi\u2019VN Json] getValueFromConditionalStatements elements.length === 0");return}switch(i.choiceType){case "random":let a=pe(0,e.length-1);return o(e[a]);case "loop":let r=NarrationManagerStatic.getCurrentStepTimesCounter(i.nestedId)-1;return r>e.length-1&&(r=r%e.length),o(e[r]);case "sequential":let l,p=NarrationManagerStatic.getCurrentStepTimesCounter(i.nestedId)-1;return i.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:i.nestedId,onceOnly:true});if(c==null&&i.end=="lastItem"){let u=NarrationManagerStatic.getCurrentStepTimesCounterData(i.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 i}function k(i){if(i.conditionalStep){let t=createExportableElement(o(i.conditionalStep));if(t?.glueEnabled===void 0&&delete t?.glueEnabled,t?.goNextStep===void 0&&delete t?.goNextStep,t?.end===void 0&&delete t?.end,t?.choices===void 0&&delete t?.choices,t?.dialogue===void 0&&delete t?.dialogue,t?.labelToOpen===void 0&&delete t?.labelToOpen,t?.operations===void 0&&delete t?.operations,t){let e={...i,conditionalStep:void 0,...t};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 i}function ge(i){let t=i.firstItem,e=[];i.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=t?[t,...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(i){if(!i)return false;if(typeof i!="object"||!("type"in i))return !!i;switch(i.type){case "compare":let t=o(i.leftValue),e=o(i.rightValue);switch(i.operator){case "==":return t===e;case "!=":return t!==e;case "<":return t<e;case "<=":return t<=e;case ">":return t>e;case ">=":return t>=e;case "CONTAINS":return t.toString().includes(e.toString())}break;case "valueCondition":return !!o(i.value);case "union":return me(i)}return !!i}function ye(i){if(i&&typeof i=="object"&&"type"in i&&i.type==="value"&&i.storageOperationType==="get")switch(i.storageType){case "storage":case "tempstorage":return storage.getVariable(i.key);case "flagStorage":return storage.getFlag(i.key);case "label":return narration.getTimesLabelOpened(i.label);case "choice":return narration.getTimesChoiceMade(i.index);case "logic":return o(i.operation);case "params":let t=storage.getVariable(`${E}${narration.openedLabels.length-1}`)||[];if(t&&t.length>i.key)return t[i.key];console.warn("[Pixi\u2019VN Json] getValue params not found");return}return i}function me(i){if(i.unionType==="not")return !o(i.condition);let t=i.unionType==="and";for(let e=0;e<i.conditions.length;e++)if(t=o(i.conditions[e])||false,i.unionType==="and"){if(!t)return false}else if(t)return true;return t}function ee(i){let t=o(i.value),e;switch(t&&typeof t=="object"&&"type"in t?e=o(t):e=t,i.storageType){case "flagStorage":storage.setFlag(i.key,i.value);break;case "storage":storage.setVariable(i.key,e);break;case "tempstorage":storage.setTempVariable(i.key,e);break;case "params":let a=storage.getVariable(`${E}${narration.openedLabels.length-1}`)||[];a&&a.length-1>=i.key&&(a[i.key]=e),storage.setTempVariable(`${E}${narration.openedLabels.length-1}`,a);break}}function o(i){let t=de(i);if(t&&typeof t=="object"&&"type"in t)switch(t.type){case "value":return ye(t);case "arithmetic":case "arithmeticsingle":return Te(t);case "compare":case "valueCondition":case "union":return he(t)}return t}function Te(i){let t=o(i.leftValue);switch(i.type){case "arithmetic":let e=o(i.rightValue);switch(i.operator){case "*":return t*e;case "/":return t/e;case "+":return t+e;case "-":return t-e;case "%":return t%e;case "POW":return Math.pow(t,e);case "RANDOM":return narration.getRandomNumber(t,e)}case "arithmeticsingle":switch(i.operator){case "INT":return parseInt(t);case "FLOOR":return Math.floor(t);case "FLOAT":return parseFloat(t)}break}}async function te(i){let t=o(i);if(t)switch(t.type){case "assets":switch(t.operationType){case "load":await Assets.load(t.assets);break}break}}async function K(i,t){let e=o(i);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 z(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 z(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 z(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(t){let c="";e.values.forEach(h=>{if(typeof h=="string")c+=h;else {let f=o(h);c+=`${f}`;}});let u=await t(c);u&&await K(u,t);}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 z(i,t){if(t.transition)switch(t.transition.type){case "fade":await showWithFadeTransition(t.alias,i,t.transition.props,t.transition.priority);break;case "dissolve":await showWithDissolveTransition(t.alias,i,t.transition.props,t.transition.priority);break;case "movein":case "moveout":await moveIn(t.alias,i,t.transition.props,t.transition.priority);break;case "zoomin":case "zoomout":await zoomIn(t.alias,i,t.transition.props,t.transition.priority);break;case "pushin":case "pushout":await pushIn(t.alias,i,t.transition.props,t.transition.priority);break}else await i.load(),canvas.add(t.alias,i);}function B(i){if(i.transition)switch(i.transition.type){case "fade":removeWithFadeTransition(i.alias,i.transition.props,i.transition.priority);break;case "dissolve":removeWithDissolveTransition(i.alias,i.transition.props,i.transition.priority);break;case "movein":case "moveout":moveOut(i.alias,i.transition.props,i.transition.priority);break;case "zoomin":case "zoomout":zoomOut(i.alias,i.transition.props,i.transition.priority);break;case "pushin":case "pushout":pushOut(i.alias,i.transition.props,i.transition.priority);break}else canvas.remove(i.alias);}var F=class extends LabelAbstract{constructor(t,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=>te(u));await Promise.all(c);}}},super(t,a),this._steps=e,this.operationStringConvert=r.operationStringConvert,this.skipEmptyDialogs=r.skipEmptyDialogs||false;}_steps;get steps(){return this._steps.map(t=>this.stepConverter(t))}operationStringConvert;skipEmptyDialogs=false;getStepSha1(t){if(t<0||t>=this.steps.length)return;let e=this._steps[t];return (0, ne.default)(e.toString().toLocaleLowerCase()).toString()}getDialogueText(t){let e="";if(Array.isArray(t)){let a=[];t.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(t)||"";a&&!Array.isArray(a)&&typeof a=="object"&&(a=o(a)||""),e=a;}return `${e}`}getDialogue(t){if(t==null)return;let e=o(t);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(t){return o(t)?.map(r=>o(r)).filter(r=>r!==void 0)}stepConverter(t){return async e=>{let a;if(typeof t=="function"?a=t():a=t,a=k(a),a.operations)for(let f of a.operations)await K(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{F as LabelJson};