@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.
- package/dist/functions/Importer.js +1 -2
- package/dist/functions/Importer.js.map +1 -1
- package/dist/functions/Importer.mjs +1 -2
- package/dist/functions/Importer.mjs.map +1 -1
- package/dist/functions/InkToPixivn.js +1 -2
- package/dist/functions/InkToPixivn.js.map +1 -1
- package/dist/functions/InkToPixivn.mjs +1 -2
- package/dist/functions/InkToPixivn.mjs.map +1 -1
- package/dist/functions/StoryInfoConverter.js +1 -2
- package/dist/functions/StoryInfoConverter.js.map +1 -1
- package/dist/functions/StoryInfoConverter.mjs +1 -2
- package/dist/functions/StoryInfoConverter.mjs.map +1 -1
- package/dist/functions/index.js +1 -2
- package/dist/functions/index.js.map +1 -1
- package/dist/functions/index.mjs +1 -2
- package/dist/functions/index.mjs.map +1 -1
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -2
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -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":"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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 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
|
|