@drincs/pixi-vn 0.6.1 → 0.6.2

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 (289) hide show
  1. package/dist/{TickerBase-BAUiHet_.d.ts → TickerBase-3rLpDpmb.d.ts} +9 -0
  2. package/dist/{TickerBase-BctFf13y.d.mts → TickerBase-DKYzbzro.d.mts} +9 -0
  3. package/dist/classes/CanvasEvent.d.mts +6 -0
  4. package/dist/classes/CanvasEvent.d.ts +6 -0
  5. package/dist/classes/CanvasEvent.js +7 -0
  6. package/dist/classes/CanvasEvent.js.map +1 -1
  7. package/dist/classes/CanvasEvent.mjs +7 -0
  8. package/dist/classes/CanvasEvent.mjs.map +1 -1
  9. package/dist/classes/CharacterBaseModel.js +93 -65
  10. package/dist/classes/CharacterBaseModel.js.map +1 -1
  11. package/dist/classes/CharacterBaseModel.mjs +93 -65
  12. package/dist/classes/CharacterBaseModel.mjs.map +1 -1
  13. package/dist/classes/ChoiceMenuOption.js +94 -66
  14. package/dist/classes/ChoiceMenuOption.js.map +1 -1
  15. package/dist/classes/ChoiceMenuOption.mjs +94 -66
  16. package/dist/classes/ChoiceMenuOption.mjs.map +1 -1
  17. package/dist/classes/CloseLabel.js +1 -1
  18. package/dist/classes/CloseLabel.js.map +1 -1
  19. package/dist/classes/CloseLabel.mjs +1 -1
  20. package/dist/classes/CloseLabel.mjs.map +1 -1
  21. package/dist/classes/DialogueBaseModel.d.mts +2 -2
  22. package/dist/classes/DialogueBaseModel.d.ts +2 -2
  23. package/dist/classes/DialogueBaseModel.js +5 -5
  24. package/dist/classes/DialogueBaseModel.js.map +1 -1
  25. package/dist/classes/DialogueBaseModel.mjs +5 -5
  26. package/dist/classes/DialogueBaseModel.mjs.map +1 -1
  27. package/dist/classes/Label.d.mts +1 -1
  28. package/dist/classes/Label.d.ts +1 -1
  29. package/dist/classes/Label.js +1 -1
  30. package/dist/classes/Label.js.map +1 -1
  31. package/dist/classes/Label.mjs +1 -1
  32. package/dist/classes/Label.mjs.map +1 -1
  33. package/dist/classes/StoredClassModel.js +93 -65
  34. package/dist/classes/StoredClassModel.js.map +1 -1
  35. package/dist/classes/StoredClassModel.mjs +93 -65
  36. package/dist/classes/StoredClassModel.mjs.map +1 -1
  37. package/dist/classes/canvas/CanvasBase.d.mts +5 -1
  38. package/dist/classes/canvas/CanvasBase.d.ts +5 -1
  39. package/dist/classes/canvas/CanvasBase.js +7 -0
  40. package/dist/classes/canvas/CanvasBase.js.map +1 -1
  41. package/dist/classes/canvas/CanvasBase.mjs +7 -0
  42. package/dist/classes/canvas/CanvasBase.mjs.map +1 -1
  43. package/dist/classes/canvas/CanvasContainer.d.mts +4 -1
  44. package/dist/classes/canvas/CanvasContainer.d.ts +4 -1
  45. package/dist/classes/canvas/CanvasContainer.js +57 -37
  46. package/dist/classes/canvas/CanvasContainer.js.map +1 -1
  47. package/dist/classes/canvas/CanvasContainer.mjs +57 -38
  48. package/dist/classes/canvas/CanvasContainer.mjs.map +1 -1
  49. package/dist/classes/canvas/CanvasImage.d.mts +4 -2
  50. package/dist/classes/canvas/CanvasImage.d.ts +4 -2
  51. package/dist/classes/canvas/CanvasImage.js +33 -20
  52. package/dist/classes/canvas/CanvasImage.js.map +1 -1
  53. package/dist/classes/canvas/CanvasImage.mjs +30 -20
  54. package/dist/classes/canvas/CanvasImage.mjs.map +1 -1
  55. package/dist/classes/canvas/CanvasSprite.d.mts +5 -2
  56. package/dist/classes/canvas/CanvasSprite.d.ts +5 -2
  57. package/dist/classes/canvas/CanvasSprite.js +25 -17
  58. package/dist/classes/canvas/CanvasSprite.js.map +1 -1
  59. package/dist/classes/canvas/CanvasSprite.mjs +25 -18
  60. package/dist/classes/canvas/CanvasSprite.mjs.map +1 -1
  61. package/dist/classes/canvas/CanvasText.d.mts +6 -3
  62. package/dist/classes/canvas/CanvasText.d.ts +6 -3
  63. package/dist/classes/canvas/CanvasText.js +25 -17
  64. package/dist/classes/canvas/CanvasText.js.map +1 -1
  65. package/dist/classes/canvas/CanvasText.mjs +25 -18
  66. package/dist/classes/canvas/CanvasText.mjs.map +1 -1
  67. package/dist/classes/canvas/index.js +184 -158
  68. package/dist/classes/canvas/index.js.map +1 -1
  69. package/dist/classes/canvas/index.mjs +184 -158
  70. package/dist/classes/canvas/index.mjs.map +1 -1
  71. package/dist/classes/index.d.mts +1 -0
  72. package/dist/classes/index.d.ts +1 -0
  73. package/dist/classes/index.js +106 -71
  74. package/dist/classes/index.js.map +1 -1
  75. package/dist/classes/index.mjs +106 -71
  76. package/dist/classes/index.mjs.map +1 -1
  77. package/dist/classes/ticker/FadeAlphaTicker.d.mts +2 -1
  78. package/dist/classes/ticker/FadeAlphaTicker.d.ts +2 -1
  79. package/dist/classes/ticker/FadeAlphaTicker.js +93 -65
  80. package/dist/classes/ticker/FadeAlphaTicker.js.map +1 -1
  81. package/dist/classes/ticker/FadeAlphaTicker.mjs +93 -65
  82. package/dist/classes/ticker/FadeAlphaTicker.mjs.map +1 -1
  83. package/dist/classes/ticker/MoveTicker.d.mts +2 -1
  84. package/dist/classes/ticker/MoveTicker.d.ts +2 -1
  85. package/dist/classes/ticker/MoveTicker.js +93 -65
  86. package/dist/classes/ticker/MoveTicker.js.map +1 -1
  87. package/dist/classes/ticker/MoveTicker.mjs +93 -65
  88. package/dist/classes/ticker/MoveTicker.mjs.map +1 -1
  89. package/dist/classes/ticker/RotateTicker.d.mts +2 -1
  90. package/dist/classes/ticker/RotateTicker.d.ts +2 -1
  91. package/dist/classes/ticker/RotateTicker.js +93 -65
  92. package/dist/classes/ticker/RotateTicker.js.map +1 -1
  93. package/dist/classes/ticker/RotateTicker.mjs +93 -65
  94. package/dist/classes/ticker/RotateTicker.mjs.map +1 -1
  95. package/dist/classes/ticker/TickerBase.d.mts +2 -1
  96. package/dist/classes/ticker/TickerBase.d.ts +2 -1
  97. package/dist/classes/ticker/TickerBase.js +5 -0
  98. package/dist/classes/ticker/TickerBase.js.map +1 -1
  99. package/dist/classes/ticker/TickerBase.mjs +5 -0
  100. package/dist/classes/ticker/TickerBase.mjs.map +1 -1
  101. package/dist/classes/ticker/ZoomTicker.d.mts +9 -3
  102. package/dist/classes/ticker/ZoomTicker.d.ts +9 -3
  103. package/dist/classes/ticker/ZoomTicker.js +108 -66
  104. package/dist/classes/ticker/ZoomTicker.js.map +1 -1
  105. package/dist/classes/ticker/ZoomTicker.mjs +106 -66
  106. package/dist/classes/ticker/ZoomTicker.mjs.map +1 -1
  107. package/dist/classes/ticker/index.d.mts +2 -1
  108. package/dist/classes/ticker/index.d.ts +2 -1
  109. package/dist/classes/ticker/index.js +230 -202
  110. package/dist/classes/ticker/index.js.map +1 -1
  111. package/dist/classes/ticker/index.mjs +230 -202
  112. package/dist/classes/ticker/index.mjs.map +1 -1
  113. package/dist/constants.d.mts +1 -1
  114. package/dist/constants.d.ts +1 -1
  115. package/dist/constants.js +1 -1
  116. package/dist/constants.js.map +1 -1
  117. package/dist/constants.mjs +1 -1
  118. package/dist/constants.mjs.map +1 -1
  119. package/dist/decorators/CanvasElementDecorator.d.mts +3 -3
  120. package/dist/decorators/CanvasElementDecorator.d.ts +3 -3
  121. package/dist/decorators/CanvasElementDecorator.js +63 -43
  122. package/dist/decorators/CanvasElementDecorator.js.map +1 -1
  123. package/dist/decorators/CanvasElementDecorator.mjs +62 -42
  124. package/dist/decorators/CanvasElementDecorator.mjs.map +1 -1
  125. package/dist/decorators/EventDecorator.d.mts +7 -7
  126. package/dist/decorators/EventDecorator.d.ts +7 -7
  127. package/dist/decorators/EventDecorator.js +11 -10
  128. package/dist/decorators/EventDecorator.js.map +1 -1
  129. package/dist/decorators/EventDecorator.mjs +10 -9
  130. package/dist/decorators/EventDecorator.mjs.map +1 -1
  131. package/dist/decorators/LabelDecorator.js +94 -66
  132. package/dist/decorators/LabelDecorator.js.map +1 -1
  133. package/dist/decorators/LabelDecorator.mjs +94 -66
  134. package/dist/decorators/LabelDecorator.mjs.map +1 -1
  135. package/dist/decorators/TickerDecorator.d.mts +5 -5
  136. package/dist/decorators/TickerDecorator.d.ts +5 -5
  137. package/dist/decorators/TickerDecorator.js +6 -5
  138. package/dist/decorators/TickerDecorator.js.map +1 -1
  139. package/dist/decorators/TickerDecorator.mjs +6 -5
  140. package/dist/decorators/TickerDecorator.mjs.map +1 -1
  141. package/dist/decorators/index.d.mts +1 -1
  142. package/dist/decorators/index.d.ts +1 -1
  143. package/dist/decorators/index.js +96 -66
  144. package/dist/decorators/index.js.map +1 -1
  145. package/dist/decorators/index.mjs +96 -66
  146. package/dist/decorators/index.mjs.map +1 -1
  147. package/dist/functions/CanvasUtility.js +56 -37
  148. package/dist/functions/CanvasUtility.js.map +1 -1
  149. package/dist/functions/CanvasUtility.mjs +56 -37
  150. package/dist/functions/CanvasUtility.mjs.map +1 -1
  151. package/dist/functions/DialogueUtility.d.mts +1 -1
  152. package/dist/functions/DialogueUtility.d.ts +1 -1
  153. package/dist/functions/DialogueUtility.js +240 -201
  154. package/dist/functions/DialogueUtility.js.map +1 -1
  155. package/dist/functions/DialogueUtility.mjs +240 -201
  156. package/dist/functions/DialogueUtility.mjs.map +1 -1
  157. package/dist/functions/FlagsUtility.js +93 -65
  158. package/dist/functions/FlagsUtility.js.map +1 -1
  159. package/dist/functions/FlagsUtility.mjs +93 -65
  160. package/dist/functions/FlagsUtility.mjs.map +1 -1
  161. package/dist/functions/GameUtility.js +93 -65
  162. package/dist/functions/GameUtility.js.map +1 -1
  163. package/dist/functions/GameUtility.mjs +93 -65
  164. package/dist/functions/GameUtility.mjs.map +1 -1
  165. package/dist/functions/ImageUtility.d.mts +35 -2
  166. package/dist/functions/ImageUtility.d.ts +35 -2
  167. package/dist/functions/ImageUtility.js +371 -186
  168. package/dist/functions/ImageUtility.js.map +1 -1
  169. package/dist/functions/ImageUtility.mjs +368 -187
  170. package/dist/functions/ImageUtility.mjs.map +1 -1
  171. package/dist/functions/SavesUtility.d.mts +2 -2
  172. package/dist/functions/SavesUtility.d.ts +2 -2
  173. package/dist/functions/SavesUtility.js +141 -71
  174. package/dist/functions/SavesUtility.js.map +1 -1
  175. package/dist/functions/SavesUtility.mjs +141 -71
  176. package/dist/functions/SavesUtility.mjs.map +1 -1
  177. package/dist/functions/index.d.mts +6 -3
  178. package/dist/functions/index.d.ts +6 -3
  179. package/dist/functions/index.js +277 -81
  180. package/dist/functions/index.js.map +1 -1
  181. package/dist/functions/index.mjs +275 -83
  182. package/dist/functions/index.mjs.map +1 -1
  183. package/dist/index.d.mts +4 -4
  184. package/dist/index.d.ts +4 -4
  185. package/dist/index.js +644 -153
  186. package/dist/index.js.map +1 -1
  187. package/dist/index.mjs +642 -155
  188. package/dist/index.mjs.map +1 -1
  189. package/dist/interface/IHistoryStep.d.mts +2 -2
  190. package/dist/interface/IHistoryStep.d.ts +2 -2
  191. package/dist/interface/ISaveData.d.mts +2 -2
  192. package/dist/interface/ISaveData.d.ts +2 -2
  193. package/dist/interface/ITicker.d.mts +2 -1
  194. package/dist/interface/ITicker.d.ts +2 -1
  195. package/dist/interface/ITickersSteps.d.mts +12 -3
  196. package/dist/interface/ITickersSteps.d.ts +12 -3
  197. package/dist/interface/TickerHistory.d.mts +3 -3
  198. package/dist/interface/TickerHistory.d.ts +3 -3
  199. package/dist/interface/canvas/ICanvasBaseMemory.d.mts +1 -1
  200. package/dist/interface/canvas/ICanvasBaseMemory.d.ts +1 -1
  201. package/dist/interface/canvas/ICanvasImageMemory.d.mts +2 -2
  202. package/dist/interface/canvas/ICanvasImageMemory.d.ts +2 -2
  203. package/dist/interface/canvas/ICanvasSpriteMemory.d.mts +1 -2
  204. package/dist/interface/canvas/ICanvasSpriteMemory.d.ts +1 -2
  205. package/dist/interface/canvas/ICanvasTextTextMemory.d.mts +1 -2
  206. package/dist/interface/canvas/ICanvasTextTextMemory.d.ts +1 -2
  207. package/dist/interface/export/ExportedCanvas.d.mts +2 -2
  208. package/dist/interface/export/ExportedCanvas.d.ts +2 -2
  209. package/dist/interface/export/ExportedStep.d.mts +2 -2
  210. package/dist/interface/export/ExportedStep.d.ts +2 -2
  211. package/dist/interface/export/index.d.mts +2 -2
  212. package/dist/interface/export/index.d.ts +2 -2
  213. package/dist/interface/index.d.mts +2 -2
  214. package/dist/interface/index.d.ts +2 -2
  215. package/dist/labels/BaseCanvasElementTestLabel.js +400 -372
  216. package/dist/labels/BaseCanvasElementTestLabel.js.map +1 -1
  217. package/dist/labels/BaseCanvasElementTestLabel.mjs +401 -373
  218. package/dist/labels/BaseCanvasElementTestLabel.mjs.map +1 -1
  219. package/dist/labels/{EventsTestLabel.d.mts → CanvasEventsTestLabel.d.mts} +4 -7
  220. package/dist/labels/{EventsTestLabel.d.ts → CanvasEventsTestLabel.d.ts} +4 -7
  221. package/dist/labels/{EventsTestLabel.js → CanvasEventsTestLabel.js} +320 -98
  222. package/dist/labels/CanvasEventsTestLabel.js.map +1 -0
  223. package/dist/labels/{EventsTestLabel.mjs → CanvasEventsTestLabel.mjs} +320 -98
  224. package/dist/labels/CanvasEventsTestLabel.mjs.map +1 -0
  225. package/dist/labels/{TintingTestLabel.d.mts → CustomTickerCanvasElementTestLabel.d.mts} +5 -4
  226. package/dist/labels/{TintingTestLabel.d.ts → CustomTickerCanvasElementTestLabel.d.ts} +5 -4
  227. package/dist/labels/CustomTickerCanvasElementTestLabel.js +2792 -0
  228. package/dist/labels/CustomTickerCanvasElementTestLabel.js.map +1 -0
  229. package/dist/labels/CustomTickerCanvasElementTestLabel.mjs +2786 -0
  230. package/dist/labels/CustomTickerCanvasElementTestLabel.mjs.map +1 -0
  231. package/dist/labels/{ShowImageTest.js → ImagesAnimationsTestLabel.js} +373 -82
  232. package/dist/labels/ImagesAnimationsTestLabel.js.map +1 -0
  233. package/dist/labels/{ShowImageTest.mjs → ImagesAnimationsTestLabel.mjs} +373 -82
  234. package/dist/labels/ImagesAnimationsTestLabel.mjs.map +1 -0
  235. package/dist/labels/MarkdownTest.js +150 -80
  236. package/dist/labels/MarkdownTest.js.map +1 -1
  237. package/dist/labels/MarkdownTest.mjs +150 -80
  238. package/dist/labels/MarkdownTest.mjs.map +1 -1
  239. package/dist/labels/StartLabel.js +689 -152
  240. package/dist/labels/StartLabel.js.map +1 -1
  241. package/dist/labels/StartLabel.mjs +690 -153
  242. package/dist/labels/StartLabel.mjs.map +1 -1
  243. package/dist/labels/TestConstant.d.mts +3 -1
  244. package/dist/labels/TestConstant.d.ts +3 -1
  245. package/dist/labels/TestConstant.js +97 -65
  246. package/dist/labels/TestConstant.js.map +1 -1
  247. package/dist/labels/TestConstant.mjs +96 -66
  248. package/dist/labels/TestConstant.mjs.map +1 -1
  249. package/dist/labels/TickerTestLabel.js +472 -402
  250. package/dist/labels/TickerTestLabel.js.map +1 -1
  251. package/dist/labels/TickerTestLabel.mjs +473 -403
  252. package/dist/labels/TickerTestLabel.mjs.map +1 -1
  253. package/dist/labels/index.js +689 -152
  254. package/dist/labels/index.js.map +1 -1
  255. package/dist/labels/index.mjs +690 -153
  256. package/dist/labels/index.mjs.map +1 -1
  257. package/dist/managers/StepManager.d.mts +5 -4
  258. package/dist/managers/StepManager.d.ts +5 -4
  259. package/dist/managers/StepManager.js +140 -70
  260. package/dist/managers/StepManager.js.map +1 -1
  261. package/dist/managers/StepManager.mjs +140 -70
  262. package/dist/managers/StepManager.mjs.map +1 -1
  263. package/dist/managers/WindowManager.d.mts +1 -1
  264. package/dist/managers/WindowManager.d.ts +1 -1
  265. package/dist/managers/WindowManager.js +84 -60
  266. package/dist/managers/WindowManager.js.map +1 -1
  267. package/dist/managers/WindowManager.mjs +84 -60
  268. package/dist/managers/WindowManager.mjs.map +1 -1
  269. package/dist/managers/index.d.mts +2 -2
  270. package/dist/managers/index.d.ts +2 -2
  271. package/dist/managers/index.js +140 -70
  272. package/dist/managers/index.js.map +1 -1
  273. package/dist/managers/index.mjs +140 -70
  274. package/dist/managers/index.mjs.map +1 -1
  275. package/dist/types/ticker/MoveTickerProps.d.mts +1 -1
  276. package/dist/types/ticker/MoveTickerProps.d.ts +1 -1
  277. package/dist/types/ticker/RotateTickerProps.d.mts +1 -1
  278. package/dist/types/ticker/RotateTickerProps.d.ts +1 -1
  279. package/package.json +1 -1
  280. package/dist/labels/EventsTestLabel.js.map +0 -1
  281. package/dist/labels/EventsTestLabel.mjs.map +0 -1
  282. package/dist/labels/ShowImageTest.js.map +0 -1
  283. package/dist/labels/ShowImageTest.mjs.map +0 -1
  284. package/dist/labels/TintingTestLabel.js +0 -1786
  285. package/dist/labels/TintingTestLabel.js.map +0 -1
  286. package/dist/labels/TintingTestLabel.mjs +0 -1780
  287. package/dist/labels/TintingTestLabel.mjs.map +0 -1
  288. /package/dist/labels/{ShowImageTest.d.mts → ImagesAnimationsTestLabel.d.mts} +0 -0
  289. /package/dist/labels/{ShowImageTest.d.ts → ImagesAnimationsTestLabel.d.ts} +0 -0
