@drincs/pixi-vn 0.6.4 → 0.6.6

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.
Files changed (266) hide show
  1. package/README.md +56 -7
  2. package/dist/classes/CharacterBaseModel.js +99 -90
  3. package/dist/classes/CharacterBaseModel.js.map +1 -1
  4. package/dist/classes/CharacterBaseModel.mjs +99 -90
  5. package/dist/classes/CharacterBaseModel.mjs.map +1 -1
  6. package/dist/classes/ChoiceMenuOption.d.mts +71 -8
  7. package/dist/classes/ChoiceMenuOption.d.ts +71 -8
  8. package/dist/classes/ChoiceMenuOption.js +160 -77
  9. package/dist/classes/ChoiceMenuOption.js.map +1 -1
  10. package/dist/classes/ChoiceMenuOption.mjs +160 -77
  11. package/dist/classes/ChoiceMenuOption.mjs.map +1 -1
  12. package/dist/classes/CloseLabel.d.mts +3 -1
  13. package/dist/classes/CloseLabel.d.ts +3 -1
  14. package/dist/classes/CloseLabel.js +77 -32
  15. package/dist/classes/CloseLabel.js.map +1 -1
  16. package/dist/classes/CloseLabel.mjs +77 -32
  17. package/dist/classes/CloseLabel.mjs.map +1 -1
  18. package/dist/classes/Label.d.mts +6 -33
  19. package/dist/classes/Label.d.ts +6 -33
  20. package/dist/classes/Label.js +74 -31
  21. package/dist/classes/Label.js.map +1 -1
  22. package/dist/classes/Label.mjs +74 -31
  23. package/dist/classes/Label.mjs.map +1 -1
  24. package/dist/classes/LabelAbstract.d.mts +50 -0
  25. package/dist/classes/LabelAbstract.d.ts +50 -0
  26. package/dist/classes/LabelAbstract.js +100 -0
  27. package/dist/classes/LabelAbstract.js.map +1 -0
  28. package/dist/classes/LabelAbstract.mjs +98 -0
  29. package/dist/classes/LabelAbstract.mjs.map +1 -0
  30. package/dist/classes/LabelJson.d.mts +30 -0
  31. package/dist/classes/LabelJson.d.ts +30 -0
  32. package/dist/classes/LabelJson.js +2766 -0
  33. package/dist/classes/LabelJson.js.map +1 -0
  34. package/dist/classes/LabelJson.mjs +2760 -0
  35. package/dist/classes/LabelJson.mjs.map +1 -0
  36. package/dist/classes/StoredClassModel.js +42 -33
  37. package/dist/classes/StoredClassModel.js.map +1 -1
  38. package/dist/classes/StoredClassModel.mjs +42 -33
  39. package/dist/classes/StoredClassModel.mjs.map +1 -1
  40. package/dist/classes/canvas/CanvasContainer.js +2 -2
  41. package/dist/classes/canvas/CanvasContainer.js.map +1 -1
  42. package/dist/classes/canvas/CanvasContainer.mjs +2 -2
  43. package/dist/classes/canvas/CanvasContainer.mjs.map +1 -1
  44. package/dist/classes/canvas/CanvasImage.js +2 -2
  45. package/dist/classes/canvas/CanvasImage.js.map +1 -1
  46. package/dist/classes/canvas/CanvasImage.mjs +2 -2
  47. package/dist/classes/canvas/CanvasImage.mjs.map +1 -1
  48. package/dist/classes/canvas/CanvasSprite.js +2 -2
  49. package/dist/classes/canvas/CanvasSprite.js.map +1 -1
  50. package/dist/classes/canvas/CanvasSprite.mjs +2 -2
  51. package/dist/classes/canvas/CanvasSprite.mjs.map +1 -1
  52. package/dist/classes/canvas/CanvasText.js +2 -2
  53. package/dist/classes/canvas/CanvasText.js.map +1 -1
  54. package/dist/classes/canvas/CanvasText.mjs +2 -2
  55. package/dist/classes/canvas/CanvasText.mjs.map +1 -1
  56. package/dist/classes/canvas/index.js +2 -2
  57. package/dist/classes/canvas/index.js.map +1 -1
  58. package/dist/classes/canvas/index.mjs +2 -2
  59. package/dist/classes/canvas/index.mjs.map +1 -1
  60. package/dist/classes/index.d.mts +6 -1
  61. package/dist/classes/index.d.ts +6 -1
  62. package/dist/classes/index.js +945 -78
  63. package/dist/classes/index.js.map +1 -1
  64. package/dist/classes/index.mjs +945 -79
  65. package/dist/classes/index.mjs.map +1 -1
  66. package/dist/classes/ticker/FadeAlphaTicker.js +42 -33
  67. package/dist/classes/ticker/FadeAlphaTicker.js.map +1 -1
  68. package/dist/classes/ticker/FadeAlphaTicker.mjs +42 -33
  69. package/dist/classes/ticker/FadeAlphaTicker.mjs.map +1 -1
  70. package/dist/classes/ticker/MoveTicker.d.mts +1 -0
  71. package/dist/classes/ticker/MoveTicker.d.ts +1 -0
  72. package/dist/classes/ticker/MoveTicker.js +42 -33
  73. package/dist/classes/ticker/MoveTicker.js.map +1 -1
  74. package/dist/classes/ticker/MoveTicker.mjs +42 -33
  75. package/dist/classes/ticker/MoveTicker.mjs.map +1 -1
  76. package/dist/classes/ticker/RotateTicker.d.mts +1 -0
  77. package/dist/classes/ticker/RotateTicker.d.ts +1 -0
  78. package/dist/classes/ticker/RotateTicker.js +42 -33
  79. package/dist/classes/ticker/RotateTicker.js.map +1 -1
  80. package/dist/classes/ticker/RotateTicker.mjs +42 -33
  81. package/dist/classes/ticker/RotateTicker.mjs.map +1 -1
  82. package/dist/classes/ticker/ZoomTicker.d.mts +1 -0
  83. package/dist/classes/ticker/ZoomTicker.d.ts +1 -0
  84. package/dist/classes/ticker/ZoomTicker.js +42 -33
  85. package/dist/classes/ticker/ZoomTicker.js.map +1 -1
  86. package/dist/classes/ticker/ZoomTicker.mjs +42 -33
  87. package/dist/classes/ticker/ZoomTicker.mjs.map +1 -1
  88. package/dist/classes/ticker/index.js +42 -33
  89. package/dist/classes/ticker/index.js.map +1 -1
  90. package/dist/classes/ticker/index.mjs +42 -33
  91. package/dist/classes/ticker/index.mjs.map +1 -1
  92. package/dist/constants.d.mts +1 -1
  93. package/dist/constants.d.ts +1 -1
  94. package/dist/constants.js +1 -1
  95. package/dist/constants.js.map +1 -1
  96. package/dist/constants.mjs +1 -1
  97. package/dist/constants.mjs.map +1 -1
  98. package/dist/decorators/CanvasElementDecorator.js +2 -2
  99. package/dist/decorators/CanvasElementDecorator.js.map +1 -1
  100. package/dist/decorators/CanvasElementDecorator.mjs +2 -2
  101. package/dist/decorators/CanvasElementDecorator.mjs.map +1 -1
  102. package/dist/decorators/LabelDecorator.d.mts +19 -5
  103. package/dist/decorators/LabelDecorator.d.ts +19 -5
  104. package/dist/decorators/LabelDecorator.js +102 -65
  105. package/dist/decorators/LabelDecorator.js.map +1 -1
  106. package/dist/decorators/LabelDecorator.mjs +102 -66
  107. package/dist/decorators/LabelDecorator.mjs.map +1 -1
  108. package/dist/decorators/index.d.mts +10 -2
  109. package/dist/decorators/index.d.ts +10 -2
  110. package/dist/decorators/index.js +98 -65
  111. package/dist/decorators/index.js.map +1 -1
  112. package/dist/decorators/index.mjs +98 -65
  113. package/dist/decorators/index.mjs.map +1 -1
  114. package/dist/functions/CanvasUtility.js +2 -2
  115. package/dist/functions/CanvasUtility.js.map +1 -1
  116. package/dist/functions/CanvasUtility.mjs +2 -2
  117. package/dist/functions/CanvasUtility.mjs.map +1 -1
  118. package/dist/functions/DialogueUtility.d.mts +10 -8
  119. package/dist/functions/DialogueUtility.d.ts +10 -8
  120. package/dist/functions/DialogueUtility.js +268 -131
  121. package/dist/functions/DialogueUtility.js.map +1 -1
  122. package/dist/functions/DialogueUtility.mjs +268 -131
  123. package/dist/functions/DialogueUtility.mjs.map +1 -1
  124. package/dist/functions/FlagsUtility.js +42 -33
  125. package/dist/functions/FlagsUtility.js.map +1 -1
  126. package/dist/functions/FlagsUtility.mjs +42 -33
  127. package/dist/functions/FlagsUtility.mjs.map +1 -1
  128. package/dist/functions/GameUtility.js +42 -33
  129. package/dist/functions/GameUtility.js.map +1 -1
  130. package/dist/functions/GameUtility.mjs +42 -33
  131. package/dist/functions/GameUtility.mjs.map +1 -1
  132. package/dist/functions/ImageUtility.js +45 -36
  133. package/dist/functions/ImageUtility.js.map +1 -1
  134. package/dist/functions/ImageUtility.mjs +45 -36
  135. package/dist/functions/ImageUtility.mjs.map +1 -1
  136. package/dist/functions/Importer.d.mts +24 -0
  137. package/dist/functions/Importer.d.ts +24 -0
  138. package/dist/functions/Importer.js +2804 -0
  139. package/dist/functions/Importer.js.map +1 -0
  140. package/dist/functions/Importer.mjs +2798 -0
  141. package/dist/functions/Importer.mjs.map +1 -0
  142. package/dist/functions/SavesUtility.d.mts +5 -3
  143. package/dist/functions/SavesUtility.d.ts +5 -3
  144. package/dist/functions/SavesUtility.js +310 -145
  145. package/dist/functions/SavesUtility.js.map +1 -1
  146. package/dist/functions/SavesUtility.mjs +310 -145
  147. package/dist/functions/SavesUtility.mjs.map +1 -1
  148. package/dist/functions/TickerUtility.d.mts +2 -1
  149. package/dist/functions/TickerUtility.d.ts +2 -1
  150. package/dist/functions/TickerUtility.js +19 -15
  151. package/dist/functions/TickerUtility.js.map +1 -1
  152. package/dist/functions/TickerUtility.mjs +19 -15
  153. package/dist/functions/TickerUtility.mjs.map +1 -1
  154. package/dist/functions/index.d.mts +7 -2
  155. package/dist/functions/index.d.ts +7 -2
  156. package/dist/functions/index.js +364 -140
  157. package/dist/functions/index.js.map +1 -1
  158. package/dist/functions/index.mjs +364 -141
  159. package/dist/functions/index.mjs.map +1 -1
  160. package/dist/index.d.mts +6 -0
  161. package/dist/index.d.ts +6 -0
  162. package/dist/index.js +453 -219
  163. package/dist/index.js.map +1 -1
  164. package/dist/index.mjs +453 -221
  165. package/dist/index.mjs.map +1 -1
  166. package/dist/interface/IHistoryStep.d.mts +3 -1
  167. package/dist/interface/IHistoryStep.d.ts +3 -1
  168. package/dist/interface/ISaveData.d.mts +3 -1
  169. package/dist/interface/ISaveData.d.ts +3 -1
  170. package/dist/interface/LabelProps.d.mts +38 -0
  171. package/dist/interface/LabelProps.d.ts +38 -0
  172. package/dist/interface/LabelProps.js +4 -0
  173. package/dist/interface/LabelProps.js.map +1 -0
  174. package/dist/interface/LabelProps.mjs +3 -0
  175. package/dist/interface/LabelProps.mjs.map +1 -0
  176. package/dist/interface/export/ExportedStep.d.mts +3 -1
  177. package/dist/interface/export/ExportedStep.d.ts +3 -1
  178. package/dist/interface/export/index.d.mts +3 -1
  179. package/dist/interface/export/index.d.ts +3 -1
  180. package/dist/interface/index.d.mts +3 -1
  181. package/dist/interface/index.d.ts +3 -1
  182. package/dist/labels/BaseCanvasElementTestLabel.d.mts +3 -1
  183. package/dist/labels/BaseCanvasElementTestLabel.d.ts +3 -1
  184. package/dist/labels/BaseCanvasElementTestLabel.js +303 -136
  185. package/dist/labels/BaseCanvasElementTestLabel.js.map +1 -1
  186. package/dist/labels/BaseCanvasElementTestLabel.mjs +304 -137
  187. package/dist/labels/BaseCanvasElementTestLabel.mjs.map +1 -1
  188. package/dist/labels/CanvasEventsTestLabel.d.mts +4 -5
  189. package/dist/labels/CanvasEventsTestLabel.d.ts +4 -5
  190. package/dist/labels/CanvasEventsTestLabel.js +313 -148
  191. package/dist/labels/CanvasEventsTestLabel.js.map +1 -1
  192. package/dist/labels/CanvasEventsTestLabel.mjs +314 -149
  193. package/dist/labels/CanvasEventsTestLabel.mjs.map +1 -1
  194. package/dist/labels/CustomTickerCanvasElementTestLabel.d.mts +3 -1
  195. package/dist/labels/CustomTickerCanvasElementTestLabel.d.ts +3 -1
  196. package/dist/labels/CustomTickerCanvasElementTestLabel.js +294 -133
  197. package/dist/labels/CustomTickerCanvasElementTestLabel.js.map +1 -1
  198. package/dist/labels/CustomTickerCanvasElementTestLabel.mjs +295 -134
  199. package/dist/labels/CustomTickerCanvasElementTestLabel.mjs.map +1 -1
  200. package/dist/labels/ImagesAnimationsTestLabel.d.mts +3 -1
  201. package/dist/labels/ImagesAnimationsTestLabel.d.ts +3 -1
  202. package/dist/labels/ImagesAnimationsTestLabel.js +298 -181
  203. package/dist/labels/ImagesAnimationsTestLabel.js.map +1 -1
  204. package/dist/labels/ImagesAnimationsTestLabel.mjs +299 -182
  205. package/dist/labels/ImagesAnimationsTestLabel.mjs.map +1 -1
  206. package/dist/labels/MarkdownTest.d.mts +3 -1
  207. package/dist/labels/MarkdownTest.d.ts +3 -1
  208. package/dist/labels/MarkdownTest.js +294 -133
  209. package/dist/labels/MarkdownTest.js.map +1 -1
  210. package/dist/labels/MarkdownTest.mjs +294 -133
  211. package/dist/labels/MarkdownTest.mjs.map +1 -1
  212. package/dist/labels/StartLabel.d.mts +3 -1
  213. package/dist/labels/StartLabel.d.ts +3 -1
  214. package/dist/labels/StartLabel.js +360 -213
  215. package/dist/labels/StartLabel.js.map +1 -1
  216. package/dist/labels/StartLabel.mjs +361 -214
  217. package/dist/labels/StartLabel.mjs.map +1 -1
  218. package/dist/labels/StepLabelTest.d.mts +11 -0
  219. package/dist/labels/StepLabelTest.d.ts +11 -0
  220. package/dist/labels/StepLabelTest.js +2861 -0
  221. package/dist/labels/StepLabelTest.js.map +1 -0
  222. package/dist/labels/StepLabelTest.mjs +2855 -0
  223. package/dist/labels/StepLabelTest.mjs.map +1 -0
  224. package/dist/labels/TestConstant.js +43 -34
  225. package/dist/labels/TestConstant.js.map +1 -1
  226. package/dist/labels/TestConstant.mjs +43 -34
  227. package/dist/labels/TestConstant.mjs.map +1 -1
  228. package/dist/labels/index.d.mts +3 -1
  229. package/dist/labels/index.d.ts +3 -1
  230. package/dist/labels/index.js +360 -213
  231. package/dist/labels/index.js.map +1 -1
  232. package/dist/labels/index.mjs +361 -214
  233. package/dist/labels/index.mjs.map +1 -1
  234. package/dist/managers/StepManager.d.mts +10 -7
  235. package/dist/managers/StepManager.d.ts +10 -7
  236. package/dist/managers/StepManager.js +300 -139
  237. package/dist/managers/StepManager.js.map +1 -1
  238. package/dist/managers/StepManager.mjs +300 -139
  239. package/dist/managers/StepManager.mjs.map +1 -1
  240. package/dist/managers/WindowManager.js +2 -2
  241. package/dist/managers/WindowManager.js.map +1 -1
  242. package/dist/managers/WindowManager.mjs +2 -2
  243. package/dist/managers/WindowManager.mjs.map +1 -1
  244. package/dist/managers/index.d.mts +7 -5
  245. package/dist/managers/index.d.ts +7 -5
  246. package/dist/managers/index.js +300 -139
  247. package/dist/managers/index.js.map +1 -1
  248. package/dist/managers/index.mjs +300 -139
  249. package/dist/managers/index.mjs.map +1 -1
  250. package/dist/types/ChoiceMenuOptionsType.d.mts +3 -1
  251. package/dist/types/ChoiceMenuOptionsType.d.ts +3 -1
  252. package/dist/types/LabelJsonType.d.mts +22 -0
  253. package/dist/types/LabelJsonType.d.ts +22 -0
  254. package/dist/types/LabelJsonType.js +4 -0
  255. package/dist/types/LabelJsonType.js.map +1 -0
  256. package/dist/types/LabelJsonType.mjs +3 -0
  257. package/dist/types/LabelJsonType.mjs.map +1 -0
  258. package/dist/types/StepLabelJsonType.d.mts +30 -0
  259. package/dist/types/StepLabelJsonType.d.ts +30 -0
  260. package/dist/types/StepLabelJsonType.js +4 -0
  261. package/dist/types/StepLabelJsonType.js.map +1 -0
  262. package/dist/types/StepLabelJsonType.mjs +3 -0
  263. package/dist/types/StepLabelJsonType.mjs.map +1 -0
  264. package/dist/types/index.d.mts +4 -0
  265. package/dist/types/index.d.ts +4 -0
  266. package/package.json +7 -6
