@drincs/pixi-vn 0.6.3 → 0.6.5

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 (238) hide show
  1. package/README.md +8 -5
  2. package/dist/LabelProps-CFV-zRjG.d.ts +113 -0
  3. package/dist/LabelProps-CmRpvUJm.d.mts +113 -0
  4. package/dist/classes/CharacterBaseModel.js +42 -33
  5. package/dist/classes/CharacterBaseModel.js.map +1 -1
  6. package/dist/classes/CharacterBaseModel.mjs +42 -33
  7. package/dist/classes/CharacterBaseModel.mjs.map +1 -1
  8. package/dist/classes/ChoiceMenuOption.d.mts +68 -8
  9. package/dist/classes/ChoiceMenuOption.d.ts +68 -8
  10. package/dist/classes/ChoiceMenuOption.js +119 -53
  11. package/dist/classes/ChoiceMenuOption.js.map +1 -1
  12. package/dist/classes/ChoiceMenuOption.mjs +119 -53
  13. package/dist/classes/ChoiceMenuOption.mjs.map +1 -1
  14. package/dist/classes/CloseLabel.d.mts +2 -2
  15. package/dist/classes/CloseLabel.d.ts +2 -2
  16. package/dist/classes/CloseLabel.js +53 -17
  17. package/dist/classes/CloseLabel.js.map +1 -1
  18. package/dist/classes/CloseLabel.mjs +53 -17
  19. package/dist/classes/CloseLabel.mjs.map +1 -1
  20. package/dist/classes/Label.d.mts +4 -72
  21. package/dist/classes/Label.d.ts +4 -72
  22. package/dist/classes/Label.js +50 -16
  23. package/dist/classes/Label.js.map +1 -1
  24. package/dist/classes/Label.mjs +50 -16
  25. package/dist/classes/Label.mjs.map +1 -1
  26. package/dist/classes/StoredClassModel.js +42 -33
  27. package/dist/classes/StoredClassModel.js.map +1 -1
  28. package/dist/classes/StoredClassModel.mjs +42 -33
  29. package/dist/classes/StoredClassModel.mjs.map +1 -1
  30. package/dist/classes/canvas/CanvasContainer.js +2 -2
  31. package/dist/classes/canvas/CanvasContainer.js.map +1 -1
  32. package/dist/classes/canvas/CanvasContainer.mjs +2 -2
  33. package/dist/classes/canvas/CanvasContainer.mjs.map +1 -1
  34. package/dist/classes/canvas/CanvasImage.js +2 -2
  35. package/dist/classes/canvas/CanvasImage.js.map +1 -1
  36. package/dist/classes/canvas/CanvasImage.mjs +2 -2
  37. package/dist/classes/canvas/CanvasImage.mjs.map +1 -1
  38. package/dist/classes/canvas/CanvasSprite.js +2 -2
  39. package/dist/classes/canvas/CanvasSprite.js.map +1 -1
  40. package/dist/classes/canvas/CanvasSprite.mjs +2 -2
  41. package/dist/classes/canvas/CanvasSprite.mjs.map +1 -1
  42. package/dist/classes/canvas/CanvasText.js +2 -2
  43. package/dist/classes/canvas/CanvasText.js.map +1 -1
  44. package/dist/classes/canvas/CanvasText.mjs +2 -2
  45. package/dist/classes/canvas/CanvasText.mjs.map +1 -1
  46. package/dist/classes/canvas/index.js +2 -2
  47. package/dist/classes/canvas/index.js.map +1 -1
  48. package/dist/classes/canvas/index.mjs +2 -2
  49. package/dist/classes/canvas/index.mjs.map +1 -1
  50. package/dist/classes/index.d.mts +2 -2
  51. package/dist/classes/index.d.ts +2 -2
  52. package/dist/classes/index.js +119 -53
  53. package/dist/classes/index.js.map +1 -1
  54. package/dist/classes/index.mjs +119 -53
  55. package/dist/classes/index.mjs.map +1 -1
  56. package/dist/classes/ticker/FadeAlphaTicker.js +42 -33
  57. package/dist/classes/ticker/FadeAlphaTicker.js.map +1 -1
  58. package/dist/classes/ticker/FadeAlphaTicker.mjs +42 -33
  59. package/dist/classes/ticker/FadeAlphaTicker.mjs.map +1 -1
  60. package/dist/classes/ticker/MoveTicker.d.mts +1 -0
  61. package/dist/classes/ticker/MoveTicker.d.ts +1 -0
  62. package/dist/classes/ticker/MoveTicker.js +42 -33
  63. package/dist/classes/ticker/MoveTicker.js.map +1 -1
  64. package/dist/classes/ticker/MoveTicker.mjs +42 -33
  65. package/dist/classes/ticker/MoveTicker.mjs.map +1 -1
  66. package/dist/classes/ticker/RotateTicker.d.mts +1 -0
  67. package/dist/classes/ticker/RotateTicker.d.ts +1 -0
  68. package/dist/classes/ticker/RotateTicker.js +42 -33
  69. package/dist/classes/ticker/RotateTicker.js.map +1 -1
  70. package/dist/classes/ticker/RotateTicker.mjs +42 -33
  71. package/dist/classes/ticker/RotateTicker.mjs.map +1 -1
  72. package/dist/classes/ticker/ZoomTicker.d.mts +1 -0
  73. package/dist/classes/ticker/ZoomTicker.d.ts +1 -0
  74. package/dist/classes/ticker/ZoomTicker.js +42 -33
  75. package/dist/classes/ticker/ZoomTicker.js.map +1 -1
  76. package/dist/classes/ticker/ZoomTicker.mjs +42 -33
  77. package/dist/classes/ticker/ZoomTicker.mjs.map +1 -1
  78. package/dist/classes/ticker/index.js +42 -33
  79. package/dist/classes/ticker/index.js.map +1 -1
  80. package/dist/classes/ticker/index.mjs +42 -33
  81. package/dist/classes/ticker/index.mjs.map +1 -1
  82. package/dist/constants.d.mts +1 -1
  83. package/dist/constants.d.ts +1 -1
  84. package/dist/constants.js +1 -1
  85. package/dist/constants.js.map +1 -1
  86. package/dist/constants.mjs +1 -1
  87. package/dist/constants.mjs.map +1 -1
  88. package/dist/decorators/CanvasElementDecorator.js +2 -2
  89. package/dist/decorators/CanvasElementDecorator.js.map +1 -1
  90. package/dist/decorators/CanvasElementDecorator.mjs +2 -2
  91. package/dist/decorators/CanvasElementDecorator.mjs.map +1 -1
  92. package/dist/decorators/LabelDecorator.d.mts +3 -3
  93. package/dist/decorators/LabelDecorator.d.ts +3 -3
  94. package/dist/decorators/LabelDecorator.js +74 -50
  95. package/dist/decorators/LabelDecorator.js.map +1 -1
  96. package/dist/decorators/LabelDecorator.mjs +74 -50
  97. package/dist/decorators/LabelDecorator.mjs.map +1 -1
  98. package/dist/decorators/index.d.mts +2 -2
  99. package/dist/decorators/index.d.ts +2 -2
  100. package/dist/decorators/index.js +74 -50
  101. package/dist/decorators/index.js.map +1 -1
  102. package/dist/decorators/index.mjs +74 -50
  103. package/dist/decorators/index.mjs.map +1 -1
  104. package/dist/functions/CanvasUtility.js +2 -2
  105. package/dist/functions/CanvasUtility.js.map +1 -1
  106. package/dist/functions/CanvasUtility.mjs +2 -2
  107. package/dist/functions/CanvasUtility.mjs.map +1 -1
  108. package/dist/functions/DialogueUtility.d.mts +9 -9
  109. package/dist/functions/DialogueUtility.d.ts +9 -9
  110. package/dist/functions/DialogueUtility.js +184 -106
  111. package/dist/functions/DialogueUtility.js.map +1 -1
  112. package/dist/functions/DialogueUtility.mjs +184 -106
  113. package/dist/functions/DialogueUtility.mjs.map +1 -1
  114. package/dist/functions/FlagsUtility.js +42 -33
  115. package/dist/functions/FlagsUtility.js.map +1 -1
  116. package/dist/functions/FlagsUtility.mjs +42 -33
  117. package/dist/functions/FlagsUtility.mjs.map +1 -1
  118. package/dist/functions/GameUtility.js +42 -33
  119. package/dist/functions/GameUtility.js.map +1 -1
  120. package/dist/functions/GameUtility.mjs +42 -33
  121. package/dist/functions/GameUtility.mjs.map +1 -1
  122. package/dist/functions/ImageUtility.js +45 -36
  123. package/dist/functions/ImageUtility.js.map +1 -1
  124. package/dist/functions/ImageUtility.mjs +45 -36
  125. package/dist/functions/ImageUtility.mjs.map +1 -1
  126. package/dist/functions/SavesUtility.d.mts +4 -4
  127. package/dist/functions/SavesUtility.d.ts +4 -4
  128. package/dist/functions/SavesUtility.js +173 -111
  129. package/dist/functions/SavesUtility.js.map +1 -1
  130. package/dist/functions/SavesUtility.mjs +173 -111
  131. package/dist/functions/SavesUtility.mjs.map +1 -1
  132. package/dist/functions/TickerUtility.d.mts +2 -1
  133. package/dist/functions/TickerUtility.d.ts +2 -1
  134. package/dist/functions/TickerUtility.js +19 -15
  135. package/dist/functions/TickerUtility.js.map +1 -1
  136. package/dist/functions/TickerUtility.mjs +19 -15
  137. package/dist/functions/TickerUtility.mjs.map +1 -1
  138. package/dist/functions/index.d.mts +3 -3
  139. package/dist/functions/index.d.ts +3 -3
  140. package/dist/functions/index.js +197 -115
  141. package/dist/functions/index.js.map +1 -1
  142. package/dist/functions/index.mjs +197 -115
  143. package/dist/functions/index.mjs.map +1 -1
  144. package/dist/index.d.mts +1 -1
  145. package/dist/index.d.ts +1 -1
  146. package/dist/index.js +325 -190
  147. package/dist/index.js.map +1 -1
  148. package/dist/index.mjs +326 -191
  149. package/dist/index.mjs.map +1 -1
  150. package/dist/interface/IHistoryStep.d.mts +1 -1
  151. package/dist/interface/IHistoryStep.d.ts +1 -1
  152. package/dist/interface/ISaveData.d.mts +2 -2
  153. package/dist/interface/ISaveData.d.ts +2 -2
  154. package/dist/interface/LabelProps.d.mts +5 -0
  155. package/dist/interface/LabelProps.d.ts +5 -0
  156. package/dist/interface/LabelProps.js +4 -0
  157. package/dist/interface/LabelProps.js.map +1 -0
  158. package/dist/interface/LabelProps.mjs +3 -0
  159. package/dist/interface/LabelProps.mjs.map +1 -0
  160. package/dist/interface/export/ExportedStep.d.mts +2 -2
  161. package/dist/interface/export/ExportedStep.d.ts +2 -2
  162. package/dist/interface/export/index.d.mts +2 -2
  163. package/dist/interface/export/index.d.ts +2 -2
  164. package/dist/interface/index.d.mts +4 -4
  165. package/dist/interface/index.d.ts +4 -4
  166. package/dist/labels/BaseCanvasElementTestLabel.d.mts +2 -2
  167. package/dist/labels/BaseCanvasElementTestLabel.d.ts +2 -2
  168. package/dist/labels/BaseCanvasElementTestLabel.js +175 -111
  169. package/dist/labels/BaseCanvasElementTestLabel.js.map +1 -1
  170. package/dist/labels/BaseCanvasElementTestLabel.mjs +176 -112
  171. package/dist/labels/BaseCanvasElementTestLabel.mjs.map +1 -1
  172. package/dist/labels/CanvasEventsTestLabel.d.mts +3 -6
  173. package/dist/labels/CanvasEventsTestLabel.d.ts +3 -6
  174. package/dist/labels/CanvasEventsTestLabel.js +186 -128
  175. package/dist/labels/CanvasEventsTestLabel.js.map +1 -1
  176. package/dist/labels/CanvasEventsTestLabel.mjs +187 -129
  177. package/dist/labels/CanvasEventsTestLabel.mjs.map +1 -1
  178. package/dist/labels/CustomTickerCanvasElementTestLabel.d.mts +2 -2
  179. package/dist/labels/CustomTickerCanvasElementTestLabel.d.ts +2 -2
  180. package/dist/labels/CustomTickerCanvasElementTestLabel.js +166 -108
  181. package/dist/labels/CustomTickerCanvasElementTestLabel.js.map +1 -1
  182. package/dist/labels/CustomTickerCanvasElementTestLabel.mjs +166 -108
  183. package/dist/labels/CustomTickerCanvasElementTestLabel.mjs.map +1 -1
  184. package/dist/labels/ImagesAnimationsTestLabel.d.mts +2 -2
  185. package/dist/labels/ImagesAnimationsTestLabel.d.ts +2 -2
  186. package/dist/labels/ImagesAnimationsTestLabel.js +253 -147
  187. package/dist/labels/ImagesAnimationsTestLabel.js.map +1 -1
  188. package/dist/labels/ImagesAnimationsTestLabel.mjs +253 -147
  189. package/dist/labels/ImagesAnimationsTestLabel.mjs.map +1 -1
  190. package/dist/labels/MarkdownTest.d.mts +2 -2
  191. package/dist/labels/MarkdownTest.d.ts +2 -2
  192. package/dist/labels/MarkdownTest.js +166 -108
  193. package/dist/labels/MarkdownTest.js.map +1 -1
  194. package/dist/labels/MarkdownTest.mjs +166 -108
  195. package/dist/labels/MarkdownTest.mjs.map +1 -1
  196. package/dist/labels/StartLabel.d.mts +2 -2
  197. package/dist/labels/StartLabel.d.ts +2 -2
  198. package/dist/labels/StartLabel.js +316 -184
  199. package/dist/labels/StartLabel.js.map +1 -1
  200. package/dist/labels/StartLabel.mjs +317 -185
  201. package/dist/labels/StartLabel.mjs.map +1 -1
  202. package/dist/labels/StepLabelTest.d.mts +9 -0
  203. package/dist/labels/StepLabelTest.d.ts +9 -0
  204. package/dist/labels/StepLabelTest.js +2758 -0
  205. package/dist/labels/StepLabelTest.js.map +1 -0
  206. package/dist/labels/StepLabelTest.mjs +2752 -0
  207. package/dist/labels/StepLabelTest.mjs.map +1 -0
  208. package/dist/labels/TestConstant.js +43 -34
  209. package/dist/labels/TestConstant.js.map +1 -1
  210. package/dist/labels/TestConstant.mjs +43 -34
  211. package/dist/labels/TestConstant.mjs.map +1 -1
  212. package/dist/labels/index.d.mts +2 -2
  213. package/dist/labels/index.d.ts +2 -2
  214. package/dist/labels/index.js +316 -184
  215. package/dist/labels/index.js.map +1 -1
  216. package/dist/labels/index.mjs +317 -185
  217. package/dist/labels/index.mjs.map +1 -1
  218. package/dist/managers/StepManager.d.mts +6 -5
  219. package/dist/managers/StepManager.d.ts +6 -5
  220. package/dist/managers/StepManager.js +163 -105
  221. package/dist/managers/StepManager.js.map +1 -1
  222. package/dist/managers/StepManager.mjs +163 -105
  223. package/dist/managers/StepManager.mjs.map +1 -1
  224. package/dist/managers/WindowManager.js +2 -2
  225. package/dist/managers/WindowManager.js.map +1 -1
  226. package/dist/managers/WindowManager.mjs +2 -2
  227. package/dist/managers/WindowManager.mjs.map +1 -1
  228. package/dist/managers/index.d.mts +2 -2
  229. package/dist/managers/index.d.ts +2 -2
  230. package/dist/managers/index.js +163 -105
  231. package/dist/managers/index.js.map +1 -1
  232. package/dist/managers/index.mjs +163 -105
  233. package/dist/managers/index.mjs.map +1 -1
  234. package/dist/types/ChoiceMenuOptionsType.d.mts +2 -2
  235. package/dist/types/ChoiceMenuOptionsType.d.ts +2 -2
  236. package/dist/types/index.d.mts +1 -1
  237. package/dist/types/index.d.ts +1 -1
  238. package/package.json +6 -6
