@drincs/pixi-vn-ink 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -186,7 +186,6 @@ function getLabel(items, labelKey, labelSteps, subLabels, shareData, isNewLine =
186
186
  ) {
187
187
  let endOfLabel = v["->"].substring(9);
188
188
  labelIdToOpen = labelKey.split(CHOISE_LABEL_KEY_SEPARATOR)[0] + CHOISE_LABEL_KEY_SEPARATOR + endOfLabel;
189
- goNextStep = true;
190
189
  } else if (
191
190
  // if there are a sub label "=label"
192
191
  new RegExp(/^\.\^\.\^\.\^\..*$/).test(v["->"]) && labelKey.includes(CHOISE_LABEL_KEY_SEPARATOR)
@@ -199,7 +198,6 @@ function getLabel(items, labelKey, labelSteps, subLabels, shareData, isNewLine =
199
198
  ) {
200
199
  let endOfLabel = v["->"].substring(3);
201
200
  labelIdToOpen = labelKey + CHOISE_LABEL_KEY_SEPARATOR + endOfLabel;
202
- goNextStep = true;
203
201
  }
204
202
  labelSteps.push({
205
203
  labelToOpen: {
@@ -253,6 +251,7 @@ function getLabel(items, labelKey, labelSteps, subLabels, shareData, isNewLine =
253
251
  if (labelKey.includes(CHOISE_LABEL_KEY_SEPARATOR) && labelSteps.length == 2 && labelSteps[0].dialog == " " && labelSteps[1].labelToOpen) {
254
252
  labelSteps.shift();
255
253
  labelSteps[0].glueEnabled = void 0;
254
+ labelSteps[0].goNextStep = void 0;
256
255
  }
257
256
  }
258
257
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/constant.ts","../../src/functions/utility.ts","../../src/functions/ChoiceInfoConverter.ts","../../src/functions/StoryInfoConverter.ts","../../src/functions/InkToPixivn.ts","../../src/functions/Importer.ts"],"names":["Compiler","importPixiVNJson"],"mappings":"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","file":"Importer.js","sourcesContent":["export const CHOISE_LABEL_KEY_SEPARATOR = \"_|_\"\n","export function unionStringOrArray(start: string | string[] = \"\", end: string | string[] = \"\"): string[] {\n const startArray = Array.isArray(start) ? start : [start];\n const endArray = Array.isArray(end) ? end : [end];\n return [...new Set([...startArray, ...endArray])];\n}","import LabelChoiceRes from '../types/LabelChoiceRes';\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\nimport { unionStringOrArray } from './utility';\n\nexport function getLabelChoice(items: any[], result: LabelChoiceRes, lastLabel?: string) {\n let text: string = \"\"\n let label: string = \"\"\n let preDialog: string = \"\"\n for (let index = 0; index < items.length; index++) {\n let v = items[index]\n if (typeof v === \"string\") {\n // Dialog\n if (v.startsWith(\"^\")) {\n text = v.substring(1)\n }\n }\n else if (v && typeof v === \"object\") {\n // if is a choice\n if (\"*\" in v && typeof v[\"*\"] && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\n let l = \"c\" + v[\"*\"].split(\"c\")[1]\n label = l\n }\n // if is choise info\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\n let t = findChoiceText(v[\"s\"])\n if (t) {\n if (lastLabel && result[lastLabel]) {\n result[lastLabel].preDialog = { text: t }\n result[lastLabel].text = unionStringOrArray(t, result[lastLabel].text)\n }\n else {\n text = t\n preDialog = t\n }\n }\n }\n }\n if (text && label) {\n if (result[label]) {\n result[label].text = unionStringOrArray(text, result[label].text)\n }\n else {\n result[label] = { text: text }\n }\n if (preDialog) {\n result[label].preDialog = { text: preDialog }\n }\n // split text and label\n let newListItem = items.slice(index + 1)\n getLabelChoice(newListItem, result, label)\n return\n }\n }\n}\n\nfunction findChoiceText(items: RootParserItemType[]): string | undefined {\n for (const item of items) {\n if (typeof item === \"string\") {\n if (item.startsWith(\"^\")) {\n return item.substring(1)\n }\n }\n else if (item instanceof Array) {\n let res = findChoiceText(item)\n if (res) {\n return res\n }\n }\n }\n}\n","import { LabelJsonType, StepLabelJsonType } from '@drincs/pixi-vn';\nimport { CHOISE_LABEL_KEY_SEPARATOR } from '../constant';\nimport InkRootType from '../types/InkRootType';\nimport LabelChoiceRes from '../types/LabelChoiceRes';\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\nimport { getLabelChoice } from './ChoiceInfoConverter';\nimport { unionStringOrArray } from './utility';\n\nexport function getInkLabel(story: InkRootType[]): LabelJsonType | undefined {\n try {\n let label: LabelJsonType = {}\n\n findLabel(story, label)\n\n return label;\n } catch (e) {\n console.error(\"[Pixi’VN Ink] Error parsing ink file\", e)\n }\n}\n\nfunction findLabel(story: RootParserItemType[], labels: LabelJsonType) {\n for (const storyItem of story) {\n if (storyItem) {\n if (storyItem instanceof Array) {\n findLabel(storyItem, labels)\n }\n else if (typeof storyItem === \"object\") {\n addLabels(storyItem, labels)\n }\n }\n }\n}\n\nfunction addLabels(storyItem: object, result: LabelJsonType, dadLabelKey: string = \"\", shareData: ShareData = { preDialog: {} }) {\n if (storyItem === null) {\n return\n }\n // for value and key in item\n for (const [key, value] of Object.entries(storyItem)) {\n // if value is an array\n if (value instanceof Array) {\n let labels: StepLabelJsonType[] = []\n let subLabels: LabelJsonType = {}\n let labelName = (dadLabelKey ? dadLabelKey + CHOISE_LABEL_KEY_SEPARATOR : \"\") + key\n getLabel(value, labelName, labels, subLabels, shareData)\n for (const [subKey, subValue] of Object.entries(subLabels)) {\n result[subKey] = subValue\n }\n if (labels.length > 0) {\n result[labelName] = labels\n }\n }\n }\n}\n\ntype ShareData = {\n preDialog: { [label: string]: { text: string } }\n}\nfunction getLabel(items: any[], labelKey: string, labelSteps: StepLabelJsonType[], subLabels: LabelJsonType, shareData: ShareData, isNewLine: boolean = true) {\n let isInEnv = false\n let envList: any[] = []\n if (shareData.preDialog[labelKey]) {\n labelSteps.push({\n dialog: shareData.preDialog[labelKey].text\n })\n delete shareData.preDialog[labelKey]\n isNewLine = false\n }\n items.forEach((v) => {\n if (isInEnv) {\n envList.push(v)\n if (typeof v === \"string\" && v == \"/ev\") {\n isInEnv = false\n }\n }\n else if (typeof v === \"string\") {\n // Dialog\n if (v.startsWith(\"^\")) {\n if (!isNewLine && labelSteps.length > 0) {\n // in this case: <> text\n if (labelSteps[labelSteps.length - 1].glueEnabled) {\n labelSteps.push({\n dialog: v.substring(1)\n })\n } else {\n let newDialog = labelSteps[labelSteps.length - 1].dialog\n // if is a string or an array\n if (typeof newDialog === \"string\" || newDialog instanceof Array || !newDialog) {\n labelSteps[labelSteps.length - 1].dialog = unionStringOrArray(newDialog, v.substring(1))\n }\n else {\n newDialog.text = unionStringOrArray(newDialog.text, v.substring(1))\n labelSteps[labelSteps.length - 1].dialog = newDialog\n }\n }\n } else {\n labelSteps.push({\n dialog: v.substring(1)\n })\n }\n isNewLine = false\n }\n else if (v == \"ev\") {\n isInEnv = true\n }\n else if (v == \"\\n\") {\n isNewLine = true\n }\n else if (v == \"done\") {\n labelSteps.push({\n end: \"label_end\"\n })\n isNewLine = false\n }\n else if (v == \"end\") {\n labelSteps.push({\n end: \"game_end\"\n })\n isNewLine = false\n }\n else if (v == \"<>\") {\n labelSteps.push({\n glueEnabled: true,\n goNextStep: true,\n })\n isNewLine = false\n }\n }\n else if (v instanceof Array) {\n getLabel(v, labelKey, labelSteps, subLabels, shareData, isNewLine)\n }\n else if (v && typeof v === \"object\") {\n if (\"->\" in v && typeof v[\"->\"] === \"string\"\n // {->: '.^.^.2.s'}\n && !(new RegExp(/^\\.\\^\\.\\^\\.\\d\\.s$/)).test(v[\"->\"])\n ) {\n let labelIdToOpen = v[\"->\"]\n let glueEnabled = isNewLine ? undefined : true\n let goNextStep = isNewLine ? undefined : true\n if (\n // if there are a sub label \"=label\"\n (new RegExp(/^\\.\\^\\.\\^\\.\\^\\.\\^\\..*$/)).test(v[\"->\"])\n && labelKey\n ) {\n let endOfLabel = v[\"->\"].substring(9)\n labelIdToOpen = labelKey.split(CHOISE_LABEL_KEY_SEPARATOR)[0] + CHOISE_LABEL_KEY_SEPARATOR + endOfLabel\n goNextStep = true\n }\n else if (\n // if there are a sub label \"=label\"\n (new RegExp(/^\\.\\^\\.\\^\\.\\^\\..*$/)).test(v[\"->\"])\n && labelKey.includes(CHOISE_LABEL_KEY_SEPARATOR)\n ) {\n let endOfLabel = v[\"->\"].substring(7)\n labelIdToOpen = labelKey.split(CHOISE_LABEL_KEY_SEPARATOR)[0] + CHOISE_LABEL_KEY_SEPARATOR + endOfLabel\n }\n else if (\n // if there are a sub label \"=label\"\n (new RegExp(/^\\.\\^\\..*$/)).test(v[\"->\"])\n && labelKey\n ) {\n let endOfLabel = v[\"->\"].substring(3)\n labelIdToOpen = labelKey + CHOISE_LABEL_KEY_SEPARATOR + endOfLabel\n goNextStep = true\n }\n labelSteps.push({\n labelToOpen: {\n labelId: labelIdToOpen,\n type: \"call\",\n },\n glueEnabled: glueEnabled,\n goNextStep: goNextStep,\n })\n isNewLine = false\n }\n else if (\"*\" in v && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\n envList.push(v)\n isNewLine = false\n }\n // if is choise info\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\n envList.push(v)\n isNewLine = false\n }\n else {\n addLabels(v, subLabels, labelKey, shareData)\n }\n }\n })\n if (envList.length > 0) {\n let choices: LabelChoiceRes = {}\n getLabelChoice(envList, choices)\n for (const [key, value] of Object.entries(choices)) {\n let newKey = labelKey + CHOISE_LABEL_KEY_SEPARATOR + key\n // if last step is choice\n if (labelSteps.length > 0 && \"choices\" in labelSteps[labelSteps.length - 1]) {\n labelSteps[labelSteps.length - 1].choices?.push({\n text: value.text,\n label: newKey,\n props: {},\n type: \"call\"\n })\n }\n else {\n labelSteps.push({\n choices: [{\n text: value.text,\n label: newKey,\n props: {},\n type: \"call\"\n }]\n })\n }\n if (value.preDialog) {\n shareData.preDialog[newKey] = {\n text: value.preDialog.text\n }\n }\n }\n }\n // * [Open the gate] -> paragraph_2\n if (labelKey.includes(CHOISE_LABEL_KEY_SEPARATOR) && labelSteps.length == 2\n && labelSteps[0].dialog == \" \" && labelSteps[1].labelToOpen\n ) {\n // remove first step\n labelSteps.shift()\n labelSteps[0].glueEnabled = undefined\n }\n}\n","import { PixiVNJson } from \"@drincs/pixi-vn\";\nimport { Compiler } from \"inkjs/compiler/Compiler\";\nimport InkStoryType from \"../types/InkStoryType\";\nimport { getInkLabel } from \"./StoryInfoConverter\";\n\n/**\n * This function converts string written in ink language into the LabelJsonType.\n * @param text string or array of strings written in ink language\n * @returns LabelJsonType or undefined\n */\nexport function convertInkText(text: string): PixiVNJson | undefined {\n let result: PixiVNJson = {}\n let json = convertorInkToJson(text);\n let obj: InkStoryType\n try {\n obj = JSON.parse(json);\n } catch (e) {\n console.error(\"[Pixi’VN Ink] Error parsing ink file\", e)\n return\n }\n\n result.labels = getInkLabel(obj.root)\n\n return result\n}\n\nfunction convertorInkToJson(test: string): string {\n try {\n const story = new Compiler(test).Compile();\n let json = story.ToJson();\n return json || \"\";\n } catch (e) {\n console.error(\"[Pixi’VN] Error compiling ink file\", e)\n return \"\"\n }\n}\n","import { importPixiVNJson } from \"@drincs/pixi-vn\";\nimport { convertInkText } from \"./InkToPixivn\";\n\n/**\n * This function imports string or array of strings written in ink language into the Pixi’VN engine.\n * @example\n * ```ts\n * import { importInkText } from 'pixi-vn'\n * importInkText(`\n * === back_in_london ===\n * Hello, World!\n * `)\n * \n * GameStepManager.callLabel(\"back_in_london\", {})\n * ```\n * @param text string or array of strings written in ink language\n * @returns \n */\nexport function importInkText(text: string | string[]) {\n // if is array\n if (Array.isArray(text)) {\n text.forEach((t) => {\n importInkText(t)\n })\n return\n }\n let data = convertInkText(text)\n if (data) {\n {\n importPixiVNJson(data)\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/constant.ts","../../src/functions/utility.ts","../../src/functions/ChoiceInfoConverter.ts","../../src/functions/StoryInfoConverter.ts","../../src/functions/InkToPixivn.ts","../../src/functions/Importer.ts"],"names":["Compiler","importPixiVNJson"],"mappings":"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","file":"Importer.js","sourcesContent":["export const CHOISE_LABEL_KEY_SEPARATOR = \"_|_\"\n","export function unionStringOrArray(start: string | string[] = \"\", end: string | string[] = \"\"): string[] {\n const startArray = Array.isArray(start) ? start : [start];\n const endArray = Array.isArray(end) ? end : [end];\n return [...new Set([...startArray, ...endArray])];\n}","import LabelChoiceRes from '../types/LabelChoiceRes';\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\nimport { unionStringOrArray } from './utility';\n\nexport function getLabelChoice(items: any[], result: LabelChoiceRes, lastLabel?: string) {\n let text: string = \"\"\n let label: string = \"\"\n let preDialog: string = \"\"\n for (let index = 0; index < items.length; index++) {\n let v = items[index]\n if (typeof v === \"string\") {\n // Dialog\n if (v.startsWith(\"^\")) {\n text = v.substring(1)\n }\n }\n else if (v && typeof v === \"object\") {\n // if is a choice\n if (\"*\" in v && typeof v[\"*\"] && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\n let l = \"c\" + v[\"*\"].split(\"c\")[1]\n label = l\n }\n // if is choise info\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\n let t = findChoiceText(v[\"s\"])\n if (t) {\n if (lastLabel && result[lastLabel]) {\n result[lastLabel].preDialog = { text: t }\n result[lastLabel].text = unionStringOrArray(t, result[lastLabel].text)\n }\n else {\n text = t\n preDialog = t\n }\n }\n }\n }\n if (text && label) {\n if (result[label]) {\n result[label].text = unionStringOrArray(text, result[label].text)\n }\n else {\n result[label] = { text: text }\n }\n if (preDialog) {\n result[label].preDialog = { text: preDialog }\n }\n // split text and label\n let newListItem = items.slice(index + 1)\n getLabelChoice(newListItem, result, label)\n return\n }\n }\n}\n\nfunction findChoiceText(items: RootParserItemType[]): string | undefined {\n for (const item of items) {\n if (typeof item === \"string\") {\n if (item.startsWith(\"^\")) {\n return item.substring(1)\n }\n }\n else if (item instanceof Array) {\n let res = findChoiceText(item)\n if (res) {\n return res\n }\n }\n }\n}\n","import { LabelJsonType, StepLabelJsonType } from '@drincs/pixi-vn';\nimport { CHOISE_LABEL_KEY_SEPARATOR } from '../constant';\nimport InkRootType from '../types/InkRootType';\nimport LabelChoiceRes from '../types/LabelChoiceRes';\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\nimport { getLabelChoice } from './ChoiceInfoConverter';\nimport { unionStringOrArray } from './utility';\n\nexport function getInkLabel(story: InkRootType[]): LabelJsonType | undefined {\n try {\n let label: LabelJsonType = {}\n\n findLabel(story, label)\n\n return label;\n } catch (e) {\n console.error(\"[Pixi’VN Ink] Error parsing ink file\", e)\n }\n}\n\nfunction findLabel(story: RootParserItemType[], labels: LabelJsonType) {\n for (const storyItem of story) {\n if (storyItem) {\n if (storyItem instanceof Array) {\n findLabel(storyItem, labels)\n }\n else if (typeof storyItem === \"object\") {\n addLabels(storyItem, labels)\n }\n }\n }\n}\n\nfunction addLabels(storyItem: object, result: LabelJsonType, dadLabelKey: string = \"\", shareData: ShareData = { preDialog: {} }) {\n if (storyItem === null) {\n return\n }\n // for value and key in item\n for (const [key, value] of Object.entries(storyItem)) {\n // if value is an array\n if (value instanceof Array) {\n let labels: StepLabelJsonType[] = []\n let subLabels: LabelJsonType = {}\n let labelName = (dadLabelKey ? dadLabelKey + CHOISE_LABEL_KEY_SEPARATOR : \"\") + key\n getLabel(value, labelName, labels, subLabels, shareData)\n for (const [subKey, subValue] of Object.entries(subLabels)) {\n result[subKey] = subValue\n }\n if (labels.length > 0) {\n result[labelName] = labels\n }\n }\n }\n}\n\ntype ShareData = {\n preDialog: { [label: string]: { text: string } }\n}\nfunction getLabel(items: any[], labelKey: string, labelSteps: StepLabelJsonType[], subLabels: LabelJsonType, shareData: ShareData, isNewLine: boolean = true) {\n let isInEnv = false\n let envList: any[] = []\n if (shareData.preDialog[labelKey]) {\n labelSteps.push({\n dialog: shareData.preDialog[labelKey].text\n })\n delete shareData.preDialog[labelKey]\n isNewLine = false\n }\n items.forEach((v) => {\n if (isInEnv) {\n envList.push(v)\n if (typeof v === \"string\" && v == \"/ev\") {\n isInEnv = false\n }\n }\n else if (typeof v === \"string\") {\n // Dialog\n if (v.startsWith(\"^\")) {\n if (!isNewLine && labelSteps.length > 0) {\n // in this case: <> text\n if (labelSteps[labelSteps.length - 1].glueEnabled) {\n labelSteps.push({\n dialog: v.substring(1)\n })\n } else {\n let newDialog = labelSteps[labelSteps.length - 1].dialog\n // if is a string or an array\n if (typeof newDialog === \"string\" || newDialog instanceof Array || !newDialog) {\n labelSteps[labelSteps.length - 1].dialog = unionStringOrArray(newDialog, v.substring(1))\n }\n else {\n newDialog.text = unionStringOrArray(newDialog.text, v.substring(1))\n labelSteps[labelSteps.length - 1].dialog = newDialog\n }\n }\n } else {\n labelSteps.push({\n dialog: v.substring(1)\n })\n }\n isNewLine = false\n }\n else if (v == \"ev\") {\n isInEnv = true\n }\n else if (v == \"\\n\") {\n isNewLine = true\n }\n else if (v == \"done\") {\n labelSteps.push({\n end: \"label_end\"\n })\n isNewLine = false\n }\n else if (v == \"end\") {\n labelSteps.push({\n end: \"game_end\"\n })\n isNewLine = false\n }\n else if (v == \"<>\") {\n labelSteps.push({\n glueEnabled: true,\n goNextStep: true,\n })\n isNewLine = false\n }\n }\n else if (v instanceof Array) {\n getLabel(v, labelKey, labelSteps, subLabels, shareData, isNewLine)\n }\n else if (v && typeof v === \"object\") {\n if (\"->\" in v && typeof v[\"->\"] === \"string\"\n // {->: '.^.^.2.s'}\n && !(new RegExp(/^\\.\\^\\.\\^\\.\\d\\.s$/)).test(v[\"->\"])\n ) {\n let labelIdToOpen = v[\"->\"]\n let glueEnabled = isNewLine ? undefined : true\n let goNextStep = isNewLine ? undefined : true\n if (\n // if there are a sub label \"=label\"\n (new RegExp(/^\\.\\^\\.\\^\\.\\^\\.\\^\\..*$/)).test(v[\"->\"])\n && labelKey\n ) {\n let endOfLabel = v[\"->\"].substring(9)\n labelIdToOpen = labelKey.split(CHOISE_LABEL_KEY_SEPARATOR)[0] + CHOISE_LABEL_KEY_SEPARATOR + endOfLabel\n }\n else if (\n // if there are a sub label \"=label\"\n (new RegExp(/^\\.\\^\\.\\^\\.\\^\\..*$/)).test(v[\"->\"])\n && labelKey.includes(CHOISE_LABEL_KEY_SEPARATOR)\n ) {\n let endOfLabel = v[\"->\"].substring(7)\n labelIdToOpen = labelKey.split(CHOISE_LABEL_KEY_SEPARATOR)[0] + CHOISE_LABEL_KEY_SEPARATOR + endOfLabel\n }\n else if (\n // if there are a sub label \"=label\"\n (new RegExp(/^\\.\\^\\..*$/)).test(v[\"->\"])\n && labelKey\n ) {\n let endOfLabel = v[\"->\"].substring(3)\n labelIdToOpen = labelKey + CHOISE_LABEL_KEY_SEPARATOR + endOfLabel\n }\n labelSteps.push({\n labelToOpen: {\n labelId: labelIdToOpen,\n type: \"call\",\n },\n glueEnabled: glueEnabled,\n goNextStep: goNextStep,\n })\n isNewLine = false\n }\n else if (\"*\" in v && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\n envList.push(v)\n isNewLine = false\n }\n // if is choise info\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\n envList.push(v)\n isNewLine = false\n }\n else {\n addLabels(v, subLabels, labelKey, shareData)\n }\n }\n })\n if (envList.length > 0) {\n let choices: LabelChoiceRes = {}\n getLabelChoice(envList, choices)\n for (const [key, value] of Object.entries(choices)) {\n let newKey = labelKey + CHOISE_LABEL_KEY_SEPARATOR + key\n // if last step is choice\n if (labelSteps.length > 0 && \"choices\" in labelSteps[labelSteps.length - 1]) {\n labelSteps[labelSteps.length - 1].choices?.push({\n text: value.text,\n label: newKey,\n props: {},\n type: \"call\"\n })\n }\n else {\n labelSteps.push({\n choices: [{\n text: value.text,\n label: newKey,\n props: {},\n type: \"call\"\n }]\n })\n }\n if (value.preDialog) {\n shareData.preDialog[newKey] = {\n text: value.preDialog.text\n }\n }\n }\n }\n // * [Open the gate] -> paragraph_2\n if (labelKey.includes(CHOISE_LABEL_KEY_SEPARATOR) && labelSteps.length == 2\n && labelSteps[0].dialog == \" \" && labelSteps[1].labelToOpen\n ) {\n // remove first step\n labelSteps.shift()\n labelSteps[0].glueEnabled = undefined\n labelSteps[0].goNextStep = undefined\n }\n}\n","import { PixiVNJson } from \"@drincs/pixi-vn\";\nimport { Compiler } from \"inkjs/compiler/Compiler\";\nimport InkStoryType from \"../types/InkStoryType\";\nimport { getInkLabel } from \"./StoryInfoConverter\";\n\n/**\n * This function converts string written in ink language into the LabelJsonType.\n * @param text string or array of strings written in ink language\n * @returns LabelJsonType or undefined\n */\nexport function convertInkText(text: string): PixiVNJson | undefined {\n let result: PixiVNJson = {}\n let json = convertorInkToJson(text);\n let obj: InkStoryType\n try {\n obj = JSON.parse(json);\n } catch (e) {\n console.error(\"[Pixi’VN Ink] Error parsing ink file\", e)\n return\n }\n\n result.labels = getInkLabel(obj.root)\n\n return result\n}\n\nfunction convertorInkToJson(test: string): string {\n try {\n const story = new Compiler(test).Compile();\n let json = story.ToJson();\n return json || \"\";\n } catch (e) {\n console.error(\"[Pixi’VN] Error compiling ink file\", e)\n return \"\"\n }\n}\n","import { importPixiVNJson } from \"@drincs/pixi-vn\";\nimport { convertInkText } from \"./InkToPixivn\";\n\n/**\n * This function imports string or array of strings written in ink language into the Pixi’VN engine.\n * @example\n * ```ts\n * import { importInkText } from 'pixi-vn'\n * importInkText(`\n * === back_in_london ===\n * Hello, World!\n * `)\n * \n * GameStepManager.callLabel(\"back_in_london\", {})\n * ```\n * @param text string or array of strings written in ink language\n * @returns \n */\nexport function importInkText(text: string | string[]) {\n // if is array\n if (Array.isArray(text)) {\n text.forEach((t) => {\n importInkText(t)\n })\n return\n }\n let data = convertInkText(text)\n if (data) {\n {\n importPixiVNJson(data)\n }\n }\n}\n"]}
@@ -184,7 +184,6 @@ function getLabel(items, labelKey, labelSteps, subLabels, shareData, isNewLine =
184
184
  ) {
185
185
  let endOfLabel = v["->"].substring(9);
186
186
  labelIdToOpen = labelKey.split(CHOISE_LABEL_KEY_SEPARATOR)[0] + CHOISE_LABEL_KEY_SEPARATOR + endOfLabel;
187
- goNextStep = true;
188
187
  } else if (
189
188
  // if there are a sub label "=label"
190
189
  new RegExp(/^\.\^\.\^\.\^\..*$/).test(v["->"]) && labelKey.includes(CHOISE_LABEL_KEY_SEPARATOR)
@@ -197,7 +196,6 @@ function getLabel(items, labelKey, labelSteps, subLabels, shareData, isNewLine =
197
196
  ) {
198
197
  let endOfLabel = v["->"].substring(3);
199
198
  labelIdToOpen = labelKey + CHOISE_LABEL_KEY_SEPARATOR + endOfLabel;
200
- goNextStep = true;
201
199
  }
202
200
  labelSteps.push({
203
201
  labelToOpen: {
@@ -251,6 +249,7 @@ function getLabel(items, labelKey, labelSteps, subLabels, shareData, isNewLine =
251
249
  if (labelKey.includes(CHOISE_LABEL_KEY_SEPARATOR) && labelSteps.length == 2 && labelSteps[0].dialog == " " && labelSteps[1].labelToOpen) {
252
250
  labelSteps.shift();
253
251
  labelSteps[0].glueEnabled = void 0;
252
+ labelSteps[0].goNextStep = void 0;
254
253
  }
255
254
  }
256
255
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/constant.ts","../../src/functions/utility.ts","../../src/functions/ChoiceInfoConverter.ts","../../src/functions/StoryInfoConverter.ts","../../src/functions/InkToPixivn.ts","../../src/functions/Importer.ts"],"names":[],"mappings":"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","file":"Importer.mjs","sourcesContent":["export const CHOISE_LABEL_KEY_SEPARATOR = \"_|_\"\n","export function unionStringOrArray(start: string | string[] = \"\", end: string | string[] = \"\"): string[] {\n const startArray = Array.isArray(start) ? start : [start];\n const endArray = Array.isArray(end) ? end : [end];\n return [...new Set([...startArray, ...endArray])];\n}","import LabelChoiceRes from '../types/LabelChoiceRes';\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\nimport { unionStringOrArray } from './utility';\n\nexport function getLabelChoice(items: any[], result: LabelChoiceRes, lastLabel?: string) {\n let text: string = \"\"\n let label: string = \"\"\n let preDialog: string = \"\"\n for (let index = 0; index < items.length; index++) {\n let v = items[index]\n if (typeof v === \"string\") {\n // Dialog\n if (v.startsWith(\"^\")) {\n text = v.substring(1)\n }\n }\n else if (v && typeof v === \"object\") {\n // if is a choice\n if (\"*\" in v && typeof v[\"*\"] && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\n let l = \"c\" + v[\"*\"].split(\"c\")[1]\n label = l\n }\n // if is choise info\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\n let t = findChoiceText(v[\"s\"])\n if (t) {\n if (lastLabel && result[lastLabel]) {\n result[lastLabel].preDialog = { text: t }\n result[lastLabel].text = unionStringOrArray(t, result[lastLabel].text)\n }\n else {\n text = t\n preDialog = t\n }\n }\n }\n }\n if (text && label) {\n if (result[label]) {\n result[label].text = unionStringOrArray(text, result[label].text)\n }\n else {\n result[label] = { text: text }\n }\n if (preDialog) {\n result[label].preDialog = { text: preDialog }\n }\n // split text and label\n let newListItem = items.slice(index + 1)\n getLabelChoice(newListItem, result, label)\n return\n }\n }\n}\n\nfunction findChoiceText(items: RootParserItemType[]): string | undefined {\n for (const item of items) {\n if (typeof item === \"string\") {\n if (item.startsWith(\"^\")) {\n return item.substring(1)\n }\n }\n else if (item instanceof Array) {\n let res = findChoiceText(item)\n if (res) {\n return res\n }\n }\n }\n}\n","import { LabelJsonType, StepLabelJsonType } from '@drincs/pixi-vn';\nimport { CHOISE_LABEL_KEY_SEPARATOR } from '../constant';\nimport InkRootType from '../types/InkRootType';\nimport LabelChoiceRes from '../types/LabelChoiceRes';\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\nimport { getLabelChoice } from './ChoiceInfoConverter';\nimport { unionStringOrArray } from './utility';\n\nexport function getInkLabel(story: InkRootType[]): LabelJsonType | undefined {\n try {\n let label: LabelJsonType = {}\n\n findLabel(story, label)\n\n return label;\n } catch (e) {\n console.error(\"[Pixi’VN Ink] Error parsing ink file\", e)\n }\n}\n\nfunction findLabel(story: RootParserItemType[], labels: LabelJsonType) {\n for (const storyItem of story) {\n if (storyItem) {\n if (storyItem instanceof Array) {\n findLabel(storyItem, labels)\n }\n else if (typeof storyItem === \"object\") {\n addLabels(storyItem, labels)\n }\n }\n }\n}\n\nfunction addLabels(storyItem: object, result: LabelJsonType, dadLabelKey: string = \"\", shareData: ShareData = { preDialog: {} }) {\n if (storyItem === null) {\n return\n }\n // for value and key in item\n for (const [key, value] of Object.entries(storyItem)) {\n // if value is an array\n if (value instanceof Array) {\n let labels: StepLabelJsonType[] = []\n let subLabels: LabelJsonType = {}\n let labelName = (dadLabelKey ? dadLabelKey + CHOISE_LABEL_KEY_SEPARATOR : \"\") + key\n getLabel(value, labelName, labels, subLabels, shareData)\n for (const [subKey, subValue] of Object.entries(subLabels)) {\n result[subKey] = subValue\n }\n if (labels.length > 0) {\n result[labelName] = labels\n }\n }\n }\n}\n\ntype ShareData = {\n preDialog: { [label: string]: { text: string } }\n}\nfunction getLabel(items: any[], labelKey: string, labelSteps: StepLabelJsonType[], subLabels: LabelJsonType, shareData: ShareData, isNewLine: boolean = true) {\n let isInEnv = false\n let envList: any[] = []\n if (shareData.preDialog[labelKey]) {\n labelSteps.push({\n dialog: shareData.preDialog[labelKey].text\n })\n delete shareData.preDialog[labelKey]\n isNewLine = false\n }\n items.forEach((v) => {\n if (isInEnv) {\n envList.push(v)\n if (typeof v === \"string\" && v == \"/ev\") {\n isInEnv = false\n }\n }\n else if (typeof v === \"string\") {\n // Dialog\n if (v.startsWith(\"^\")) {\n if (!isNewLine && labelSteps.length > 0) {\n // in this case: <> text\n if (labelSteps[labelSteps.length - 1].glueEnabled) {\n labelSteps.push({\n dialog: v.substring(1)\n })\n } else {\n let newDialog = labelSteps[labelSteps.length - 1].dialog\n // if is a string or an array\n if (typeof newDialog === \"string\" || newDialog instanceof Array || !newDialog) {\n labelSteps[labelSteps.length - 1].dialog = unionStringOrArray(newDialog, v.substring(1))\n }\n else {\n newDialog.text = unionStringOrArray(newDialog.text, v.substring(1))\n labelSteps[labelSteps.length - 1].dialog = newDialog\n }\n }\n } else {\n labelSteps.push({\n dialog: v.substring(1)\n })\n }\n isNewLine = false\n }\n else if (v == \"ev\") {\n isInEnv = true\n }\n else if (v == \"\\n\") {\n isNewLine = true\n }\n else if (v == \"done\") {\n labelSteps.push({\n end: \"label_end\"\n })\n isNewLine = false\n }\n else if (v == \"end\") {\n labelSteps.push({\n end: \"game_end\"\n })\n isNewLine = false\n }\n else if (v == \"<>\") {\n labelSteps.push({\n glueEnabled: true,\n goNextStep: true,\n })\n isNewLine = false\n }\n }\n else if (v instanceof Array) {\n getLabel(v, labelKey, labelSteps, subLabels, shareData, isNewLine)\n }\n else if (v && typeof v === \"object\") {\n if (\"->\" in v && typeof v[\"->\"] === \"string\"\n // {->: '.^.^.2.s'}\n && !(new RegExp(/^\\.\\^\\.\\^\\.\\d\\.s$/)).test(v[\"->\"])\n ) {\n let labelIdToOpen = v[\"->\"]\n let glueEnabled = isNewLine ? undefined : true\n let goNextStep = isNewLine ? undefined : true\n if (\n // if there are a sub label \"=label\"\n (new RegExp(/^\\.\\^\\.\\^\\.\\^\\.\\^\\..*$/)).test(v[\"->\"])\n && labelKey\n ) {\n let endOfLabel = v[\"->\"].substring(9)\n labelIdToOpen = labelKey.split(CHOISE_LABEL_KEY_SEPARATOR)[0] + CHOISE_LABEL_KEY_SEPARATOR + endOfLabel\n goNextStep = true\n }\n else if (\n // if there are a sub label \"=label\"\n (new RegExp(/^\\.\\^\\.\\^\\.\\^\\..*$/)).test(v[\"->\"])\n && labelKey.includes(CHOISE_LABEL_KEY_SEPARATOR)\n ) {\n let endOfLabel = v[\"->\"].substring(7)\n labelIdToOpen = labelKey.split(CHOISE_LABEL_KEY_SEPARATOR)[0] + CHOISE_LABEL_KEY_SEPARATOR + endOfLabel\n }\n else if (\n // if there are a sub label \"=label\"\n (new RegExp(/^\\.\\^\\..*$/)).test(v[\"->\"])\n && labelKey\n ) {\n let endOfLabel = v[\"->\"].substring(3)\n labelIdToOpen = labelKey + CHOISE_LABEL_KEY_SEPARATOR + endOfLabel\n goNextStep = true\n }\n labelSteps.push({\n labelToOpen: {\n labelId: labelIdToOpen,\n type: \"call\",\n },\n glueEnabled: glueEnabled,\n goNextStep: goNextStep,\n })\n isNewLine = false\n }\n else if (\"*\" in v && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\n envList.push(v)\n isNewLine = false\n }\n // if is choise info\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\n envList.push(v)\n isNewLine = false\n }\n else {\n addLabels(v, subLabels, labelKey, shareData)\n }\n }\n })\n if (envList.length > 0) {\n let choices: LabelChoiceRes = {}\n getLabelChoice(envList, choices)\n for (const [key, value] of Object.entries(choices)) {\n let newKey = labelKey + CHOISE_LABEL_KEY_SEPARATOR + key\n // if last step is choice\n if (labelSteps.length > 0 && \"choices\" in labelSteps[labelSteps.length - 1]) {\n labelSteps[labelSteps.length - 1].choices?.push({\n text: value.text,\n label: newKey,\n props: {},\n type: \"call\"\n })\n }\n else {\n labelSteps.push({\n choices: [{\n text: value.text,\n label: newKey,\n props: {},\n type: \"call\"\n }]\n })\n }\n if (value.preDialog) {\n shareData.preDialog[newKey] = {\n text: value.preDialog.text\n }\n }\n }\n }\n // * [Open the gate] -> paragraph_2\n if (labelKey.includes(CHOISE_LABEL_KEY_SEPARATOR) && labelSteps.length == 2\n && labelSteps[0].dialog == \" \" && labelSteps[1].labelToOpen\n ) {\n // remove first step\n labelSteps.shift()\n labelSteps[0].glueEnabled = undefined\n }\n}\n","import { PixiVNJson } from \"@drincs/pixi-vn\";\nimport { Compiler } from \"inkjs/compiler/Compiler\";\nimport InkStoryType from \"../types/InkStoryType\";\nimport { getInkLabel } from \"./StoryInfoConverter\";\n\n/**\n * This function converts string written in ink language into the LabelJsonType.\n * @param text string or array of strings written in ink language\n * @returns LabelJsonType or undefined\n */\nexport function convertInkText(text: string): PixiVNJson | undefined {\n let result: PixiVNJson = {}\n let json = convertorInkToJson(text);\n let obj: InkStoryType\n try {\n obj = JSON.parse(json);\n } catch (e) {\n console.error(\"[Pixi’VN Ink] Error parsing ink file\", e)\n return\n }\n\n result.labels = getInkLabel(obj.root)\n\n return result\n}\n\nfunction convertorInkToJson(test: string): string {\n try {\n const story = new Compiler(test).Compile();\n let json = story.ToJson();\n return json || \"\";\n } catch (e) {\n console.error(\"[Pixi’VN] Error compiling ink file\", e)\n return \"\"\n }\n}\n","import { importPixiVNJson } from \"@drincs/pixi-vn\";\nimport { convertInkText } from \"./InkToPixivn\";\n\n/**\n * This function imports string or array of strings written in ink language into the Pixi’VN engine.\n * @example\n * ```ts\n * import { importInkText } from 'pixi-vn'\n * importInkText(`\n * === back_in_london ===\n * Hello, World!\n * `)\n * \n * GameStepManager.callLabel(\"back_in_london\", {})\n * ```\n * @param text string or array of strings written in ink language\n * @returns \n */\nexport function importInkText(text: string | string[]) {\n // if is array\n if (Array.isArray(text)) {\n text.forEach((t) => {\n importInkText(t)\n })\n return\n }\n let data = convertInkText(text)\n if (data) {\n {\n importPixiVNJson(data)\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/constant.ts","../../src/functions/utility.ts","../../src/functions/ChoiceInfoConverter.ts","../../src/functions/StoryInfoConverter.ts","../../src/functions/InkToPixivn.ts","../../src/functions/Importer.ts"],"names":[],"mappings":"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","file":"Importer.mjs","sourcesContent":["export const CHOISE_LABEL_KEY_SEPARATOR = \"_|_\"\n","export function unionStringOrArray(start: string | string[] = \"\", end: string | string[] = \"\"): string[] {\n const startArray = Array.isArray(start) ? start : [start];\n const endArray = Array.isArray(end) ? end : [end];\n return [...new Set([...startArray, ...endArray])];\n}","import LabelChoiceRes from '../types/LabelChoiceRes';\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\nimport { unionStringOrArray } from './utility';\n\nexport function getLabelChoice(items: any[], result: LabelChoiceRes, lastLabel?: string) {\n let text: string = \"\"\n let label: string = \"\"\n let preDialog: string = \"\"\n for (let index = 0; index < items.length; index++) {\n let v = items[index]\n if (typeof v === \"string\") {\n // Dialog\n if (v.startsWith(\"^\")) {\n text = v.substring(1)\n }\n }\n else if (v && typeof v === \"object\") {\n // if is a choice\n if (\"*\" in v && typeof v[\"*\"] && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\n let l = \"c\" + v[\"*\"].split(\"c\")[1]\n label = l\n }\n // if is choise info\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\n let t = findChoiceText(v[\"s\"])\n if (t) {\n if (lastLabel && result[lastLabel]) {\n result[lastLabel].preDialog = { text: t }\n result[lastLabel].text = unionStringOrArray(t, result[lastLabel].text)\n }\n else {\n text = t\n preDialog = t\n }\n }\n }\n }\n if (text && label) {\n if (result[label]) {\n result[label].text = unionStringOrArray(text, result[label].text)\n }\n else {\n result[label] = { text: text }\n }\n if (preDialog) {\n result[label].preDialog = { text: preDialog }\n }\n // split text and label\n let newListItem = items.slice(index + 1)\n getLabelChoice(newListItem, result, label)\n return\n }\n }\n}\n\nfunction findChoiceText(items: RootParserItemType[]): string | undefined {\n for (const item of items) {\n if (typeof item === \"string\") {\n if (item.startsWith(\"^\")) {\n return item.substring(1)\n }\n }\n else if (item instanceof Array) {\n let res = findChoiceText(item)\n if (res) {\n return res\n }\n }\n }\n}\n","import { LabelJsonType, StepLabelJsonType } from '@drincs/pixi-vn';\nimport { CHOISE_LABEL_KEY_SEPARATOR } from '../constant';\nimport InkRootType from '../types/InkRootType';\nimport LabelChoiceRes from '../types/LabelChoiceRes';\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\nimport { getLabelChoice } from './ChoiceInfoConverter';\nimport { unionStringOrArray } from './utility';\n\nexport function getInkLabel(story: InkRootType[]): LabelJsonType | undefined {\n try {\n let label: LabelJsonType = {}\n\n findLabel(story, label)\n\n return label;\n } catch (e) {\n console.error(\"[Pixi’VN Ink] Error parsing ink file\", e)\n }\n}\n\nfunction findLabel(story: RootParserItemType[], labels: LabelJsonType) {\n for (const storyItem of story) {\n if (storyItem) {\n if (storyItem instanceof Array) {\n findLabel(storyItem, labels)\n }\n else if (typeof storyItem === \"object\") {\n addLabels(storyItem, labels)\n }\n }\n }\n}\n\nfunction addLabels(storyItem: object, result: LabelJsonType, dadLabelKey: string = \"\", shareData: ShareData = { preDialog: {} }) {\n if (storyItem === null) {\n return\n }\n // for value and key in item\n for (const [key, value] of Object.entries(storyItem)) {\n // if value is an array\n if (value instanceof Array) {\n let labels: StepLabelJsonType[] = []\n let subLabels: LabelJsonType = {}\n let labelName = (dadLabelKey ? dadLabelKey + CHOISE_LABEL_KEY_SEPARATOR : \"\") + key\n getLabel(value, labelName, labels, subLabels, shareData)\n for (const [subKey, subValue] of Object.entries(subLabels)) {\n result[subKey] = subValue\n }\n if (labels.length > 0) {\n result[labelName] = labels\n }\n }\n }\n}\n\ntype ShareData = {\n preDialog: { [label: string]: { text: string } }\n}\nfunction getLabel(items: any[], labelKey: string, labelSteps: StepLabelJsonType[], subLabels: LabelJsonType, shareData: ShareData, isNewLine: boolean = true) {\n let isInEnv = false\n let envList: any[] = []\n if (shareData.preDialog[labelKey]) {\n labelSteps.push({\n dialog: shareData.preDialog[labelKey].text\n })\n delete shareData.preDialog[labelKey]\n isNewLine = false\n }\n items.forEach((v) => {\n if (isInEnv) {\n envList.push(v)\n if (typeof v === \"string\" && v == \"/ev\") {\n isInEnv = false\n }\n }\n else if (typeof v === \"string\") {\n // Dialog\n if (v.startsWith(\"^\")) {\n if (!isNewLine && labelSteps.length > 0) {\n // in this case: <> text\n if (labelSteps[labelSteps.length - 1].glueEnabled) {\n labelSteps.push({\n dialog: v.substring(1)\n })\n } else {\n let newDialog = labelSteps[labelSteps.length - 1].dialog\n // if is a string or an array\n if (typeof newDialog === \"string\" || newDialog instanceof Array || !newDialog) {\n labelSteps[labelSteps.length - 1].dialog = unionStringOrArray(newDialog, v.substring(1))\n }\n else {\n newDialog.text = unionStringOrArray(newDialog.text, v.substring(1))\n labelSteps[labelSteps.length - 1].dialog = newDialog\n }\n }\n } else {\n labelSteps.push({\n dialog: v.substring(1)\n })\n }\n isNewLine = false\n }\n else if (v == \"ev\") {\n isInEnv = true\n }\n else if (v == \"\\n\") {\n isNewLine = true\n }\n else if (v == \"done\") {\n labelSteps.push({\n end: \"label_end\"\n })\n isNewLine = false\n }\n else if (v == \"end\") {\n labelSteps.push({\n end: \"game_end\"\n })\n isNewLine = false\n }\n else if (v == \"<>\") {\n labelSteps.push({\n glueEnabled: true,\n goNextStep: true,\n })\n isNewLine = false\n }\n }\n else if (v instanceof Array) {\n getLabel(v, labelKey, labelSteps, subLabels, shareData, isNewLine)\n }\n else if (v && typeof v === \"object\") {\n if (\"->\" in v && typeof v[\"->\"] === \"string\"\n // {->: '.^.^.2.s'}\n && !(new RegExp(/^\\.\\^\\.\\^\\.\\d\\.s$/)).test(v[\"->\"])\n ) {\n let labelIdToOpen = v[\"->\"]\n let glueEnabled = isNewLine ? undefined : true\n let goNextStep = isNewLine ? undefined : true\n if (\n // if there are a sub label \"=label\"\n (new RegExp(/^\\.\\^\\.\\^\\.\\^\\.\\^\\..*$/)).test(v[\"->\"])\n && labelKey\n ) {\n let endOfLabel = v[\"->\"].substring(9)\n labelIdToOpen = labelKey.split(CHOISE_LABEL_KEY_SEPARATOR)[0] + CHOISE_LABEL_KEY_SEPARATOR + endOfLabel\n }\n else if (\n // if there are a sub label \"=label\"\n (new RegExp(/^\\.\\^\\.\\^\\.\\^\\..*$/)).test(v[\"->\"])\n && labelKey.includes(CHOISE_LABEL_KEY_SEPARATOR)\n ) {\n let endOfLabel = v[\"->\"].substring(7)\n labelIdToOpen = labelKey.split(CHOISE_LABEL_KEY_SEPARATOR)[0] + CHOISE_LABEL_KEY_SEPARATOR + endOfLabel\n }\n else if (\n // if there are a sub label \"=label\"\n (new RegExp(/^\\.\\^\\..*$/)).test(v[\"->\"])\n && labelKey\n ) {\n let endOfLabel = v[\"->\"].substring(3)\n labelIdToOpen = labelKey + CHOISE_LABEL_KEY_SEPARATOR + endOfLabel\n }\n labelSteps.push({\n labelToOpen: {\n labelId: labelIdToOpen,\n type: \"call\",\n },\n glueEnabled: glueEnabled,\n goNextStep: goNextStep,\n })\n isNewLine = false\n }\n else if (\"*\" in v && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\n envList.push(v)\n isNewLine = false\n }\n // if is choise info\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\n envList.push(v)\n isNewLine = false\n }\n else {\n addLabels(v, subLabels, labelKey, shareData)\n }\n }\n })\n if (envList.length > 0) {\n let choices: LabelChoiceRes = {}\n getLabelChoice(envList, choices)\n for (const [key, value] of Object.entries(choices)) {\n let newKey = labelKey + CHOISE_LABEL_KEY_SEPARATOR + key\n // if last step is choice\n if (labelSteps.length > 0 && \"choices\" in labelSteps[labelSteps.length - 1]) {\n labelSteps[labelSteps.length - 1].choices?.push({\n text: value.text,\n label: newKey,\n props: {},\n type: \"call\"\n })\n }\n else {\n labelSteps.push({\n choices: [{\n text: value.text,\n label: newKey,\n props: {},\n type: \"call\"\n }]\n })\n }\n if (value.preDialog) {\n shareData.preDialog[newKey] = {\n text: value.preDialog.text\n }\n }\n }\n }\n // * [Open the gate] -> paragraph_2\n if (labelKey.includes(CHOISE_LABEL_KEY_SEPARATOR) && labelSteps.length == 2\n && labelSteps[0].dialog == \" \" && labelSteps[1].labelToOpen\n ) {\n // remove first step\n labelSteps.shift()\n labelSteps[0].glueEnabled = undefined\n labelSteps[0].goNextStep = undefined\n }\n}\n","import { PixiVNJson } from \"@drincs/pixi-vn\";\nimport { Compiler } from \"inkjs/compiler/Compiler\";\nimport InkStoryType from \"../types/InkStoryType\";\nimport { getInkLabel } from \"./StoryInfoConverter\";\n\n/**\n * This function converts string written in ink language into the LabelJsonType.\n * @param text string or array of strings written in ink language\n * @returns LabelJsonType or undefined\n */\nexport function convertInkText(text: string): PixiVNJson | undefined {\n let result: PixiVNJson = {}\n let json = convertorInkToJson(text);\n let obj: InkStoryType\n try {\n obj = JSON.parse(json);\n } catch (e) {\n console.error(\"[Pixi’VN Ink] Error parsing ink file\", e)\n return\n }\n\n result.labels = getInkLabel(obj.root)\n\n return result\n}\n\nfunction convertorInkToJson(test: string): string {\n try {\n const story = new Compiler(test).Compile();\n let json = story.ToJson();\n return json || \"\";\n } catch (e) {\n console.error(\"[Pixi’VN] Error compiling ink file\", e)\n return \"\"\n }\n}\n","import { importPixiVNJson } from \"@drincs/pixi-vn\";\nimport { convertInkText } from \"./InkToPixivn\";\n\n/**\n * This function imports string or array of strings written in ink language into the Pixi’VN engine.\n * @example\n * ```ts\n * import { importInkText } from 'pixi-vn'\n * importInkText(`\n * === back_in_london ===\n * Hello, World!\n * `)\n * \n * GameStepManager.callLabel(\"back_in_london\", {})\n * ```\n * @param text string or array of strings written in ink language\n * @returns \n */\nexport function importInkText(text: string | string[]) {\n // if is array\n if (Array.isArray(text)) {\n text.forEach((t) => {\n importInkText(t)\n })\n return\n }\n let data = convertInkText(text)\n if (data) {\n {\n importPixiVNJson(data)\n }\n }\n}\n"]}
@@ -185,7 +185,6 @@ function getLabel(items, labelKey, labelSteps, subLabels, shareData, isNewLine =
185
185
  ) {
186
186
  let endOfLabel = v["->"].substring(9);
187
187
  labelIdToOpen = labelKey.split(CHOISE_LABEL_KEY_SEPARATOR)[0] + CHOISE_LABEL_KEY_SEPARATOR + endOfLabel;
188
- goNextStep = true;
189
188
  } else if (
190
189
  // if there are a sub label "=label"
191
190
  new RegExp(/^\.\^\.\^\.\^\..*$/).test(v["->"]) && labelKey.includes(CHOISE_LABEL_KEY_SEPARATOR)
@@ -198,7 +197,6 @@ function getLabel(items, labelKey, labelSteps, subLabels, shareData, isNewLine =
198
197
  ) {
199
198
  let endOfLabel = v["->"].substring(3);
200
199
  labelIdToOpen = labelKey + CHOISE_LABEL_KEY_SEPARATOR + endOfLabel;
201
- goNextStep = true;
202
200
  }
203
201
  labelSteps.push({
204
202
  labelToOpen: {
@@ -252,6 +250,7 @@ function getLabel(items, labelKey, labelSteps, subLabels, shareData, isNewLine =
252
250
  if (labelKey.includes(CHOISE_LABEL_KEY_SEPARATOR) && labelSteps.length == 2 && labelSteps[0].dialog == " " && labelSteps[1].labelToOpen) {
253
251
  labelSteps.shift();
254
252
  labelSteps[0].glueEnabled = void 0;
253
+ labelSteps[0].goNextStep = void 0;
255
254
  }
256
255
  }
257
256
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/constant.ts","../../src/functions/utility.ts","../../src/functions/ChoiceInfoConverter.ts","../../src/functions/StoryInfoConverter.ts","../../src/functions/InkToPixivn.ts"],"names":["Compiler"],"mappings":"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","file":"InkToPixivn.js","sourcesContent":["export const CHOISE_LABEL_KEY_SEPARATOR = \"_|_\"\n","export function unionStringOrArray(start: string | string[] = \"\", end: string | string[] = \"\"): string[] {\n const startArray = Array.isArray(start) ? start : [start];\n const endArray = Array.isArray(end) ? end : [end];\n return [...new Set([...startArray, ...endArray])];\n}","import LabelChoiceRes from '../types/LabelChoiceRes';\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\nimport { unionStringOrArray } from './utility';\n\nexport function getLabelChoice(items: any[], result: LabelChoiceRes, lastLabel?: string) {\n let text: string = \"\"\n let label: string = \"\"\n let preDialog: string = \"\"\n for (let index = 0; index < items.length; index++) {\n let v = items[index]\n if (typeof v === \"string\") {\n // Dialog\n if (v.startsWith(\"^\")) {\n text = v.substring(1)\n }\n }\n else if (v && typeof v === \"object\") {\n // if is a choice\n if (\"*\" in v && typeof v[\"*\"] && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\n let l = \"c\" + v[\"*\"].split(\"c\")[1]\n label = l\n }\n // if is choise info\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\n let t = findChoiceText(v[\"s\"])\n if (t) {\n if (lastLabel && result[lastLabel]) {\n result[lastLabel].preDialog = { text: t }\n result[lastLabel].text = unionStringOrArray(t, result[lastLabel].text)\n }\n else {\n text = t\n preDialog = t\n }\n }\n }\n }\n if (text && label) {\n if (result[label]) {\n result[label].text = unionStringOrArray(text, result[label].text)\n }\n else {\n result[label] = { text: text }\n }\n if (preDialog) {\n result[label].preDialog = { text: preDialog }\n }\n // split text and label\n let newListItem = items.slice(index + 1)\n getLabelChoice(newListItem, result, label)\n return\n }\n }\n}\n\nfunction findChoiceText(items: RootParserItemType[]): string | undefined {\n for (const item of items) {\n if (typeof item === \"string\") {\n if (item.startsWith(\"^\")) {\n return item.substring(1)\n }\n }\n else if (item instanceof Array) {\n let res = findChoiceText(item)\n if (res) {\n return res\n }\n }\n }\n}\n","import { LabelJsonType, StepLabelJsonType } from '@drincs/pixi-vn';\nimport { CHOISE_LABEL_KEY_SEPARATOR } from '../constant';\nimport InkRootType from '../types/InkRootType';\nimport LabelChoiceRes from '../types/LabelChoiceRes';\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\nimport { getLabelChoice } from './ChoiceInfoConverter';\nimport { unionStringOrArray } from './utility';\n\nexport function getInkLabel(story: InkRootType[]): LabelJsonType | undefined {\n try {\n let label: LabelJsonType = {}\n\n findLabel(story, label)\n\n return label;\n } catch (e) {\n console.error(\"[Pixi’VN Ink] Error parsing ink file\", e)\n }\n}\n\nfunction findLabel(story: RootParserItemType[], labels: LabelJsonType) {\n for (const storyItem of story) {\n if (storyItem) {\n if (storyItem instanceof Array) {\n findLabel(storyItem, labels)\n }\n else if (typeof storyItem === \"object\") {\n addLabels(storyItem, labels)\n }\n }\n }\n}\n\nfunction addLabels(storyItem: object, result: LabelJsonType, dadLabelKey: string = \"\", shareData: ShareData = { preDialog: {} }) {\n if (storyItem === null) {\n return\n }\n // for value and key in item\n for (const [key, value] of Object.entries(storyItem)) {\n // if value is an array\n if (value instanceof Array) {\n let labels: StepLabelJsonType[] = []\n let subLabels: LabelJsonType = {}\n let labelName = (dadLabelKey ? dadLabelKey + CHOISE_LABEL_KEY_SEPARATOR : \"\") + key\n getLabel(value, labelName, labels, subLabels, shareData)\n for (const [subKey, subValue] of Object.entries(subLabels)) {\n result[subKey] = subValue\n }\n if (labels.length > 0) {\n result[labelName] = labels\n }\n }\n }\n}\n\ntype ShareData = {\n preDialog: { [label: string]: { text: string } }\n}\nfunction getLabel(items: any[], labelKey: string, labelSteps: StepLabelJsonType[], subLabels: LabelJsonType, shareData: ShareData, isNewLine: boolean = true) {\n let isInEnv = false\n let envList: any[] = []\n if (shareData.preDialog[labelKey]) {\n labelSteps.push({\n dialog: shareData.preDialog[labelKey].text\n })\n delete shareData.preDialog[labelKey]\n isNewLine = false\n }\n items.forEach((v) => {\n if (isInEnv) {\n envList.push(v)\n if (typeof v === \"string\" && v == \"/ev\") {\n isInEnv = false\n }\n }\n else if (typeof v === \"string\") {\n // Dialog\n if (v.startsWith(\"^\")) {\n if (!isNewLine && labelSteps.length > 0) {\n // in this case: <> text\n if (labelSteps[labelSteps.length - 1].glueEnabled) {\n labelSteps.push({\n dialog: v.substring(1)\n })\n } else {\n let newDialog = labelSteps[labelSteps.length - 1].dialog\n // if is a string or an array\n if (typeof newDialog === \"string\" || newDialog instanceof Array || !newDialog) {\n labelSteps[labelSteps.length - 1].dialog = unionStringOrArray(newDialog, v.substring(1))\n }\n else {\n newDialog.text = unionStringOrArray(newDialog.text, v.substring(1))\n labelSteps[labelSteps.length - 1].dialog = newDialog\n }\n }\n } else {\n labelSteps.push({\n dialog: v.substring(1)\n })\n }\n isNewLine = false\n }\n else if (v == \"ev\") {\n isInEnv = true\n }\n else if (v == \"\\n\") {\n isNewLine = true\n }\n else if (v == \"done\") {\n labelSteps.push({\n end: \"label_end\"\n })\n isNewLine = false\n }\n else if (v == \"end\") {\n labelSteps.push({\n end: \"game_end\"\n })\n isNewLine = false\n }\n else if (v == \"<>\") {\n labelSteps.push({\n glueEnabled: true,\n goNextStep: true,\n })\n isNewLine = false\n }\n }\n else if (v instanceof Array) {\n getLabel(v, labelKey, labelSteps, subLabels, shareData, isNewLine)\n }\n else if (v && typeof v === \"object\") {\n if (\"->\" in v && typeof v[\"->\"] === \"string\"\n // {->: '.^.^.2.s'}\n && !(new RegExp(/^\\.\\^\\.\\^\\.\\d\\.s$/)).test(v[\"->\"])\n ) {\n let labelIdToOpen = v[\"->\"]\n let glueEnabled = isNewLine ? undefined : true\n let goNextStep = isNewLine ? undefined : true\n if (\n // if there are a sub label \"=label\"\n (new RegExp(/^\\.\\^\\.\\^\\.\\^\\.\\^\\..*$/)).test(v[\"->\"])\n && labelKey\n ) {\n let endOfLabel = v[\"->\"].substring(9)\n labelIdToOpen = labelKey.split(CHOISE_LABEL_KEY_SEPARATOR)[0] + CHOISE_LABEL_KEY_SEPARATOR + endOfLabel\n goNextStep = true\n }\n else if (\n // if there are a sub label \"=label\"\n (new RegExp(/^\\.\\^\\.\\^\\.\\^\\..*$/)).test(v[\"->\"])\n && labelKey.includes(CHOISE_LABEL_KEY_SEPARATOR)\n ) {\n let endOfLabel = v[\"->\"].substring(7)\n labelIdToOpen = labelKey.split(CHOISE_LABEL_KEY_SEPARATOR)[0] + CHOISE_LABEL_KEY_SEPARATOR + endOfLabel\n }\n else if (\n // if there are a sub label \"=label\"\n (new RegExp(/^\\.\\^\\..*$/)).test(v[\"->\"])\n && labelKey\n ) {\n let endOfLabel = v[\"->\"].substring(3)\n labelIdToOpen = labelKey + CHOISE_LABEL_KEY_SEPARATOR + endOfLabel\n goNextStep = true\n }\n labelSteps.push({\n labelToOpen: {\n labelId: labelIdToOpen,\n type: \"call\",\n },\n glueEnabled: glueEnabled,\n goNextStep: goNextStep,\n })\n isNewLine = false\n }\n else if (\"*\" in v && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\n envList.push(v)\n isNewLine = false\n }\n // if is choise info\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\n envList.push(v)\n isNewLine = false\n }\n else {\n addLabels(v, subLabels, labelKey, shareData)\n }\n }\n })\n if (envList.length > 0) {\n let choices: LabelChoiceRes = {}\n getLabelChoice(envList, choices)\n for (const [key, value] of Object.entries(choices)) {\n let newKey = labelKey + CHOISE_LABEL_KEY_SEPARATOR + key\n // if last step is choice\n if (labelSteps.length > 0 && \"choices\" in labelSteps[labelSteps.length - 1]) {\n labelSteps[labelSteps.length - 1].choices?.push({\n text: value.text,\n label: newKey,\n props: {},\n type: \"call\"\n })\n }\n else {\n labelSteps.push({\n choices: [{\n text: value.text,\n label: newKey,\n props: {},\n type: \"call\"\n }]\n })\n }\n if (value.preDialog) {\n shareData.preDialog[newKey] = {\n text: value.preDialog.text\n }\n }\n }\n }\n // * [Open the gate] -> paragraph_2\n if (labelKey.includes(CHOISE_LABEL_KEY_SEPARATOR) && labelSteps.length == 2\n && labelSteps[0].dialog == \" \" && labelSteps[1].labelToOpen\n ) {\n // remove first step\n labelSteps.shift()\n labelSteps[0].glueEnabled = undefined\n }\n}\n","import { PixiVNJson } from \"@drincs/pixi-vn\";\nimport { Compiler } from \"inkjs/compiler/Compiler\";\nimport InkStoryType from \"../types/InkStoryType\";\nimport { getInkLabel } from \"./StoryInfoConverter\";\n\n/**\n * This function converts string written in ink language into the LabelJsonType.\n * @param text string or array of strings written in ink language\n * @returns LabelJsonType or undefined\n */\nexport function convertInkText(text: string): PixiVNJson | undefined {\n let result: PixiVNJson = {}\n let json = convertorInkToJson(text);\n let obj: InkStoryType\n try {\n obj = JSON.parse(json);\n } catch (e) {\n console.error(\"[Pixi’VN Ink] Error parsing ink file\", e)\n return\n }\n\n result.labels = getInkLabel(obj.root)\n\n return result\n}\n\nfunction convertorInkToJson(test: string): string {\n try {\n const story = new Compiler(test).Compile();\n let json = story.ToJson();\n return json || \"\";\n } catch (e) {\n console.error(\"[Pixi’VN] Error compiling ink file\", e)\n return \"\"\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/constant.ts","../../src/functions/utility.ts","../../src/functions/ChoiceInfoConverter.ts","../../src/functions/StoryInfoConverter.ts","../../src/functions/InkToPixivn.ts"],"names":["Compiler"],"mappings":"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","file":"InkToPixivn.js","sourcesContent":["export const CHOISE_LABEL_KEY_SEPARATOR = \"_|_\"\n","export function unionStringOrArray(start: string | string[] = \"\", end: string | string[] = \"\"): string[] {\n const startArray = Array.isArray(start) ? start : [start];\n const endArray = Array.isArray(end) ? end : [end];\n return [...new Set([...startArray, ...endArray])];\n}","import LabelChoiceRes from '../types/LabelChoiceRes';\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\nimport { unionStringOrArray } from './utility';\n\nexport function getLabelChoice(items: any[], result: LabelChoiceRes, lastLabel?: string) {\n let text: string = \"\"\n let label: string = \"\"\n let preDialog: string = \"\"\n for (let index = 0; index < items.length; index++) {\n let v = items[index]\n if (typeof v === \"string\") {\n // Dialog\n if (v.startsWith(\"^\")) {\n text = v.substring(1)\n }\n }\n else if (v && typeof v === \"object\") {\n // if is a choice\n if (\"*\" in v && typeof v[\"*\"] && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\n let l = \"c\" + v[\"*\"].split(\"c\")[1]\n label = l\n }\n // if is choise info\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\n let t = findChoiceText(v[\"s\"])\n if (t) {\n if (lastLabel && result[lastLabel]) {\n result[lastLabel].preDialog = { text: t }\n result[lastLabel].text = unionStringOrArray(t, result[lastLabel].text)\n }\n else {\n text = t\n preDialog = t\n }\n }\n }\n }\n if (text && label) {\n if (result[label]) {\n result[label].text = unionStringOrArray(text, result[label].text)\n }\n else {\n result[label] = { text: text }\n }\n if (preDialog) {\n result[label].preDialog = { text: preDialog }\n }\n // split text and label\n let newListItem = items.slice(index + 1)\n getLabelChoice(newListItem, result, label)\n return\n }\n }\n}\n\nfunction findChoiceText(items: RootParserItemType[]): string | undefined {\n for (const item of items) {\n if (typeof item === \"string\") {\n if (item.startsWith(\"^\")) {\n return item.substring(1)\n }\n }\n else if (item instanceof Array) {\n let res = findChoiceText(item)\n if (res) {\n return res\n }\n }\n }\n}\n","import { LabelJsonType, StepLabelJsonType } from '@drincs/pixi-vn';\nimport { CHOISE_LABEL_KEY_SEPARATOR } from '../constant';\nimport InkRootType from '../types/InkRootType';\nimport LabelChoiceRes from '../types/LabelChoiceRes';\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\nimport { getLabelChoice } from './ChoiceInfoConverter';\nimport { unionStringOrArray } from './utility';\n\nexport function getInkLabel(story: InkRootType[]): LabelJsonType | undefined {\n try {\n let label: LabelJsonType = {}\n\n findLabel(story, label)\n\n return label;\n } catch (e) {\n console.error(\"[Pixi’VN Ink] Error parsing ink file\", e)\n }\n}\n\nfunction findLabel(story: RootParserItemType[], labels: LabelJsonType) {\n for (const storyItem of story) {\n if (storyItem) {\n if (storyItem instanceof Array) {\n findLabel(storyItem, labels)\n }\n else if (typeof storyItem === \"object\") {\n addLabels(storyItem, labels)\n }\n }\n }\n}\n\nfunction addLabels(storyItem: object, result: LabelJsonType, dadLabelKey: string = \"\", shareData: ShareData = { preDialog: {} }) {\n if (storyItem === null) {\n return\n }\n // for value and key in item\n for (const [key, value] of Object.entries(storyItem)) {\n // if value is an array\n if (value instanceof Array) {\n let labels: StepLabelJsonType[] = []\n let subLabels: LabelJsonType = {}\n let labelName = (dadLabelKey ? dadLabelKey + CHOISE_LABEL_KEY_SEPARATOR : \"\") + key\n getLabel(value, labelName, labels, subLabels, shareData)\n for (const [subKey, subValue] of Object.entries(subLabels)) {\n result[subKey] = subValue\n }\n if (labels.length > 0) {\n result[labelName] = labels\n }\n }\n }\n}\n\ntype ShareData = {\n preDialog: { [label: string]: { text: string } }\n}\nfunction getLabel(items: any[], labelKey: string, labelSteps: StepLabelJsonType[], subLabels: LabelJsonType, shareData: ShareData, isNewLine: boolean = true) {\n let isInEnv = false\n let envList: any[] = []\n if (shareData.preDialog[labelKey]) {\n labelSteps.push({\n dialog: shareData.preDialog[labelKey].text\n })\n delete shareData.preDialog[labelKey]\n isNewLine = false\n }\n items.forEach((v) => {\n if (isInEnv) {\n envList.push(v)\n if (typeof v === \"string\" && v == \"/ev\") {\n isInEnv = false\n }\n }\n else if (typeof v === \"string\") {\n // Dialog\n if (v.startsWith(\"^\")) {\n if (!isNewLine && labelSteps.length > 0) {\n // in this case: <> text\n if (labelSteps[labelSteps.length - 1].glueEnabled) {\n labelSteps.push({\n dialog: v.substring(1)\n })\n } else {\n let newDialog = labelSteps[labelSteps.length - 1].dialog\n // if is a string or an array\n if (typeof newDialog === \"string\" || newDialog instanceof Array || !newDialog) {\n labelSteps[labelSteps.length - 1].dialog = unionStringOrArray(newDialog, v.substring(1))\n }\n else {\n newDialog.text = unionStringOrArray(newDialog.text, v.substring(1))\n labelSteps[labelSteps.length - 1].dialog = newDialog\n }\n }\n } else {\n labelSteps.push({\n dialog: v.substring(1)\n })\n }\n isNewLine = false\n }\n else if (v == \"ev\") {\n isInEnv = true\n }\n else if (v == \"\\n\") {\n isNewLine = true\n }\n else if (v == \"done\") {\n labelSteps.push({\n end: \"label_end\"\n })\n isNewLine = false\n }\n else if (v == \"end\") {\n labelSteps.push({\n end: \"game_end\"\n })\n isNewLine = false\n }\n else if (v == \"<>\") {\n labelSteps.push({\n glueEnabled: true,\n goNextStep: true,\n })\n isNewLine = false\n }\n }\n else if (v instanceof Array) {\n getLabel(v, labelKey, labelSteps, subLabels, shareData, isNewLine)\n }\n else if (v && typeof v === \"object\") {\n if (\"->\" in v && typeof v[\"->\"] === \"string\"\n // {->: '.^.^.2.s'}\n && !(new RegExp(/^\\.\\^\\.\\^\\.\\d\\.s$/)).test(v[\"->\"])\n ) {\n let labelIdToOpen = v[\"->\"]\n let glueEnabled = isNewLine ? undefined : true\n let goNextStep = isNewLine ? undefined : true\n if (\n // if there are a sub label \"=label\"\n (new RegExp(/^\\.\\^\\.\\^\\.\\^\\.\\^\\..*$/)).test(v[\"->\"])\n && labelKey\n ) {\n let endOfLabel = v[\"->\"].substring(9)\n labelIdToOpen = labelKey.split(CHOISE_LABEL_KEY_SEPARATOR)[0] + CHOISE_LABEL_KEY_SEPARATOR + endOfLabel\n }\n else if (\n // if there are a sub label \"=label\"\n (new RegExp(/^\\.\\^\\.\\^\\.\\^\\..*$/)).test(v[\"->\"])\n && labelKey.includes(CHOISE_LABEL_KEY_SEPARATOR)\n ) {\n let endOfLabel = v[\"->\"].substring(7)\n labelIdToOpen = labelKey.split(CHOISE_LABEL_KEY_SEPARATOR)[0] + CHOISE_LABEL_KEY_SEPARATOR + endOfLabel\n }\n else if (\n // if there are a sub label \"=label\"\n (new RegExp(/^\\.\\^\\..*$/)).test(v[\"->\"])\n && labelKey\n ) {\n let endOfLabel = v[\"->\"].substring(3)\n labelIdToOpen = labelKey + CHOISE_LABEL_KEY_SEPARATOR + endOfLabel\n }\n labelSteps.push({\n labelToOpen: {\n labelId: labelIdToOpen,\n type: \"call\",\n },\n glueEnabled: glueEnabled,\n goNextStep: goNextStep,\n })\n isNewLine = false\n }\n else if (\"*\" in v && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\n envList.push(v)\n isNewLine = false\n }\n // if is choise info\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\n envList.push(v)\n isNewLine = false\n }\n else {\n addLabels(v, subLabels, labelKey, shareData)\n }\n }\n })\n if (envList.length > 0) {\n let choices: LabelChoiceRes = {}\n getLabelChoice(envList, choices)\n for (const [key, value] of Object.entries(choices)) {\n let newKey = labelKey + CHOISE_LABEL_KEY_SEPARATOR + key\n // if last step is choice\n if (labelSteps.length > 0 && \"choices\" in labelSteps[labelSteps.length - 1]) {\n labelSteps[labelSteps.length - 1].choices?.push({\n text: value.text,\n label: newKey,\n props: {},\n type: \"call\"\n })\n }\n else {\n labelSteps.push({\n choices: [{\n text: value.text,\n label: newKey,\n props: {},\n type: \"call\"\n }]\n })\n }\n if (value.preDialog) {\n shareData.preDialog[newKey] = {\n text: value.preDialog.text\n }\n }\n }\n }\n // * [Open the gate] -> paragraph_2\n if (labelKey.includes(CHOISE_LABEL_KEY_SEPARATOR) && labelSteps.length == 2\n && labelSteps[0].dialog == \" \" && labelSteps[1].labelToOpen\n ) {\n // remove first step\n labelSteps.shift()\n labelSteps[0].glueEnabled = undefined\n labelSteps[0].goNextStep = undefined\n }\n}\n","import { PixiVNJson } from \"@drincs/pixi-vn\";\nimport { Compiler } from \"inkjs/compiler/Compiler\";\nimport InkStoryType from \"../types/InkStoryType\";\nimport { getInkLabel } from \"./StoryInfoConverter\";\n\n/**\n * This function converts string written in ink language into the LabelJsonType.\n * @param text string or array of strings written in ink language\n * @returns LabelJsonType or undefined\n */\nexport function convertInkText(text: string): PixiVNJson | undefined {\n let result: PixiVNJson = {}\n let json = convertorInkToJson(text);\n let obj: InkStoryType\n try {\n obj = JSON.parse(json);\n } catch (e) {\n console.error(\"[Pixi’VN Ink] Error parsing ink file\", e)\n return\n }\n\n result.labels = getInkLabel(obj.root)\n\n return result\n}\n\nfunction convertorInkToJson(test: string): string {\n try {\n const story = new Compiler(test).Compile();\n let json = story.ToJson();\n return json || \"\";\n } catch (e) {\n console.error(\"[Pixi’VN] Error compiling ink file\", e)\n return \"\"\n }\n}\n"]}
@@ -183,7 +183,6 @@ function getLabel(items, labelKey, labelSteps, subLabels, shareData, isNewLine =
183
183
  ) {
184
184
  let endOfLabel = v["->"].substring(9);
185
185
  labelIdToOpen = labelKey.split(CHOISE_LABEL_KEY_SEPARATOR)[0] + CHOISE_LABEL_KEY_SEPARATOR + endOfLabel;
186
- goNextStep = true;
187
186
  } else if (
188
187
  // if there are a sub label "=label"
189
188
  new RegExp(/^\.\^\.\^\.\^\..*$/).test(v["->"]) && labelKey.includes(CHOISE_LABEL_KEY_SEPARATOR)
@@ -196,7 +195,6 @@ function getLabel(items, labelKey, labelSteps, subLabels, shareData, isNewLine =
196
195
  ) {
197
196
  let endOfLabel = v["->"].substring(3);
198
197
  labelIdToOpen = labelKey + CHOISE_LABEL_KEY_SEPARATOR + endOfLabel;
199
- goNextStep = true;
200
198
  }
201
199
  labelSteps.push({
202
200
  labelToOpen: {
@@ -250,6 +248,7 @@ function getLabel(items, labelKey, labelSteps, subLabels, shareData, isNewLine =
250
248
  if (labelKey.includes(CHOISE_LABEL_KEY_SEPARATOR) && labelSteps.length == 2 && labelSteps[0].dialog == " " && labelSteps[1].labelToOpen) {
251
249
  labelSteps.shift();
252
250
  labelSteps[0].glueEnabled = void 0;
251
+ labelSteps[0].goNextStep = void 0;
253
252
  }
254
253
  }
255
254
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/constant.ts","../../src/functions/utility.ts","../../src/functions/ChoiceInfoConverter.ts","../../src/functions/StoryInfoConverter.ts","../../src/functions/InkToPixivn.ts"],"names":[],"mappings":";;;;;AAAO,IAAM,0BAA6B,GAAA,KAAA,CAAA;;;ACAnC,SAAS,kBAAmB,CAAA,KAAA,GAA2B,EAAI,EAAA,GAAA,GAAyB,EAAc,EAAA;AACrG,EAAA,MAAM,aAAa,KAAM,CAAA,OAAA,CAAQ,KAAK,CAAI,GAAA,KAAA,GAAQ,CAAC,KAAK,CAAA,CAAA;AACxD,EAAA,MAAM,WAAW,KAAM,CAAA,OAAA,CAAQ,GAAG,CAAI,GAAA,GAAA,GAAM,CAAC,GAAG,CAAA,CAAA;AAChD,EAAO,OAAA,CAAC,mBAAG,IAAI,GAAI,CAAA,CAAC,GAAG,UAAY,EAAA,GAAG,QAAQ,CAAC,CAAC,CAAA,CAAA;AACpD,CAAA;;;ACAO,SAAS,cAAA,CAAe,KAAc,EAAA,MAAA,EAAwB,SAAoB,EAAA;AACrF,EAAA,IAAI,IAAe,GAAA,EAAA,CAAA;AACnB,EAAA,IAAI,KAAgB,GAAA,EAAA,CAAA;AACpB,EAAA,IAAI,SAAoB,GAAA,EAAA,CAAA;AACxB,EAAA,KAAA,IAAS,KAAQ,GAAA,CAAA,EAAG,KAAQ,GAAA,KAAA,CAAM,QAAQ,KAAS,EAAA,EAAA;AAC/C,IAAI,IAAA,CAAA,GAAI,MAAM,KAAK,CAAA,CAAA;AACnB,IAAI,IAAA,OAAO,MAAM,QAAU,EAAA;AAEvB,MAAI,IAAA,CAAA,CAAE,UAAW,CAAA,GAAG,CAAG,EAAA;AACnB,QAAO,IAAA,GAAA,CAAA,CAAE,UAAU,CAAC,CAAA,CAAA;AAAA,OACxB;AAAA,KAEK,MAAA,IAAA,CAAA,IAAK,OAAO,CAAA,KAAM,QAAU,EAAA;AAEjC,MAAA,IAAI,OAAO,CAAK,IAAA,OAAO,CAAE,CAAA,GAAG,KAAK,OAAO,CAAA,CAAE,GAAG,CAAA,KAAM,YAAY,CAAE,CAAA,GAAG,CAAE,CAAA,QAAA,CAAS,GAAG,CAAG,EAAA;AACjF,QAAI,IAAA,CAAA,GAAI,MAAM,CAAE,CAAA,GAAG,EAAE,KAAM,CAAA,GAAG,EAAE,CAAC,CAAA,CAAA;AACjC,QAAQ,KAAA,GAAA,CAAA,CAAA;AAAA,iBAGH,GAAO,IAAA,CAAA,IAAK,CAAE,CAAA,GAAG,aAAa,KAAO,EAAA;AAC1C,QAAA,IAAI,CAAI,GAAA,cAAA,CAAe,CAAE,CAAA,GAAG,CAAC,CAAA,CAAA;AAC7B,QAAA,IAAI,CAAG,EAAA;AACH,UAAI,IAAA,SAAA,IAAa,MAAO,CAAA,SAAS,CAAG,EAAA;AAChC,YAAA,MAAA,CAAO,SAAS,CAAA,CAAE,SAAY,GAAA,EAAE,MAAM,CAAE,EAAA,CAAA;AACxC,YAAO,MAAA,CAAA,SAAS,EAAE,IAAO,GAAA,kBAAA,CAAmB,GAAG,MAAO,CAAA,SAAS,EAAE,IAAI,CAAA,CAAA;AAAA,WAEpE,MAAA;AACD,YAAO,IAAA,GAAA,CAAA,CAAA;AACP,YAAY,SAAA,GAAA,CAAA,CAAA;AAAA,WAChB;AAAA,SACJ;AAAA,OACJ;AAAA,KACJ;AACA,IAAA,IAAI,QAAQ,KAAO,EAAA;AACf,MAAI,IAAA,MAAA,CAAO,KAAK,CAAG,EAAA;AACf,QAAO,MAAA,CAAA,KAAK,EAAE,IAAO,GAAA,kBAAA,CAAmB,MAAM,MAAO,CAAA,KAAK,EAAE,IAAI,CAAA,CAAA;AAAA,OAE/D,MAAA;AACD,QAAO,MAAA,CAAA,KAAK,CAAI,GAAA,EAAE,IAAW,EAAA,CAAA;AAAA,OACjC;AACA,MAAA,IAAI,SAAW,EAAA;AACX,QAAA,MAAA,CAAO,KAAK,CAAA,CAAE,SAAY,GAAA,EAAE,MAAM,SAAU,EAAA,CAAA;AAAA,OAChD;AAEA,MAAA,IAAI,WAAc,GAAA,KAAA,CAAM,KAAM,CAAA,KAAA,GAAQ,CAAC,CAAA,CAAA;AACvC,MAAe,cAAA,CAAA,WAAA,EAAa,QAAQ,KAAK,CAAA,CAAA;AACzC,MAAA,OAAA;AAAA,KACJ;AAAA,GACJ;AACJ,CAAA;AAEA,SAAS,eAAe,KAAiD,EAAA;AACrE,EAAA,KAAA,MAAW,QAAQ,KAAO,EAAA;AACtB,IAAI,IAAA,OAAO,SAAS,QAAU,EAAA;AAC1B,MAAI,IAAA,IAAA,CAAK,UAAW,CAAA,GAAG,CAAG,EAAA;AACtB,QAAO,OAAA,IAAA,CAAK,UAAU,CAAC,CAAA,CAAA;AAAA,OAC3B;AAAA,KACJ,MAAA,IACS,gBAAgB,KAAO,EAAA;AAC5B,MAAI,IAAA,GAAA,GAAM,eAAe,IAAI,CAAA,CAAA;AAC7B,MAAA,IAAI,GAAK,EAAA;AACL,QAAO,OAAA,GAAA,CAAA;AAAA,OACX;AAAA,KACJ;AAAA,GACJ;AACJ,CAAA;;;AC7DO,SAAS,YAAY,KAAiD,EAAA;AACzE,EAAI,IAAA;AACA,IAAA,IAAI,QAAuB,EAAC,CAAA;AAE5B,IAAA,SAAA,CAAU,OAAO,KAAK,CAAA,CAAA;AAEtB,IAAO,OAAA,KAAA,CAAA;AAAA,WACF,CAAG,EAAA;AACR,IAAQ,OAAA,CAAA,KAAA,CAAM,6CAAwC,CAAC,CAAA,CAAA;AAAA,GAC3D;AACJ,CAAA;AAEA,SAAS,SAAA,CAAU,OAA6B,MAAuB,EAAA;AACnE,EAAA,KAAA,MAAW,aAAa,KAAO,EAAA;AAC3B,IAAA,IAAI,SAAW,EAAA;AACX,MAAA,IAAI,qBAAqB,KAAO,EAAA;AAC5B,QAAA,SAAA,CAAU,WAAW,MAAM,CAAA,CAAA;AAAA,OAC/B,MAAA,IACS,OAAO,SAAA,KAAc,QAAU,EAAA;AACpC,QAAA,SAAA,CAAU,WAAW,MAAM,CAAA,CAAA;AAAA,OAC/B;AAAA,KACJ;AAAA,GACJ;AACJ,CAAA;AAEA,SAAS,SAAA,CAAU,SAAmB,EAAA,MAAA,EAAuB,WAAsB,GAAA,EAAA,EAAI,YAAuB,EAAE,SAAA,EAAW,EAAC,EAAK,EAAA;AAC7H,EAAA,IAAI,cAAc,IAAM,EAAA;AACpB,IAAA,OAAA;AAAA,GACJ;AAEA,EAAA,KAAA,MAAW,CAAC,GAAK,EAAA,KAAK,KAAK,MAAO,CAAA,OAAA,CAAQ,SAAS,CAAG,EAAA;AAElD,IAAA,IAAI,iBAAiB,KAAO,EAAA;AACxB,MAAA,IAAI,SAA8B,EAAC,CAAA;AACnC,MAAA,IAAI,YAA2B,EAAC,CAAA;AAChC,MAAA,IAAI,SAAa,GAAA,CAAA,WAAA,GAAc,WAAc,GAAA,0BAAA,GAA6B,EAAM,IAAA,GAAA,CAAA;AAChF,MAAA,QAAA,CAAS,KAAO,EAAA,SAAA,EAAW,MAAQ,EAAA,SAAA,EAAW,SAAS,CAAA,CAAA;AACvD,MAAA,KAAA,MAAW,CAAC,MAAQ,EAAA,QAAQ,KAAK,MAAO,CAAA,OAAA,CAAQ,SAAS,CAAG,EAAA;AACxD,QAAA,MAAA,CAAO,MAAM,CAAI,GAAA,QAAA,CAAA;AAAA,OACrB;AACA,MAAI,IAAA,MAAA,CAAO,SAAS,CAAG,EAAA;AACnB,QAAA,MAAA,CAAO,SAAS,CAAI,GAAA,MAAA,CAAA;AAAA,OACxB;AAAA,KACJ;AAAA,GACJ;AACJ,CAAA;AAKA,SAAS,SAAS,KAAc,EAAA,QAAA,EAAkB,YAAiC,SAA0B,EAAA,SAAA,EAAsB,YAAqB,IAAM,EAAA;AA1D9J,EAAA,IAAA,EAAA,CAAA;AA2DI,EAAA,IAAI,OAAU,GAAA,KAAA,CAAA;AACd,EAAA,IAAI,UAAiB,EAAC,CAAA;AACtB,EAAI,IAAA,SAAA,CAAU,SAAU,CAAA,QAAQ,CAAG,EAAA;AAC/B,IAAA,UAAA,CAAW,IAAK,CAAA;AAAA,MACZ,MAAQ,EAAA,SAAA,CAAU,SAAU,CAAA,QAAQ,CAAE,CAAA,IAAA;AAAA,KACzC,CAAA,CAAA;AACD,IAAO,OAAA,SAAA,CAAU,UAAU,QAAQ,CAAA,CAAA;AACnC,IAAY,SAAA,GAAA,KAAA,CAAA;AAAA,GAChB;AACA,EAAM,KAAA,CAAA,OAAA,CAAQ,CAAC,CAAM,KAAA;AACjB,IAAA,IAAI,OAAS,EAAA;AACT,MAAA,OAAA,CAAQ,KAAK,CAAC,CAAA,CAAA;AACd,MAAA,IAAI,OAAO,CAAA,KAAM,QAAY,IAAA,CAAA,IAAK,KAAO,EAAA;AACrC,QAAU,OAAA,GAAA,KAAA,CAAA;AAAA,OACd;AAAA,KACJ,MAAA,IACS,OAAO,CAAA,KAAM,QAAU,EAAA;AAE5B,MAAI,IAAA,CAAA,CAAE,UAAW,CAAA,GAAG,CAAG,EAAA;AACnB,QAAA,IAAI,CAAC,SAAA,IAAa,UAAW,CAAA,MAAA,GAAS,CAAG,EAAA;AAErC,UAAA,IAAI,UAAW,CAAA,UAAA,CAAW,MAAS,GAAA,CAAC,EAAE,WAAa,EAAA;AAC/C,YAAA,UAAA,CAAW,IAAK,CAAA;AAAA,cACZ,MAAA,EAAQ,CAAE,CAAA,SAAA,CAAU,CAAC,CAAA;AAAA,aACxB,CAAA,CAAA;AAAA,WACE,MAAA;AACH,YAAA,IAAI,SAAY,GAAA,UAAA,CAAW,UAAW,CAAA,MAAA,GAAS,CAAC,CAAE,CAAA,MAAA,CAAA;AAElD,YAAA,IAAI,OAAO,SAAc,KAAA,QAAA,IAAY,SAAqB,YAAA,KAAA,IAAS,CAAC,SAAW,EAAA;AAC3E,cAAW,UAAA,CAAA,UAAA,CAAW,MAAS,GAAA,CAAC,CAAE,CAAA,MAAA,GAAS,mBAAmB,SAAW,EAAA,CAAA,CAAE,SAAU,CAAA,CAAC,CAAC,CAAA,CAAA;AAAA,aAEtF,MAAA;AACD,cAAA,SAAA,CAAU,OAAO,kBAAmB,CAAA,SAAA,CAAU,MAAM,CAAE,CAAA,SAAA,CAAU,CAAC,CAAC,CAAA,CAAA;AAClE,cAAA,UAAA,CAAW,UAAW,CAAA,MAAA,GAAS,CAAC,CAAA,CAAE,MAAS,GAAA,SAAA,CAAA;AAAA,aAC/C;AAAA,WACJ;AAAA,SACG,MAAA;AACH,UAAA,UAAA,CAAW,IAAK,CAAA;AAAA,YACZ,MAAA,EAAQ,CAAE,CAAA,SAAA,CAAU,CAAC,CAAA;AAAA,WACxB,CAAA,CAAA;AAAA,SACL;AACA,QAAY,SAAA,GAAA,KAAA,CAAA;AAAA,OAChB,MAAA,IACS,KAAK,IAAM,EAAA;AAChB,QAAU,OAAA,GAAA,IAAA,CAAA;AAAA,OACd,MAAA,IACS,KAAK,IAAM,EAAA;AAChB,QAAY,SAAA,GAAA,IAAA,CAAA;AAAA,OAChB,MAAA,IACS,KAAK,MAAQ,EAAA;AAClB,QAAA,UAAA,CAAW,IAAK,CAAA;AAAA,UACZ,GAAK,EAAA,WAAA;AAAA,SACR,CAAA,CAAA;AACD,QAAY,SAAA,GAAA,KAAA,CAAA;AAAA,OAChB,MAAA,IACS,KAAK,KAAO,EAAA;AACjB,QAAA,UAAA,CAAW,IAAK,CAAA;AAAA,UACZ,GAAK,EAAA,UAAA;AAAA,SACR,CAAA,CAAA;AACD,QAAY,SAAA,GAAA,KAAA,CAAA;AAAA,OAChB,MAAA,IACS,KAAK,IAAM,EAAA;AAChB,QAAA,UAAA,CAAW,IAAK,CAAA;AAAA,UACZ,WAAa,EAAA,IAAA;AAAA,UACb,UAAY,EAAA,IAAA;AAAA,SACf,CAAA,CAAA;AACD,QAAY,SAAA,GAAA,KAAA,CAAA;AAAA,OAChB;AAAA,KACJ,MAAA,IACS,aAAa,KAAO,EAAA;AACzB,MAAA,QAAA,CAAS,CAAG,EAAA,QAAA,EAAU,UAAY,EAAA,SAAA,EAAW,WAAW,SAAS,CAAA,CAAA;AAAA,KAE5D,MAAA,IAAA,CAAA,IAAK,OAAO,CAAA,KAAM,QAAU,EAAA;AACjC,MAAA,IAAI,QAAQ,CAAK,IAAA,OAAO,CAAE,CAAA,IAAI,MAAM,QAE7B,IAAA,CAAE,IAAI,MAAA,CAAO,mBAAmB,CAAG,CAAA,IAAA,CAAK,CAAE,CAAA,IAAI,CAAC,CACpD,EAAA;AACE,QAAI,IAAA,aAAA,GAAgB,EAAE,IAAI,CAAA,CAAA;AAC1B,QAAI,IAAA,WAAA,GAAc,YAAY,KAAY,CAAA,GAAA,IAAA,CAAA;AAC1C,QAAI,IAAA,UAAA,GAAa,YAAY,KAAY,CAAA,GAAA,IAAA,CAAA;AACzC,QAAA;AAAA;AAAA,UAEK,IAAI,OAAO,wBAAwB,CAAA,CAAG,KAAK,CAAE,CAAA,IAAI,CAAC,CAChD,IAAA,QAAA;AAAA,UACL;AACE,UAAA,IAAI,UAAa,GAAA,CAAA,CAAE,IAAI,CAAA,CAAE,UAAU,CAAC,CAAA,CAAA;AACpC,UAAA,aAAA,GAAgB,SAAS,KAAM,CAAA,0BAA0B,CAAE,CAAA,CAAC,IAAI,0BAA6B,GAAA,UAAA,CAAA;AAC7F,UAAa,UAAA,GAAA,IAAA,CAAA;AAAA,SACjB,MAAA;AAAA;AAAA,UAGK,IAAI,MAAO,CAAA,oBAAoB,CAAG,CAAA,IAAA,CAAK,CAAE,CAAA,IAAI,CAAC,CAAA,IAC5C,QAAS,CAAA,QAAA,CAAS,0BAA0B,CAAA;AAAA,UACjD;AACE,UAAA,IAAI,UAAa,GAAA,CAAA,CAAE,IAAI,CAAA,CAAE,UAAU,CAAC,CAAA,CAAA;AACpC,UAAA,aAAA,GAAgB,SAAS,KAAM,CAAA,0BAA0B,CAAE,CAAA,CAAC,IAAI,0BAA6B,GAAA,UAAA,CAAA;AAAA,SACjG,MAAA;AAAA;AAAA,UAGK,IAAI,OAAO,YAAY,CAAA,CAAG,KAAK,CAAE,CAAA,IAAI,CAAC,CACpC,IAAA,QAAA;AAAA,UACL;AACE,UAAA,IAAI,UAAa,GAAA,CAAA,CAAE,IAAI,CAAA,CAAE,UAAU,CAAC,CAAA,CAAA;AACpC,UAAA,aAAA,GAAgB,WAAW,0BAA6B,GAAA,UAAA,CAAA;AACxD,UAAa,UAAA,GAAA,IAAA,CAAA;AAAA,SACjB;AACA,QAAA,UAAA,CAAW,IAAK,CAAA;AAAA,UACZ,WAAa,EAAA;AAAA,YACT,OAAS,EAAA,aAAA;AAAA,YACT,IAAM,EAAA,MAAA;AAAA,WACV;AAAA,UACA,WAAA;AAAA,UACA,UAAA;AAAA,SACH,CAAA,CAAA;AACD,QAAY,SAAA,GAAA,KAAA,CAAA;AAAA,OAEP,MAAA,IAAA,GAAA,IAAO,CAAK,IAAA,OAAO,CAAE,CAAA,GAAG,CAAM,KAAA,QAAA,IAAY,CAAE,CAAA,GAAG,CAAE,CAAA,QAAA,CAAS,GAAG,CAAG,EAAA;AACrE,QAAA,OAAA,CAAQ,KAAK,CAAC,CAAA,CAAA;AACd,QAAY,SAAA,GAAA,KAAA,CAAA;AAAA,iBAGP,GAAO,IAAA,CAAA,IAAK,CAAE,CAAA,GAAG,aAAa,KAAO,EAAA;AAC1C,QAAA,OAAA,CAAQ,KAAK,CAAC,CAAA,CAAA;AACd,QAAY,SAAA,GAAA,KAAA,CAAA;AAAA,OAEX,MAAA;AACD,QAAU,SAAA,CAAA,CAAA,EAAG,SAAW,EAAA,QAAA,EAAU,SAAS,CAAA,CAAA;AAAA,OAC/C;AAAA,KACJ;AAAA,GACH,CAAA,CAAA;AACD,EAAI,IAAA,OAAA,CAAQ,SAAS,CAAG,EAAA;AACpB,IAAA,IAAI,UAA0B,EAAC,CAAA;AAC/B,IAAA,cAAA,CAAe,SAAS,OAAO,CAAA,CAAA;AAC/B,IAAA,KAAA,MAAW,CAAC,GAAK,EAAA,KAAK,KAAK,MAAO,CAAA,OAAA,CAAQ,OAAO,CAAG,EAAA;AAChD,MAAI,IAAA,MAAA,GAAS,WAAW,0BAA6B,GAAA,GAAA,CAAA;AAErD,MAAI,IAAA,UAAA,CAAW,SAAS,CAAK,IAAA,SAAA,IAAa,WAAW,UAAW,CAAA,MAAA,GAAS,CAAC,CAAG,EAAA;AACzE,QAAA,CAAA,EAAA,GAAA,UAAA,CAAW,WAAW,MAAS,GAAA,CAAC,CAAE,CAAA,OAAA,KAAlC,mBAA2C,IAAK,CAAA;AAAA,UAC5C,MAAM,KAAM,CAAA,IAAA;AAAA,UACZ,KAAO,EAAA,MAAA;AAAA,UACP,OAAO,EAAC;AAAA,UACR,IAAM,EAAA,MAAA;AAAA,SACV,CAAA,CAAA;AAAA,OAEC,MAAA;AACD,QAAA,UAAA,CAAW,IAAK,CAAA;AAAA,UACZ,SAAS,CAAC;AAAA,YACN,MAAM,KAAM,CAAA,IAAA;AAAA,YACZ,KAAO,EAAA,MAAA;AAAA,YACP,OAAO,EAAC;AAAA,YACR,IAAM,EAAA,MAAA;AAAA,WACT,CAAA;AAAA,SACJ,CAAA,CAAA;AAAA,OACL;AACA,MAAA,IAAI,MAAM,SAAW,EAAA;AACjB,QAAU,SAAA,CAAA,SAAA,CAAU,MAAM,CAAI,GAAA;AAAA,UAC1B,IAAA,EAAM,MAAM,SAAU,CAAA,IAAA;AAAA,SAC1B,CAAA;AAAA,OACJ;AAAA,KACJ;AAAA,GACJ;AAEA,EAAA,IAAI,QAAS,CAAA,QAAA,CAAS,0BAA0B,CAAA,IAAK,WAAW,MAAU,IAAA,CAAA,IACnE,UAAW,CAAA,CAAC,EAAE,MAAU,IAAA,GAAA,IAAO,UAAW,CAAA,CAAC,EAAE,WAClD,EAAA;AAEE,IAAA,UAAA,CAAW,KAAM,EAAA,CAAA;AACjB,IAAW,UAAA,CAAA,CAAC,EAAE,WAAc,GAAA,KAAA,CAAA,CAAA;AAAA,GAChC;AACJ,CAAA;;;AC1NO,SAAS,eAAe,IAAsC,EAAA;AACjE,EAAA,IAAI,SAAqB,EAAC,CAAA;AAC1B,EAAI,IAAA,IAAA,GAAO,mBAAmB,IAAI,CAAA,CAAA;AAClC,EAAI,IAAA,GAAA,CAAA;AACJ,EAAI,IAAA;AACA,IAAM,GAAA,GAAA,IAAA,CAAK,MAAM,IAAI,CAAA,CAAA;AAAA,WAChB,CAAG,EAAA;AACR,IAAQ,OAAA,CAAA,KAAA,CAAM,6CAAwC,CAAC,CAAA,CAAA;AACvD,IAAA,OAAA;AAAA,GACJ;AAEA,EAAO,MAAA,CAAA,MAAA,GAAS,WAAY,CAAA,GAAA,CAAI,IAAI,CAAA,CAAA;AAEpC,EAAO,OAAA,MAAA,CAAA;AACX,CAAA;AAEA,SAAS,mBAAmB,IAAsB,EAAA;AAC9C,EAAI,IAAA;AACA,IAAA,MAAM,KAAQ,GAAA,IAAI,QAAS,CAAA,IAAI,EAAE,OAAQ,EAAA,CAAA;AACzC,IAAI,IAAA,IAAA,GAAO,MAAM,MAAO,EAAA,CAAA;AACxB,IAAA,OAAO,IAAQ,IAAA,EAAA,CAAA;AAAA,WACV,CAAG,EAAA;AACR,IAAQ,OAAA,CAAA,KAAA,CAAM,2CAAsC,CAAC,CAAA,CAAA;AACrD,IAAO,OAAA,EAAA,CAAA;AAAA,GACX;AACJ","file":"InkToPixivn.mjs","sourcesContent":["export const CHOISE_LABEL_KEY_SEPARATOR = \"_|_\"\n","export function unionStringOrArray(start: string | string[] = \"\", end: string | string[] = \"\"): string[] {\n const startArray = Array.isArray(start) ? start : [start];\n const endArray = Array.isArray(end) ? end : [end];\n return [...new Set([...startArray, ...endArray])];\n}","import LabelChoiceRes from '../types/LabelChoiceRes';\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\nimport { unionStringOrArray } from './utility';\n\nexport function getLabelChoice(items: any[], result: LabelChoiceRes, lastLabel?: string) {\n let text: string = \"\"\n let label: string = \"\"\n let preDialog: string = \"\"\n for (let index = 0; index < items.length; index++) {\n let v = items[index]\n if (typeof v === \"string\") {\n // Dialog\n if (v.startsWith(\"^\")) {\n text = v.substring(1)\n }\n }\n else if (v && typeof v === \"object\") {\n // if is a choice\n if (\"*\" in v && typeof v[\"*\"] && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\n let l = \"c\" + v[\"*\"].split(\"c\")[1]\n label = l\n }\n // if is choise info\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\n let t = findChoiceText(v[\"s\"])\n if (t) {\n if (lastLabel && result[lastLabel]) {\n result[lastLabel].preDialog = { text: t }\n result[lastLabel].text = unionStringOrArray(t, result[lastLabel].text)\n }\n else {\n text = t\n preDialog = t\n }\n }\n }\n }\n if (text && label) {\n if (result[label]) {\n result[label].text = unionStringOrArray(text, result[label].text)\n }\n else {\n result[label] = { text: text }\n }\n if (preDialog) {\n result[label].preDialog = { text: preDialog }\n }\n // split text and label\n let newListItem = items.slice(index + 1)\n getLabelChoice(newListItem, result, label)\n return\n }\n }\n}\n\nfunction findChoiceText(items: RootParserItemType[]): string | undefined {\n for (const item of items) {\n if (typeof item === \"string\") {\n if (item.startsWith(\"^\")) {\n return item.substring(1)\n }\n }\n else if (item instanceof Array) {\n let res = findChoiceText(item)\n if (res) {\n return res\n }\n }\n }\n}\n","import { LabelJsonType, StepLabelJsonType } from '@drincs/pixi-vn';\nimport { CHOISE_LABEL_KEY_SEPARATOR } from '../constant';\nimport InkRootType from '../types/InkRootType';\nimport LabelChoiceRes from '../types/LabelChoiceRes';\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\nimport { getLabelChoice } from './ChoiceInfoConverter';\nimport { unionStringOrArray } from './utility';\n\nexport function getInkLabel(story: InkRootType[]): LabelJsonType | undefined {\n try {\n let label: LabelJsonType = {}\n\n findLabel(story, label)\n\n return label;\n } catch (e) {\n console.error(\"[Pixi’VN Ink] Error parsing ink file\", e)\n }\n}\n\nfunction findLabel(story: RootParserItemType[], labels: LabelJsonType) {\n for (const storyItem of story) {\n if (storyItem) {\n if (storyItem instanceof Array) {\n findLabel(storyItem, labels)\n }\n else if (typeof storyItem === \"object\") {\n addLabels(storyItem, labels)\n }\n }\n }\n}\n\nfunction addLabels(storyItem: object, result: LabelJsonType, dadLabelKey: string = \"\", shareData: ShareData = { preDialog: {} }) {\n if (storyItem === null) {\n return\n }\n // for value and key in item\n for (const [key, value] of Object.entries(storyItem)) {\n // if value is an array\n if (value instanceof Array) {\n let labels: StepLabelJsonType[] = []\n let subLabels: LabelJsonType = {}\n let labelName = (dadLabelKey ? dadLabelKey + CHOISE_LABEL_KEY_SEPARATOR : \"\") + key\n getLabel(value, labelName, labels, subLabels, shareData)\n for (const [subKey, subValue] of Object.entries(subLabels)) {\n result[subKey] = subValue\n }\n if (labels.length > 0) {\n result[labelName] = labels\n }\n }\n }\n}\n\ntype ShareData = {\n preDialog: { [label: string]: { text: string } }\n}\nfunction getLabel(items: any[], labelKey: string, labelSteps: StepLabelJsonType[], subLabels: LabelJsonType, shareData: ShareData, isNewLine: boolean = true) {\n let isInEnv = false\n let envList: any[] = []\n if (shareData.preDialog[labelKey]) {\n labelSteps.push({\n dialog: shareData.preDialog[labelKey].text\n })\n delete shareData.preDialog[labelKey]\n isNewLine = false\n }\n items.forEach((v) => {\n if (isInEnv) {\n envList.push(v)\n if (typeof v === \"string\" && v == \"/ev\") {\n isInEnv = false\n }\n }\n else if (typeof v === \"string\") {\n // Dialog\n if (v.startsWith(\"^\")) {\n if (!isNewLine && labelSteps.length > 0) {\n // in this case: <> text\n if (labelSteps[labelSteps.length - 1].glueEnabled) {\n labelSteps.push({\n dialog: v.substring(1)\n })\n } else {\n let newDialog = labelSteps[labelSteps.length - 1].dialog\n // if is a string or an array\n if (typeof newDialog === \"string\" || newDialog instanceof Array || !newDialog) {\n labelSteps[labelSteps.length - 1].dialog = unionStringOrArray(newDialog, v.substring(1))\n }\n else {\n newDialog.text = unionStringOrArray(newDialog.text, v.substring(1))\n labelSteps[labelSteps.length - 1].dialog = newDialog\n }\n }\n } else {\n labelSteps.push({\n dialog: v.substring(1)\n })\n }\n isNewLine = false\n }\n else if (v == \"ev\") {\n isInEnv = true\n }\n else if (v == \"\\n\") {\n isNewLine = true\n }\n else if (v == \"done\") {\n labelSteps.push({\n end: \"label_end\"\n })\n isNewLine = false\n }\n else if (v == \"end\") {\n labelSteps.push({\n end: \"game_end\"\n })\n isNewLine = false\n }\n else if (v == \"<>\") {\n labelSteps.push({\n glueEnabled: true,\n goNextStep: true,\n })\n isNewLine = false\n }\n }\n else if (v instanceof Array) {\n getLabel(v, labelKey, labelSteps, subLabels, shareData, isNewLine)\n }\n else if (v && typeof v === \"object\") {\n if (\"->\" in v && typeof v[\"->\"] === \"string\"\n // {->: '.^.^.2.s'}\n && !(new RegExp(/^\\.\\^\\.\\^\\.\\d\\.s$/)).test(v[\"->\"])\n ) {\n let labelIdToOpen = v[\"->\"]\n let glueEnabled = isNewLine ? undefined : true\n let goNextStep = isNewLine ? undefined : true\n if (\n // if there are a sub label \"=label\"\n (new RegExp(/^\\.\\^\\.\\^\\.\\^\\.\\^\\..*$/)).test(v[\"->\"])\n && labelKey\n ) {\n let endOfLabel = v[\"->\"].substring(9)\n labelIdToOpen = labelKey.split(CHOISE_LABEL_KEY_SEPARATOR)[0] + CHOISE_LABEL_KEY_SEPARATOR + endOfLabel\n goNextStep = true\n }\n else if (\n // if there are a sub label \"=label\"\n (new RegExp(/^\\.\\^\\.\\^\\.\\^\\..*$/)).test(v[\"->\"])\n && labelKey.includes(CHOISE_LABEL_KEY_SEPARATOR)\n ) {\n let endOfLabel = v[\"->\"].substring(7)\n labelIdToOpen = labelKey.split(CHOISE_LABEL_KEY_SEPARATOR)[0] + CHOISE_LABEL_KEY_SEPARATOR + endOfLabel\n }\n else if (\n // if there are a sub label \"=label\"\n (new RegExp(/^\\.\\^\\..*$/)).test(v[\"->\"])\n && labelKey\n ) {\n let endOfLabel = v[\"->\"].substring(3)\n labelIdToOpen = labelKey + CHOISE_LABEL_KEY_SEPARATOR + endOfLabel\n goNextStep = true\n }\n labelSteps.push({\n labelToOpen: {\n labelId: labelIdToOpen,\n type: \"call\",\n },\n glueEnabled: glueEnabled,\n goNextStep: goNextStep,\n })\n isNewLine = false\n }\n else if (\"*\" in v && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\n envList.push(v)\n isNewLine = false\n }\n // if is choise info\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\n envList.push(v)\n isNewLine = false\n }\n else {\n addLabels(v, subLabels, labelKey, shareData)\n }\n }\n })\n if (envList.length > 0) {\n let choices: LabelChoiceRes = {}\n getLabelChoice(envList, choices)\n for (const [key, value] of Object.entries(choices)) {\n let newKey = labelKey + CHOISE_LABEL_KEY_SEPARATOR + key\n // if last step is choice\n if (labelSteps.length > 0 && \"choices\" in labelSteps[labelSteps.length - 1]) {\n labelSteps[labelSteps.length - 1].choices?.push({\n text: value.text,\n label: newKey,\n props: {},\n type: \"call\"\n })\n }\n else {\n labelSteps.push({\n choices: [{\n text: value.text,\n label: newKey,\n props: {},\n type: \"call\"\n }]\n })\n }\n if (value.preDialog) {\n shareData.preDialog[newKey] = {\n text: value.preDialog.text\n }\n }\n }\n }\n // * [Open the gate] -> paragraph_2\n if (labelKey.includes(CHOISE_LABEL_KEY_SEPARATOR) && labelSteps.length == 2\n && labelSteps[0].dialog == \" \" && labelSteps[1].labelToOpen\n ) {\n // remove first step\n labelSteps.shift()\n labelSteps[0].glueEnabled = undefined\n }\n}\n","import { PixiVNJson } from \"@drincs/pixi-vn\";\nimport { Compiler } from \"inkjs/compiler/Compiler\";\nimport InkStoryType from \"../types/InkStoryType\";\nimport { getInkLabel } from \"./StoryInfoConverter\";\n\n/**\n * This function converts string written in ink language into the LabelJsonType.\n * @param text string or array of strings written in ink language\n * @returns LabelJsonType or undefined\n */\nexport function convertInkText(text: string): PixiVNJson | undefined {\n let result: PixiVNJson = {}\n let json = convertorInkToJson(text);\n let obj: InkStoryType\n try {\n obj = JSON.parse(json);\n } catch (e) {\n console.error(\"[Pixi’VN Ink] Error parsing ink file\", e)\n return\n }\n\n result.labels = getInkLabel(obj.root)\n\n return result\n}\n\nfunction convertorInkToJson(test: string): string {\n try {\n const story = new Compiler(test).Compile();\n let json = story.ToJson();\n return json || \"\";\n } catch (e) {\n console.error(\"[Pixi’VN] Error compiling ink file\", e)\n return \"\"\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/constant.ts","../../src/functions/utility.ts","../../src/functions/ChoiceInfoConverter.ts","../../src/functions/StoryInfoConverter.ts","../../src/functions/InkToPixivn.ts"],"names":[],"mappings":"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","file":"InkToPixivn.mjs","sourcesContent":["export const CHOISE_LABEL_KEY_SEPARATOR = \"_|_\"\n","export function unionStringOrArray(start: string | string[] = \"\", end: string | string[] = \"\"): string[] {\n const startArray = Array.isArray(start) ? start : [start];\n const endArray = Array.isArray(end) ? end : [end];\n return [...new Set([...startArray, ...endArray])];\n}","import LabelChoiceRes from '../types/LabelChoiceRes';\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\nimport { unionStringOrArray } from './utility';\n\nexport function getLabelChoice(items: any[], result: LabelChoiceRes, lastLabel?: string) {\n let text: string = \"\"\n let label: string = \"\"\n let preDialog: string = \"\"\n for (let index = 0; index < items.length; index++) {\n let v = items[index]\n if (typeof v === \"string\") {\n // Dialog\n if (v.startsWith(\"^\")) {\n text = v.substring(1)\n }\n }\n else if (v && typeof v === \"object\") {\n // if is a choice\n if (\"*\" in v && typeof v[\"*\"] && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\n let l = \"c\" + v[\"*\"].split(\"c\")[1]\n label = l\n }\n // if is choise info\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\n let t = findChoiceText(v[\"s\"])\n if (t) {\n if (lastLabel && result[lastLabel]) {\n result[lastLabel].preDialog = { text: t }\n result[lastLabel].text = unionStringOrArray(t, result[lastLabel].text)\n }\n else {\n text = t\n preDialog = t\n }\n }\n }\n }\n if (text && label) {\n if (result[label]) {\n result[label].text = unionStringOrArray(text, result[label].text)\n }\n else {\n result[label] = { text: text }\n }\n if (preDialog) {\n result[label].preDialog = { text: preDialog }\n }\n // split text and label\n let newListItem = items.slice(index + 1)\n getLabelChoice(newListItem, result, label)\n return\n }\n }\n}\n\nfunction findChoiceText(items: RootParserItemType[]): string | undefined {\n for (const item of items) {\n if (typeof item === \"string\") {\n if (item.startsWith(\"^\")) {\n return item.substring(1)\n }\n }\n else if (item instanceof Array) {\n let res = findChoiceText(item)\n if (res) {\n return res\n }\n }\n }\n}\n","import { LabelJsonType, StepLabelJsonType } from '@drincs/pixi-vn';\nimport { CHOISE_LABEL_KEY_SEPARATOR } from '../constant';\nimport InkRootType from '../types/InkRootType';\nimport LabelChoiceRes from '../types/LabelChoiceRes';\nimport RootParserItemType from '../types/parserItems/RootParserItemType';\nimport { getLabelChoice } from './ChoiceInfoConverter';\nimport { unionStringOrArray } from './utility';\n\nexport function getInkLabel(story: InkRootType[]): LabelJsonType | undefined {\n try {\n let label: LabelJsonType = {}\n\n findLabel(story, label)\n\n return label;\n } catch (e) {\n console.error(\"[Pixi’VN Ink] Error parsing ink file\", e)\n }\n}\n\nfunction findLabel(story: RootParserItemType[], labels: LabelJsonType) {\n for (const storyItem of story) {\n if (storyItem) {\n if (storyItem instanceof Array) {\n findLabel(storyItem, labels)\n }\n else if (typeof storyItem === \"object\") {\n addLabels(storyItem, labels)\n }\n }\n }\n}\n\nfunction addLabels(storyItem: object, result: LabelJsonType, dadLabelKey: string = \"\", shareData: ShareData = { preDialog: {} }) {\n if (storyItem === null) {\n return\n }\n // for value and key in item\n for (const [key, value] of Object.entries(storyItem)) {\n // if value is an array\n if (value instanceof Array) {\n let labels: StepLabelJsonType[] = []\n let subLabels: LabelJsonType = {}\n let labelName = (dadLabelKey ? dadLabelKey + CHOISE_LABEL_KEY_SEPARATOR : \"\") + key\n getLabel(value, labelName, labels, subLabels, shareData)\n for (const [subKey, subValue] of Object.entries(subLabels)) {\n result[subKey] = subValue\n }\n if (labels.length > 0) {\n result[labelName] = labels\n }\n }\n }\n}\n\ntype ShareData = {\n preDialog: { [label: string]: { text: string } }\n}\nfunction getLabel(items: any[], labelKey: string, labelSteps: StepLabelJsonType[], subLabels: LabelJsonType, shareData: ShareData, isNewLine: boolean = true) {\n let isInEnv = false\n let envList: any[] = []\n if (shareData.preDialog[labelKey]) {\n labelSteps.push({\n dialog: shareData.preDialog[labelKey].text\n })\n delete shareData.preDialog[labelKey]\n isNewLine = false\n }\n items.forEach((v) => {\n if (isInEnv) {\n envList.push(v)\n if (typeof v === \"string\" && v == \"/ev\") {\n isInEnv = false\n }\n }\n else if (typeof v === \"string\") {\n // Dialog\n if (v.startsWith(\"^\")) {\n if (!isNewLine && labelSteps.length > 0) {\n // in this case: <> text\n if (labelSteps[labelSteps.length - 1].glueEnabled) {\n labelSteps.push({\n dialog: v.substring(1)\n })\n } else {\n let newDialog = labelSteps[labelSteps.length - 1].dialog\n // if is a string or an array\n if (typeof newDialog === \"string\" || newDialog instanceof Array || !newDialog) {\n labelSteps[labelSteps.length - 1].dialog = unionStringOrArray(newDialog, v.substring(1))\n }\n else {\n newDialog.text = unionStringOrArray(newDialog.text, v.substring(1))\n labelSteps[labelSteps.length - 1].dialog = newDialog\n }\n }\n } else {\n labelSteps.push({\n dialog: v.substring(1)\n })\n }\n isNewLine = false\n }\n else if (v == \"ev\") {\n isInEnv = true\n }\n else if (v == \"\\n\") {\n isNewLine = true\n }\n else if (v == \"done\") {\n labelSteps.push({\n end: \"label_end\"\n })\n isNewLine = false\n }\n else if (v == \"end\") {\n labelSteps.push({\n end: \"game_end\"\n })\n isNewLine = false\n }\n else if (v == \"<>\") {\n labelSteps.push({\n glueEnabled: true,\n goNextStep: true,\n })\n isNewLine = false\n }\n }\n else if (v instanceof Array) {\n getLabel(v, labelKey, labelSteps, subLabels, shareData, isNewLine)\n }\n else if (v && typeof v === \"object\") {\n if (\"->\" in v && typeof v[\"->\"] === \"string\"\n // {->: '.^.^.2.s'}\n && !(new RegExp(/^\\.\\^\\.\\^\\.\\d\\.s$/)).test(v[\"->\"])\n ) {\n let labelIdToOpen = v[\"->\"]\n let glueEnabled = isNewLine ? undefined : true\n let goNextStep = isNewLine ? undefined : true\n if (\n // if there are a sub label \"=label\"\n (new RegExp(/^\\.\\^\\.\\^\\.\\^\\.\\^\\..*$/)).test(v[\"->\"])\n && labelKey\n ) {\n let endOfLabel = v[\"->\"].substring(9)\n labelIdToOpen = labelKey.split(CHOISE_LABEL_KEY_SEPARATOR)[0] + CHOISE_LABEL_KEY_SEPARATOR + endOfLabel\n }\n else if (\n // if there are a sub label \"=label\"\n (new RegExp(/^\\.\\^\\.\\^\\.\\^\\..*$/)).test(v[\"->\"])\n && labelKey.includes(CHOISE_LABEL_KEY_SEPARATOR)\n ) {\n let endOfLabel = v[\"->\"].substring(7)\n labelIdToOpen = labelKey.split(CHOISE_LABEL_KEY_SEPARATOR)[0] + CHOISE_LABEL_KEY_SEPARATOR + endOfLabel\n }\n else if (\n // if there are a sub label \"=label\"\n (new RegExp(/^\\.\\^\\..*$/)).test(v[\"->\"])\n && labelKey\n ) {\n let endOfLabel = v[\"->\"].substring(3)\n labelIdToOpen = labelKey + CHOISE_LABEL_KEY_SEPARATOR + endOfLabel\n }\n labelSteps.push({\n labelToOpen: {\n labelId: labelIdToOpen,\n type: \"call\",\n },\n glueEnabled: glueEnabled,\n goNextStep: goNextStep,\n })\n isNewLine = false\n }\n else if (\"*\" in v && typeof v[\"*\"] === \"string\" && v[\"*\"].includes(\"c\")) {\n envList.push(v)\n isNewLine = false\n }\n // if is choise info\n else if (\"s\" in v && v[\"s\"] instanceof Array) {\n envList.push(v)\n isNewLine = false\n }\n else {\n addLabels(v, subLabels, labelKey, shareData)\n }\n }\n })\n if (envList.length > 0) {\n let choices: LabelChoiceRes = {}\n getLabelChoice(envList, choices)\n for (const [key, value] of Object.entries(choices)) {\n let newKey = labelKey + CHOISE_LABEL_KEY_SEPARATOR + key\n // if last step is choice\n if (labelSteps.length > 0 && \"choices\" in labelSteps[labelSteps.length - 1]) {\n labelSteps[labelSteps.length - 1].choices?.push({\n text: value.text,\n label: newKey,\n props: {},\n type: \"call\"\n })\n }\n else {\n labelSteps.push({\n choices: [{\n text: value.text,\n label: newKey,\n props: {},\n type: \"call\"\n }]\n })\n }\n if (value.preDialog) {\n shareData.preDialog[newKey] = {\n text: value.preDialog.text\n }\n }\n }\n }\n // * [Open the gate] -> paragraph_2\n if (labelKey.includes(CHOISE_LABEL_KEY_SEPARATOR) && labelSteps.length == 2\n && labelSteps[0].dialog == \" \" && labelSteps[1].labelToOpen\n ) {\n // remove first step\n labelSteps.shift()\n labelSteps[0].glueEnabled = undefined\n labelSteps[0].goNextStep = undefined\n }\n}\n","import { PixiVNJson } from \"@drincs/pixi-vn\";\nimport { Compiler } from \"inkjs/compiler/Compiler\";\nimport InkStoryType from \"../types/InkStoryType\";\nimport { getInkLabel } from \"./StoryInfoConverter\";\n\n/**\n * This function converts string written in ink language into the LabelJsonType.\n * @param text string or array of strings written in ink language\n * @returns LabelJsonType or undefined\n */\nexport function convertInkText(text: string): PixiVNJson | undefined {\n let result: PixiVNJson = {}\n let json = convertorInkToJson(text);\n let obj: InkStoryType\n try {\n obj = JSON.parse(json);\n } catch (e) {\n console.error(\"[Pixi’VN Ink] Error parsing ink file\", e)\n return\n }\n\n result.labels = getInkLabel(obj.root)\n\n return result\n}\n\nfunction convertorInkToJson(test: string): string {\n try {\n const story = new Compiler(test).Compile();\n let json = story.ToJson();\n return json || \"\";\n } catch (e) {\n console.error(\"[Pixi’VN] Error compiling ink file\", e)\n return \"\"\n }\n}\n"]}
@@ -181,7 +181,6 @@ function getLabel(items, labelKey, labelSteps, subLabels, shareData, isNewLine =
181
181
  ) {
182
182
  let endOfLabel = v["->"].substring(9);
183
183
  labelIdToOpen = labelKey.split(CHOISE_LABEL_KEY_SEPARATOR)[0] + CHOISE_LABEL_KEY_SEPARATOR + endOfLabel;
184
- goNextStep = true;
185
184
  } else if (
186
185
  // if there are a sub label "=label"
187
186
  new RegExp(/^\.\^\.\^\.\^\..*$/).test(v["->"]) && labelKey.includes(CHOISE_LABEL_KEY_SEPARATOR)
@@ -194,7 +193,6 @@ function getLabel(items, labelKey, labelSteps, subLabels, shareData, isNewLine =
194
193
  ) {
195
194
  let endOfLabel = v["->"].substring(3);
196
195
  labelIdToOpen = labelKey + CHOISE_LABEL_KEY_SEPARATOR + endOfLabel;
197
- goNextStep = true;
198
196
  }
199
197
  labelSteps.push({
200
198
  labelToOpen: {
@@ -248,6 +246,7 @@ function getLabel(items, labelKey, labelSteps, subLabels, shareData, isNewLine =
248
246
  if (labelKey.includes(CHOISE_LABEL_KEY_SEPARATOR) && labelSteps.length == 2 && labelSteps[0].dialog == " " && labelSteps[1].labelToOpen) {
249
247
  labelSteps.shift();
250
248
  labelSteps[0].glueEnabled = void 0;
249
+ labelSteps[0].goNextStep = void 0;
251
250
  }
252
251
  }
253
252