@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
@@ -56,138 +56,6 @@ var __async = (__this, __arguments, generator) => {
56
56
  step((generator = generator.apply(__this, __arguments)).next());
57
57
  });
58
58
  };
59
-
60
- // src/decorators/CanvasElementDecorator.ts
61
- var registeredCanvasElement = {};
62
- function getCanvasElementInstanceByClassName(canvasName) {
63
- try {
64
- let eventType = registeredCanvasElement[canvasName];
65
- if (!eventType) {
66
- if (canvasName === "CanvasContainer") {
67
- eventType = CanvasContainer;
68
- } else if (canvasName === "CanvasImage") {
69
- eventType = CanvasImage;
70
- } else if (canvasName === "CanvasSprite") {
71
- eventType = CanvasSprite;
72
- } else if (canvasName === "CanvasText") {
73
- eventType = CanvasText;
74
- }
75
- }
76
- if (!eventType) {
77
- console.error(`[Pixi'VN] CanvasElement ${canvasName} not found`);
78
- return;
79
- }
80
- let canvasElement = new eventType();
81
- return canvasElement;
82
- } catch (e) {
83
- console.error(`[Pixi'VN] Error while getting CanvasElement ${canvasName}`, e);
84
- return;
85
- }
86
- }
87
-
88
- // src/functions/CanvasUtility.ts
89
- function getTextureMemory(texture) {
90
- let sourceTexture = texture.source;
91
- let textureMemory = {
92
- image: sourceTexture.label
93
- };
94
- return textureMemory;
95
- }
96
- function exportCanvasElement(element) {
97
- return element.memory;
98
- }
99
- function importCanvasElement(memory) {
100
- let element = getCanvasElementInstanceByClassName(memory.className);
101
- if (element) {
102
- element.memory = memory;
103
- } else {
104
- throw new Error("[Pixi'VN] The element " + memory.className + " could not be created");
105
- }
106
- return element;
107
- }
108
-
109
- // src/classes/canvas/CanvasContainer.ts
110
- var CanvasContainer = class extends pixi_js.Container {
111
- get memory() {
112
- let memory = getMemoryContainer(this);
113
- this.children.forEach((child) => {
114
- memory.elements.push(exportCanvasElement(child));
115
- });
116
- return memory;
117
- }
118
- set memory(value) {
119
- setMemoryContainer(this, value);
120
- value.elements.forEach((child) => {
121
- this.addChild(importCanvasElement(child));
122
- });
123
- }
124
- };
125
- function getMemoryContainer(element) {
126
- return {
127
- className: "CanvasContainer",
128
- elements: [],
129
- width: element.width,
130
- height: element.height,
131
- isRenderGroup: element.isRenderGroup,
132
- blendMode: element.blendMode,
133
- tint: element.tint,
134
- alpha: element.alpha,
135
- angle: element.angle,
136
- renderable: element.renderable,
137
- rotation: element.rotation,
138
- scale: { x: element.scale.x, y: element.scale.y },
139
- pivot: { x: element.pivot.x, y: element.pivot.y },
140
- position: { x: element.position.x, y: element.position.y },
141
- skew: { x: element.skew.x, y: element.skew.y },
142
- visible: element.visible,
143
- culled: element.culled,
144
- x: element.x,
145
- y: element.y,
146
- boundsArea: element.boundsArea,
147
- cursor: element.cursor,
148
- eventMode: element.eventMode,
149
- interactive: element.interactive,
150
- interactiveChildren: element.interactiveChildren,
151
- hitArea: element.hitArea
152
- };
153
- }
154
- function setMemoryContainer(element, memory) {
155
- memory.width && (element.width = memory.width);
156
- memory.height && (element.height = memory.height);
157
- memory.isRenderGroup && (element.isRenderGroup = memory.isRenderGroup);
158
- memory.blendMode && (element.blendMode = memory.blendMode);
159
- memory.tint && (element.tint = memory.tint);
160
- memory.alpha && (element.alpha = memory.alpha);
161
- memory.angle && (element.angle = memory.angle);
162
- memory.renderable && (element.renderable = memory.renderable);
163
- memory.rotation && (element.rotation = memory.rotation);
164
- if (memory.scale) {
165
- if (typeof memory.scale === "number") {
166
- element.scale.set(memory.scale, memory.scale);
167
- } else {
168
- element.scale.set(memory.scale.x, memory.scale.y);
169
- }
170
- }
171
- if (memory.pivot) {
172
- if (typeof memory.pivot === "number") {
173
- element.pivot.set(memory.pivot, memory.pivot);
174
- } else {
175
- element.pivot.set(memory.pivot.x, memory.pivot.y);
176
- }
177
- }
178
- memory.position && element.position.set(memory.position.x, memory.position.y);
179
- memory.skew && element.skew.set(memory.skew.x, memory.skew.y);
180
- memory.visible && (element.visible = memory.visible);
181
- memory.culled && (element.culled = memory.culled);
182
- memory.x && (element.x = memory.x);
183
- memory.y && (element.y = memory.y);
184
- memory.boundsArea && (element.boundsArea = memory.boundsArea);
185
- memory.cursor && (element.cursor = memory.cursor);
186
- memory.eventMode && (element.eventMode = memory.eventMode);
187
- memory.interactive && (element.interactive = memory.interactive);
188
- memory.interactiveChildren && (element.interactiveChildren = memory.interactiveChildren);
189
- memory.hitArea && (element.hitArea = memory.hitArea);
190
- }
191
59
  function getTexture(imageUrl) {
192
60
  return __async(this, null, function* () {
193
61
  if (pixi_js.Assets.cache.has(imageUrl)) {
@@ -240,40 +108,43 @@ function getTextStyle(style) {
240
108
 
241
109
  // src/decorators/EventDecorator.ts
242
110
  var registeredEvents = {};
243
- function getEventTypeByClassName(eventName) {
111
+ function getEventTypeById(eventId) {
244
112
  try {
245
- let eventType = registeredEvents[eventName];
113
+ let eventType = registeredEvents[eventId];
246
114
  if (!eventType) {
247
- console.error(`[Pixi'VN] Event ${eventName} not found`);
115
+ console.error(`[Pixi'VN] Event ${eventId} not found`);
248
116
  return;
249
117
  }
250
118
  new eventType();
251
119
  return eventType;
252
120
  } catch (e) {
253
- console.error(`[Pixi'VN] Error while getting Event ${eventName}`, e);
121
+ console.error(`[Pixi'VN] Error while getting Event ${eventId}`, e);
254
122
  return;
255
123
  }
256
124
  }
257
- function getEventInstanceByClassName(eventName) {
125
+ function getEventInstanceById(eventId) {
258
126
  try {
259
- let eventType = registeredEvents[eventName];
127
+ let eventType = registeredEvents[eventId];
260
128
  if (!eventType) {
261
- console.error(`[Pixi'VN] Event ${eventName} not found`);
129
+ console.error(`[Pixi'VN] Event ${eventId} not found`);
262
130
  return;
263
131
  }
264
132
  let event = new eventType();
265
133
  return event;
266
134
  } catch (e) {
267
- console.error(`[Pixi'VN] Error while getting Event ${eventName}`, e);
135
+ console.error(`[Pixi'VN] Error while getting Event ${eventId}`, e);
268
136
  return;
269
137
  }
270
138
  }
271
139
 
272
140
  // src/classes/canvas/CanvasSprite.ts
141
+ var CANVAS_SPRITE_ID = "CanvasSprite";
273
142
  var CanvasSprite = class _CanvasSprite extends pixi_js.Sprite {
274
- constructor() {
275
- super(...arguments);
143
+ constructor(options) {
144
+ super(options);
145
+ this.pixivnId = CANVAS_SPRITE_ID;
276
146
  this._onEvents = {};
147
+ this.pixivnId = this.constructor.prototype.pixivnId;
277
148
  }
278
149
  get memory() {
279
150
  return getMemorySprite(this);
@@ -314,9 +185,9 @@ var CanvasSprite = class _CanvasSprite extends pixi_js.Sprite {
314
185
  * ```
315
186
  */
316
187
  onEvent(event, eventClass) {
317
- let className = eventClass.name;
318
- let instance = getEventInstanceByClassName(className);
319
- this._onEvents[event] = className;
188
+ let id = eventClass.prototype.id;
189
+ let instance = getEventInstanceById(id);
190
+ this._onEvents[event] = id;
320
191
  if (instance) {
321
192
  super.on(event, () => {
322
193
  instance.fn(event, this);
@@ -345,7 +216,7 @@ var CanvasSprite = class _CanvasSprite extends pixi_js.Sprite {
345
216
  function getMemorySprite(element) {
346
217
  let temp = getMemoryContainer(element);
347
218
  return __spreadProps(__spreadValues({}, temp), {
348
- className: "CanvasSprite",
219
+ pixivnId: element.pixivnId,
349
220
  textureImage: getTextureMemory(element.texture),
350
221
  anchor: { x: element.anchor.x, y: element.anchor.y },
351
222
  roundPixels: element.roundPixels,
@@ -368,8 +239,8 @@ function setMemorySprite(element, memory) {
368
239
  }
369
240
  memory.roundPixels && (element.roundPixels = memory.roundPixels);
370
241
  for (let event in memory.onEvents) {
371
- let className = memory.onEvents[event];
372
- let instance = getEventTypeByClassName(className);
242
+ let id = memory.onEvents[event];
243
+ let instance = getEventTypeById(id);
373
244
  if (instance) {
374
245
  element.onEvent(event, instance);
375
246
  }
@@ -377,9 +248,11 @@ function setMemorySprite(element, memory) {
377
248
  }
378
249
 
379
250
  // src/classes/canvas/CanvasImage.ts
251
+ var CANVAS_IMAGE_ID = "CanvasImage";
380
252
  var CanvasImage = class _CanvasImage extends CanvasSprite {
381
253
  constructor(options, imageLink) {
382
254
  super(options);
255
+ this.pixivnId = CANVAS_IMAGE_ID;
383
256
  this.imageLink = "";
384
257
  if (imageLink) {
385
258
  this.imageLink = imageLink;
@@ -387,12 +260,13 @@ var CanvasImage = class _CanvasImage extends CanvasSprite {
387
260
  }
388
261
  get memory() {
389
262
  return __spreadProps(__spreadValues({}, getMemorySprite(this)), {
390
- className: "CanvasImage",
391
- textureImage: { image: this.imageLink }
263
+ pixivnId: this.pixivnId,
264
+ imageLink: this.imageLink
392
265
  });
393
266
  }
394
267
  set memory(memory) {
395
268
  setMemorySprite(this, memory);
269
+ this.imageLink = memory.imageLink;
396
270
  }
397
271
  static from(source, skipCache) {
398
272
  let sprite = pixi_js.Sprite.from(source, skipCache);
@@ -420,10 +294,13 @@ var CanvasImage = class _CanvasImage extends CanvasSprite {
420
294
  });
421
295
  }
422
296
  };
297
+ var CANVAS_TEXT_ID = "CanvasText";
423
298
  var CanvasText = class extends pixi_js.Text {
424
- constructor() {
425
- super(...arguments);
299
+ constructor(options) {
300
+ super(options);
301
+ this.pixivnId = CANVAS_TEXT_ID;
426
302
  this._onEvents = {};
303
+ this.pixivnId = this.constructor.prototype.pixivnId;
427
304
  }
428
305
  get memory() {
429
306
  return getMemoryText(this);
@@ -464,9 +341,9 @@ var CanvasText = class extends pixi_js.Text {
464
341
  * ```
465
342
  */
466
343
  onEvent(event, eventClass) {
467
- let className = eventClass.name;
468
- let instance = getEventInstanceByClassName(className);
469
- this._onEvents[event] = className;
344
+ let id = eventClass.prototype.id;
345
+ let instance = getEventInstanceById(id);
346
+ this._onEvents[event] = id;
470
347
  if (instance) {
471
348
  super.on(event, () => {
472
349
  instance.fn(event, this);
@@ -489,7 +366,7 @@ var CanvasText = class extends pixi_js.Text {
489
366
  function getMemoryText(element) {
490
367
  let temp = getMemoryContainer(element);
491
368
  return __spreadProps(__spreadValues({}, temp), {
492
- className: "CanvasText",
369
+ pixivnId: element.pixivnId,
493
370
  anchor: { x: element.anchor.x, y: element.anchor.y },
494
371
  text: element.text,
495
372
  resolution: element.resolution,
@@ -512,13 +389,155 @@ function setMemoryText(element, memory) {
512
389
  memory.style && (element.style = memory.style);
513
390
  memory.roundPixels && (element.roundPixels = memory.roundPixels);
514
391
  for (let event in memory.onEvents) {
515
- let className = memory.onEvents[event];
516
- let instance = getEventTypeByClassName(className);
392
+ let id = memory.onEvents[event];
393
+ let instance = getEventTypeById(id);
517
394
  if (instance) {
518
395
  element.onEvent(event, instance);
519
396
  }
520
397
  }
521
398
  }
399
+
400
+ // src/decorators/CanvasElementDecorator.ts
401
+ var registeredCanvasElement = {};
402
+ function getCanvasElementInstanceById(canvasId) {
403
+ try {
404
+ let eventType = registeredCanvasElement[canvasId];
405
+ if (!eventType) {
406
+ if (canvasId === CANVAS_CONTAINER_ID) {
407
+ eventType = CanvasContainer;
408
+ } else if (canvasId === CANVAS_IMAGE_ID) {
409
+ eventType = CanvasImage;
410
+ } else if (canvasId === CANVAS_SPRITE_ID) {
411
+ eventType = CanvasSprite;
412
+ } else if (canvasId === CANVAS_TEXT_ID) {
413
+ eventType = CanvasText;
414
+ }
415
+ }
416
+ if (!eventType) {
417
+ console.error(`[Pixi'VN] CanvasElement ${canvasId} not found`);
418
+ return;
419
+ }
420
+ let canvasElement = new eventType();
421
+ return canvasElement;
422
+ } catch (e) {
423
+ console.error(`[Pixi'VN] Error while getting CanvasElement ${canvasId}`, e);
424
+ return;
425
+ }
426
+ }
427
+
428
+ // src/functions/CanvasUtility.ts
429
+ function getTextureMemory(texture) {
430
+ let sourceTexture = texture.source;
431
+ let textureMemory = {
432
+ image: sourceTexture.label
433
+ };
434
+ return textureMemory;
435
+ }
436
+ function exportCanvasElement(element) {
437
+ return element.memory;
438
+ }
439
+ function importCanvasElement(memory) {
440
+ let element = getCanvasElementInstanceById(memory.pixivnId);
441
+ if (element) {
442
+ element.memory = memory;
443
+ } else {
444
+ throw new Error("[Pixi'VN] The element " + memory.pixivnId + " could not be created");
445
+ }
446
+ return element;
447
+ }
448
+
449
+ // src/classes/canvas/CanvasContainer.ts
450
+ var CANVAS_CONTAINER_ID = "CanvasContainer";
451
+ var CanvasContainer = class extends pixi_js.Container {
452
+ constructor(options) {
453
+ super(options);
454
+ this.pixivnId = CANVAS_CONTAINER_ID;
455
+ this.pixivnId = this.constructor.prototype.pixivnId;
456
+ }
457
+ get memory() {
458
+ let memory = getMemoryContainer(this);
459
+ this.children.forEach((child) => {
460
+ memory.elements.push(exportCanvasElement(child));
461
+ });
462
+ return memory;
463
+ }
464
+ set memory(value) {
465
+ setMemoryContainer(this, value);
466
+ value.elements.forEach((child) => {
467
+ this.addChild(importCanvasElement(child));
468
+ });
469
+ }
470
+ };
471
+ function getMemoryContainer(element) {
472
+ let className = "CanvasContainer";
473
+ if (element.hasOwnProperty("pixivnId")) {
474
+ className = element.pixivnId;
475
+ }
476
+ return {
477
+ pixivnId: className,
478
+ elements: [],
479
+ width: element.width,
480
+ height: element.height,
481
+ isRenderGroup: element.isRenderGroup,
482
+ blendMode: element.blendMode,
483
+ tint: element.tint,
484
+ alpha: element.alpha,
485
+ angle: element.angle,
486
+ renderable: element.renderable,
487
+ rotation: element.rotation,
488
+ scale: { x: element.scale.x, y: element.scale.y },
489
+ pivot: { x: element.pivot.x, y: element.pivot.y },
490
+ position: { x: element.position.x, y: element.position.y },
491
+ skew: { x: element.skew.x, y: element.skew.y },
492
+ visible: element.visible,
493
+ culled: element.culled,
494
+ x: element.x,
495
+ y: element.y,
496
+ boundsArea: element.boundsArea,
497
+ cursor: element.cursor,
498
+ eventMode: element.eventMode,
499
+ interactive: element.interactive,
500
+ interactiveChildren: element.interactiveChildren,
501
+ hitArea: element.hitArea
502
+ };
503
+ }
504
+ function setMemoryContainer(element, memory) {
505
+ memory.width && (element.width = memory.width);
506
+ memory.height && (element.height = memory.height);
507
+ memory.isRenderGroup && (element.isRenderGroup = memory.isRenderGroup);
508
+ memory.blendMode && (element.blendMode = memory.blendMode);
509
+ memory.tint && (element.tint = memory.tint);
510
+ memory.alpha && (element.alpha = memory.alpha);
511
+ memory.angle && (element.angle = memory.angle);
512
+ memory.renderable && (element.renderable = memory.renderable);
513
+ memory.rotation && (element.rotation = memory.rotation);
514
+ if (memory.scale) {
515
+ if (typeof memory.scale === "number") {
516
+ element.scale.set(memory.scale, memory.scale);
517
+ } else {
518
+ element.scale.set(memory.scale.x, memory.scale.y);
519
+ }
520
+ }
521
+ if (memory.pivot) {
522
+ if (typeof memory.pivot === "number") {
523
+ element.pivot.set(memory.pivot, memory.pivot);
524
+ } else {
525
+ element.pivot.set(memory.pivot.x, memory.pivot.y);
526
+ }
527
+ }
528
+ memory.position && element.position.set(memory.position.x, memory.position.y);
529
+ memory.skew && element.skew.set(memory.skew.x, memory.skew.y);
530
+ memory.visible && (element.visible = memory.visible);
531
+ memory.culled && (element.culled = memory.culled);
532
+ memory.x && (element.x = memory.x);
533
+ memory.y && (element.y = memory.y);
534
+ memory.boundsArea && (element.boundsArea = memory.boundsArea);
535
+ memory.cursor && (element.cursor = memory.cursor);
536
+ memory.eventMode && (element.eventMode = memory.eventMode);
537
+ memory.interactive && (element.interactive = memory.interactive);
538
+ memory.interactiveChildren && (element.interactiveChildren = memory.interactiveChildren);
539
+ memory.hitArea && (element.hitArea = memory.hitArea);
540
+ }
522
541
  function getStepSha1(step) {
523
542
  let sha1String = sha1__default.default(step.toString().toLocaleLowerCase());
524
543
  return sha1String.toString();
@@ -542,7 +561,7 @@ var Label = class {
542
561
  this._choiseIndex = choiseIndex;
543
562
  }
544
563
  /**
545
- * Get the id of the label
564
+ * Get the id of the label. This variable is used in the system to get the label by id, {@link getLabelById}
546
565
  */
547
566
  get id() {
548
567
  return this._id;
@@ -567,66 +586,261 @@ var Label = class {
567
586
  if (externalSteps.length === 0) {
568
587
  return 0;
569
588
  }
570
- let res = 0;
571
- externalSteps.forEach((step, index) => {
572
- if (checkIfStepsIsEqual(step, this.steps[index])) {
573
- res = index;
589
+ let res = 0;
590
+ externalSteps.forEach((step, index) => {
591
+ if (checkIfStepsIsEqual(step, this.steps[index])) {
592
+ res = index;
593
+ }
594
+ });
595
+ return res;
596
+ }
597
+ /**
598
+ * Get the function that will be executed before any step is executed, is useful for example to make sure all images used have been cached
599
+ * @returns Promise<void> or void
600
+ * @example
601
+ * ```typescript
602
+ * newLabel("id", [], () => {
603
+ * Assets.load('path/to/image1.png')
604
+ * Assets.load('path/to/image2.png')
605
+ * })
606
+ * ```
607
+ */
608
+ get onStepRun() {
609
+ return this._onStepRun;
610
+ }
611
+ get choiseIndex() {
612
+ return this._choiseIndex;
613
+ }
614
+ };
615
+
616
+ // src/classes/CloseLabel.ts
617
+ var CLOSE_LABEL_ID = "__close-label-id__";
618
+ function newCloseLabel(choiseIndex) {
619
+ return new Label(CLOSE_LABEL_ID, [], void 0, choiseIndex);
620
+ }
621
+
622
+ // src/types/CloseType.ts
623
+ var Close = "close";
624
+
625
+ // src/functions/DialogueUtility.ts
626
+ function setDialogue(props) {
627
+ let text = "";
628
+ let character = void 0;
629
+ let dialogue;
630
+ if (typeof props === "string") {
631
+ text = props;
632
+ dialogue = new DialogueBaseModel(text, character);
633
+ } else if (!(props instanceof DialogueBaseModel)) {
634
+ text = props.text;
635
+ if (props.character) {
636
+ if (typeof props.character === "string") {
637
+ character = props.character;
638
+ } else {
639
+ character = props.character.id;
640
+ }
641
+ }
642
+ dialogue = new DialogueBaseModel(text, character);
643
+ } else {
644
+ dialogue = props;
645
+ }
646
+ GameStorageManager.setVariable(GameStorageManager.keysSystem.CURRENT_DIALOGUE_MEMORY_KEY, dialogue);
647
+ GameStorageManager.setVariable(GameStorageManager.keysSystem.LAST_DIALOGUE_ADDED_IN_STEP_MEMORY_KEY, GameStepManager.lastStepIndex);
648
+ }
649
+ function getDialogue() {
650
+ return GameStorageManager.getVariable(GameStorageManager.keysSystem.CURRENT_DIALOGUE_MEMORY_KEY);
651
+ }
652
+ function getChoiceMenuOptions() {
653
+ let d = GameStorageManager.getVariable(GameStorageManager.keysSystem.CURRENT_MENU_OPTIONS_MEMORY_KEY);
654
+ if (d) {
655
+ let options = [];
656
+ d.forEach((option, index) => {
657
+ if (option.type === Close) {
658
+ let itemLabel = newCloseLabel(index);
659
+ options.push({
660
+ text: option.text,
661
+ label: itemLabel,
662
+ type: Close,
663
+ closeCurrentLabel: option.closeCurrentLabel,
664
+ props: {}
665
+ });
666
+ return;
667
+ }
668
+ let label = getLabelById(option.label);
669
+ if (label) {
670
+ let itemLabel = new Label(label.id, label.steps, label.onStepRun, index);
671
+ options.push(__spreadProps(__spreadValues({}, option), {
672
+ label: itemLabel
673
+ }));
674
+ }
675
+ });
676
+ return options;
677
+ }
678
+ return void 0;
679
+ }
680
+
681
+ // src/functions/TickerUtility.ts
682
+ function updateTickerProgression(args, propertyName, progression) {
683
+ if (args[propertyName] === void 0 || !progression || args[propertyName] === progression.limit) {
684
+ return;
685
+ }
686
+ if (typeof args[propertyName] === "number") {
687
+ if (progression.type === "linear") {
688
+ args[propertyName] = getLinearProgression(args[propertyName], progression);
689
+ } else if (progression.type === "exponential") {
690
+ args[propertyName] = getExponentialProgression(args[propertyName], progression);
691
+ }
692
+ } 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") {
693
+ if (progression.type === "linear") {
694
+ args[propertyName].x = getLinearProgression(args[propertyName].x, progression);
695
+ args[propertyName].y = getLinearProgression(args[propertyName].y, progression);
696
+ } else if (progression.type === "exponential") {
697
+ args[propertyName].x = getExponentialProgression(args[propertyName].x, progression);
698
+ args[propertyName].y = getExponentialProgression(args[propertyName].y, progression);
699
+ }
700
+ }
701
+ }
702
+ function getLinearProgression(number, progression) {
703
+ if (progression.limit !== void 0) {
704
+ if (number > progression.limit && progression.amt > 0) {
705
+ return progression.limit;
706
+ } else if (number < progression.limit && progression.amt < 0) {
707
+ return progression.limit;
708
+ }
709
+ }
710
+ return number + progression.amt / 60;
711
+ }
712
+ function getExponentialProgression(number, progression) {
713
+ if (progression.limit !== void 0) {
714
+ if (number > progression.limit && progression.percentage > 0) {
715
+ return progression.limit;
716
+ } else if (number < progression.limit && progression.percentage < 0) {
717
+ return progression.limit;
718
+ }
719
+ }
720
+ return number + number * progression.percentage;
721
+ }
722
+
723
+ // src/classes/ticker/TickerBase.ts
724
+ var TickerBase = class {
725
+ /**
726
+ * @param args The arguments that you want to pass to the ticker.
727
+ * @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
728
+ * @param priority The priority of the ticker. @default UPDATE_PRIORITY.NORMAL
729
+ */
730
+ constructor(args, duration, priority) {
731
+ /**
732
+ * Get the id of the ticker. This variable is used in the system to get the ticker by id, {@link geTickerInstanceById}
733
+ */
734
+ this.id = "ticker_id_not_set";
735
+ this.args = args;
736
+ this.duration = duration;
737
+ this.priority = priority;
738
+ this.id = this.constructor.prototype.id;
739
+ }
740
+ /**
741
+ * The method that will be called every frame.
742
+ * This method should be overridden and you can use GameWindowManager.addCanvasElement() to get the canvas element of the canvas, and edit them.
743
+ * @param _ticker The ticker that is calling this method
744
+ * @param _args The arguments that you passed when you added the ticker
745
+ * @param _tags The tags of the canvas elements that are connected to this ticker
746
+ * @param _tickerId The id of the ticker. You can use this to get the ticker from the {@link GameWindowManager.currentTickers}
747
+ */
748
+ fn(_ticker, _args, _tags, _tickerId) {
749
+ throw new Error("[Pixi'VN] The method TickerBase.fn() must be overridden");
750
+ }
751
+ };
752
+
753
+ // src/classes/ticker/ZoomTicker.ts
754
+ var ZoomTicker = class extends TickerBase {
755
+ fn(ticker, args, tags, tickerId) {
756
+ let xSpeed = 0.1;
757
+ let ySpeed = 0.1;
758
+ if (args.speed) {
759
+ if (typeof args.speed === "number") {
760
+ xSpeed = args.speed;
761
+ ySpeed = args.speed;
762
+ } else {
763
+ xSpeed = args.speed.x;
764
+ ySpeed = args.speed.y;
765
+ }
766
+ }
767
+ xSpeed /= 60;
768
+ ySpeed /= 60;
769
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
770
+ if (typeof tagToRemoveAfter2 === "string") {
771
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
772
+ }
773
+ let type = args.type || "zoom";
774
+ let xLimit = type === "zoom" ? Infinity : 0;
775
+ let yLimit = type === "zoom" ? Infinity : 0;
776
+ if (args.limit) {
777
+ if (typeof args.limit === "number") {
778
+ xLimit = args.limit;
779
+ yLimit = args.limit;
780
+ } else {
781
+ xLimit = args.limit.x;
782
+ yLimit = args.limit.y;
783
+ }
784
+ }
785
+ tags.filter((tag) => {
786
+ var _a;
787
+ let element = GameWindowManager.getCanvasElement(tag);
788
+ if (args.startOnlyIfHaveTexture) {
789
+ if (element && element instanceof pixi_js.Sprite && ((_a = element.texture) == null ? void 0 : _a.label) == "EMPTY") {
790
+ return false;
791
+ }
792
+ }
793
+ return true;
794
+ }).forEach((tag) => {
795
+ let element = GameWindowManager.getCanvasElement(tag);
796
+ if (element && element instanceof pixi_js.Container) {
797
+ if (type === "zoom" && (element.scale.x < xLimit || element.scale.y < yLimit)) {
798
+ element.scale.x += xSpeed * ticker.deltaTime;
799
+ element.scale.y += ySpeed * ticker.deltaTime;
800
+ } else if (type === "unzoom" && (element.scale.x > xLimit || element.scale.y > yLimit)) {
801
+ element.scale.x -= xSpeed * ticker.deltaTime;
802
+ element.scale.y -= ySpeed * ticker.deltaTime;
803
+ }
804
+ if (type === "zoom") {
805
+ if (element.scale.x > xLimit) {
806
+ element.scale.x = xLimit;
807
+ }
808
+ if (element.scale.y > yLimit) {
809
+ element.scale.y = yLimit;
810
+ }
811
+ if (element.scale.x >= xLimit && element.scale.y >= yLimit) {
812
+ element.scale.x = xLimit;
813
+ element.scale.y = yLimit;
814
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
815
+ }
816
+ } else if (type === "unzoom") {
817
+ if (element.scale.x < xLimit) {
818
+ element.scale.x = xLimit;
819
+ }
820
+ if (element.scale.y < yLimit) {
821
+ element.scale.y = yLimit;
822
+ }
823
+ if (element.scale.x <= xLimit && element.scale.y <= yLimit) {
824
+ element.scale.x = xLimit;
825
+ element.scale.y = yLimit;
826
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
827
+ }
828
+ }
829
+ if (xSpeed < 1e-5 && ySpeed < 1e-5 && !(args.speedProgression && args.speedProgression.type == "linear" && args.speedProgression.amt != 0)) {
830
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
831
+ }
574
832
  }
575
833
  });
576
- return res;
577
- }
578
- /**
579
- * 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
580
- * @returns Promise<void> or void
581
- * @example
582
- * ```typescript
583
- * newLabel("id", [], () => {
584
- * Assets.load('path/to/image1.png')
585
- * Assets.load('path/to/image2.png')
586
- * })
587
- * ```
588
- */
589
- get onStepRun() {
590
- return this._onStepRun;
834
+ if (args.speedProgression)
835
+ updateTickerProgression(args, "speed", args.speedProgression);
591
836
  }
592
- get choiseIndex() {
593
- return this._choiseIndex;
837
+ onEndOfTicker(tag, tickerId, _element, tagToRemoveAfter2) {
838
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
594
839
  }
595
840
  };
596
-
597
- // src/classes/CloseLabel.ts
598
- var CLOSE_LABEL_ID = "__close-label-id__";
599
- function newCloseLabel(choiseIndex) {
600
- return new Label(CLOSE_LABEL_ID, [], void 0, choiseIndex);
601
- }
602
-
603
- // src/functions/DialogueUtility.ts
604
- function setDialogue(props) {
605
- let text = "";
606
- let characterId = void 0;
607
- let dialogue;
608
- if (typeof props === "string") {
609
- text = props;
610
- dialogue = new DialogueBaseModel(text, characterId);
611
- } else if (!(props instanceof DialogueBaseModel)) {
612
- text = props.text;
613
- if (props.character) {
614
- if (typeof props.character === "string") {
615
- characterId = props.character;
616
- } else {
617
- characterId = props.character.id;
618
- }
619
- }
620
- dialogue = new DialogueBaseModel(text, characterId);
621
- } else {
622
- dialogue = props;
623
- }
624
- GameStorageManager.setVariable(GameStorageManager.keysSystem.CURRENT_DIALOGUE_MEMORY_KEY, dialogue);
625
- GameStorageManager.setVariable(GameStorageManager.keysSystem.LAST_DIALOGUE_ADDED_IN_STEP_MEMORY_KEY, GameStepManager.lastStepIndex);
626
- }
627
- function getDialogue() {
628
- return GameStorageManager.getVariable(GameStorageManager.keysSystem.CURRENT_DIALOGUE_MEMORY_KEY);
629
- }
841
+ ZoomTicker = __decorateClass([
842
+ tickerDecorator()
843
+ ], ZoomTicker);
630
844
 
631
845
  // src/constants.ts
632
846
  var Repeat = "repeat";
@@ -779,31 +993,6 @@ var _GameStorageManager = class _GameStorageManager {
779
993
  _GameStorageManager.storage = {};
780
994
  var GameStorageManager = _GameStorageManager;
781
995
 
782
- // src/classes/ticker/TickerBase.ts
783
- var TickerBase = class {
784
- /**
785
- * @param args The arguments that you want to pass to the ticker.
786
- * @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
787
- * @param priority The priority of the ticker. @default UPDATE_PRIORITY.NORMAL
788
- */
789
- constructor(args, duration, priority) {
790
- this.args = args;
791
- this.duration = duration;
792
- this.priority = priority;
793
- }
794
- /**
795
- * The method that will be called every frame.
796
- * This method should be overridden and you can use GameWindowManager.addCanvasElement() to get the canvas element of the canvas, and edit them.
797
- * @param _ticker The ticker that is calling this method
798
- * @param _args The arguments that you passed when you added the ticker
799
- * @param _tags The tags of the canvas elements that are connected to this ticker
800
- * @param _tickerId The id of the ticker. You can use this to get the ticker from the {@link GameWindowManager.currentTickers}
801
- */
802
- fn(_ticker, _args, _tags, _tickerId) {
803
- throw new Error("[Pixi'VN] The method TickerBase.fn() must be overridden");
804
- }
805
- };
806
-
807
996
  // src/decorators/TickerDecorator.ts
808
997
  var registeredTickers = {};
809
998
  function tickerDecorator(name) {
@@ -814,19 +1003,20 @@ function tickerDecorator(name) {
814
1003
  if (registeredTickers[name]) {
815
1004
  console.info(`[Pixi'VN] Ticker ${name} already exists, it will be overwritten`);
816
1005
  }
1006
+ target.prototype.id = name;
817
1007
  registeredTickers[name] = target;
818
1008
  };
819
1009
  }
820
- function geTickerInstanceByClassName(tickerName, args, duration, priority) {
1010
+ function geTickerInstanceById(tickerId, args, duration, priority) {
821
1011
  try {
822
- let ticker = registeredTickers[tickerName];
1012
+ let ticker = registeredTickers[tickerId];
823
1013
  if (!ticker) {
824
- console.error(`[Pixi'VN] Ticker ${tickerName} not found`);
1014
+ console.error(`[Pixi'VN] Ticker ${tickerId} not found`);
825
1015
  return;
826
1016
  }
827
1017
  return new ticker(args, duration, priority);
828
1018
  } catch (e) {
829
- console.error(`[Pixi'VN] Error while getting Ticker ${tickerName}`, e);
1019
+ console.error(`[Pixi'VN] Error while getting Ticker ${tickerId}`, e);
830
1020
  return;
831
1021
  }
832
1022
  }
@@ -1155,18 +1345,18 @@ var _GameWindowManager = class _GameWindowManager {
1155
1345
  * ```
1156
1346
  */
1157
1347
  static addTicker(canvasElementTag, ticker) {
1158
- let tickerName = ticker.constructor.name;
1348
+ let tickerId = ticker.id;
1159
1349
  if (typeof canvasElementTag === "string") {
1160
1350
  canvasElementTag = [canvasElementTag];
1161
1351
  }
1162
- if (!geTickerInstanceByClassName(tickerName, ticker.args, ticker.duration, ticker.priority)) {
1163
- console.error(`[Pixi'VN] Ticker ${tickerName} not found`);
1352
+ if (!geTickerInstanceById(tickerId, ticker.args, ticker.duration, ticker.priority)) {
1353
+ console.error(`[Pixi'VN] Ticker ${tickerId} not found`);
1164
1354
  return;
1165
1355
  }
1166
1356
  let tickerHistory = {
1167
1357
  fn: () => {
1168
1358
  },
1169
- className: tickerName,
1359
+ id: tickerId,
1170
1360
  args: createExportableElement(ticker.args),
1171
1361
  canvasElementTags: canvasElementTag,
1172
1362
  priority: ticker.priority,
@@ -1182,11 +1372,11 @@ var _GameWindowManager = class _GameWindowManager {
1182
1372
  _GameWindowManager.removeTicker(id);
1183
1373
  }
1184
1374
  }, ticker.duration * 1e3);
1185
- _GameWindowManager.addTickerTimeoutInfo(canvasElementTag, tickerName, timeout.toString(), true);
1375
+ _GameWindowManager.addTickerTimeoutInfo(canvasElementTag, tickerId, timeout.toString(), true);
1186
1376
  }
1187
1377
  }
1188
1378
  static pushTicker(id, tickerData, ticker) {
1189
- _GameWindowManager.removeAssociationBetweenTickerCanvasElement(tickerData.canvasElementTags, tickerData);
1379
+ _GameWindowManager.removeAssociationBetweenTickerCanvasElement(tickerData.canvasElementTags, ticker);
1190
1380
  _GameWindowManager._currentTickers[id] = tickerData;
1191
1381
  tickerData.fn = (t) => {
1192
1382
  let data = _GameWindowManager._currentTickers[id];
@@ -1227,9 +1417,9 @@ var _GameWindowManager = class _GameWindowManager {
1227
1417
  if (step.hasOwnProperty("type") && step.type === "pause") {
1228
1418
  return step;
1229
1419
  }
1230
- let tickerName = step.constructor.name;
1420
+ let tickerId = step.id;
1231
1421
  return {
1232
- ticker: tickerName,
1422
+ ticker: tickerId,
1233
1423
  args: createExportableElement(step.args),
1234
1424
  duration: step.duration
1235
1425
  };
@@ -1267,16 +1457,16 @@ var _GameWindowManager = class _GameWindowManager {
1267
1457
  _GameWindowManager.addTickerTimeoutInfo(tag, "steps", timeout.toString(), false);
1268
1458
  return;
1269
1459
  }
1270
- let ticker = geTickerInstanceByClassName(step.ticker, step.args, step.duration, step.priority);
1460
+ let ticker = geTickerInstanceById(step.ticker, step.args, step.duration, step.priority);
1271
1461
  if (!ticker) {
1272
1462
  console.error(`[Pixi'VN] Ticker ${step.ticker} not found`);
1273
1463
  return;
1274
1464
  }
1275
- let tickerName = ticker.constructor.name;
1465
+ let tickerName = ticker.id;
1276
1466
  let tickerHistory = {
1277
1467
  fn: () => {
1278
1468
  },
1279
- className: tickerName,
1469
+ id: tickerName,
1280
1470
  args: createExportableElement(ticker.args),
1281
1471
  canvasElementTags: [tag],
1282
1472
  priority: ticker.priority,
@@ -1333,26 +1523,26 @@ var _GameWindowManager = class _GameWindowManager {
1333
1523
  * ```
1334
1524
  */
1335
1525
  static removeAssociationBetweenTickerCanvasElement(tags, ticker) {
1336
- let tickerName;
1526
+ let tickerId;
1337
1527
  if (typeof ticker === "string") {
1338
- tickerName = ticker;
1528
+ tickerId = ticker;
1339
1529
  } else if (ticker instanceof TickerBase) {
1340
- tickerName = ticker.constructor.name;
1530
+ tickerId = ticker.id;
1341
1531
  } else {
1342
- tickerName = ticker.name;
1532
+ tickerId = ticker.prototype.id;
1343
1533
  }
1344
1534
  if (typeof tags === "string") {
1345
1535
  tags = [tags];
1346
1536
  }
1347
1537
  for (let id in _GameWindowManager._currentTickers) {
1348
1538
  let ticker2 = _GameWindowManager._currentTickers[id];
1349
- if (ticker2.className === tickerName) {
1539
+ if (ticker2.id === tickerId) {
1350
1540
  _GameWindowManager._currentTickers[id].canvasElementTags = ticker2.canvasElementTags.filter((e) => !tags.includes(e));
1351
1541
  }
1352
1542
  }
1353
1543
  for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1354
1544
  let TickerTimeout = _GameWindowManager._currentTickersTimeouts[timeout];
1355
- if (TickerTimeout.ticker === tickerName && TickerTimeout.canBeDeletedBeforeEnd) {
1545
+ if (TickerTimeout.ticker === tickerId && TickerTimeout.canBeDeletedBeforeEnd) {
1356
1546
  _GameWindowManager._currentTickersTimeouts[timeout].tags = TickerTimeout.tags.filter((t) => !tags.includes(t));
1357
1547
  }
1358
1548
  }
@@ -1538,11 +1728,11 @@ var _GameWindowManager = class _GameWindowManager {
1538
1728
  for (let id in currentTickers) {
1539
1729
  let t = currentTickers[id];
1540
1730
  let tags = t.canvasElementTags;
1541
- let ticker = geTickerInstanceByClassName(t.className, t.args, t.duration, t.priority);
1731
+ let ticker = geTickerInstanceById(t.id, t.args, t.duration, t.priority);
1542
1732
  if (ticker) {
1543
1733
  _GameWindowManager.addTicker(tags, ticker);
1544
1734
  } else {
1545
- console.error(`[Pixi'VN] Ticker ${t.className} not found`);
1735
+ console.error(`[Pixi'VN] Ticker ${t.id} not found`);
1546
1736
  }
1547
1737
  }
1548
1738
  }
@@ -1743,6 +1933,13 @@ var _GameStepManager = class _GameStepManager {
1743
1933
  _GameStepManager._openedLabels = _GameStepManager.originalStepData.openedLabels;
1744
1934
  }
1745
1935
  /* Run Methods */
1936
+ static get canGoNext() {
1937
+ let options = getChoiceMenuOptions();
1938
+ if (options && options.length > 0) {
1939
+ return false;
1940
+ }
1941
+ return true;
1942
+ }
1746
1943
  /**
1747
1944
  * Execute the next step and add it to the history.
1748
1945
  * @param props The props to pass to the step.
@@ -1752,7 +1949,7 @@ var _GameStepManager = class _GameStepManager {
1752
1949
  * ```typescript
1753
1950
  * function nextOnClick() {
1754
1951
  * setLoading(true)
1755
- * GameStepManager.runNextStep(yourParams)
1952
+ * GameStepManager.goNext(yourParams)
1756
1953
  * .then((result) => {
1757
1954
  * setUpdate((p) => p + 1)
1758
1955
  * setLoading(false)
@@ -1767,8 +1964,12 @@ var _GameStepManager = class _GameStepManager {
1767
1964
  * }
1768
1965
  * ```
1769
1966
  */
1770
- static runNextStep(props, choiseMade) {
1967
+ static goNext(props, choiseMade) {
1771
1968
  return __async(this, null, function* () {
1969
+ if (!_GameStepManager.canGoNext) {
1970
+ console.warn("[Pixi'VN] The player must make a choice");
1971
+ return;
1972
+ }
1772
1973
  _GameStepManager.increaseCurrentStepIndex();
1773
1974
  return yield _GameStepManager.runCurrentStep(props, choiseMade);
1774
1975
  });
@@ -1799,7 +2000,7 @@ var _GameStepManager = class _GameStepManager {
1799
2000
  return result;
1800
2001
  } else if (_GameStepManager.openedLabels.length > 1) {
1801
2002
  _GameStepManager.closeCurrentLabel();
1802
- return yield _GameStepManager.runNextStep(props, choiseMade);
2003
+ return yield _GameStepManager.goNext(props, choiseMade);
1803
2004
  } else {
1804
2005
  _GameStepManager.restorLastLabelList();
1805
2006
  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");
@@ -1947,7 +2148,7 @@ var _GameStepManager = class _GameStepManager {
1947
2148
  if (choice.closeCurrentLabel) {
1948
2149
  _GameStepManager.closeCurrentLabel();
1949
2150
  }
1950
- return _GameStepManager.runNextStep(props, choiseMade);
2151
+ return _GameStepManager.goNext(props, choiseMade);
1951
2152
  });
1952
2153
  }
1953
2154
  /* After Update Methods */
@@ -2161,15 +2362,15 @@ var DialogueBaseModel = class {
2161
2362
  if (typeof text === "string") {
2162
2363
  this.text = text;
2163
2364
  if (typeof character === "string") {
2164
- this.characterId = character;
2365
+ this.character = character;
2165
2366
  } else {
2166
- this.characterId = character == null ? void 0 : character.id;
2367
+ this.character = character == null ? void 0 : character.id;
2167
2368
  }
2168
2369
  this.oltherParams = oltherParams;
2169
2370
  } else {
2170
2371
  this.text = text.text;
2171
- if (text.characterId) {
2172
- this.characterId = text.characterId;
2372
+ if (text.character) {
2373
+ this.character = text.character;
2173
2374
  }
2174
2375
  this.oltherParams = text.oltherParams || {};
2175
2376
  }
@@ -2182,7 +2383,7 @@ var DialogueBaseModel = class {
2182
2383
  export() {
2183
2384
  return {
2184
2385
  text: this.text,
2185
- characterId: this.characterId,
2386
+ character: this.character,
2186
2387
  oltherParams: this.oltherParams
2187
2388
  };
2188
2389
  }
@@ -2255,50 +2456,6 @@ var FadeAlphaTicker = class extends TickerBase {
2255
2456
  FadeAlphaTicker = __decorateClass([
2256
2457
  tickerDecorator()
2257
2458
  ], FadeAlphaTicker);
2258
-
2259
- // src/functions/TickerUtility.ts
2260
- function updateTickerProgression(args, propertyName, progression) {
2261
- if (args[propertyName] === void 0 || !progression || args[propertyName] === progression.limit) {
2262
- return;
2263
- }
2264
- if (typeof args[propertyName] === "number") {
2265
- if (progression.type === "linear") {
2266
- args[propertyName] = getLinearProgression(args[propertyName], progression);
2267
- } else if (progression.type === "exponential") {
2268
- args[propertyName] = getExponentialProgression(args[propertyName], progression);
2269
- }
2270
- } 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") {
2271
- if (progression.type === "linear") {
2272
- args[propertyName].x = getLinearProgression(args[propertyName].x, progression);
2273
- args[propertyName].y = getLinearProgression(args[propertyName].y, progression);
2274
- } else if (progression.type === "exponential") {
2275
- args[propertyName].x = getExponentialProgression(args[propertyName].x, progression);
2276
- args[propertyName].y = getExponentialProgression(args[propertyName].y, progression);
2277
- }
2278
- }
2279
- }
2280
- function getLinearProgression(number, progression) {
2281
- if (progression.limit !== void 0) {
2282
- if (number > progression.limit && progression.amt > 0) {
2283
- return progression.limit;
2284
- } else if (number < progression.limit && progression.amt < 0) {
2285
- return progression.limit;
2286
- }
2287
- }
2288
- return number + progression.amt / 60;
2289
- }
2290
- function getExponentialProgression(number, progression) {
2291
- if (progression.limit !== void 0) {
2292
- if (number > progression.limit && progression.percentage > 0) {
2293
- return progression.limit;
2294
- } else if (number < progression.limit && progression.percentage < 0) {
2295
- return progression.limit;
2296
- }
2297
- }
2298
- return number + number * progression.percentage;
2299
- }
2300
-
2301
- // src/classes/ticker/MoveTicker.ts
2302
2459
  var MoveTicker = class extends TickerBase {
2303
2460
  fn(ticker, args, tags, tickerId) {
2304
2461
  let xSpeed = 1;
@@ -2395,93 +2552,6 @@ var RotateTicker = class extends TickerBase {
2395
2552
  RotateTicker = __decorateClass([
2396
2553
  tickerDecorator()
2397
2554
  ], RotateTicker);
2398
- var ZoomTicker = class extends TickerBase {
2399
- fn(ticker, args, tags, tickerId) {
2400
- let xSpeed = 0.1;
2401
- let ySpeed = 0.1;
2402
- if (args.speed) {
2403
- if (typeof args.speed === "number") {
2404
- xSpeed = args.speed;
2405
- ySpeed = args.speed;
2406
- } else {
2407
- xSpeed = args.speed.x;
2408
- ySpeed = args.speed.y;
2409
- }
2410
- }
2411
- xSpeed /= 60;
2412
- ySpeed /= 60;
2413
- let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
2414
- if (typeof tagToRemoveAfter2 === "string") {
2415
- tagToRemoveAfter2 = [tagToRemoveAfter2];
2416
- }
2417
- let type = args.type || "zoom";
2418
- let xLimit = Infinity;
2419
- let yLimit = Infinity;
2420
- if (args.limit) {
2421
- if (typeof args.limit === "number") {
2422
- xLimit = args.limit;
2423
- yLimit = args.limit;
2424
- } else {
2425
- xLimit = args.limit.x;
2426
- yLimit = args.limit.y;
2427
- }
2428
- }
2429
- tags.filter((tag) => {
2430
- var _a;
2431
- let element = GameWindowManager.getCanvasElement(tag);
2432
- if (args.startOnlyIfHaveTexture) {
2433
- if (element && element instanceof pixi_js.Sprite && ((_a = element.texture) == null ? void 0 : _a.label) == "EMPTY") {
2434
- return false;
2435
- }
2436
- }
2437
- return true;
2438
- }).forEach((tag) => {
2439
- let element = GameWindowManager.getCanvasElement(tag);
2440
- if (element && element instanceof pixi_js.Container) {
2441
- if (type === "zoom" && (element.scale.x < xLimit || element.scale.y < yLimit)) {
2442
- element.scale.x += xSpeed * ticker.deltaTime;
2443
- element.scale.y += ySpeed * ticker.deltaTime;
2444
- } else if (type === "unzoom" && (element.scale.x > xLimit || element.scale.y > yLimit)) {
2445
- element.scale.x -= xSpeed * ticker.deltaTime;
2446
- element.scale.y -= ySpeed * ticker.deltaTime;
2447
- }
2448
- if (type === "zoom") {
2449
- if (element.scale.x > xLimit) {
2450
- element.scale.x = xLimit;
2451
- }
2452
- if (element.scale.y > yLimit) {
2453
- element.scale.y = yLimit;
2454
- }
2455
- if (element.scale.x >= xLimit && element.scale.y >= yLimit) {
2456
- element.scale.x = xLimit;
2457
- element.scale.y = yLimit;
2458
- GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
2459
- }
2460
- } else if (type === "unzoom") {
2461
- if (element.scale.x < xLimit) {
2462
- element.scale.x = xLimit;
2463
- }
2464
- if (element.scale.y < yLimit) {
2465
- element.scale.y = yLimit;
2466
- }
2467
- if (element.scale.x <= xLimit && element.scale.y <= yLimit) {
2468
- element.scale.x = xLimit;
2469
- element.scale.y = yLimit;
2470
- GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
2471
- }
2472
- }
2473
- if (xSpeed < 1e-5 && ySpeed < 1e-5 && !(args.speedProgression && args.speedProgression.type == "linear" && args.speedProgression.amt != 0)) {
2474
- GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
2475
- }
2476
- }
2477
- });
2478
- if (args.speedProgression)
2479
- updateTickerProgression(args, "speed", args.speedProgression);
2480
- }
2481
- };
2482
- ZoomTicker = __decorateClass([
2483
- tickerDecorator()
2484
- ], ZoomTicker);
2485
2555
 
2486
2556
  // src/labels/TickerTestLabel.ts
2487
2557
  var alien1Tag = "alien1";