@@ -1,4 +1,4 @@
1
- import { Sprite, Container, Assets, Application, Texture, Text } from 'pixi.js';
1
+ import { Sprite, Container, Application, Assets, Texture, Text } from 'pixi.js';
2
2
  import { diff } from 'deep-diff';
3
3
  import sha1 from 'crypto-js/sha1';
4
4
 
@@ -50,138 +50,6 @@ var __async = (__this, __arguments, generator) => {
50
50
  step((generator = generator.apply(__this, __arguments)).next());
51
51
  });
52
52
  };
53
-
54
- // src/decorators/CanvasElementDecorator.ts
55
- var registeredCanvasElement = {};
56
- function getCanvasElementInstanceByClassName(canvasName) {
57
- try {
58
- let eventType = registeredCanvasElement[canvasName];
59
- if (!eventType) {
60
- if (canvasName === "CanvasContainer") {
61
- eventType = CanvasContainer;
62
- } else if (canvasName === "CanvasImage") {
63
- eventType = CanvasImage;
64
- } else if (canvasName === "CanvasSprite") {
65
- eventType = CanvasSprite;
66
- } else if (canvasName === "CanvasText") {
67
- eventType = CanvasText;
68
- }
69
- }
70
- if (!eventType) {
71
- console.error(`[Pixi'VN] CanvasElement ${canvasName} not found`);
72
- return;
73
- }
74
- let canvasElement = new eventType();
75
- return canvasElement;
76
- } catch (e) {
77
- console.error(`[Pixi'VN] Error while getting CanvasElement ${canvasName}`, e);
78
- return;
79
- }
80
- }
81
-
82
- // src/functions/CanvasUtility.ts
83
- function getTextureMemory(texture) {
84
- let sourceTexture = texture.source;
85
- let textureMemory = {
86
- image: sourceTexture.label
87
- };
88
- return textureMemory;
89
- }
90
- function exportCanvasElement(element) {
91
- return element.memory;
92
- }
93
- function importCanvasElement(memory) {
94
- let element = getCanvasElementInstanceByClassName(memory.className);
95
- if (element) {
96
- element.memory = memory;
97
- } else {
98
- throw new Error("[Pixi'VN] The element " + memory.className + " could not be created");
99
- }
100
- return element;
101
- }
102
-
103
- // src/classes/canvas/CanvasContainer.ts
104
- var CanvasContainer = class extends Container {
105
- get memory() {
106
- let memory = getMemoryContainer(this);
107
- this.children.forEach((child) => {
108
- memory.elements.push(exportCanvasElement(child));
109
- });
110
- return memory;
111
- }
112
- set memory(value) {
113
- setMemoryContainer(this, value);
114
- value.elements.forEach((child) => {
115
- this.addChild(importCanvasElement(child));
116
- });
117
- }
118
- };
119
- function getMemoryContainer(element) {
120
- return {
121
- className: "CanvasContainer",
122
- elements: [],
123
- width: element.width,
124
- height: element.height,
125
- isRenderGroup: element.isRenderGroup,
126
- blendMode: element.blendMode,
127
- tint: element.tint,
128
- alpha: element.alpha,
129
- angle: element.angle,
130
- renderable: element.renderable,
131
- rotation: element.rotation,
132
- scale: { x: element.scale.x, y: element.scale.y },
133
- pivot: { x: element.pivot.x, y: element.pivot.y },
134
- position: { x: element.position.x, y: element.position.y },
135
- skew: { x: element.skew.x, y: element.skew.y },
136
- visible: element.visible,
137
- culled: element.culled,
138
- x: element.x,
139
- y: element.y,
140
- boundsArea: element.boundsArea,
141
- cursor: element.cursor,
142
- eventMode: element.eventMode,
143
- interactive: element.interactive,
144
- interactiveChildren: element.interactiveChildren,
145
- hitArea: element.hitArea
146
- };
147
- }
148
- function setMemoryContainer(element, memory) {
149
- memory.width && (element.width = memory.width);
150
- memory.height && (element.height = memory.height);
151
- memory.isRenderGroup && (element.isRenderGroup = memory.isRenderGroup);
152
- memory.blendMode && (element.blendMode = memory.blendMode);
153
- memory.tint && (element.tint = memory.tint);
154
- memory.alpha && (element.alpha = memory.alpha);
155
- memory.angle && (element.angle = memory.angle);
156
- memory.renderable && (element.renderable = memory.renderable);
157
- memory.rotation && (element.rotation = memory.rotation);
158
- if (memory.scale) {
159
- if (typeof memory.scale === "number") {
160
- element.scale.set(memory.scale, memory.scale);
161
- } else {
162
- element.scale.set(memory.scale.x, memory.scale.y);
163
- }
164
- }
165
- if (memory.pivot) {
166
- if (typeof memory.pivot === "number") {
167
- element.pivot.set(memory.pivot, memory.pivot);
168
- } else {
169
- element.pivot.set(memory.pivot.x, memory.pivot.y);
170
- }
171
- }
172
- memory.position && element.position.set(memory.position.x, memory.position.y);
173
- memory.skew && element.skew.set(memory.skew.x, memory.skew.y);
174
- memory.visible && (element.visible = memory.visible);
175
- memory.culled && (element.culled = memory.culled);
176
- memory.x && (element.x = memory.x);
177
- memory.y && (element.y = memory.y);
178
- memory.boundsArea && (element.boundsArea = memory.boundsArea);
179
- memory.cursor && (element.cursor = memory.cursor);
180
- memory.eventMode && (element.eventMode = memory.eventMode);
181
- memory.interactive && (element.interactive = memory.interactive);
182
- memory.interactiveChildren && (element.interactiveChildren = memory.interactiveChildren);
183
- memory.hitArea && (element.hitArea = memory.hitArea);
184
- }
185
53
  function getTexture(imageUrl) {
186
54
  return __async(this, null, function* () {
187
55
  if (Assets.cache.has(imageUrl)) {
@@ -234,40 +102,43 @@ function getTextStyle(style) {
234
102
 
235
103
  // src/decorators/EventDecorator.ts
236
104
  var registeredEvents = {};
237
- function getEventTypeByClassName(eventName) {
105
+ function getEventTypeById(eventId) {
238
106
  try {
239
- let eventType = registeredEvents[eventName];
107
+ let eventType = registeredEvents[eventId];
240
108
  if (!eventType) {
241
- console.error(`[Pixi'VN] Event ${eventName} not found`);
109
+ console.error(`[Pixi'VN] Event ${eventId} not found`);
242
110
  return;
243
111
  }
244
112
  new eventType();
245
113
  return eventType;
246
114
  } catch (e) {
247
- console.error(`[Pixi'VN] Error while getting Event ${eventName}`, e);
115
+ console.error(`[Pixi'VN] Error while getting Event ${eventId}`, e);
248
116
  return;
249
117
  }
250
118
  }
251
- function getEventInstanceByClassName(eventName) {
119
+ function getEventInstanceById(eventId) {
252
120
  try {
253
- let eventType = registeredEvents[eventName];
121
+ let eventType = registeredEvents[eventId];
254
122
  if (!eventType) {
255
- console.error(`[Pixi'VN] Event ${eventName} not found`);
123
+ console.error(`[Pixi'VN] Event ${eventId} not found`);
256
124
  return;
257
125
  }
258
126
  let event = new eventType();
259
127
  return event;
260
128
  } catch (e) {
261
- console.error(`[Pixi'VN] Error while getting Event ${eventName}`, e);
129
+ console.error(`[Pixi'VN] Error while getting Event ${eventId}`, e);
262
130
  return;
263
131
  }
264
132
  }
265
133
 
266
134
  // src/classes/canvas/CanvasSprite.ts
135
+ var CANVAS_SPRITE_ID = "CanvasSprite";
267
136
  var CanvasSprite = class _CanvasSprite extends Sprite {
268
- constructor() {
269
- super(...arguments);
137
+ constructor(options) {
138
+ super(options);
139
+ this.pixivnId = CANVAS_SPRITE_ID;
270
140
  this._onEvents = {};
141
+ this.pixivnId = this.constructor.prototype.pixivnId;
271
142
  }
272
143
  get memory() {
273
144
  return getMemorySprite(this);
@@ -308,9 +179,9 @@ var CanvasSprite = class _CanvasSprite extends Sprite {
308
179
  * ```
309
180
  */
310
181
  onEvent(event, eventClass) {
311
- let className = eventClass.name;
312
- let instance = getEventInstanceByClassName(className);
313
- this._onEvents[event] = className;
182
+ let id = eventClass.prototype.id;
183
+ let instance = getEventInstanceById(id);
184
+ this._onEvents[event] = id;
314
185
  if (instance) {
315
186
  super.on(event, () => {
316
187
  instance.fn(event, this);
@@ -339,7 +210,7 @@ var CanvasSprite = class _CanvasSprite extends Sprite {
339
210
  function getMemorySprite(element) {
340
211
  let temp = getMemoryContainer(element);
341
212
  return __spreadProps(__spreadValues({}, temp), {
342
- className: "CanvasSprite",
213
+ pixivnId: element.pixivnId,
343
214
  textureImage: getTextureMemory(element.texture),
344
215
  anchor: { x: element.anchor.x, y: element.anchor.y },
345
216
  roundPixels: element.roundPixels,
@@ -362,8 +233,8 @@ function setMemorySprite(element, memory) {
362
233
  }
363
234
  memory.roundPixels && (element.roundPixels = memory.roundPixels);
364
235
  for (let event in memory.onEvents) {
365
- let className = memory.onEvents[event];
366
- let instance = getEventTypeByClassName(className);
236
+ let id = memory.onEvents[event];
237
+ let instance = getEventTypeById(id);
367
238
  if (instance) {
368
239
  element.onEvent(event, instance);
369
240
  }
@@ -371,9 +242,11 @@ function setMemorySprite(element, memory) {
371
242
  }
372
243
 
373
244
  // src/classes/canvas/CanvasImage.ts
245
+ var CANVAS_IMAGE_ID = "CanvasImage";
374
246
  var CanvasImage = class _CanvasImage extends CanvasSprite {
375
247
  constructor(options, imageLink) {
376
248
  super(options);
249
+ this.pixivnId = CANVAS_IMAGE_ID;
377
250
  this.imageLink = "";
378
251
  if (imageLink) {
379
252
  this.imageLink = imageLink;
@@ -381,12 +254,13 @@ var CanvasImage = class _CanvasImage extends CanvasSprite {
381
254
  }
382
255
  get memory() {
383
256
  return __spreadProps(__spreadValues({}, getMemorySprite(this)), {
384
- className: "CanvasImage",
385
- textureImage: { image: this.imageLink }
257
+ pixivnId: this.pixivnId,
258
+ imageLink: this.imageLink
386
259
  });
387
260
  }
388
261
  set memory(memory) {
389
262
  setMemorySprite(this, memory);
263
+ this.imageLink = memory.imageLink;
390
264
  }
391
265
  static from(source, skipCache) {
392
266
  let sprite = Sprite.from(source, skipCache);
@@ -414,10 +288,13 @@ var CanvasImage = class _CanvasImage extends CanvasSprite {
414
288
  });
415
289
  }
416
290
  };
291
+ var CANVAS_TEXT_ID = "CanvasText";
417
292
  var CanvasText = class extends Text {
418
- constructor() {
419
- super(...arguments);
293
+ constructor(options) {
294
+ super(options);
295
+ this.pixivnId = CANVAS_TEXT_ID;
420
296
  this._onEvents = {};
297
+ this.pixivnId = this.constructor.prototype.pixivnId;
421
298
  }
422
299
  get memory() {
423
300
  return getMemoryText(this);
@@ -458,9 +335,9 @@ var CanvasText = class extends Text {
458
335
  * ```
459
336
  */
460
337
  onEvent(event, eventClass) {
461
- let className = eventClass.name;
462
- let instance = getEventInstanceByClassName(className);
463
- this._onEvents[event] = className;
338
+ let id = eventClass.prototype.id;
339
+ let instance = getEventInstanceById(id);
340
+ this._onEvents[event] = id;
464
341
  if (instance) {
465
342
  super.on(event, () => {
466
343
  instance.fn(event, this);
@@ -483,7 +360,7 @@ var CanvasText = class extends Text {
483
360
  function getMemoryText(element) {
484
361
  let temp = getMemoryContainer(element);
485
362
  return __spreadProps(__spreadValues({}, temp), {
486
- className: "CanvasText",
363
+ pixivnId: element.pixivnId,
487
364
  anchor: { x: element.anchor.x, y: element.anchor.y },
488
365
  text: element.text,
489
366
  resolution: element.resolution,
@@ -506,13 +383,155 @@ function setMemoryText(element, memory) {
506
383
  memory.style && (element.style = memory.style);
507
384
  memory.roundPixels && (element.roundPixels = memory.roundPixels);
508
385
  for (let event in memory.onEvents) {
509
- let className = memory.onEvents[event];
510
- let instance = getEventTypeByClassName(className);
386
+ let id = memory.onEvents[event];
387
+ let instance = getEventTypeById(id);
511
388
  if (instance) {
512
389
  element.onEvent(event, instance);
513
390
  }
514
391
  }
515
392
  }
393
+
394
+ // src/decorators/CanvasElementDecorator.ts
395
+ var registeredCanvasElement = {};
396
+ function getCanvasElementInstanceById(canvasId) {
397
+ try {
398
+ let eventType = registeredCanvasElement[canvasId];
399
+ if (!eventType) {
400
+ if (canvasId === CANVAS_CONTAINER_ID) {
401
+ eventType = CanvasContainer;
402
+ } else if (canvasId === CANVAS_IMAGE_ID) {
403
+ eventType = CanvasImage;
404
+ } else if (canvasId === CANVAS_SPRITE_ID) {
405
+ eventType = CanvasSprite;
406
+ } else if (canvasId === CANVAS_TEXT_ID) {
407
+ eventType = CanvasText;
408
+ }
409
+ }
410
+ if (!eventType) {
411
+ console.error(`[Pixi'VN] CanvasElement ${canvasId} not found`);
412
+ return;
413
+ }
414
+ let canvasElement = new eventType();
415
+ return canvasElement;
416
+ } catch (e) {
417
+ console.error(`[Pixi'VN] Error while getting CanvasElement ${canvasId}`, e);
418
+ return;
419
+ }
420
+ }
421
+
422
+ // src/functions/CanvasUtility.ts
423
+ function getTextureMemory(texture) {
424
+ let sourceTexture = texture.source;
425
+ let textureMemory = {
426
+ image: sourceTexture.label
427
+ };
428
+ return textureMemory;
429
+ }
430
+ function exportCanvasElement(element) {
431
+ return element.memory;
432
+ }
433
+ function importCanvasElement(memory) {
434
+ let element = getCanvasElementInstanceById(memory.pixivnId);
435
+ if (element) {
436
+ element.memory = memory;
437
+ } else {
438
+ throw new Error("[Pixi'VN] The element " + memory.pixivnId + " could not be created");
439
+ }
440
+ return element;
441
+ }
442
+
443
+ // src/classes/canvas/CanvasContainer.ts
444
+ var CANVAS_CONTAINER_ID = "CanvasContainer";
445
+ var CanvasContainer = class extends Container {
446
+ constructor(options) {
447
+ super(options);
448
+ this.pixivnId = CANVAS_CONTAINER_ID;
449
+ this.pixivnId = this.constructor.prototype.pixivnId;
450
+ }
451
+ get memory() {
452
+ let memory = getMemoryContainer(this);
453
+ this.children.forEach((child) => {
454
+ memory.elements.push(exportCanvasElement(child));
455
+ });
456
+ return memory;
457
+ }
458
+ set memory(value) {
459
+ setMemoryContainer(this, value);
460
+ value.elements.forEach((child) => {
461
+ this.addChild(importCanvasElement(child));
462
+ });
463
+ }
464
+ };
465
+ function getMemoryContainer(element) {
466
+ let className = "CanvasContainer";
467
+ if (element.hasOwnProperty("pixivnId")) {
468
+ className = element.pixivnId;
469
+ }
470
+ return {
471
+ pixivnId: className,
472
+ elements: [],
473
+ width: element.width,
474
+ height: element.height,
475
+ isRenderGroup: element.isRenderGroup,
476
+ blendMode: element.blendMode,
477
+ tint: element.tint,
478
+ alpha: element.alpha,
479
+ angle: element.angle,
480
+ renderable: element.renderable,
481
+ rotation: element.rotation,
482
+ scale: { x: element.scale.x, y: element.scale.y },
483
+ pivot: { x: element.pivot.x, y: element.pivot.y },
484
+ position: { x: element.position.x, y: element.position.y },
485
+ skew: { x: element.skew.x, y: element.skew.y },
486
+ visible: element.visible,
487
+ culled: element.culled,
488
+ x: element.x,
489
+ y: element.y,
490
+ boundsArea: element.boundsArea,
491
+ cursor: element.cursor,
492
+ eventMode: element.eventMode,
493
+ interactive: element.interactive,
494
+ interactiveChildren: element.interactiveChildren,
495
+ hitArea: element.hitArea
496
+ };
497
+ }
498
+ function setMemoryContainer(element, memory) {
499
+ memory.width && (element.width = memory.width);
500
+ memory.height && (element.height = memory.height);
501
+ memory.isRenderGroup && (element.isRenderGroup = memory.isRenderGroup);
502
+ memory.blendMode && (element.blendMode = memory.blendMode);
503
+ memory.tint && (element.tint = memory.tint);
504
+ memory.alpha && (element.alpha = memory.alpha);
505
+ memory.angle && (element.angle = memory.angle);
506
+ memory.renderable && (element.renderable = memory.renderable);
507
+ memory.rotation && (element.rotation = memory.rotation);
508
+ if (memory.scale) {
509
+ if (typeof memory.scale === "number") {
510
+ element.scale.set(memory.scale, memory.scale);
511
+ } else {
512
+ element.scale.set(memory.scale.x, memory.scale.y);
513
+ }
514
+ }
515
+ if (memory.pivot) {
516
+ if (typeof memory.pivot === "number") {
517
+ element.pivot.set(memory.pivot, memory.pivot);
518
+ } else {
519
+ element.pivot.set(memory.pivot.x, memory.pivot.y);
520
+ }
521
+ }
522
+ memory.position && element.position.set(memory.position.x, memory.position.y);
523
+ memory.skew && element.skew.set(memory.skew.x, memory.skew.y);
524
+ memory.visible && (element.visible = memory.visible);
525
+ memory.culled && (element.culled = memory.culled);
526
+ memory.x && (element.x = memory.x);
527
+ memory.y && (element.y = memory.y);
528
+ memory.boundsArea && (element.boundsArea = memory.boundsArea);
529
+ memory.cursor && (element.cursor = memory.cursor);
530
+ memory.eventMode && (element.eventMode = memory.eventMode);
531
+ memory.interactive && (element.interactive = memory.interactive);
532
+ memory.interactiveChildren && (element.interactiveChildren = memory.interactiveChildren);
533
+ memory.hitArea && (element.hitArea = memory.hitArea);
534
+ }
516
535
  function getStepSha1(step) {
517
536
  let sha1String = sha1(step.toString().toLocaleLowerCase());
518
537
  return sha1String.toString();
@@ -536,7 +555,7 @@ var Label = class {
536
555
  this._choiseIndex = choiseIndex;
537
556
  }
538
557
  /**
539
- * Get the id of the label
558
+ * Get the id of the label. This variable is used in the system to get the label by id, {@link getLabelById}
540
559
  */
541
560
  get id() {
542
561
  return this._id;
@@ -561,66 +580,261 @@ var Label = class {
561
580
  if (externalSteps.length === 0) {
562
581
  return 0;
563
582
  }
564
- let res = 0;
565
- externalSteps.forEach((step, index) => {
566
- if (checkIfStepsIsEqual(step, this.steps[index])) {
567
- res = index;
583
+ let res = 0;
584
+ externalSteps.forEach((step, index) => {
585
+ if (checkIfStepsIsEqual(step, this.steps[index])) {
586
+ res = index;
587
+ }
588
+ });
589
+ return res;
590
+ }
591
+ /**
592
+ * 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
593
+ * @returns Promise<void> or void
594
+ * @example
595
+ * ```typescript
596
+ * newLabel("id", [], () => {
597
+ * Assets.load('path/to/image1.png')
598
+ * Assets.load('path/to/image2.png')
599
+ * })
600
+ * ```
601
+ */
602
+ get onStepRun() {
603
+ return this._onStepRun;
604
+ }
605
+ get choiseIndex() {
606
+ return this._choiseIndex;
607
+ }
608
+ };
609
+
610
+ // src/classes/CloseLabel.ts
611
+ var CLOSE_LABEL_ID = "__close-label-id__";
612
+ function newCloseLabel(choiseIndex) {
613
+ return new Label(CLOSE_LABEL_ID, [], void 0, choiseIndex);
614
+ }
615
+
616
+ // src/types/CloseType.ts
617
+ var Close = "close";
618
+
619
+ // src/functions/DialogueUtility.ts
620
+ function setDialogue(props) {
621
+ let text = "";
622
+ let character = void 0;
623
+ let dialogue;
624
+ if (typeof props === "string") {
625
+ text = props;
626
+ dialogue = new DialogueBaseModel(text, character);
627
+ } else if (!(props instanceof DialogueBaseModel)) {
628
+ text = props.text;
629
+ if (props.character) {
630
+ if (typeof props.character === "string") {
631
+ character = props.character;
632
+ } else {
633
+ character = props.character.id;
634
+ }
635
+ }
636
+ dialogue = new DialogueBaseModel(text, character);
637
+ } else {
638
+ dialogue = props;
639
+ }
640
+ GameStorageManager.setVariable(GameStorageManager.keysSystem.CURRENT_DIALOGUE_MEMORY_KEY, dialogue);
641
+ GameStorageManager.setVariable(GameStorageManager.keysSystem.LAST_DIALOGUE_ADDED_IN_STEP_MEMORY_KEY, GameStepManager.lastStepIndex);
642
+ }
643
+ function getDialogue() {
644
+ return GameStorageManager.getVariable(GameStorageManager.keysSystem.CURRENT_DIALOGUE_MEMORY_KEY);
645
+ }
646
+ function getChoiceMenuOptions() {
647
+ let d = GameStorageManager.getVariable(GameStorageManager.keysSystem.CURRENT_MENU_OPTIONS_MEMORY_KEY);
648
+ if (d) {
649
+ let options = [];
650
+ d.forEach((option, index) => {
651
+ if (option.type === Close) {
652
+ let itemLabel = newCloseLabel(index);
653
+ options.push({
654
+ text: option.text,
655
+ label: itemLabel,
656
+ type: Close,
657
+ closeCurrentLabel: option.closeCurrentLabel,
658
+ props: {}
659
+ });
660
+ return;
661
+ }
662
+ let label = getLabelById(option.label);
663
+ if (label) {
664
+ let itemLabel = new Label(label.id, label.steps, label.onStepRun, index);
665
+ options.push(__spreadProps(__spreadValues({}, option), {
666
+ label: itemLabel
667
+ }));
668
+ }
669
+ });
670
+ return options;
671
+ }
672
+ return void 0;
673
+ }
674
+
675
+ // src/functions/TickerUtility.ts
676
+ function updateTickerProgression(args, propertyName, progression) {
677
+ if (args[propertyName] === void 0 || !progression || args[propertyName] === progression.limit) {
678
+ return;
679
+ }
680
+ if (typeof args[propertyName] === "number") {
681
+ if (progression.type === "linear") {
682
+ args[propertyName] = getLinearProgression(args[propertyName], progression);
683
+ } else if (progression.type === "exponential") {
684
+ args[propertyName] = getExponentialProgression(args[propertyName], progression);
685
+ }
686
+ } else if (args[propertyName] !== void 0 && typeof args[propertyName] === "object" && args[propertyName].haveOwnProperty("x") && args[propertyName].haveOwnProperty("y") && typeof args[propertyName].x === "number" && typeof args[propertyName].y === "number") {
687
+ if (progression.type === "linear") {
688
+ args[propertyName].x = getLinearProgression(args[propertyName].x, progression);
689
+ args[propertyName].y = getLinearProgression(args[propertyName].y, progression);
690
+ } else if (progression.type === "exponential") {
691
+ args[propertyName].x = getExponentialProgression(args[propertyName].x, progression);
692
+ args[propertyName].y = getExponentialProgression(args[propertyName].y, progression);
693
+ }
694
+ }
695
+ }
696
+ function getLinearProgression(number, progression) {
697
+ if (progression.limit !== void 0) {
698
+ if (number > progression.limit && progression.amt > 0) {
699
+ return progression.limit;
700
+ } else if (number < progression.limit && progression.amt < 0) {
701
+ return progression.limit;
702
+ }
703
+ }
704
+ return number + progression.amt / 60;
705
+ }
706
+ function getExponentialProgression(number, progression) {
707
+ if (progression.limit !== void 0) {
708
+ if (number > progression.limit && progression.percentage > 0) {
709
+ return progression.limit;
710
+ } else if (number < progression.limit && progression.percentage < 0) {
711
+ return progression.limit;
712
+ }
713
+ }
714
+ return number + number * progression.percentage;
715
+ }
716
+
717
+ // src/classes/ticker/TickerBase.ts
718
+ var TickerBase = class {
719
+ /**
720
+ * @param args The arguments that you want to pass to the ticker.
721
+ * @param duration The duration of the ticker in seconds. If is undefined, the step will end only when the animation is finished (if the animation doesn't have a goal to reach then it won't finish). @default undefined
722
+ * @param priority The priority of the ticker. @default UPDATE_PRIORITY.NORMAL
723
+ */
724
+ constructor(args, duration, priority) {
725
+ /**
726
+ * Get the id of the ticker. This variable is used in the system to get the ticker by id, {@link geTickerInstanceById}
727
+ */
728
+ this.id = "ticker_id_not_set";
729
+ this.args = args;
730
+ this.duration = duration;
731
+ this.priority = priority;
732
+ this.id = this.constructor.prototype.id;
733
+ }
734
+ /**
735
+ * The method that will be called every frame.
736
+ * This method should be overridden and you can use GameWindowManager.addCanvasElement() to get the canvas element of the canvas, and edit them.
737
+ * @param _ticker The ticker that is calling this method
738
+ * @param _args The arguments that you passed when you added the ticker
739
+ * @param _tags The tags of the canvas elements that are connected to this ticker
740
+ * @param _tickerId The id of the ticker. You can use this to get the ticker from the {@link GameWindowManager.currentTickers}
741
+ */
742
+ fn(_ticker, _args, _tags, _tickerId) {
743
+ throw new Error("[Pixi'VN] The method TickerBase.fn() must be overridden");
744
+ }
745
+ };
746
+
747
+ // src/classes/ticker/ZoomTicker.ts
748
+ var ZoomTicker = class extends TickerBase {
749
+ fn(ticker, args, tags, tickerId) {
750
+ let xSpeed = 0.1;
751
+ let ySpeed = 0.1;
752
+ if (args.speed) {
753
+ if (typeof args.speed === "number") {
754
+ xSpeed = args.speed;
755
+ ySpeed = args.speed;
756
+ } else {
757
+ xSpeed = args.speed.x;
758
+ ySpeed = args.speed.y;
759
+ }
760
+ }
761
+ xSpeed /= 60;
762
+ ySpeed /= 60;
763
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
764
+ if (typeof tagToRemoveAfter2 === "string") {
765
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
766
+ }
767
+ let type = args.type || "zoom";
768
+ let xLimit = type === "zoom" ? Infinity : 0;
769
+ let yLimit = type === "zoom" ? Infinity : 0;
770
+ if (args.limit) {
771
+ if (typeof args.limit === "number") {
772
+ xLimit = args.limit;
773
+ yLimit = args.limit;
774
+ } else {
775
+ xLimit = args.limit.x;
776
+ yLimit = args.limit.y;
777
+ }
778
+ }
779
+ tags.filter((tag) => {
780
+ var _a;
781
+ let element = GameWindowManager.getCanvasElement(tag);
782
+ if (args.startOnlyIfHaveTexture) {
783
+ if (element && element instanceof Sprite && ((_a = element.texture) == null ? void 0 : _a.label) == "EMPTY") {
784
+ return false;
785
+ }
786
+ }
787
+ return true;
788
+ }).forEach((tag) => {
789
+ let element = GameWindowManager.getCanvasElement(tag);
790
+ if (element && element instanceof Container) {
791
+ if (type === "zoom" && (element.scale.x < xLimit || element.scale.y < yLimit)) {
792
+ element.scale.x += xSpeed * ticker.deltaTime;
793
+ element.scale.y += ySpeed * ticker.deltaTime;
794
+ } else if (type === "unzoom" && (element.scale.x > xLimit || element.scale.y > yLimit)) {
795
+ element.scale.x -= xSpeed * ticker.deltaTime;
796
+ element.scale.y -= ySpeed * ticker.deltaTime;
797
+ }
798
+ if (type === "zoom") {
799
+ if (element.scale.x > xLimit) {
800
+ element.scale.x = xLimit;
801
+ }
802
+ if (element.scale.y > yLimit) {
803
+ element.scale.y = yLimit;
804
+ }
805
+ if (element.scale.x >= xLimit && element.scale.y >= yLimit) {
806
+ element.scale.x = xLimit;
807
+ element.scale.y = yLimit;
808
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
809
+ }
810
+ } else if (type === "unzoom") {
811
+ if (element.scale.x < xLimit) {
812
+ element.scale.x = xLimit;
813
+ }
814
+ if (element.scale.y < yLimit) {
815
+ element.scale.y = yLimit;
816
+ }
817
+ if (element.scale.x <= xLimit && element.scale.y <= yLimit) {
818
+ element.scale.x = xLimit;
819
+ element.scale.y = yLimit;
820
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
821
+ }
822
+ }
823
+ if (xSpeed < 1e-5 && ySpeed < 1e-5 && !(args.speedProgression && args.speedProgression.type == "linear" && args.speedProgression.amt != 0)) {
824
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
825
+ }
568
826
  }
569
827
  });
570
- return res;
571
- }
572
- /**
573
- * 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
574
- * @returns Promise<void> or void
575
- * @example
576
- * ```typescript
577
- * newLabel("id", [], () => {
578
- * Assets.load('path/to/image1.png')
579
- * Assets.load('path/to/image2.png')
580
- * })
581
- * ```
582
- */
583
- get onStepRun() {
584
- return this._onStepRun;
828
+ if (args.speedProgression)
829
+ updateTickerProgression(args, "speed", args.speedProgression);
585
830
  }
586
- get choiseIndex() {
587
- return this._choiseIndex;
831
+ onEndOfTicker(tag, tickerId, _element, tagToRemoveAfter2) {
832
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
588
833
  }
589
834
  };
590
-
591
- // src/classes/CloseLabel.ts
592
- var CLOSE_LABEL_ID = "__close-label-id__";
593
- function newCloseLabel(choiseIndex) {
594
- return new Label(CLOSE_LABEL_ID, [], void 0, choiseIndex);
595
- }
596
-
597
- // src/functions/DialogueUtility.ts
598
- function setDialogue(props) {
599
- let text = "";
600
- let characterId = void 0;
601
- let dialogue;
602
- if (typeof props === "string") {
603
- text = props;
604
- dialogue = new DialogueBaseModel(text, characterId);
605
- } else if (!(props instanceof DialogueBaseModel)) {
606
- text = props.text;
607
- if (props.character) {
608
- if (typeof props.character === "string") {
609
- characterId = props.character;
610
- } else {
611
- characterId = props.character.id;
612
- }
613
- }
614
- dialogue = new DialogueBaseModel(text, characterId);
615
- } else {
616
- dialogue = props;
617
- }
618
- GameStorageManager.setVariable(GameStorageManager.keysSystem.CURRENT_DIALOGUE_MEMORY_KEY, dialogue);
619
- GameStorageManager.setVariable(GameStorageManager.keysSystem.LAST_DIALOGUE_ADDED_IN_STEP_MEMORY_KEY, GameStepManager.lastStepIndex);
620
- }
621
- function getDialogue() {
622
- return GameStorageManager.getVariable(GameStorageManager.keysSystem.CURRENT_DIALOGUE_MEMORY_KEY);
623
- }
835
+ ZoomTicker = __decorateClass([
836
+ tickerDecorator()
837
+ ], ZoomTicker);
624
838
 
625
839
  // src/constants.ts
626
840
  var Repeat = "repeat";
@@ -773,31 +987,6 @@ var _GameStorageManager = class _GameStorageManager {
773
987
  _GameStorageManager.storage = {};
774
988
  var GameStorageManager = _GameStorageManager;
775
989
 
776
- // src/classes/ticker/TickerBase.ts
777
- var TickerBase = class {
778
- /**
779
- * @param args The arguments that you want to pass to the ticker.
780
- * @param duration The duration of the ticker in seconds. If is undefined, the step will end only when the animation is finished (if the animation doesn't have a goal to reach then it won't finish). @default undefined
781
- * @param priority The priority of the ticker. @default UPDATE_PRIORITY.NORMAL
782
- */
783
- constructor(args, duration, priority) {
784
- this.args = args;
785
- this.duration = duration;
786
- this.priority = priority;
787
- }
788
- /**
789
- * The method that will be called every frame.
790
- * This method should be overridden and you can use GameWindowManager.addCanvasElement() to get the canvas element of the canvas, and edit them.
791
- * @param _ticker The ticker that is calling this method
792
- * @param _args The arguments that you passed when you added the ticker
793
- * @param _tags The tags of the canvas elements that are connected to this ticker
794
- * @param _tickerId The id of the ticker. You can use this to get the ticker from the {@link GameWindowManager.currentTickers}
795
- */
796
- fn(_ticker, _args, _tags, _tickerId) {
797
- throw new Error("[Pixi'VN] The method TickerBase.fn() must be overridden");
798
- }
799
- };
800
-
801
990
  // src/decorators/TickerDecorator.ts
802
991
  var registeredTickers = {};
803
992
  function tickerDecorator(name) {
@@ -808,19 +997,20 @@ function tickerDecorator(name) {
808
997
  if (registeredTickers[name]) {
809
998
  console.info(`[Pixi'VN] Ticker ${name} already exists, it will be overwritten`);
810
999
  }
1000
+ target.prototype.id = name;
811
1001
  registeredTickers[name] = target;
812
1002
  };
813
1003
  }
814
- function geTickerInstanceByClassName(tickerName, args, duration, priority) {
1004
+ function geTickerInstanceById(tickerId, args, duration, priority) {
815
1005
  try {
816
- let ticker = registeredTickers[tickerName];
1006
+ let ticker = registeredTickers[tickerId];
817
1007
  if (!ticker) {
818
- console.error(`[Pixi'VN] Ticker ${tickerName} not found`);
1008
+ console.error(`[Pixi'VN] Ticker ${tickerId} not found`);
819
1009
  return;
820
1010
  }
821
1011
  return new ticker(args, duration, priority);
822
1012
  } catch (e) {
823
- console.error(`[Pixi'VN] Error while getting Ticker ${tickerName}`, e);
1013
+ console.error(`[Pixi'VN] Error while getting Ticker ${tickerId}`, e);
824
1014
  return;
825
1015
  }
826
1016
  }
@@ -1149,18 +1339,18 @@ var _GameWindowManager = class _GameWindowManager {
1149
1339
  * ```
1150
1340
  */
1151
1341
  static addTicker(canvasElementTag, ticker) {
1152
- let tickerName = ticker.constructor.name;
1342
+ let tickerId = ticker.id;
1153
1343
  if (typeof canvasElementTag === "string") {
1154
1344
  canvasElementTag = [canvasElementTag];
1155
1345
  }
1156
- if (!geTickerInstanceByClassName(tickerName, ticker.args, ticker.duration, ticker.priority)) {
1157
- console.error(`[Pixi'VN] Ticker ${tickerName} not found`);
1346
+ if (!geTickerInstanceById(tickerId, ticker.args, ticker.duration, ticker.priority)) {
1347
+ console.error(`[Pixi'VN] Ticker ${tickerId} not found`);
1158
1348
  return;
1159
1349
  }
1160
1350
  let tickerHistory = {
1161
1351
  fn: () => {
1162
1352
  },
1163
- className: tickerName,
1353
+ id: tickerId,
1164
1354
  args: createExportableElement(ticker.args),
1165
1355
  canvasElementTags: canvasElementTag,
1166
1356
  priority: ticker.priority,
@@ -1176,11 +1366,11 @@ var _GameWindowManager = class _GameWindowManager {
1176
1366
  _GameWindowManager.removeTicker(id);
1177
1367
  }
1178
1368
  }, ticker.duration * 1e3);
1179
- _GameWindowManager.addTickerTimeoutInfo(canvasElementTag, tickerName, timeout.toString(), true);
1369
+ _GameWindowManager.addTickerTimeoutInfo(canvasElementTag, tickerId, timeout.toString(), true);
1180
1370
  }
1181
1371
  }
1182
1372
  static pushTicker(id, tickerData, ticker) {
1183
- _GameWindowManager.removeAssociationBetweenTickerCanvasElement(tickerData.canvasElementTags, tickerData);
1373
+ _GameWindowManager.removeAssociationBetweenTickerCanvasElement(tickerData.canvasElementTags, ticker);
1184
1374
  _GameWindowManager._currentTickers[id] = tickerData;
1185
1375
  tickerData.fn = (t) => {
1186
1376
  let data = _GameWindowManager._currentTickers[id];
@@ -1221,9 +1411,9 @@ var _GameWindowManager = class _GameWindowManager {
1221
1411
  if (step.hasOwnProperty("type") && step.type === "pause") {
1222
1412
  return step;
1223
1413
  }
1224
- let tickerName = step.constructor.name;
1414
+ let tickerId = step.id;
1225
1415
  return {
1226
- ticker: tickerName,
1416
+ ticker: tickerId,
1227
1417
  args: createExportableElement(step.args),
1228
1418
  duration: step.duration
1229
1419
  };
@@ -1261,16 +1451,16 @@ var _GameWindowManager = class _GameWindowManager {
1261
1451
  _GameWindowManager.addTickerTimeoutInfo(tag, "steps", timeout.toString(), false);
1262
1452
  return;
1263
1453
  }
1264
- let ticker = geTickerInstanceByClassName(step.ticker, step.args, step.duration, step.priority);
1454
+ let ticker = geTickerInstanceById(step.ticker, step.args, step.duration, step.priority);
1265
1455
  if (!ticker) {
1266
1456
  console.error(`[Pixi'VN] Ticker ${step.ticker} not found`);
1267
1457
  return;
1268
1458
  }
1269
- let tickerName = ticker.constructor.name;
1459
+ let tickerName = ticker.id;
1270
1460
  let tickerHistory = {
1271
1461
  fn: () => {
1272
1462
  },
1273
- className: tickerName,
1463
+ id: tickerName,
1274
1464
  args: createExportableElement(ticker.args),
1275
1465
  canvasElementTags: [tag],
1276
1466
  priority: ticker.priority,
@@ -1327,26 +1517,26 @@ var _GameWindowManager = class _GameWindowManager {
1327
1517
  * ```
1328
1518
  */
1329
1519
  static removeAssociationBetweenTickerCanvasElement(tags, ticker) {
1330
- let tickerName;
1520
+ let tickerId;
1331
1521
  if (typeof ticker === "string") {
1332
- tickerName = ticker;
1522
+ tickerId = ticker;
1333
1523
  } else if (ticker instanceof TickerBase) {
1334
- tickerName = ticker.constructor.name;
1524
+ tickerId = ticker.id;
1335
1525
  } else {
1336
- tickerName = ticker.name;
1526
+ tickerId = ticker.prototype.id;
1337
1527
  }
1338
1528
  if (typeof tags === "string") {
1339
1529
  tags = [tags];
1340
1530
  }
1341
1531
  for (let id in _GameWindowManager._currentTickers) {
1342
1532
  let ticker2 = _GameWindowManager._currentTickers[id];
1343
- if (ticker2.className === tickerName) {
1533
+ if (ticker2.id === tickerId) {
1344
1534
  _GameWindowManager._currentTickers[id].canvasElementTags = ticker2.canvasElementTags.filter((e) => !tags.includes(e));
1345
1535
  }
1346
1536
  }
1347
1537
  for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1348
1538
  let TickerTimeout = _GameWindowManager._currentTickersTimeouts[timeout];
1349
- if (TickerTimeout.ticker === tickerName && TickerTimeout.canBeDeletedBeforeEnd) {
1539
+ if (TickerTimeout.ticker === tickerId && TickerTimeout.canBeDeletedBeforeEnd) {
1350
1540
  _GameWindowManager._currentTickersTimeouts[timeout].tags = TickerTimeout.tags.filter((t) => !tags.includes(t));
1351
1541
  }
1352
1542
  }
@@ -1532,11 +1722,11 @@ var _GameWindowManager = class _GameWindowManager {
1532
1722
  for (let id in currentTickers) {
1533
1723
  let t = currentTickers[id];
1534
1724
  let tags = t.canvasElementTags;
1535
- let ticker = geTickerInstanceByClassName(t.className, t.args, t.duration, t.priority);
1725
+ let ticker = geTickerInstanceById(t.id, t.args, t.duration, t.priority);
1536
1726
  if (ticker) {
1537
1727
  _GameWindowManager.addTicker(tags, ticker);
1538
1728
  } else {
1539
- console.error(`[Pixi'VN] Ticker ${t.className} not found`);
1729
+ console.error(`[Pixi'VN] Ticker ${t.id} not found`);
1540
1730
  }
1541
1731
  }
1542
1732
  }
@@ -1737,6 +1927,13 @@ var _GameStepManager = class _GameStepManager {
1737
1927
  _GameStepManager._openedLabels = _GameStepManager.originalStepData.openedLabels;
1738
1928
  }
1739
1929
  /* Run Methods */
1930
+ static get canGoNext() {
1931
+ let options = getChoiceMenuOptions();
1932
+ if (options && options.length > 0) {
1933
+ return false;
1934
+ }
1935
+ return true;
1936
+ }
1740
1937
  /**
1741
1938
  * Execute the next step and add it to the history.
1742
1939
  * @param props The props to pass to the step.
@@ -1746,7 +1943,7 @@ var _GameStepManager = class _GameStepManager {
1746
1943
  * ```typescript
1747
1944
  * function nextOnClick() {
1748
1945
  * setLoading(true)
1749
- * GameStepManager.runNextStep(yourParams)
1946
+ * GameStepManager.goNext(yourParams)
1750
1947
  * .then((result) => {
1751
1948
  * setUpdate((p) => p + 1)
1752
1949
  * setLoading(false)
@@ -1761,8 +1958,12 @@ var _GameStepManager = class _GameStepManager {
1761
1958
  * }
1762
1959
  * ```
1763
1960
  */
1764
- static runNextStep(props, choiseMade) {
1961
+ static goNext(props, choiseMade) {
1765
1962
  return __async(this, null, function* () {
1963
+ if (!_GameStepManager.canGoNext) {
1964
+ console.warn("[Pixi'VN] The player must make a choice");
1965
+ return;
1966
+ }
1766
1967
  _GameStepManager.increaseCurrentStepIndex();
1767
1968
  return yield _GameStepManager.runCurrentStep(props, choiseMade);
1768
1969
  });
@@ -1793,7 +1994,7 @@ var _GameStepManager = class _GameStepManager {
1793
1994
  return result;
1794
1995
  } else if (_GameStepManager.openedLabels.length > 1) {
1795
1996
  _GameStepManager.closeCurrentLabel();
1796
- return yield _GameStepManager.runNextStep(props, choiseMade);
1997
+ return yield _GameStepManager.goNext(props, choiseMade);
1797
1998
  } else {
1798
1999
  _GameStepManager.restorLastLabelList();
1799
2000
  console.error("[Pixi'VN] The end of the game is not managed, so the game is blocked. Read this documentation to know how to manage the end of the game: https://pixi-vn.web.app/start/labels.html#how-manage-the-end-of-the-game");
@@ -1941,7 +2142,7 @@ var _GameStepManager = class _GameStepManager {
1941
2142
  if (choice.closeCurrentLabel) {
1942
2143
  _GameStepManager.closeCurrentLabel();
1943
2144
  }
1944
- return _GameStepManager.runNextStep(props, choiseMade);
2145
+ return _GameStepManager.goNext(props, choiseMade);
1945
2146
  });
1946
2147
  }
1947
2148
  /* After Update Methods */
@@ -2155,15 +2356,15 @@ var DialogueBaseModel = class {
2155
2356
  if (typeof text === "string") {
2156
2357
  this.text = text;
2157
2358
  if (typeof character === "string") {
2158
- this.characterId = character;
2359
+ this.character = character;
2159
2360
  } else {
2160
- this.characterId = character == null ? void 0 : character.id;
2361
+ this.character = character == null ? void 0 : character.id;
2161
2362
  }
2162
2363
  this.oltherParams = oltherParams;
2163
2364
  } else {
2164
2365
  this.text = text.text;
2165
- if (text.characterId) {
2166
- this.characterId = text.characterId;
2366
+ if (text.character) {
2367
+ this.character = text.character;
2167
2368
  }
2168
2369
  this.oltherParams = text.oltherParams || {};
2169
2370
  }
@@ -2176,7 +2377,7 @@ var DialogueBaseModel = class {
2176
2377
  export() {
2177
2378
  return {
2178
2379
  text: this.text,
2179
- characterId: this.characterId,
2380
+ character: this.character,
2180
2381
  oltherParams: this.oltherParams
2181
2382
  };
2182
2383
  }
@@ -2249,50 +2450,6 @@ var FadeAlphaTicker = class extends TickerBase {
2249
2450
  FadeAlphaTicker = __decorateClass([
2250
2451
  tickerDecorator()
2251
2452
  ], FadeAlphaTicker);
2252
-
2253
- // src/functions/TickerUtility.ts
2254
- function updateTickerProgression(args, propertyName, progression) {
2255
- if (args[propertyName] === void 0 || !progression || args[propertyName] === progression.limit) {
2256
- return;
2257
- }
2258
- if (typeof args[propertyName] === "number") {
2259
- if (progression.type === "linear") {
2260
- args[propertyName] = getLinearProgression(args[propertyName], progression);
2261
- } else if (progression.type === "exponential") {
2262
- args[propertyName] = getExponentialProgression(args[propertyName], progression);
2263
- }
2264
- } else if (args[propertyName] !== void 0 && typeof args[propertyName] === "object" && args[propertyName].haveOwnProperty("x") && args[propertyName].haveOwnProperty("y") && typeof args[propertyName].x === "number" && typeof args[propertyName].y === "number") {
2265
- if (progression.type === "linear") {
2266
- args[propertyName].x = getLinearProgression(args[propertyName].x, progression);
2267
- args[propertyName].y = getLinearProgression(args[propertyName].y, progression);
2268
- } else if (progression.type === "exponential") {
2269
- args[propertyName].x = getExponentialProgression(args[propertyName].x, progression);
2270
- args[propertyName].y = getExponentialProgression(args[propertyName].y, progression);
2271
- }
2272
- }
2273
- }
2274
- function getLinearProgression(number, progression) {
2275
- if (progression.limit !== void 0) {
2276
- if (number > progression.limit && progression.amt > 0) {
2277
- return progression.limit;
2278
- } else if (number < progression.limit && progression.amt < 0) {
2279
- return progression.limit;
2280
- }
2281
- }
2282
- return number + progression.amt / 60;
2283
- }
2284
- function getExponentialProgression(number, progression) {
2285
- if (progression.limit !== void 0) {
2286
- if (number > progression.limit && progression.percentage > 0) {
2287
- return progression.limit;
2288
- } else if (number < progression.limit && progression.percentage < 0) {
2289
- return progression.limit;
2290
- }
2291
- }
2292
- return number + number * progression.percentage;
2293
- }
2294
-
2295
- // src/classes/ticker/MoveTicker.ts
2296
2453
  var MoveTicker = class extends TickerBase {
2297
2454
  fn(ticker, args, tags, tickerId) {
2298
2455
  let xSpeed = 1;
@@ -2389,93 +2546,6 @@ var RotateTicker = class extends TickerBase {
2389
2546
  RotateTicker = __decorateClass([
2390
2547
  tickerDecorator()
2391
2548
  ], RotateTicker);
2392
- var ZoomTicker = class extends TickerBase {
2393
- fn(ticker, args, tags, tickerId) {
2394
- let xSpeed = 0.1;
2395
- let ySpeed = 0.1;
2396
- if (args.speed) {
2397
- if (typeof args.speed === "number") {
2398
- xSpeed = args.speed;
2399
- ySpeed = args.speed;
2400
- } else {
2401
- xSpeed = args.speed.x;
2402
- ySpeed = args.speed.y;
2403
- }
2404
- }
2405
- xSpeed /= 60;
2406
- ySpeed /= 60;
2407
- let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
2408
- if (typeof tagToRemoveAfter2 === "string") {
2409
- tagToRemoveAfter2 = [tagToRemoveAfter2];
2410
- }
2411
- let type = args.type || "zoom";
2412
- let xLimit = Infinity;
2413
- let yLimit = Infinity;
2414
- if (args.limit) {
2415
- if (typeof args.limit === "number") {
2416
- xLimit = args.limit;
2417
- yLimit = args.limit;
2418
- } else {
2419
- xLimit = args.limit.x;
2420
- yLimit = args.limit.y;
2421
- }
2422
- }
2423
- tags.filter((tag) => {
2424
- var _a;
2425
- let element = GameWindowManager.getCanvasElement(tag);
2426
- if (args.startOnlyIfHaveTexture) {
2427
- if (element && element instanceof Sprite && ((_a = element.texture) == null ? void 0 : _a.label) == "EMPTY") {
2428
- return false;
2429
- }
2430
- }
2431
- return true;
2432
- }).forEach((tag) => {
2433
- let element = GameWindowManager.getCanvasElement(tag);
2434
- if (element && element instanceof Container) {
2435
- if (type === "zoom" && (element.scale.x < xLimit || element.scale.y < yLimit)) {
2436
- element.scale.x += xSpeed * ticker.deltaTime;
2437
- element.scale.y += ySpeed * ticker.deltaTime;
2438
- } else if (type === "unzoom" && (element.scale.x > xLimit || element.scale.y > yLimit)) {
2439
- element.scale.x -= xSpeed * ticker.deltaTime;
2440
- element.scale.y -= ySpeed * ticker.deltaTime;
2441
- }
2442
- if (type === "zoom") {
2443
- if (element.scale.x > xLimit) {
2444
- element.scale.x = xLimit;
2445
- }
2446
- if (element.scale.y > yLimit) {
2447
- element.scale.y = yLimit;
2448
- }
2449
- if (element.scale.x >= xLimit && element.scale.y >= yLimit) {
2450
- element.scale.x = xLimit;
2451
- element.scale.y = yLimit;
2452
- GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
2453
- }
2454
- } else if (type === "unzoom") {
2455
- if (element.scale.x < xLimit) {
2456
- element.scale.x = xLimit;
2457
- }
2458
- if (element.scale.y < yLimit) {
2459
- element.scale.y = yLimit;
2460
- }
2461
- if (element.scale.x <= xLimit && element.scale.y <= yLimit) {
2462
- element.scale.x = xLimit;
2463
- element.scale.y = yLimit;
2464
- GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
2465
- }
2466
- }
2467
- if (xSpeed < 1e-5 && ySpeed < 1e-5 && !(args.speedProgression && args.speedProgression.type == "linear" && args.speedProgression.amt != 0)) {
2468
- GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
2469
- }
2470
- }
2471
- });
2472
- if (args.speedProgression)
2473
- updateTickerProgression(args, "speed", args.speedProgression);
2474
- }
2475
- };
2476
- ZoomTicker = __decorateClass([
2477
- tickerDecorator()
2478
- ], ZoomTicker);
2479
2549
 
2480
2550
  // src/labels/TickerTestLabel.ts
2481
2551
  var alien1Tag = "alien1";