@@ -1,4 +1,4 @@
1
- import { Rectangle, Sprite, Container, Application, Assets, Texture, Text } from 'pixi.js';
1
+ import { Rectangle, Sprite, Container, Assets, Application, Texture, Text } from 'pixi.js';
2
2
  import { diff } from 'deep-diff';
3
3
  import sha1 from 'crypto-js/sha1';
4
4
 
@@ -506,8 +506,6 @@ function getMemoryContainer(element) {
506
506
  };
507
507
  }
508
508
  function setMemoryContainer(element, memory) {
509
- memory.width && (element.width = memory.width);
510
- memory.height && (element.height = memory.height);
511
509
  memory.isRenderGroup && (element.isRenderGroup = memory.isRenderGroup);
512
510
  memory.blendMode && (element.blendMode = memory.blendMode);
513
511
  memory.tint && (element.tint = memory.tint);
@@ -540,6 +538,8 @@ function setMemoryContainer(element, memory) {
540
538
  memory.interactive && (element.interactive = memory.interactive);
541
539
  memory.interactiveChildren && (element.interactiveChildren = memory.interactiveChildren);
542
540
  memory.hitArea && (element.hitArea = memory.hitArea);
541
+ memory.width && (element.width = memory.width);
542
+ memory.height && (element.height = memory.height);
543
543
  }
544
544
 
545
545
  // src/decorators/CharacterDecorator.ts
@@ -562,19 +562,18 @@ function checkIfStepsIsEqual(step1, step2) {
562
562
  return step1 === step2;
563
563
  }
564
564
 
565
- // src/classes/Label.ts
566
- var Label = class {
565
+ // src/classes/LabelAbstract.ts
566
+ var LabelAbstract = class {
567
567
  /**
568
568
  * @param id is the id of the label
569
- * @param steps is the list of steps that the label will perform
570
- * @param onStepRun is a function that will be executed before any step is executed, is useful for example to make sure all images used have been cached
571
- * @param choiseIndex is the index of the choice that the label will perform
569
+ * @param props is the properties of the label
572
570
  */
573
- constructor(id, steps, onStepRun, choiseIndex) {
571
+ constructor(id, props) {
574
572
  this._id = id;
575
- this._steps = steps;
576
- this._onStepRun = onStepRun;
577
- this._choiseIndex = choiseIndex;
573
+ this._onStepStart = props == null ? void 0 : props.onStepStart;
574
+ this._onLoadStep = props == null ? void 0 : props.onLoadStep;
575
+ this._onStepEnd = props == null ? void 0 : props.onStepEnd;
576
+ this._choiseIndex = props == null ? void 0 : props.choiseIndex;
578
577
  }
579
578
  /**
580
579
  * Get the id of the label. This variable is used in the system to get the label by id, {@link getLabelById}
@@ -582,17 +581,6 @@ var Label = class {
582
581
  get id() {
583
582
  return this._id;
584
583
  }
585
- /**
586
- * Get the steps of the label.
587
- * This class should be extended and the steps method should be overridden.
588
- * Every time you update this list will also be updated when the other game versions load.
589
- */
590
- get steps() {
591
- if (typeof this._steps === "function") {
592
- return this._steps();
593
- }
594
- return this._steps;
595
- }
596
584
  /**
597
585
  * Get the corresponding steps number
598
586
  * @param externalSteps
@@ -611,33 +599,171 @@ var Label = class {
611
599
  return res;
612
600
  }
613
601
  /**
614
- * Get the function that will be executed before any step is executed, is useful for example to make sure all images used have been cached
602
+ * Is a function that will be executed in {@link Label#onStepStart} and when the user goes back to it or when the user laods a save file.
615
603
  * @returns Promise<void> or void
616
- * @example
617
- * ```typescript
618
- * newLabel("id", [], () => {
619
- * Assets.load('path/to/image1.png')
620
- * Assets.load('path/to/image2.png')
621
- * })
622
- * ```
623
604
  */
624
- get onStepRun() {
625
- return this._onStepRun;
605
+ get onStepStart() {
606
+ return (stepIndex, label) => __async(this, null, function* () {
607
+ if (this._onLoadStep) {
608
+ yield this._onLoadStep(stepIndex, label);
609
+ }
610
+ if (this._onStepStart) {
611
+ return yield this._onStepStart(stepIndex, label);
612
+ }
613
+ });
614
+ }
615
+ /**
616
+ * Get the function that will be executed a old step is reloaded. A step is reloaded when the user goes back to it or when the user laods a save file.
617
+ * @returns Promise<void> or void
618
+ */
619
+ get onLoadStep() {
620
+ return this._onLoadStep;
621
+ }
622
+ /**
623
+ * Is a function that will be executed when the step ends.
624
+ * @returns Promise<void> or void
625
+ */
626
+ get onStepEnd() {
627
+ return this._onStepEnd;
626
628
  }
627
629
  get choiseIndex() {
628
630
  return this._choiseIndex;
629
631
  }
630
632
  };
631
633
 
634
+ // src/classes/Label.ts
635
+ var Label = class extends LabelAbstract {
636
+ /**
637
+ * @param id is the id of the label
638
+ * @param steps is the list of steps that the label will perform
639
+ * @param props is the properties of the label
640
+ */
641
+ constructor(id, steps, props) {
642
+ super(id, props);
643
+ this._steps = steps;
644
+ }
645
+ /**
646
+ * Get the steps of the label.
647
+ */
648
+ get steps() {
649
+ if (typeof this._steps === "function") {
650
+ return this._steps();
651
+ }
652
+ return this._steps;
653
+ }
654
+ };
655
+
632
656
  // src/classes/CloseLabel.ts
633
657
  var CLOSE_LABEL_ID = "__close-label-id__";
634
658
  function newCloseLabel(choiseIndex) {
635
- return new Label(CLOSE_LABEL_ID, [], void 0, choiseIndex);
659
+ return new Label(CLOSE_LABEL_ID, [], {
660
+ choiseIndex
661
+ });
636
662
  }
637
663
 
638
664
  // src/types/CloseType.ts
639
665
  var Close = "close";
640
666
 
667
+ // src/classes/ChoiceMenuOption.ts
668
+ var ChoiceMenuOption = class {
669
+ /**
670
+ * @param text Text to be displayed in the menu
671
+ * @param label Label to be opened when the option is selected or the id of the label
672
+ * @param props Properties to be passed to the label and olther parameters that you can use when get all the choice menu options. It be converted to a JSON string, so it cannot contain functions or classes.
673
+ * @param type Type of the label to be opened. @default "call"
674
+ */
675
+ constructor(text, label, props, type = "call") {
676
+ /**
677
+ * Properties to be passed to the label and olther parameters that you can use when get all the choice menu options.
678
+ * @example
679
+ * ```tsx
680
+ * setChoiceMenuOptions([
681
+ * new ChoiceMenuOption("Hello", helloLabel, { disabled: true }),
682
+ * ])
683
+ * return <List>
684
+ * {getChoiceMenuOptions()?.map((item, index) => {
685
+ * return (
686
+ * <ChoiceButton
687
+ * disabled={item.props.disabled}
688
+ * onClick={() => {
689
+ * afterSelectChoice(item)
690
+ * }}
691
+ * >
692
+ * {item.text}
693
+ * </ChoiceButton>
694
+ * )
695
+ * })}
696
+ * </List>
697
+ * ```
698
+ */
699
+ this.props = {};
700
+ this.text = text;
701
+ this._label = label;
702
+ this.type = type;
703
+ if (props) {
704
+ this.props = props;
705
+ }
706
+ }
707
+ /**
708
+ * Label to be opened when the option is selected
709
+ */
710
+ get label() {
711
+ let label = this._label;
712
+ if (typeof label === "string") {
713
+ let res = getLabelById(label);
714
+ if (res) {
715
+ label = res;
716
+ } else {
717
+ console.error(`Label ${label} not found, so it will be closed`);
718
+ label = newCloseLabel();
719
+ }
720
+ }
721
+ return label;
722
+ }
723
+ };
724
+ var ChoiceMenuOptionClose = class {
725
+ /**
726
+ * @param text Text to be displayed in the menu
727
+ * @param closeCurrentLabel If true, the current label will be closed. @default false
728
+ */
729
+ constructor(text, closeCurrentLabel = false) {
730
+ /**
731
+ * Label to be opened when the option is selected
732
+ */
733
+ this.label = newCloseLabel();
734
+ /**
735
+ * Type of the label to be opened
736
+ */
737
+ this.type = Close;
738
+ /**
739
+ * Properties to be passed to the label and olther parameters that you can use when get all the choice menu options.
740
+ * @example
741
+ * ```tsx
742
+ * setChoiceMenuOptions([
743
+ * new ChoiceMenuOption("Hello", helloLabel, { disabled: true }),
744
+ * ])
745
+ * return <List>
746
+ * {getChoiceMenuOptions()?.map((item, index) => {
747
+ * return (
748
+ * <ChoiceButton
749
+ * disabled={item.props.disabled}
750
+ * onClick={() => {
751
+ * afterSelectChoice(item)
752
+ * }}
753
+ * >
754
+ * {item.text}
755
+ * </ChoiceButton>
756
+ * )
757
+ * })}
758
+ * </List>
759
+ * ```
760
+ */
761
+ this.props = {};
762
+ this.text = text;
763
+ this.closeCurrentLabel = closeCurrentLabel;
764
+ }
765
+ };
766
+
641
767
  // src/functions/DialogueUtility.ts
642
768
  function setDialogue(props) {
643
769
  let text = "";
@@ -672,21 +798,18 @@ function getChoiceMenuOptions() {
672
798
  d.forEach((option, index) => {
673
799
  if (option.type === Close) {
674
800
  let itemLabel = newCloseLabel(index);
675
- options.push({
676
- text: option.text,
677
- label: itemLabel,
678
- type: Close,
679
- closeCurrentLabel: option.closeCurrentLabel,
680
- props: {}
681
- });
801
+ let choice = new ChoiceMenuOptionClose(option.text, option.closeCurrentLabel);
802
+ choice.label = itemLabel;
803
+ options.push(choice);
682
804
  return;
683
805
  }
684
806
  let label = getLabelById(option.label);
685
807
  if (label) {
686
- let itemLabel = new Label(label.id, label.steps, label.onStepRun, index);
687
- options.push(__spreadProps(__spreadValues({}, option), {
688
- label: itemLabel
689
- }));
808
+ let itemLabel = new Label(label.id, label.steps, {
809
+ onStepStart: label.onStepStart,
810
+ choiseIndex: index
811
+ });
812
+ options.push(new ChoiceMenuOption(option.text, itemLabel, option.props, option.type));
690
813
  }
691
814
  });
692
815
  return options;
@@ -695,8 +818,9 @@ function getChoiceMenuOptions() {
695
818
  }
696
819
 
697
820
  // src/functions/TickerUtility.ts
698
- function updateTickerProgression(args, propertyName, progression) {
699
- if (args[propertyName] === void 0 || !progression || args[propertyName] === progression.limit) {
821
+ function updateTickerProgression(args, propertyName, progression, valueConvert) {
822
+ let limit = valueConvert && progression.limit ? valueConvert(progression.limit) : progression.limit;
823
+ if (args[propertyName] === void 0 || !progression || args[propertyName] === limit) {
700
824
  return;
701
825
  }
702
826
  if (typeof args[propertyName] === "number") {
@@ -715,22 +839,25 @@ function updateTickerProgression(args, propertyName, progression) {
715
839
  }
716
840
  }
717
841
  }
718
- function getLinearProgression(number, progression) {
719
- if (progression.limit !== void 0) {
720
- if (number > progression.limit && progression.amt > 0) {
721
- return progression.limit;
722
- } else if (number < progression.limit && progression.amt < 0) {
723
- return progression.limit;
842
+ function getLinearProgression(number, progression, valueConvert) {
843
+ let limit = valueConvert && progression.limit ? valueConvert(progression.limit) : progression.limit;
844
+ let amt = valueConvert ? valueConvert(progression.amt) : progression.amt;
845
+ if (limit !== void 0) {
846
+ if (number > limit && amt > 0) {
847
+ return limit;
848
+ } else if (number < limit && amt < 0) {
849
+ return limit;
724
850
  }
725
851
  }
726
- return number + progression.amt / 60;
852
+ return number + amt;
727
853
  }
728
- function getExponentialProgression(number, progression) {
729
- if (progression.limit !== void 0) {
730
- if (number > progression.limit && progression.percentage > 0) {
731
- return progression.limit;
732
- } else if (number < progression.limit && progression.percentage < 0) {
733
- return progression.limit;
854
+ function getExponentialProgression(number, progression, valueConvert) {
855
+ let limit = valueConvert && progression.limit ? valueConvert(progression.limit) : progression.limit;
856
+ if (limit !== void 0) {
857
+ if (number > limit && progression.percentage > 0) {
858
+ return limit;
859
+ } else if (number < limit && progression.percentage < 0) {
860
+ return limit;
734
861
  }
735
862
  }
736
863
  return number + number * progression.percentage;
@@ -773,15 +900,13 @@ var ZoomTicker = class extends TickerBase {
773
900
  let ySpeed = 0.1;
774
901
  if (args.speed) {
775
902
  if (typeof args.speed === "number") {
776
- xSpeed = args.speed;
777
- ySpeed = args.speed;
903
+ xSpeed = this.speedConvert(args.speed);
904
+ ySpeed = this.speedConvert(args.speed);
778
905
  } else {
779
- xSpeed = args.speed.x;
780
- ySpeed = args.speed.y;
906
+ xSpeed = this.speedConvert(args.speed.x);
907
+ ySpeed = this.speedConvert(args.speed.y);
781
908
  }
782
909
  }
783
- xSpeed /= 60;
784
- ySpeed /= 60;
785
910
  let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
786
911
  if (typeof tagToRemoveAfter2 === "string") {
787
912
  tagToRemoveAfter2 = [tagToRemoveAfter2];
@@ -848,7 +973,10 @@ var ZoomTicker = class extends TickerBase {
848
973
  }
849
974
  });
850
975
  if (args.speedProgression)
851
- updateTickerProgression(args, "speed", args.speedProgression);
976
+ updateTickerProgression(args, "speed", args.speedProgression, this.speedConvert);
977
+ }
978
+ speedConvert(speed) {
979
+ return speed / 60;
852
980
  }
853
981
  onEndOfTicker(tag, tickerId, _element, tagToRemoveAfter2) {
854
982
  GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
@@ -1838,6 +1966,16 @@ var _GameStepManager = class _GameStepManager {
1838
1966
  static set originalStepData(value) {
1839
1967
  _GameStepManager._originalStepData = createExportableElement(value);
1840
1968
  }
1969
+ static get currentStepData() {
1970
+ let currentStepData = {
1971
+ path: window.location.pathname,
1972
+ storage: GameStorageManager.export(),
1973
+ canvas: GameWindowManager.export(),
1974
+ labelIndex: _GameStepManager.currentLabelStepIndex || 0,
1975
+ openedLabels: createExportableElement(_GameStepManager._openedLabels)
1976
+ };
1977
+ return currentStepData;
1978
+ }
1841
1979
  /* Edit History Methods */
1842
1980
  /**
1843
1981
  * Add a label to the history.
@@ -1845,19 +1983,13 @@ var _GameStepManager = class _GameStepManager {
1845
1983
  */
1846
1984
  static addStepHistory(step, choiseMade) {
1847
1985
  let stepHistory = getStepSha1(step);
1848
- let historyStep = {
1849
- path: window.location.pathname,
1850
- storage: GameStorageManager.export(),
1851
- canvas: GameWindowManager.export(),
1852
- labelIndex: _GameStepManager.currentLabelStepIndex || 0,
1853
- openedLabels: createExportableElement(_GameStepManager._openedLabels)
1854
- };
1986
+ let currentStepData = _GameStepManager.currentStepData;
1855
1987
  if (_GameStepManager.originalStepData) {
1856
- if (_GameStepManager.originalStepData.openedLabels.length === historyStep.openedLabels.length) {
1988
+ if (_GameStepManager.originalStepData.openedLabels.length === currentStepData.openedLabels.length) {
1857
1989
  try {
1858
1990
  let lastStepDataOpenedLabelsString = JSON.stringify(_GameStepManager.originalStepData.openedLabels);
1859
- let historyStepOpenedLabelsString = JSON.stringify(historyStep.openedLabels);
1860
- if (lastStepDataOpenedLabelsString === historyStepOpenedLabelsString && _GameStepManager.originalStepData.path === historyStep.path && _GameStepManager.originalStepData.labelIndex === historyStep.labelIndex) {
1991
+ let historyStepOpenedLabelsString = JSON.stringify(currentStepData.openedLabels);
1992
+ if (lastStepDataOpenedLabelsString === historyStepOpenedLabelsString && _GameStepManager.originalStepData.path === currentStepData.path && _GameStepManager.originalStepData.labelIndex === currentStepData.labelIndex) {
1861
1993
  return;
1862
1994
  }
1863
1995
  } catch (e) {
@@ -1865,7 +1997,7 @@ var _GameStepManager = class _GameStepManager {
1865
1997
  }
1866
1998
  }
1867
1999
  }
1868
- let data = diff(_GameStepManager.originalStepData, historyStep);
2000
+ let data = diff(_GameStepManager.originalStepData, currentStepData);
1869
2001
  if (data) {
1870
2002
  let dialoge = void 0;
1871
2003
  let requiredChoices = void 0;
@@ -1884,7 +2016,7 @@ var _GameStepManager = class _GameStepManager {
1884
2016
  index: _GameStepManager.lastStepIndex,
1885
2017
  choiceIndexMade: choiseMade
1886
2018
  });
1887
- _GameStepManager.originalStepData = historyStep;
2019
+ _GameStepManager.originalStepData = currentStepData;
1888
2020
  }
1889
2021
  _GameStepManager.increaseLastStepIndex();
1890
2022
  }
@@ -1975,6 +2107,9 @@ var _GameStepManager = class _GameStepManager {
1975
2107
  console.warn("[Pixi'VN] The player must make a choice");
1976
2108
  return;
1977
2109
  }
2110
+ if (_GameStepManager.currentLabel && _GameStepManager.currentLabel.onStepEnd) {
2111
+ yield _GameStepManager.currentLabel.onStepEnd(_GameStepManager.currentLabelStepIndex || 0, _GameStepManager.currentLabel);
2112
+ }
1978
2113
  _GameStepManager.increaseCurrentStepIndex();
1979
2114
  return yield _GameStepManager.runCurrentStep(props, choiseMade);
1980
2115
  });
@@ -1999,6 +2134,10 @@ var _GameStepManager = class _GameStepManager {
1999
2134
  return;
2000
2135
  }
2001
2136
  if (currentLabel.steps.length > currentLabelStepIndex) {
2137
+ let onStepRun = currentLabel.onStepStart;
2138
+ if (onStepRun) {
2139
+ yield onStepRun(currentLabelStepIndex, currentLabel);
2140
+ }
2002
2141
  let step = currentLabel.steps[currentLabelStepIndex];
2003
2142
  let result = yield step(props);
2004
2143
  _GameStepManager.addStepHistory(step, choiseMade);
@@ -2063,6 +2202,9 @@ var _GameStepManager = class _GameStepManager {
2063
2202
  if (!tempLabel) {
2064
2203
  throw new Error(`[Pixi'VN] Label ${labelId} not found`);
2065
2204
  }
2205
+ if (_GameStepManager.currentLabel && _GameStepManager.currentLabel.onStepEnd) {
2206
+ yield _GameStepManager.currentLabel.onStepEnd(_GameStepManager.currentLabelStepIndex || 0, _GameStepManager.currentLabel);
2207
+ }
2066
2208
  _GameStepManager.pushNewLabel(tempLabel.id);
2067
2209
  } catch (e) {
2068
2210
  console.error("[Pixi'VN] Error calling label", e);
@@ -2121,6 +2263,9 @@ var _GameStepManager = class _GameStepManager {
2121
2263
  if (!tempLabel) {
2122
2264
  throw new Error(`[Pixi'VN] Label ${labelId} not found`);
2123
2265
  }
2266
+ if (_GameStepManager.currentLabel && _GameStepManager.currentLabel.onStepEnd) {
2267
+ yield _GameStepManager.currentLabel.onStepEnd(_GameStepManager.currentLabelStepIndex || 0, _GameStepManager.currentLabel);
2268
+ }
2124
2269
  _GameStepManager.pushNewLabel(tempLabel.id);
2125
2270
  } catch (e) {
2126
2271
  console.error("[Pixi'VN] Error jumping label", e);
@@ -2226,24 +2371,29 @@ var _GameStepManager = class _GameStepManager {
2226
2371
  * ```
2227
2372
  */
2228
2373
  static goBack(navigate, steps = 1) {
2229
- if (steps <= 0) {
2230
- console.warn("[Pixi'VN] Steps must be greater than 0");
2231
- return;
2232
- }
2233
- if (_GameStepManager._stepsHistory.length <= 1) {
2234
- console.warn("[Pixi'VN] No steps to go back");
2235
- return;
2236
- }
2237
- let restoredStep = _GameStepManager.goBackInternal(steps, _GameStepManager.originalStepData);
2238
- if (restoredStep) {
2239
- _GameStepManager._originalStepData = restoredStep;
2240
- _GameStepManager._openedLabels = createExportableElement(restoredStep.openedLabels);
2241
- GameStorageManager.import(createExportableElement(restoredStep.storage));
2242
- GameWindowManager.import(createExportableElement(restoredStep.canvas));
2243
- navigate(restoredStep.path);
2244
- } else {
2245
- console.error("[Pixi'VN] Error going back");
2246
- }
2374
+ return __async(this, null, function* () {
2375
+ if (steps <= 0) {
2376
+ console.warn("[Pixi'VN] Steps must be greater than 0");
2377
+ return;
2378
+ }
2379
+ if (_GameStepManager._stepsHistory.length <= 1) {
2380
+ console.warn("[Pixi'VN] No steps to go back");
2381
+ return;
2382
+ }
2383
+ let restoredStep = _GameStepManager.goBackInternal(steps, _GameStepManager.originalStepData);
2384
+ if (restoredStep) {
2385
+ _GameStepManager._originalStepData = restoredStep;
2386
+ _GameStepManager._openedLabels = createExportableElement(restoredStep.openedLabels);
2387
+ if (_GameStepManager.currentLabel && _GameStepManager.currentLabel.onLoadStep) {
2388
+ yield _GameStepManager.currentLabel.onLoadStep(_GameStepManager.currentLabelStepIndex || 0, _GameStepManager.currentLabel);
2389
+ }
2390
+ GameStorageManager.import(createExportableElement(restoredStep.storage));
2391
+ GameWindowManager.import(createExportableElement(restoredStep.canvas));
2392
+ navigate(restoredStep.path);
2393
+ } else {
2394
+ console.error("[Pixi'VN] Error going back");
2395
+ }
2396
+ });
2247
2397
  }
2248
2398
  static goBackInternal(steps, restoredStep) {
2249
2399
  if (steps <= 0) {
@@ -2305,38 +2455,45 @@ var _GameStepManager = class _GameStepManager {
2305
2455
  * @param dataString The history in a JSON string.
2306
2456
  */
2307
2457
  static importJson(dataString) {
2308
- _GameStepManager.import(JSON.parse(dataString));
2458
+ return __async(this, null, function* () {
2459
+ yield _GameStepManager.import(JSON.parse(dataString));
2460
+ });
2309
2461
  }
2310
2462
  /**
2311
2463
  * Import the history from an object.
2312
2464
  * @param data The history in an object.
2313
2465
  */
2314
2466
  static import(data) {
2315
- _GameStepManager.clear();
2316
- try {
2317
- if (data.hasOwnProperty("stepsHistory")) {
2318
- _GameStepManager._stepsHistory = data["stepsHistory"];
2319
- } else {
2320
- console.warn("[Pixi'VN] Could not import stepsHistory data, so will be ignored");
2321
- }
2322
- if (data.hasOwnProperty("openedLabels")) {
2323
- _GameStepManager._openedLabels = data["openedLabels"];
2324
- } else {
2325
- console.warn("[Pixi'VN] Could not import openedLabels data, so will be ignored");
2326
- }
2327
- if (data.hasOwnProperty("lastStepIndex")) {
2328
- _GameStepManager._lastStepIndex = data["lastStepIndex"];
2329
- } else {
2330
- console.warn("[Pixi'VN] Could not import lastStepIndex data, so will be ignored");
2331
- }
2332
- if (data.hasOwnProperty("originalStepData")) {
2333
- _GameStepManager._originalStepData = data["originalStepData"];
2334
- } else {
2335
- console.warn("[Pixi'VN] Could not import originalStepData data, so will be ignored");
2467
+ return __async(this, null, function* () {
2468
+ _GameStepManager.clear();
2469
+ try {
2470
+ if (data.hasOwnProperty("stepsHistory")) {
2471
+ _GameStepManager._stepsHistory = data["stepsHistory"];
2472
+ } else {
2473
+ console.warn("[Pixi'VN] Could not import stepsHistory data, so will be ignored");
2474
+ }
2475
+ if (data.hasOwnProperty("openedLabels")) {
2476
+ _GameStepManager._openedLabels = data["openedLabels"];
2477
+ } else {
2478
+ console.warn("[Pixi'VN] Could not import openedLabels data, so will be ignored");
2479
+ }
2480
+ if (data.hasOwnProperty("lastStepIndex")) {
2481
+ _GameStepManager._lastStepIndex = data["lastStepIndex"];
2482
+ } else {
2483
+ console.warn("[Pixi'VN] Could not import lastStepIndex data, so will be ignored");
2484
+ }
2485
+ if (data.hasOwnProperty("originalStepData")) {
2486
+ _GameStepManager._originalStepData = data["originalStepData"];
2487
+ } else {
2488
+ console.warn("[Pixi'VN] Could not import originalStepData data, so will be ignored");
2489
+ }
2490
+ if (_GameStepManager.currentLabel && _GameStepManager.currentLabel.onLoadStep) {
2491
+ yield _GameStepManager.currentLabel.onLoadStep(_GameStepManager.currentLabelStepIndex || 0, _GameStepManager.currentLabel);
2492
+ }
2493
+ } catch (e) {
2494
+ console.error("[Pixi'VN] Error importing data", e);
2336
2495
  }
2337
- } catch (e) {
2338
- console.error("[Pixi'VN] Error importing data", e);
2339
- }
2496
+ });
2340
2497
  }
2341
2498
  };
2342
2499
  /**
@@ -2510,11 +2667,11 @@ var DialogueBaseModel = class {
2510
2667
 
2511
2668
  // src/decorators/LabelDecorator.ts
2512
2669
  var registeredLabels = {};
2513
- function newLabel(id, steps, onStepRun) {
2670
+ function newLabel(id, steps, props) {
2514
2671
  if (registeredLabels[id]) {
2515
2672
  console.info(`[Pixi'VN] Label ${id} already exists, it will be overwritten`);
2516
2673
  }
2517
- let label = new Label(id, steps, onStepRun);
2674
+ let label = new Label(id, steps, props);
2518
2675
  registeredLabels[id] = label;
2519
2676
  return label;
2520
2677
  }
@@ -2581,15 +2738,13 @@ var MoveTicker = class extends TickerBase {
2581
2738
  let ySpeed = 1;
2582
2739
  if (args.speed) {
2583
2740
  if (typeof args.speed === "number") {
2584
- xSpeed = args.speed;
2585
- ySpeed = args.speed;
2741
+ xSpeed = this.speedConvert(args.speed);
2742
+ ySpeed = this.speedConvert(args.speed);
2586
2743
  } else {
2587
- xSpeed = args.speed.x;
2588
- ySpeed = args.speed.y;
2744
+ xSpeed = this.speedConvert(args.speed.x);
2745
+ ySpeed = this.speedConvert(args.speed.y);
2589
2746
  }
2590
2747
  }
2591
- xSpeed /= 60;
2592
- ySpeed /= 60;
2593
2748
  let destination = args.destination;
2594
2749
  let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
2595
2750
  if (typeof tagToRemoveAfter2 === "string") {
@@ -2629,7 +2784,10 @@ var MoveTicker = class extends TickerBase {
2629
2784
  }
2630
2785
  });
2631
2786
  if (args.speedProgression)
2632
- updateTickerProgression(args, "speed", args.speedProgression);
2787
+ updateTickerProgression(args, "speed", args.speedProgression, this.speedConvert);
2788
+ }
2789
+ speedConvert(speed) {
2790
+ return speed / 6;
2633
2791
  }
2634
2792
  };
2635
2793
  MoveTicker = __decorateClass([
@@ -2637,7 +2795,7 @@ MoveTicker = __decorateClass([
2637
2795
  ], MoveTicker);
2638
2796
  var RotateTicker = class extends TickerBase {
2639
2797
  fn(ticker, args, tags, tickerId) {
2640
- let speed = (args.speed === void 0 ? 1 : args.speed) / 60;
2798
+ let speed = this.speedConvert(args.speed === void 0 ? 1 : args.speed);
2641
2799
  let clockwise = args.clockwise === void 0 ? true : args.clockwise;
2642
2800
  let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
2643
2801
  if (typeof tagToRemoveAfter2 === "string") {
@@ -2665,7 +2823,10 @@ var RotateTicker = class extends TickerBase {
2665
2823
  }
2666
2824
  });
2667
2825
  if (args.speedProgression)
2668
- updateTickerProgression(args, "speed", args.speedProgression);
2826
+ updateTickerProgression(args, "speed", args.speedProgression, this.speedConvert);
2827
+ }
2828
+ speedConvert(speed) {
2829
+ return speed / 60;
2669
2830
  }
2670
2831
  };
2671
2832
  RotateTicker = __decorateClass([
@@ -2676,7 +2837,7 @@ RotateTicker = __decorateClass([
2676
2837
  var juliette = new CharacterBaseModel2("___pixivn_juliette___", {
2677
2838
  name: "Juliette",
2678
2839
  age: 25,
2679
- icon: "https://firebasestorage.googleapis.com/v0/b/pixi-vn.appspot.com/o/public%2Fcharacters%2Fjuliette-square.webp?alt=media&token=5856ae7b-d99e-4563-86ec-cbc48cc9c6b4",
2840
+ icon: "https://firebasestorage.googleapis.com/v0/b/pixi-vn.appspot.com/o/public%2Fcharacters%2Fjuliette-square.webp?alt=media",
2680
2841
  color: "#ac0086"
2681
2842
  });
2682
2843
  saveCharacter(juliette);