@@ -69,14 +69,15 @@ var Label = class {
69
69
  /**
70
70
  * @param id is the id of the label
71
71
  * @param steps is the list of steps that the label will perform
72
- * @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
73
- * @param choiseIndex is the index of the choice that the label will perform
72
+ * @param props is the properties of the label
74
73
  */
75
- constructor(id, steps, onStepRun, choiseIndex) {
74
+ constructor(id, steps, props) {
76
75
  this._id = id;
77
76
  this._steps = steps;
78
- this._onStepRun = onStepRun;
79
- this._choiseIndex = choiseIndex;
77
+ this._onStepStart = props == null ? void 0 : props.onStepStart;
78
+ this._onLoadStep = props == null ? void 0 : props.onLoadStep;
79
+ this._onStepEnd = props == null ? void 0 : props.onStepEnd;
80
+ this._choiseIndex = props == null ? void 0 : props.choiseIndex;
80
81
  }
81
82
  /**
82
83
  * Get the id of the label. This variable is used in the system to get the label by id, {@link getLabelById}
@@ -113,18 +114,32 @@ var Label = class {
113
114
  return res;
114
115
  }
115
116
  /**
116
- * 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
117
+ * 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.
118
+ * @returns Promise<void> or void
119
+ */
120
+ get onStepStart() {
121
+ return (stepIndex, label) => __async(this, null, function* () {
122
+ if (this._onLoadStep) {
123
+ yield this._onLoadStep(stepIndex, label);
124
+ }
125
+ if (this._onStepStart) {
126
+ return yield this._onStepStart(stepIndex, label);
127
+ }
128
+ });
129
+ }
130
+ /**
131
+ * 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.
132
+ * @returns Promise<void> or void
133
+ */
134
+ get onLoadStep() {
135
+ return this._onLoadStep;
136
+ }
137
+ /**
138
+ * Is a function that will be executed when the step ends.
117
139
  * @returns Promise<void> or void
118
- * @example
119
- * ```typescript
120
- * newLabel("id", [], () => {
121
- * Assets.load('path/to/image1.png')
122
- * Assets.load('path/to/image2.png')
123
- * })
124
- * ```
125
140
  */
126
- get onStepRun() {
127
- return this._onStepRun;
141
+ get onStepEnd() {
142
+ return this._onStepEnd;
128
143
  }
129
144
  get choiseIndex() {
130
145
  return this._choiseIndex;
@@ -134,7 +149,9 @@ var Label = class {
134
149
  // src/classes/CloseLabel.ts
135
150
  var CLOSE_LABEL_ID = "__close-label-id__";
136
151
  function newCloseLabel(choiseIndex) {
137
- return new Label(CLOSE_LABEL_ID, [], void 0, choiseIndex);
152
+ return new Label(CLOSE_LABEL_ID, [], {
153
+ choiseIndex
154
+ });
138
155
  }
139
156
 
140
157
  // src/decorators/LabelDecorator.ts
@@ -316,7 +333,7 @@ var TickerBase = class {
316
333
  };
317
334
 
318
335
  // src/constants.ts
319
- var PIXIVN_VERSION = "0.6.3";
336
+ var PIXIVN_VERSION = "0.6.5";
320
337
  var Repeat = "repeat";
321
338
  function Pause(duration) {
322
339
  return {
@@ -406,8 +423,6 @@ function getMemoryContainer(element) {
406
423
  };
407
424
  }
408
425
  function setMemoryContainer(element, memory) {
409
- memory.width && (element.width = memory.width);
410
- memory.height && (element.height = memory.height);
411
426
  memory.isRenderGroup && (element.isRenderGroup = memory.isRenderGroup);
412
427
  memory.blendMode && (element.blendMode = memory.blendMode);
413
428
  memory.tint && (element.tint = memory.tint);
@@ -440,6 +455,8 @@ function setMemoryContainer(element, memory) {
440
455
  memory.interactive && (element.interactive = memory.interactive);
441
456
  memory.interactiveChildren && (element.interactiveChildren = memory.interactiveChildren);
442
457
  memory.hitArea && (element.hitArea = memory.hitArea);
458
+ memory.width && (element.width = memory.width);
459
+ memory.height && (element.height = memory.height);
443
460
  }
444
461
  function getTexture(imageUrl) {
445
462
  return __async(this, null, function* () {
@@ -1645,6 +1662,16 @@ var _GameStepManager = class _GameStepManager {
1645
1662
  static set originalStepData(value) {
1646
1663
  _GameStepManager._originalStepData = createExportableElement(value);
1647
1664
  }
1665
+ static get currentStepData() {
1666
+ let currentStepData = {
1667
+ path: window.location.pathname,
1668
+ storage: GameStorageManager.export(),
1669
+ canvas: GameWindowManager.export(),
1670
+ labelIndex: _GameStepManager.currentLabelStepIndex || 0,
1671
+ openedLabels: createExportableElement(_GameStepManager._openedLabels)
1672
+ };
1673
+ return currentStepData;
1674
+ }
1648
1675
  /* Edit History Methods */
1649
1676
  /**
1650
1677
  * Add a label to the history.
@@ -1652,19 +1679,13 @@ var _GameStepManager = class _GameStepManager {
1652
1679
  */
1653
1680
  static addStepHistory(step, choiseMade) {
1654
1681
  let stepHistory = getStepSha1(step);
1655
- let historyStep = {
1656
- path: window.location.pathname,
1657
- storage: GameStorageManager.export(),
1658
- canvas: GameWindowManager.export(),
1659
- labelIndex: _GameStepManager.currentLabelStepIndex || 0,
1660
- openedLabels: createExportableElement(_GameStepManager._openedLabels)
1661
- };
1682
+ let currentStepData = _GameStepManager.currentStepData;
1662
1683
  if (_GameStepManager.originalStepData) {
1663
- if (_GameStepManager.originalStepData.openedLabels.length === historyStep.openedLabels.length) {
1684
+ if (_GameStepManager.originalStepData.openedLabels.length === currentStepData.openedLabels.length) {
1664
1685
  try {
1665
1686
  let lastStepDataOpenedLabelsString = JSON.stringify(_GameStepManager.originalStepData.openedLabels);
1666
- let historyStepOpenedLabelsString = JSON.stringify(historyStep.openedLabels);
1667
- if (lastStepDataOpenedLabelsString === historyStepOpenedLabelsString && _GameStepManager.originalStepData.path === historyStep.path && _GameStepManager.originalStepData.labelIndex === historyStep.labelIndex) {
1687
+ let historyStepOpenedLabelsString = JSON.stringify(currentStepData.openedLabels);
1688
+ if (lastStepDataOpenedLabelsString === historyStepOpenedLabelsString && _GameStepManager.originalStepData.path === currentStepData.path && _GameStepManager.originalStepData.labelIndex === currentStepData.labelIndex) {
1668
1689
  return;
1669
1690
  }
1670
1691
  } catch (e) {
@@ -1672,7 +1693,7 @@ var _GameStepManager = class _GameStepManager {
1672
1693
  }
1673
1694
  }
1674
1695
  }
1675
- let data = deepDiff.diff(_GameStepManager.originalStepData, historyStep);
1696
+ let data = deepDiff.diff(_GameStepManager.originalStepData, currentStepData);
1676
1697
  if (data) {
1677
1698
  let dialoge = void 0;
1678
1699
  let requiredChoices = void 0;
@@ -1691,7 +1712,7 @@ var _GameStepManager = class _GameStepManager {
1691
1712
  index: _GameStepManager.lastStepIndex,
1692
1713
  choiceIndexMade: choiseMade
1693
1714
  });
1694
- _GameStepManager.originalStepData = historyStep;
1715
+ _GameStepManager.originalStepData = currentStepData;
1695
1716
  }
1696
1717
  _GameStepManager.increaseLastStepIndex();
1697
1718
  }
@@ -1782,6 +1803,9 @@ var _GameStepManager = class _GameStepManager {
1782
1803
  console.warn("[Pixi'VN] The player must make a choice");
1783
1804
  return;
1784
1805
  }
1806
+ if (_GameStepManager.currentLabel && _GameStepManager.currentLabel.onStepEnd) {
1807
+ yield _GameStepManager.currentLabel.onStepEnd(_GameStepManager.currentLabelStepIndex || 0, _GameStepManager.currentLabel);
1808
+ }
1785
1809
  _GameStepManager.increaseCurrentStepIndex();
1786
1810
  return yield _GameStepManager.runCurrentStep(props, choiseMade);
1787
1811
  });
@@ -1806,6 +1830,10 @@ var _GameStepManager = class _GameStepManager {
1806
1830
  return;
1807
1831
  }
1808
1832
  if (currentLabel.steps.length > currentLabelStepIndex) {
1833
+ let onStepRun = currentLabel.onStepStart;
1834
+ if (onStepRun) {
1835
+ yield onStepRun(currentLabelStepIndex, currentLabel);
1836
+ }
1809
1837
  let step = currentLabel.steps[currentLabelStepIndex];
1810
1838
  let result = yield step(props);
1811
1839
  _GameStepManager.addStepHistory(step, choiseMade);
@@ -1870,6 +1898,9 @@ var _GameStepManager = class _GameStepManager {
1870
1898
  if (!tempLabel) {
1871
1899
  throw new Error(`[Pixi'VN] Label ${labelId} not found`);
1872
1900
  }
1901
+ if (_GameStepManager.currentLabel && _GameStepManager.currentLabel.onStepEnd) {
1902
+ yield _GameStepManager.currentLabel.onStepEnd(_GameStepManager.currentLabelStepIndex || 0, _GameStepManager.currentLabel);
1903
+ }
1873
1904
  _GameStepManager.pushNewLabel(tempLabel.id);
1874
1905
  } catch (e) {
1875
1906
  console.error("[Pixi'VN] Error calling label", e);
@@ -1928,6 +1959,9 @@ var _GameStepManager = class _GameStepManager {
1928
1959
  if (!tempLabel) {
1929
1960
  throw new Error(`[Pixi'VN] Label ${labelId} not found`);
1930
1961
  }
1962
+ if (_GameStepManager.currentLabel && _GameStepManager.currentLabel.onStepEnd) {
1963
+ yield _GameStepManager.currentLabel.onStepEnd(_GameStepManager.currentLabelStepIndex || 0, _GameStepManager.currentLabel);
1964
+ }
1931
1965
  _GameStepManager.pushNewLabel(tempLabel.id);
1932
1966
  } catch (e) {
1933
1967
  console.error("[Pixi'VN] Error jumping label", e);
@@ -2033,24 +2067,29 @@ var _GameStepManager = class _GameStepManager {
2033
2067
  * ```
2034
2068
  */
2035
2069
  static goBack(navigate, steps = 1) {
2036
- if (steps <= 0) {
2037
- console.warn("[Pixi'VN] Steps must be greater than 0");
2038
- return;
2039
- }
2040
- if (_GameStepManager._stepsHistory.length <= 1) {
2041
- console.warn("[Pixi'VN] No steps to go back");
2042
- return;
2043
- }
2044
- let restoredStep = _GameStepManager.goBackInternal(steps, _GameStepManager.originalStepData);
2045
- if (restoredStep) {
2046
- _GameStepManager._originalStepData = restoredStep;
2047
- _GameStepManager._openedLabels = createExportableElement(restoredStep.openedLabels);
2048
- GameStorageManager.import(createExportableElement(restoredStep.storage));
2049
- GameWindowManager.import(createExportableElement(restoredStep.canvas));
2050
- navigate(restoredStep.path);
2051
- } else {
2052
- console.error("[Pixi'VN] Error going back");
2053
- }
2070
+ return __async(this, null, function* () {
2071
+ if (steps <= 0) {
2072
+ console.warn("[Pixi'VN] Steps must be greater than 0");
2073
+ return;
2074
+ }
2075
+ if (_GameStepManager._stepsHistory.length <= 1) {
2076
+ console.warn("[Pixi'VN] No steps to go back");
2077
+ return;
2078
+ }
2079
+ let restoredStep = _GameStepManager.goBackInternal(steps, _GameStepManager.originalStepData);
2080
+ if (restoredStep) {
2081
+ _GameStepManager._originalStepData = restoredStep;
2082
+ _GameStepManager._openedLabels = createExportableElement(restoredStep.openedLabels);
2083
+ if (_GameStepManager.currentLabel && _GameStepManager.currentLabel.onLoadStep) {
2084
+ yield _GameStepManager.currentLabel.onLoadStep(_GameStepManager.currentLabelStepIndex || 0, _GameStepManager.currentLabel);
2085
+ }
2086
+ GameStorageManager.import(createExportableElement(restoredStep.storage));
2087
+ GameWindowManager.import(createExportableElement(restoredStep.canvas));
2088
+ navigate(restoredStep.path);
2089
+ } else {
2090
+ console.error("[Pixi'VN] Error going back");
2091
+ }
2092
+ });
2054
2093
  }
2055
2094
  static goBackInternal(steps, restoredStep) {
2056
2095
  if (steps <= 0) {
@@ -2112,38 +2151,45 @@ var _GameStepManager = class _GameStepManager {
2112
2151
  * @param dataString The history in a JSON string.
2113
2152
  */
2114
2153
  static importJson(dataString) {
2115
- _GameStepManager.import(JSON.parse(dataString));
2154
+ return __async(this, null, function* () {
2155
+ yield _GameStepManager.import(JSON.parse(dataString));
2156
+ });
2116
2157
  }
2117
2158
  /**
2118
2159
  * Import the history from an object.
2119
2160
  * @param data The history in an object.
2120
2161
  */
2121
2162
  static import(data) {
2122
- _GameStepManager.clear();
2123
- try {
2124
- if (data.hasOwnProperty("stepsHistory")) {
2125
- _GameStepManager._stepsHistory = data["stepsHistory"];
2126
- } else {
2127
- console.warn("[Pixi'VN] Could not import stepsHistory data, so will be ignored");
2128
- }
2129
- if (data.hasOwnProperty("openedLabels")) {
2130
- _GameStepManager._openedLabels = data["openedLabels"];
2131
- } else {
2132
- console.warn("[Pixi'VN] Could not import openedLabels data, so will be ignored");
2133
- }
2134
- if (data.hasOwnProperty("lastStepIndex")) {
2135
- _GameStepManager._lastStepIndex = data["lastStepIndex"];
2136
- } else {
2137
- console.warn("[Pixi'VN] Could not import lastStepIndex data, so will be ignored");
2138
- }
2139
- if (data.hasOwnProperty("originalStepData")) {
2140
- _GameStepManager._originalStepData = data["originalStepData"];
2141
- } else {
2142
- console.warn("[Pixi'VN] Could not import originalStepData data, so will be ignored");
2163
+ return __async(this, null, function* () {
2164
+ _GameStepManager.clear();
2165
+ try {
2166
+ if (data.hasOwnProperty("stepsHistory")) {
2167
+ _GameStepManager._stepsHistory = data["stepsHistory"];
2168
+ } else {
2169
+ console.warn("[Pixi'VN] Could not import stepsHistory data, so will be ignored");
2170
+ }
2171
+ if (data.hasOwnProperty("openedLabels")) {
2172
+ _GameStepManager._openedLabels = data["openedLabels"];
2173
+ } else {
2174
+ console.warn("[Pixi'VN] Could not import openedLabels data, so will be ignored");
2175
+ }
2176
+ if (data.hasOwnProperty("lastStepIndex")) {
2177
+ _GameStepManager._lastStepIndex = data["lastStepIndex"];
2178
+ } else {
2179
+ console.warn("[Pixi'VN] Could not import lastStepIndex data, so will be ignored");
2180
+ }
2181
+ if (data.hasOwnProperty("originalStepData")) {
2182
+ _GameStepManager._originalStepData = data["originalStepData"];
2183
+ } else {
2184
+ console.warn("[Pixi'VN] Could not import originalStepData data, so will be ignored");
2185
+ }
2186
+ if (_GameStepManager.currentLabel && _GameStepManager.currentLabel.onLoadStep) {
2187
+ yield _GameStepManager.currentLabel.onLoadStep(_GameStepManager.currentLabelStepIndex || 0, _GameStepManager.currentLabel);
2188
+ }
2189
+ } catch (e) {
2190
+ console.error("[Pixi'VN] Error importing data", e);
2143
2191
  }
2144
- } catch (e) {
2145
- console.error("[Pixi'VN] Error importing data", e);
2146
- }
2192
+ });
2147
2193
  }
2148
2194
  };
2149
2195
  /**
@@ -2174,7 +2220,27 @@ var ChoiceMenuOptionClose = class {
2174
2220
  */
2175
2221
  this.type = Close;
2176
2222
  /**
2177
- * Properties to be passed to the label
2223
+ * Properties to be passed to the label and olther parameters that you can use when get all the choice menu options.
2224
+ * @example
2225
+ * ```tsx
2226
+ * setChoiceMenuOptions([
2227
+ * new ChoiceMenuOption("Hello", helloLabel, { disabled: true }),
2228
+ * ])
2229
+ * return <List>
2230
+ * {getChoiceMenuOptions()?.map((item, index) => {
2231
+ * return (
2232
+ * <ChoiceButton
2233
+ * disabled={item.props.disabled}
2234
+ * onClick={() => {
2235
+ * afterSelectChoice(item)
2236
+ * }}
2237
+ * >
2238
+ * {item.text}
2239
+ * </ChoiceButton>
2240
+ * )
2241
+ * })}
2242
+ * </List>
2243
+ * ```
2178
2244
  */
2179
2245
  this.props = {};
2180
2246
  this.text = text;
@@ -2292,7 +2358,10 @@ function getChoiceMenuOptions() {
2292
2358
  }
2293
2359
  let label = getLabelById(option.label);
2294
2360
  if (label) {
2295
- let itemLabel = new Label(label.id, label.steps, label.onStepRun, index);
2361
+ let itemLabel = new Label(label.id, label.steps, {
2362
+ onStepStart: label.onStepStart,
2363
+ choiseIndex: index
2364
+ });
2296
2365
  options.push(__spreadProps(__spreadValues({}, option), {
2297
2366
  label: itemLabel
2298
2367
  }));
@@ -2416,8 +2485,9 @@ FadeAlphaTicker = __decorateClass([
2416
2485
  ], FadeAlphaTicker);
2417
2486
 
2418
2487
  // src/functions/TickerUtility.ts
2419
- function updateTickerProgression(args, propertyName, progression) {
2420
- if (args[propertyName] === void 0 || !progression || args[propertyName] === progression.limit) {
2488
+ function updateTickerProgression(args, propertyName, progression, valueConvert) {
2489
+ let limit = valueConvert && progression.limit ? valueConvert(progression.limit) : progression.limit;
2490
+ if (args[propertyName] === void 0 || !progression || args[propertyName] === limit) {
2421
2491
  return;
2422
2492
  }
2423
2493
  if (typeof args[propertyName] === "number") {
@@ -2436,22 +2506,25 @@ function updateTickerProgression(args, propertyName, progression) {
2436
2506
  }
2437
2507
  }
2438
2508
  }
2439
- function getLinearProgression(number, progression) {
2440
- if (progression.limit !== void 0) {
2441
- if (number > progression.limit && progression.amt > 0) {
2442
- return progression.limit;
2443
- } else if (number < progression.limit && progression.amt < 0) {
2444
- return progression.limit;
2509
+ function getLinearProgression(number, progression, valueConvert) {
2510
+ let limit = valueConvert && progression.limit ? valueConvert(progression.limit) : progression.limit;
2511
+ let amt = valueConvert ? valueConvert(progression.amt) : progression.amt;
2512
+ if (limit !== void 0) {
2513
+ if (number > limit && amt > 0) {
2514
+ return limit;
2515
+ } else if (number < limit && amt < 0) {
2516
+ return limit;
2445
2517
  }
2446
2518
  }
2447
- return number + progression.amt / 60;
2519
+ return number + amt;
2448
2520
  }
2449
- function getExponentialProgression(number, progression) {
2450
- if (progression.limit !== void 0) {
2451
- if (number > progression.limit && progression.percentage > 0) {
2452
- return progression.limit;
2453
- } else if (number < progression.limit && progression.percentage < 0) {
2454
- return progression.limit;
2521
+ function getExponentialProgression(number, progression, valueConvert) {
2522
+ let limit = valueConvert && progression.limit ? valueConvert(progression.limit) : progression.limit;
2523
+ if (limit !== void 0) {
2524
+ if (number > limit && progression.percentage > 0) {
2525
+ return limit;
2526
+ } else if (number < limit && progression.percentage < 0) {
2527
+ return limit;
2455
2528
  }
2456
2529
  }
2457
2530
  return number + number * progression.percentage;
@@ -2464,15 +2537,13 @@ var MoveTicker = class extends TickerBase {
2464
2537
  let ySpeed = 1;
2465
2538
  if (args.speed) {
2466
2539
  if (typeof args.speed === "number") {
2467
- xSpeed = args.speed;
2468
- ySpeed = args.speed;
2540
+ xSpeed = this.speedConvert(args.speed);
2541
+ ySpeed = this.speedConvert(args.speed);
2469
2542
  } else {
2470
- xSpeed = args.speed.x;
2471
- ySpeed = args.speed.y;
2543
+ xSpeed = this.speedConvert(args.speed.x);
2544
+ ySpeed = this.speedConvert(args.speed.y);
2472
2545
  }
2473
2546
  }
2474
- xSpeed /= 60;
2475
- ySpeed /= 60;
2476
2547
  let destination = args.destination;
2477
2548
  let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
2478
2549
  if (typeof tagToRemoveAfter2 === "string") {
@@ -2512,7 +2583,10 @@ var MoveTicker = class extends TickerBase {
2512
2583
  }
2513
2584
  });
2514
2585
  if (args.speedProgression)
2515
- updateTickerProgression(args, "speed", args.speedProgression);
2586
+ updateTickerProgression(args, "speed", args.speedProgression, this.speedConvert);
2587
+ }
2588
+ speedConvert(speed) {
2589
+ return speed / 6;
2516
2590
  }
2517
2591
  };
2518
2592
  MoveTicker = __decorateClass([
@@ -2520,7 +2594,7 @@ MoveTicker = __decorateClass([
2520
2594
  ], MoveTicker);
2521
2595
  var RotateTicker = class extends TickerBase {
2522
2596
  fn(ticker, args, tags, tickerId) {
2523
- let speed = (args.speed === void 0 ? 1 : args.speed) / 60;
2597
+ let speed = this.speedConvert(args.speed === void 0 ? 1 : args.speed);
2524
2598
  let clockwise = args.clockwise === void 0 ? true : args.clockwise;
2525
2599
  let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
2526
2600
  if (typeof tagToRemoveAfter2 === "string") {
@@ -2548,7 +2622,10 @@ var RotateTicker = class extends TickerBase {
2548
2622
  }
2549
2623
  });
2550
2624
  if (args.speedProgression)
2551
- updateTickerProgression(args, "speed", args.speedProgression);
2625
+ updateTickerProgression(args, "speed", args.speedProgression, this.speedConvert);
2626
+ }
2627
+ speedConvert(speed) {
2628
+ return speed / 60;
2552
2629
  }
2553
2630
  };
2554
2631
  RotateTicker = __decorateClass([
@@ -2560,15 +2637,13 @@ var ZoomTicker = class extends TickerBase {
2560
2637
  let ySpeed = 0.1;
2561
2638
  if (args.speed) {
2562
2639
  if (typeof args.speed === "number") {
2563
- xSpeed = args.speed;
2564
- ySpeed = args.speed;
2640
+ xSpeed = this.speedConvert(args.speed);
2641
+ ySpeed = this.speedConvert(args.speed);
2565
2642
  } else {
2566
- xSpeed = args.speed.x;
2567
- ySpeed = args.speed.y;
2643
+ xSpeed = this.speedConvert(args.speed.x);
2644
+ ySpeed = this.speedConvert(args.speed.y);
2568
2645
  }
2569
2646
  }
2570
- xSpeed /= 60;
2571
- ySpeed /= 60;
2572
2647
  let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
2573
2648
  if (typeof tagToRemoveAfter2 === "string") {
2574
2649
  tagToRemoveAfter2 = [tagToRemoveAfter2];
@@ -2635,7 +2710,10 @@ var ZoomTicker = class extends TickerBase {
2635
2710
  }
2636
2711
  });
2637
2712
  if (args.speedProgression)
2638
- updateTickerProgression(args, "speed", args.speedProgression);
2713
+ updateTickerProgression(args, "speed", args.speedProgression, this.speedConvert);
2714
+ }
2715
+ speedConvert(speed) {
2716
+ return speed / 60;
2639
2717
  }
2640
2718
  onEndOfTicker(tag, tickerId, _element, tagToRemoveAfter2) {
2641
2719
  GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
@@ -2833,14 +2911,14 @@ function zoomIn(_0, _1) {
2833
2911
  } else {
2834
2912
  canvasElement = image;
2835
2913
  }
2836
- if (canvasElement instanceof CanvasImage && ((_a = canvasElement.texture) == null ? void 0 : _a.label) == "EMPTY") {
2837
- yield canvasElement.load();
2838
- }
2839
2914
  let container = new CanvasContainer();
2840
2915
  container.addChild(canvasElement);
2841
2916
  container.height = GameWindowManager.canvasHeight;
2842
2917
  container.width = GameWindowManager.canvasWidth;
2843
2918
  GameWindowManager.addCanvasElement(tag, container);
2919
+ if (canvasElement instanceof CanvasImage && ((_a = canvasElement.texture) == null ? void 0 : _a.label) == "EMPTY") {
2920
+ yield canvasElement.load();
2921
+ }
2844
2922
  if (props.direction == "up") {
2845
2923
  container.pivot.y = GameWindowManager.canvasHeight;
2846
2924
  container.pivot.x = GameWindowManager.canvasWidth / 2;
@@ -2928,13 +3006,17 @@ function getSaveJson() {
2928
3006
  return JSON.stringify(saveData);
2929
3007
  }
2930
3008
  function loadSaveData(data, navigate) {
2931
- GameStepManager.import(data.stepData);
2932
- GameStorageManager.import(data.storageData);
2933
- GameWindowManager.import(data.canvasData);
2934
- navigate(data.path);
3009
+ return __async(this, null, function* () {
3010
+ yield GameStepManager.import(data.stepData);
3011
+ GameStorageManager.import(data.storageData);
3012
+ GameWindowManager.import(data.canvasData);
3013
+ navigate(data.path);
3014
+ });
2935
3015
  }
2936
3016
  function loadSaveJson(dataString, navigate) {
2937
- loadSaveData(jsonToSaveData(dataString), navigate);
3017
+ return __async(this, null, function* () {
3018
+ yield loadSaveData(jsonToSaveData(dataString), navigate);
3019
+ });
2938
3020
  }
2939
3021
  function jsonToSaveData(json) {
2940
3022
  return JSON.parse(json);