@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,8 +1,10 @@
1
1
  import Label from '../classes/Label.mjs';
2
2
  import '../types/LabelIdType.mjs';
3
- import '../types/StepHistoryDataType.mjs';
4
3
  import '../types/StepLabelType.mjs';
5
4
  import '@drincs/pixi-vn/dist/override';
5
+ import '../classes/LabelAbstract.mjs';
6
+ import '../types/StepHistoryDataType.mjs';
7
+ import '../interface/LabelProps.mjs';
6
8
 
7
9
  declare const markdownTest: Label<{}>;
8
10
 
@@ -1,8 +1,10 @@
1
1
  import Label from '../classes/Label.js';
2
2
  import '../types/LabelIdType.js';
3
- import '../types/StepHistoryDataType.js';
4
3
  import '../types/StepLabelType.js';
5
4
  import '@drincs/pixi-vn/dist/override';
5
+ import '../classes/LabelAbstract.js';
6
+ import '../types/StepHistoryDataType.js';
7
+ import '../interface/LabelProps.js';
6
8
 
7
9
  declare const markdownTest: Label<{}>;
8
10
 
@@ -133,8 +133,6 @@ function getMemoryContainer(element) {
133
133
  };
134
134
  }
135
135
  function setMemoryContainer(element, memory) {
136
- memory.width && (element.width = memory.width);
137
- memory.height && (element.height = memory.height);
138
136
  memory.isRenderGroup && (element.isRenderGroup = memory.isRenderGroup);
139
137
  memory.blendMode && (element.blendMode = memory.blendMode);
140
138
  memory.tint && (element.tint = memory.tint);
@@ -167,6 +165,8 @@ function setMemoryContainer(element, memory) {
167
165
  memory.interactive && (element.interactive = memory.interactive);
168
166
  memory.interactiveChildren && (element.interactiveChildren = memory.interactiveChildren);
169
167
  memory.hitArea && (element.hitArea = memory.hitArea);
168
+ memory.width && (element.width = memory.width);
169
+ memory.height && (element.height = memory.height);
170
170
  }
171
171
  function getTexture(imageUrl) {
172
172
  return __async(this, null, function* () {
@@ -559,19 +559,18 @@ function checkIfStepsIsEqual(step1, step2) {
559
559
  return step1 === step2;
560
560
  }
561
561
 
562
- // src/classes/Label.ts
563
- var Label = class {
562
+ // src/classes/LabelAbstract.ts
563
+ var LabelAbstract = class {
564
564
  /**
565
565
  * @param id is the id of the label
566
- * @param steps is the list of steps that the label will perform
567
- * @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
568
- * @param choiseIndex is the index of the choice that the label will perform
566
+ * @param props is the properties of the label
569
567
  */
570
- constructor(id, steps, onStepRun, choiseIndex) {
568
+ constructor(id, props) {
571
569
  this._id = id;
572
- this._steps = steps;
573
- this._onStepRun = onStepRun;
574
- this._choiseIndex = choiseIndex;
570
+ this._onStepStart = props == null ? void 0 : props.onStepStart;
571
+ this._onLoadStep = props == null ? void 0 : props.onLoadStep;
572
+ this._onStepEnd = props == null ? void 0 : props.onStepEnd;
573
+ this._choiseIndex = props == null ? void 0 : props.choiseIndex;
575
574
  }
576
575
  /**
577
576
  * Get the id of the label. This variable is used in the system to get the label by id, {@link getLabelById}
@@ -579,17 +578,6 @@ var Label = class {
579
578
  get id() {
580
579
  return this._id;
581
580
  }
582
- /**
583
- * Get the steps of the label.
584
- * This class should be extended and the steps method should be overridden.
585
- * Every time you update this list will also be updated when the other game versions load.
586
- */
587
- get steps() {
588
- if (typeof this._steps === "function") {
589
- return this._steps();
590
- }
591
- return this._steps;
592
- }
593
581
  /**
594
582
  * Get the corresponding steps number
595
583
  * @param externalSteps
@@ -608,33 +596,171 @@ var Label = class {
608
596
  return res;
609
597
  }
610
598
  /**
611
- * 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
599
+ * 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.
612
600
  * @returns Promise<void> or void
613
- * @example
614
- * ```typescript
615
- * newLabel("id", [], () => {
616
- * Assets.load('path/to/image1.png')
617
- * Assets.load('path/to/image2.png')
618
- * })
619
- * ```
620
601
  */
621
- get onStepRun() {
622
- return this._onStepRun;
602
+ get onStepStart() {
603
+ return (stepIndex, label) => __async(this, null, function* () {
604
+ if (this._onLoadStep) {
605
+ yield this._onLoadStep(stepIndex, label);
606
+ }
607
+ if (this._onStepStart) {
608
+ return yield this._onStepStart(stepIndex, label);
609
+ }
610
+ });
611
+ }
612
+ /**
613
+ * 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.
614
+ * @returns Promise<void> or void
615
+ */
616
+ get onLoadStep() {
617
+ return this._onLoadStep;
618
+ }
619
+ /**
620
+ * Is a function that will be executed when the step ends.
621
+ * @returns Promise<void> or void
622
+ */
623
+ get onStepEnd() {
624
+ return this._onStepEnd;
623
625
  }
624
626
  get choiseIndex() {
625
627
  return this._choiseIndex;
626
628
  }
627
629
  };
628
630
 
631
+ // src/classes/Label.ts
632
+ var Label = class extends LabelAbstract {
633
+ /**
634
+ * @param id is the id of the label
635
+ * @param steps is the list of steps that the label will perform
636
+ * @param props is the properties of the label
637
+ */
638
+ constructor(id, steps, props) {
639
+ super(id, props);
640
+ this._steps = steps;
641
+ }
642
+ /**
643
+ * Get the steps of the label.
644
+ */
645
+ get steps() {
646
+ if (typeof this._steps === "function") {
647
+ return this._steps();
648
+ }
649
+ return this._steps;
650
+ }
651
+ };
652
+
629
653
  // src/classes/CloseLabel.ts
630
654
  var CLOSE_LABEL_ID = "__close-label-id__";
631
655
  function newCloseLabel(choiseIndex) {
632
- return new Label(CLOSE_LABEL_ID, [], void 0, choiseIndex);
656
+ return new Label(CLOSE_LABEL_ID, [], {
657
+ choiseIndex
658
+ });
633
659
  }
634
660
 
635
661
  // src/types/CloseType.ts
636
662
  var Close = "close";
637
663
 
664
+ // src/classes/ChoiceMenuOption.ts
665
+ var ChoiceMenuOption = class {
666
+ /**
667
+ * @param text Text to be displayed in the menu
668
+ * @param label Label to be opened when the option is selected or the id of the label
669
+ * @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.
670
+ * @param type Type of the label to be opened. @default "call"
671
+ */
672
+ constructor(text, label, props, type = "call") {
673
+ /**
674
+ * Properties to be passed to the label and olther parameters that you can use when get all the choice menu options.
675
+ * @example
676
+ * ```tsx
677
+ * setChoiceMenuOptions([
678
+ * new ChoiceMenuOption("Hello", helloLabel, { disabled: true }),
679
+ * ])
680
+ * return <List>
681
+ * {getChoiceMenuOptions()?.map((item, index) => {
682
+ * return (
683
+ * <ChoiceButton
684
+ * disabled={item.props.disabled}
685
+ * onClick={() => {
686
+ * afterSelectChoice(item)
687
+ * }}
688
+ * >
689
+ * {item.text}
690
+ * </ChoiceButton>
691
+ * )
692
+ * })}
693
+ * </List>
694
+ * ```
695
+ */
696
+ this.props = {};
697
+ this.text = text;
698
+ this._label = label;
699
+ this.type = type;
700
+ if (props) {
701
+ this.props = props;
702
+ }
703
+ }
704
+ /**
705
+ * Label to be opened when the option is selected
706
+ */
707
+ get label() {
708
+ let label = this._label;
709
+ if (typeof label === "string") {
710
+ let res = getLabelById(label);
711
+ if (res) {
712
+ label = res;
713
+ } else {
714
+ console.error(`Label ${label} not found, so it will be closed`);
715
+ label = newCloseLabel();
716
+ }
717
+ }
718
+ return label;
719
+ }
720
+ };
721
+ var ChoiceMenuOptionClose = class {
722
+ /**
723
+ * @param text Text to be displayed in the menu
724
+ * @param closeCurrentLabel If true, the current label will be closed. @default false
725
+ */
726
+ constructor(text, closeCurrentLabel = false) {
727
+ /**
728
+ * Label to be opened when the option is selected
729
+ */
730
+ this.label = newCloseLabel();
731
+ /**
732
+ * Type of the label to be opened
733
+ */
734
+ this.type = Close;
735
+ /**
736
+ * Properties to be passed to the label and olther parameters that you can use when get all the choice menu options.
737
+ * @example
738
+ * ```tsx
739
+ * setChoiceMenuOptions([
740
+ * new ChoiceMenuOption("Hello", helloLabel, { disabled: true }),
741
+ * ])
742
+ * return <List>
743
+ * {getChoiceMenuOptions()?.map((item, index) => {
744
+ * return (
745
+ * <ChoiceButton
746
+ * disabled={item.props.disabled}
747
+ * onClick={() => {
748
+ * afterSelectChoice(item)
749
+ * }}
750
+ * >
751
+ * {item.text}
752
+ * </ChoiceButton>
753
+ * )
754
+ * })}
755
+ * </List>
756
+ * ```
757
+ */
758
+ this.props = {};
759
+ this.text = text;
760
+ this.closeCurrentLabel = closeCurrentLabel;
761
+ }
762
+ };
763
+
638
764
  // src/functions/DialogueUtility.ts
639
765
  function setDialogue(props) {
640
766
  let text = "";
@@ -669,21 +795,18 @@ function getChoiceMenuOptions() {
669
795
  d.forEach((option, index) => {
670
796
  if (option.type === Close) {
671
797
  let itemLabel = newCloseLabel(index);
672
- options.push({
673
- text: option.text,
674
- label: itemLabel,
675
- type: Close,
676
- closeCurrentLabel: option.closeCurrentLabel,
677
- props: {}
678
- });
798
+ let choice = new ChoiceMenuOptionClose(option.text, option.closeCurrentLabel);
799
+ choice.label = itemLabel;
800
+ options.push(choice);
679
801
  return;
680
802
  }
681
803
  let label = getLabelById(option.label);
682
804
  if (label) {
683
- let itemLabel = new Label(label.id, label.steps, label.onStepRun, index);
684
- options.push(__spreadProps(__spreadValues({}, option), {
685
- label: itemLabel
686
- }));
805
+ let itemLabel = new Label(label.id, label.steps, {
806
+ onStepStart: label.onStepStart,
807
+ choiseIndex: index
808
+ });
809
+ options.push(new ChoiceMenuOption(option.text, itemLabel, option.props, option.type));
687
810
  }
688
811
  });
689
812
  return options;
@@ -771,8 +894,9 @@ FadeAlphaTicker = __decorateClass([
771
894
  ], FadeAlphaTicker);
772
895
 
773
896
  // src/functions/TickerUtility.ts
774
- function updateTickerProgression(args, propertyName, progression) {
775
- if (args[propertyName] === void 0 || !progression || args[propertyName] === progression.limit) {
897
+ function updateTickerProgression(args, propertyName, progression, valueConvert) {
898
+ let limit = valueConvert && progression.limit ? valueConvert(progression.limit) : progression.limit;
899
+ if (args[propertyName] === void 0 || !progression || args[propertyName] === limit) {
776
900
  return;
777
901
  }
778
902
  if (typeof args[propertyName] === "number") {
@@ -791,22 +915,25 @@ function updateTickerProgression(args, propertyName, progression) {
791
915
  }
792
916
  }
793
917
  }
794
- function getLinearProgression(number, progression) {
795
- if (progression.limit !== void 0) {
796
- if (number > progression.limit && progression.amt > 0) {
797
- return progression.limit;
798
- } else if (number < progression.limit && progression.amt < 0) {
799
- return progression.limit;
918
+ function getLinearProgression(number, progression, valueConvert) {
919
+ let limit = valueConvert && progression.limit ? valueConvert(progression.limit) : progression.limit;
920
+ let amt = valueConvert ? valueConvert(progression.amt) : progression.amt;
921
+ if (limit !== void 0) {
922
+ if (number > limit && amt > 0) {
923
+ return limit;
924
+ } else if (number < limit && amt < 0) {
925
+ return limit;
800
926
  }
801
927
  }
802
- return number + progression.amt / 60;
928
+ return number + amt;
803
929
  }
804
- function getExponentialProgression(number, progression) {
805
- if (progression.limit !== void 0) {
806
- if (number > progression.limit && progression.percentage > 0) {
807
- return progression.limit;
808
- } else if (number < progression.limit && progression.percentage < 0) {
809
- return progression.limit;
930
+ function getExponentialProgression(number, progression, valueConvert) {
931
+ let limit = valueConvert && progression.limit ? valueConvert(progression.limit) : progression.limit;
932
+ if (limit !== void 0) {
933
+ if (number > limit && progression.percentage > 0) {
934
+ return limit;
935
+ } else if (number < limit && progression.percentage < 0) {
936
+ return limit;
810
937
  }
811
938
  }
812
939
  return number + number * progression.percentage;
@@ -819,15 +946,13 @@ var MoveTicker = class extends TickerBase {
819
946
  let ySpeed = 1;
820
947
  if (args.speed) {
821
948
  if (typeof args.speed === "number") {
822
- xSpeed = args.speed;
823
- ySpeed = args.speed;
949
+ xSpeed = this.speedConvert(args.speed);
950
+ ySpeed = this.speedConvert(args.speed);
824
951
  } else {
825
- xSpeed = args.speed.x;
826
- ySpeed = args.speed.y;
952
+ xSpeed = this.speedConvert(args.speed.x);
953
+ ySpeed = this.speedConvert(args.speed.y);
827
954
  }
828
955
  }
829
- xSpeed /= 60;
830
- ySpeed /= 60;
831
956
  let destination = args.destination;
832
957
  let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
833
958
  if (typeof tagToRemoveAfter2 === "string") {
@@ -867,7 +992,10 @@ var MoveTicker = class extends TickerBase {
867
992
  }
868
993
  });
869
994
  if (args.speedProgression)
870
- updateTickerProgression(args, "speed", args.speedProgression);
995
+ updateTickerProgression(args, "speed", args.speedProgression, this.speedConvert);
996
+ }
997
+ speedConvert(speed) {
998
+ return speed / 6;
871
999
  }
872
1000
  };
873
1001
  MoveTicker = __decorateClass([
@@ -875,7 +1003,7 @@ MoveTicker = __decorateClass([
875
1003
  ], MoveTicker);
876
1004
  var RotateTicker = class extends TickerBase {
877
1005
  fn(ticker, args, tags, tickerId) {
878
- let speed = (args.speed === void 0 ? 1 : args.speed) / 60;
1006
+ let speed = this.speedConvert(args.speed === void 0 ? 1 : args.speed);
879
1007
  let clockwise = args.clockwise === void 0 ? true : args.clockwise;
880
1008
  let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
881
1009
  if (typeof tagToRemoveAfter2 === "string") {
@@ -903,7 +1031,10 @@ var RotateTicker = class extends TickerBase {
903
1031
  }
904
1032
  });
905
1033
  if (args.speedProgression)
906
- updateTickerProgression(args, "speed", args.speedProgression);
1034
+ updateTickerProgression(args, "speed", args.speedProgression, this.speedConvert);
1035
+ }
1036
+ speedConvert(speed) {
1037
+ return speed / 60;
907
1038
  }
908
1039
  };
909
1040
  RotateTicker = __decorateClass([
@@ -915,15 +1046,13 @@ var ZoomTicker = class extends TickerBase {
915
1046
  let ySpeed = 0.1;
916
1047
  if (args.speed) {
917
1048
  if (typeof args.speed === "number") {
918
- xSpeed = args.speed;
919
- ySpeed = args.speed;
1049
+ xSpeed = this.speedConvert(args.speed);
1050
+ ySpeed = this.speedConvert(args.speed);
920
1051
  } else {
921
- xSpeed = args.speed.x;
922
- ySpeed = args.speed.y;
1052
+ xSpeed = this.speedConvert(args.speed.x);
1053
+ ySpeed = this.speedConvert(args.speed.y);
923
1054
  }
924
1055
  }
925
- xSpeed /= 60;
926
- ySpeed /= 60;
927
1056
  let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
928
1057
  if (typeof tagToRemoveAfter2 === "string") {
929
1058
  tagToRemoveAfter2 = [tagToRemoveAfter2];
@@ -990,7 +1119,10 @@ var ZoomTicker = class extends TickerBase {
990
1119
  }
991
1120
  });
992
1121
  if (args.speedProgression)
993
- updateTickerProgression(args, "speed", args.speedProgression);
1122
+ updateTickerProgression(args, "speed", args.speedProgression, this.speedConvert);
1123
+ }
1124
+ speedConvert(speed) {
1125
+ return speed / 60;
994
1126
  }
995
1127
  onEndOfTicker(tag, tickerId, _element, tagToRemoveAfter2) {
996
1128
  GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
@@ -1980,6 +2112,16 @@ var _GameStepManager = class _GameStepManager {
1980
2112
  static set originalStepData(value) {
1981
2113
  _GameStepManager._originalStepData = createExportableElement(value);
1982
2114
  }
2115
+ static get currentStepData() {
2116
+ let currentStepData = {
2117
+ path: window.location.pathname,
2118
+ storage: GameStorageManager.export(),
2119
+ canvas: GameWindowManager.export(),
2120
+ labelIndex: _GameStepManager.currentLabelStepIndex || 0,
2121
+ openedLabels: createExportableElement(_GameStepManager._openedLabels)
2122
+ };
2123
+ return currentStepData;
2124
+ }
1983
2125
  /* Edit History Methods */
1984
2126
  /**
1985
2127
  * Add a label to the history.
@@ -1987,19 +2129,13 @@ var _GameStepManager = class _GameStepManager {
1987
2129
  */
1988
2130
  static addStepHistory(step, choiseMade) {
1989
2131
  let stepHistory = getStepSha1(step);
1990
- let historyStep = {
1991
- path: window.location.pathname,
1992
- storage: GameStorageManager.export(),
1993
- canvas: GameWindowManager.export(),
1994
- labelIndex: _GameStepManager.currentLabelStepIndex || 0,
1995
- openedLabels: createExportableElement(_GameStepManager._openedLabels)
1996
- };
2132
+ let currentStepData = _GameStepManager.currentStepData;
1997
2133
  if (_GameStepManager.originalStepData) {
1998
- if (_GameStepManager.originalStepData.openedLabels.length === historyStep.openedLabels.length) {
2134
+ if (_GameStepManager.originalStepData.openedLabels.length === currentStepData.openedLabels.length) {
1999
2135
  try {
2000
2136
  let lastStepDataOpenedLabelsString = JSON.stringify(_GameStepManager.originalStepData.openedLabels);
2001
- let historyStepOpenedLabelsString = JSON.stringify(historyStep.openedLabels);
2002
- if (lastStepDataOpenedLabelsString === historyStepOpenedLabelsString && _GameStepManager.originalStepData.path === historyStep.path && _GameStepManager.originalStepData.labelIndex === historyStep.labelIndex) {
2137
+ let historyStepOpenedLabelsString = JSON.stringify(currentStepData.openedLabels);
2138
+ if (lastStepDataOpenedLabelsString === historyStepOpenedLabelsString && _GameStepManager.originalStepData.path === currentStepData.path && _GameStepManager.originalStepData.labelIndex === currentStepData.labelIndex) {
2003
2139
  return;
2004
2140
  }
2005
2141
  } catch (e) {
@@ -2007,7 +2143,7 @@ var _GameStepManager = class _GameStepManager {
2007
2143
  }
2008
2144
  }
2009
2145
  }
2010
- let data = deepDiff.diff(_GameStepManager.originalStepData, historyStep);
2146
+ let data = deepDiff.diff(_GameStepManager.originalStepData, currentStepData);
2011
2147
  if (data) {
2012
2148
  let dialoge = void 0;
2013
2149
  let requiredChoices = void 0;
@@ -2026,7 +2162,7 @@ var _GameStepManager = class _GameStepManager {
2026
2162
  index: _GameStepManager.lastStepIndex,
2027
2163
  choiceIndexMade: choiseMade
2028
2164
  });
2029
- _GameStepManager.originalStepData = historyStep;
2165
+ _GameStepManager.originalStepData = currentStepData;
2030
2166
  }
2031
2167
  _GameStepManager.increaseLastStepIndex();
2032
2168
  }
@@ -2117,6 +2253,9 @@ var _GameStepManager = class _GameStepManager {
2117
2253
  console.warn("[Pixi'VN] The player must make a choice");
2118
2254
  return;
2119
2255
  }
2256
+ if (_GameStepManager.currentLabel && _GameStepManager.currentLabel.onStepEnd) {
2257
+ yield _GameStepManager.currentLabel.onStepEnd(_GameStepManager.currentLabelStepIndex || 0, _GameStepManager.currentLabel);
2258
+ }
2120
2259
  _GameStepManager.increaseCurrentStepIndex();
2121
2260
  return yield _GameStepManager.runCurrentStep(props, choiseMade);
2122
2261
  });
@@ -2141,6 +2280,10 @@ var _GameStepManager = class _GameStepManager {
2141
2280
  return;
2142
2281
  }
2143
2282
  if (currentLabel.steps.length > currentLabelStepIndex) {
2283
+ let onStepRun = currentLabel.onStepStart;
2284
+ if (onStepRun) {
2285
+ yield onStepRun(currentLabelStepIndex, currentLabel);
2286
+ }
2144
2287
  let step = currentLabel.steps[currentLabelStepIndex];
2145
2288
  let result = yield step(props);
2146
2289
  _GameStepManager.addStepHistory(step, choiseMade);
@@ -2205,6 +2348,9 @@ var _GameStepManager = class _GameStepManager {
2205
2348
  if (!tempLabel) {
2206
2349
  throw new Error(`[Pixi'VN] Label ${labelId} not found`);
2207
2350
  }
2351
+ if (_GameStepManager.currentLabel && _GameStepManager.currentLabel.onStepEnd) {
2352
+ yield _GameStepManager.currentLabel.onStepEnd(_GameStepManager.currentLabelStepIndex || 0, _GameStepManager.currentLabel);
2353
+ }
2208
2354
  _GameStepManager.pushNewLabel(tempLabel.id);
2209
2355
  } catch (e) {
2210
2356
  console.error("[Pixi'VN] Error calling label", e);
@@ -2263,6 +2409,9 @@ var _GameStepManager = class _GameStepManager {
2263
2409
  if (!tempLabel) {
2264
2410
  throw new Error(`[Pixi'VN] Label ${labelId} not found`);
2265
2411
  }
2412
+ if (_GameStepManager.currentLabel && _GameStepManager.currentLabel.onStepEnd) {
2413
+ yield _GameStepManager.currentLabel.onStepEnd(_GameStepManager.currentLabelStepIndex || 0, _GameStepManager.currentLabel);
2414
+ }
2266
2415
  _GameStepManager.pushNewLabel(tempLabel.id);
2267
2416
  } catch (e) {
2268
2417
  console.error("[Pixi'VN] Error jumping label", e);
@@ -2368,24 +2517,29 @@ var _GameStepManager = class _GameStepManager {
2368
2517
  * ```
2369
2518
  */
2370
2519
  static goBack(navigate, steps = 1) {
2371
- if (steps <= 0) {
2372
- console.warn("[Pixi'VN] Steps must be greater than 0");
2373
- return;
2374
- }
2375
- if (_GameStepManager._stepsHistory.length <= 1) {
2376
- console.warn("[Pixi'VN] No steps to go back");
2377
- return;
2378
- }
2379
- let restoredStep = _GameStepManager.goBackInternal(steps, _GameStepManager.originalStepData);
2380
- if (restoredStep) {
2381
- _GameStepManager._originalStepData = restoredStep;
2382
- _GameStepManager._openedLabels = createExportableElement(restoredStep.openedLabels);
2383
- GameStorageManager.import(createExportableElement(restoredStep.storage));
2384
- GameWindowManager.import(createExportableElement(restoredStep.canvas));
2385
- navigate(restoredStep.path);
2386
- } else {
2387
- console.error("[Pixi'VN] Error going back");
2388
- }
2520
+ return __async(this, null, function* () {
2521
+ if (steps <= 0) {
2522
+ console.warn("[Pixi'VN] Steps must be greater than 0");
2523
+ return;
2524
+ }
2525
+ if (_GameStepManager._stepsHistory.length <= 1) {
2526
+ console.warn("[Pixi'VN] No steps to go back");
2527
+ return;
2528
+ }
2529
+ let restoredStep = _GameStepManager.goBackInternal(steps, _GameStepManager.originalStepData);
2530
+ if (restoredStep) {
2531
+ _GameStepManager._originalStepData = restoredStep;
2532
+ _GameStepManager._openedLabels = createExportableElement(restoredStep.openedLabels);
2533
+ if (_GameStepManager.currentLabel && _GameStepManager.currentLabel.onLoadStep) {
2534
+ yield _GameStepManager.currentLabel.onLoadStep(_GameStepManager.currentLabelStepIndex || 0, _GameStepManager.currentLabel);
2535
+ }
2536
+ GameStorageManager.import(createExportableElement(restoredStep.storage));
2537
+ GameWindowManager.import(createExportableElement(restoredStep.canvas));
2538
+ navigate(restoredStep.path);
2539
+ } else {
2540
+ console.error("[Pixi'VN] Error going back");
2541
+ }
2542
+ });
2389
2543
  }
2390
2544
  static goBackInternal(steps, restoredStep) {
2391
2545
  if (steps <= 0) {
@@ -2447,38 +2601,45 @@ var _GameStepManager = class _GameStepManager {
2447
2601
  * @param dataString The history in a JSON string.
2448
2602
  */
2449
2603
  static importJson(dataString) {
2450
- _GameStepManager.import(JSON.parse(dataString));
2604
+ return __async(this, null, function* () {
2605
+ yield _GameStepManager.import(JSON.parse(dataString));
2606
+ });
2451
2607
  }
2452
2608
  /**
2453
2609
  * Import the history from an object.
2454
2610
  * @param data The history in an object.
2455
2611
  */
2456
2612
  static import(data) {
2457
- _GameStepManager.clear();
2458
- try {
2459
- if (data.hasOwnProperty("stepsHistory")) {
2460
- _GameStepManager._stepsHistory = data["stepsHistory"];
2461
- } else {
2462
- console.warn("[Pixi'VN] Could not import stepsHistory data, so will be ignored");
2463
- }
2464
- if (data.hasOwnProperty("openedLabels")) {
2465
- _GameStepManager._openedLabels = data["openedLabels"];
2466
- } else {
2467
- console.warn("[Pixi'VN] Could not import openedLabels data, so will be ignored");
2468
- }
2469
- if (data.hasOwnProperty("lastStepIndex")) {
2470
- _GameStepManager._lastStepIndex = data["lastStepIndex"];
2471
- } else {
2472
- console.warn("[Pixi'VN] Could not import lastStepIndex data, so will be ignored");
2473
- }
2474
- if (data.hasOwnProperty("originalStepData")) {
2475
- _GameStepManager._originalStepData = data["originalStepData"];
2476
- } else {
2477
- console.warn("[Pixi'VN] Could not import originalStepData data, so will be ignored");
2613
+ return __async(this, null, function* () {
2614
+ _GameStepManager.clear();
2615
+ try {
2616
+ if (data.hasOwnProperty("stepsHistory")) {
2617
+ _GameStepManager._stepsHistory = data["stepsHistory"];
2618
+ } else {
2619
+ console.warn("[Pixi'VN] Could not import stepsHistory data, so will be ignored");
2620
+ }
2621
+ if (data.hasOwnProperty("openedLabels")) {
2622
+ _GameStepManager._openedLabels = data["openedLabels"];
2623
+ } else {
2624
+ console.warn("[Pixi'VN] Could not import openedLabels data, so will be ignored");
2625
+ }
2626
+ if (data.hasOwnProperty("lastStepIndex")) {
2627
+ _GameStepManager._lastStepIndex = data["lastStepIndex"];
2628
+ } else {
2629
+ console.warn("[Pixi'VN] Could not import lastStepIndex data, so will be ignored");
2630
+ }
2631
+ if (data.hasOwnProperty("originalStepData")) {
2632
+ _GameStepManager._originalStepData = data["originalStepData"];
2633
+ } else {
2634
+ console.warn("[Pixi'VN] Could not import originalStepData data, so will be ignored");
2635
+ }
2636
+ if (_GameStepManager.currentLabel && _GameStepManager.currentLabel.onLoadStep) {
2637
+ yield _GameStepManager.currentLabel.onLoadStep(_GameStepManager.currentLabelStepIndex || 0, _GameStepManager.currentLabel);
2638
+ }
2639
+ } catch (e) {
2640
+ console.error("[Pixi'VN] Error importing data", e);
2478
2641
  }
2479
- } catch (e) {
2480
- console.error("[Pixi'VN] Error importing data", e);
2481
- }
2642
+ });
2482
2643
  }
2483
2644
  };
2484
2645
  /**
@@ -2652,11 +2813,11 @@ var DialogueBaseModel = class {
2652
2813
 
2653
2814
  // src/decorators/LabelDecorator.ts
2654
2815
  var registeredLabels = {};
2655
- function newLabel(id, steps, onStepRun) {
2816
+ function newLabel(id, steps, props) {
2656
2817
  if (registeredLabels[id]) {
2657
2818
  console.info(`[Pixi'VN] Label ${id} already exists, it will be overwritten`);
2658
2819
  }
2659
- let label = new Label(id, steps, onStepRun);
2820
+ let label = new Label(id, steps, props);
2660
2821
  registeredLabels[id] = label;
2661
2822
  return label;
2662
2823
  }
@@ -2673,7 +2834,7 @@ function getLabelById(id) {
2673
2834
  var juliette = new CharacterBaseModel2("___pixivn_juliette___", {
2674
2835
  name: "Juliette",
2675
2836
  age: 25,
2676
- 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",
2837
+ icon: "https://firebasestorage.googleapis.com/v0/b/pixi-vn.appspot.com/o/public%2Fcharacters%2Fjuliette-square.webp?alt=media",
2677
2838
  color: "#ac0086"
2678
2839
  });
2679
2840
  saveCharacter(juliette);