@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
@@ -59,6 +59,13 @@ var __async = (__this, __arguments, generator) => {
59
59
 
60
60
  // src/classes/CanvasEvent.ts
61
61
  var CanvasEvent = class {
62
+ constructor() {
63
+ /**
64
+ * Get the id of the event. This variable is used in the system to get the event by id, {@link getEventInstanceById}
65
+ */
66
+ this.id = "event_id_not_set";
67
+ this.id = this.constructor.prototype.id;
68
+ }
62
69
  fn(_event, _element) {
63
70
  throw new Error("[Pixi'VN] The method CanvasEvent.fn() must be overridden");
64
71
  }
@@ -86,7 +93,7 @@ var Label = class {
86
93
  this._choiseIndex = choiseIndex;
87
94
  }
88
95
  /**
89
- * Get the id of the label
96
+ * Get the id of the label. This variable is used in the system to get the label by id, {@link getLabelById}
90
97
  */
91
98
  get id() {
92
99
  return this._id;
@@ -175,17 +182,23 @@ function exportCanvasElement(element) {
175
182
  return element.memory;
176
183
  }
177
184
  function importCanvasElement(memory) {
178
- let element = getCanvasElementInstanceByClassName(memory.className);
185
+ let element = getCanvasElementInstanceById(memory.pixivnId);
179
186
  if (element) {
180
187
  element.memory = memory;
181
188
  } else {
182
- throw new Error("[Pixi'VN] The element " + memory.className + " could not be created");
189
+ throw new Error("[Pixi'VN] The element " + memory.pixivnId + " could not be created");
183
190
  }
184
191
  return element;
185
192
  }
186
193
 
187
194
  // src/classes/canvas/CanvasContainer.ts
195
+ var CANVAS_CONTAINER_ID = "CanvasContainer";
188
196
  var CanvasContainer = class extends pixi_js.Container {
197
+ constructor(options) {
198
+ super(options);
199
+ this.pixivnId = CANVAS_CONTAINER_ID;
200
+ this.pixivnId = this.constructor.prototype.pixivnId;
201
+ }
189
202
  get memory() {
190
203
  let memory = getMemoryContainer(this);
191
204
  this.children.forEach((child) => {
@@ -201,8 +214,12 @@ var CanvasContainer = class extends pixi_js.Container {
201
214
  }
202
215
  };
203
216
  function getMemoryContainer(element) {
217
+ let className = "CanvasContainer";
218
+ if (element.hasOwnProperty("pixivnId")) {
219
+ className = element.pixivnId;
220
+ }
204
221
  return {
205
- className: "CanvasContainer",
222
+ pixivnId: className,
206
223
  elements: [],
207
224
  width: element.width,
208
225
  height: element.height,
@@ -326,43 +343,47 @@ function eventDecorator(name) {
326
343
  if (registeredEvents[name]) {
327
344
  console.info(`[Pixi'VN] Event ${name} already exists, it will be overwritten`);
328
345
  }
346
+ target.prototype.id = name;
329
347
  registeredEvents[name] = target;
330
348
  };
331
349
  }
332
- function getEventTypeByClassName(eventName) {
350
+ function getEventTypeById(eventId) {
333
351
  try {
334
- let eventType = registeredEvents[eventName];
352
+ let eventType = registeredEvents[eventId];
335
353
  if (!eventType) {
336
- console.error(`[Pixi'VN] Event ${eventName} not found`);
354
+ console.error(`[Pixi'VN] Event ${eventId} not found`);
337
355
  return;
338
356
  }
339
357
  new eventType();
340
358
  return eventType;
341
359
  } catch (e) {
342
- console.error(`[Pixi'VN] Error while getting Event ${eventName}`, e);
360
+ console.error(`[Pixi'VN] Error while getting Event ${eventId}`, e);
343
361
  return;
344
362
  }
345
363
  }
346
- function getEventInstanceByClassName(eventName) {
364
+ function getEventInstanceById(eventId) {
347
365
  try {
348
- let eventType = registeredEvents[eventName];
366
+ let eventType = registeredEvents[eventId];
349
367
  if (!eventType) {
350
- console.error(`[Pixi'VN] Event ${eventName} not found`);
368
+ console.error(`[Pixi'VN] Event ${eventId} not found`);
351
369
  return;
352
370
  }
353
371
  let event = new eventType();
354
372
  return event;
355
373
  } catch (e) {
356
- console.error(`[Pixi'VN] Error while getting Event ${eventName}`, e);
374
+ console.error(`[Pixi'VN] Error while getting Event ${eventId}`, e);
357
375
  return;
358
376
  }
359
377
  }
360
378
 
361
379
  // src/classes/canvas/CanvasSprite.ts
380
+ var CANVAS_SPRITE_ID = "CanvasSprite";
362
381
  var CanvasSprite = class _CanvasSprite extends pixi_js.Sprite {
363
- constructor() {
364
- super(...arguments);
382
+ constructor(options) {
383
+ super(options);
384
+ this.pixivnId = CANVAS_SPRITE_ID;
365
385
  this._onEvents = {};
386
+ this.pixivnId = this.constructor.prototype.pixivnId;
366
387
  }
367
388
  get memory() {
368
389
  return getMemorySprite(this);
@@ -403,9 +424,9 @@ var CanvasSprite = class _CanvasSprite extends pixi_js.Sprite {
403
424
  * ```
404
425
  */
405
426
  onEvent(event, eventClass) {
406
- let className = eventClass.name;
407
- let instance = getEventInstanceByClassName(className);
408
- this._onEvents[event] = className;
427
+ let id = eventClass.prototype.id;
428
+ let instance = getEventInstanceById(id);
429
+ this._onEvents[event] = id;
409
430
  if (instance) {
410
431
  super.on(event, () => {
411
432
  instance.fn(event, this);
@@ -434,7 +455,7 @@ var CanvasSprite = class _CanvasSprite extends pixi_js.Sprite {
434
455
  function getMemorySprite(element) {
435
456
  let temp = getMemoryContainer(element);
436
457
  return __spreadProps(__spreadValues({}, temp), {
437
- className: "CanvasSprite",
458
+ pixivnId: element.pixivnId,
438
459
  textureImage: getTextureMemory(element.texture),
439
460
  anchor: { x: element.anchor.x, y: element.anchor.y },
440
461
  roundPixels: element.roundPixels,
@@ -457,8 +478,8 @@ function setMemorySprite(element, memory) {
457
478
  }
458
479
  memory.roundPixels && (element.roundPixels = memory.roundPixels);
459
480
  for (let event in memory.onEvents) {
460
- let className = memory.onEvents[event];
461
- let instance = getEventTypeByClassName(className);
481
+ let id = memory.onEvents[event];
482
+ let instance = getEventTypeById(id);
462
483
  if (instance) {
463
484
  element.onEvent(event, instance);
464
485
  }
@@ -466,9 +487,11 @@ function setMemorySprite(element, memory) {
466
487
  }
467
488
 
468
489
  // src/classes/canvas/CanvasImage.ts
490
+ var CANVAS_IMAGE_ID = "CanvasImage";
469
491
  var CanvasImage = class _CanvasImage extends CanvasSprite {
470
492
  constructor(options, imageLink) {
471
493
  super(options);
494
+ this.pixivnId = CANVAS_IMAGE_ID;
472
495
  this.imageLink = "";
473
496
  if (imageLink) {
474
497
  this.imageLink = imageLink;
@@ -476,12 +499,13 @@ var CanvasImage = class _CanvasImage extends CanvasSprite {
476
499
  }
477
500
  get memory() {
478
501
  return __spreadProps(__spreadValues({}, getMemorySprite(this)), {
479
- className: "CanvasImage",
480
- textureImage: { image: this.imageLink }
502
+ pixivnId: this.pixivnId,
503
+ imageLink: this.imageLink
481
504
  });
482
505
  }
483
506
  set memory(memory) {
484
507
  setMemorySprite(this, memory);
508
+ this.imageLink = memory.imageLink;
485
509
  }
486
510
  static from(source, skipCache) {
487
511
  let sprite = pixi_js.Sprite.from(source, skipCache);
@@ -509,10 +533,13 @@ var CanvasImage = class _CanvasImage extends CanvasSprite {
509
533
  });
510
534
  }
511
535
  };
536
+ var CANVAS_TEXT_ID = "CanvasText";
512
537
  var CanvasText = class extends pixi_js.Text {
513
- constructor() {
514
- super(...arguments);
538
+ constructor(options) {
539
+ super(options);
540
+ this.pixivnId = CANVAS_TEXT_ID;
515
541
  this._onEvents = {};
542
+ this.pixivnId = this.constructor.prototype.pixivnId;
516
543
  }
517
544
  get memory() {
518
545
  return getMemoryText(this);
@@ -553,9 +580,9 @@ var CanvasText = class extends pixi_js.Text {
553
580
  * ```
554
581
  */
555
582
  onEvent(event, eventClass) {
556
- let className = eventClass.name;
557
- let instance = getEventInstanceByClassName(className);
558
- this._onEvents[event] = className;
583
+ let id = eventClass.prototype.id;
584
+ let instance = getEventInstanceById(id);
585
+ this._onEvents[event] = id;
559
586
  if (instance) {
560
587
  super.on(event, () => {
561
588
  instance.fn(event, this);
@@ -578,7 +605,7 @@ var CanvasText = class extends pixi_js.Text {
578
605
  function getMemoryText(element) {
579
606
  let temp = getMemoryContainer(element);
580
607
  return __spreadProps(__spreadValues({}, temp), {
581
- className: "CanvasText",
608
+ pixivnId: element.pixivnId,
582
609
  anchor: { x: element.anchor.x, y: element.anchor.y },
583
610
  text: element.text,
584
611
  resolution: element.resolution,
@@ -601,8 +628,8 @@ function setMemoryText(element, memory) {
601
628
  memory.style && (element.style = memory.style);
602
629
  memory.roundPixels && (element.roundPixels = memory.roundPixels);
603
630
  for (let event in memory.onEvents) {
604
- let className = memory.onEvents[event];
605
- let instance = getEventTypeByClassName(className);
631
+ let id = memory.onEvents[event];
632
+ let instance = getEventTypeById(id);
606
633
  if (instance) {
607
634
  element.onEvent(event, instance);
608
635
  }
@@ -611,32 +638,45 @@ function setMemoryText(element, memory) {
611
638
 
612
639
  // src/decorators/CanvasElementDecorator.ts
613
640
  var registeredCanvasElement = {};
614
- function getCanvasElementInstanceByClassName(canvasName) {
641
+ function getCanvasElementInstanceById(canvasId) {
615
642
  try {
616
- let eventType = registeredCanvasElement[canvasName];
643
+ let eventType = registeredCanvasElement[canvasId];
617
644
  if (!eventType) {
618
- if (canvasName === "CanvasContainer") {
645
+ if (canvasId === CANVAS_CONTAINER_ID) {
619
646
  eventType = CanvasContainer;
620
- } else if (canvasName === "CanvasImage") {
647
+ } else if (canvasId === CANVAS_IMAGE_ID) {
621
648
  eventType = CanvasImage;
622
- } else if (canvasName === "CanvasSprite") {
649
+ } else if (canvasId === CANVAS_SPRITE_ID) {
623
650
  eventType = CanvasSprite;
624
- } else if (canvasName === "CanvasText") {
651
+ } else if (canvasId === CANVAS_TEXT_ID) {
625
652
  eventType = CanvasText;
626
653
  }
627
654
  }
628
655
  if (!eventType) {
629
- console.error(`[Pixi'VN] CanvasElement ${canvasName} not found`);
656
+ console.error(`[Pixi'VN] CanvasElement ${canvasId} not found`);
630
657
  return;
631
658
  }
632
659
  let canvasElement = new eventType();
633
660
  return canvasElement;
634
661
  } catch (e) {
635
- console.error(`[Pixi'VN] Error while getting CanvasElement ${canvasName}`, e);
662
+ console.error(`[Pixi'VN] Error while getting CanvasElement ${canvasId}`, e);
636
663
  return;
637
664
  }
638
665
  }
639
666
 
667
+ // src/decorators/CharacterDecorator.ts
668
+ var registeredCharacters = {};
669
+ function saveCharacter(character) {
670
+ if (Array.isArray(character)) {
671
+ character.forEach((c) => saveCharacter(c));
672
+ return;
673
+ }
674
+ if (registeredCharacters[character.id]) {
675
+ console.info(`[Pixi'VN] Character id ${character.id} already exists, it will be overwritten`);
676
+ }
677
+ registeredCharacters[character.id] = character;
678
+ }
679
+
640
680
  // src/decorators/TickerDecorator.ts
641
681
  var registeredTickers = {};
642
682
  function tickerDecorator(name) {
@@ -647,41 +687,45 @@ function tickerDecorator(name) {
647
687
  if (registeredTickers[name]) {
648
688
  console.info(`[Pixi'VN] Ticker ${name} already exists, it will be overwritten`);
649
689
  }
690
+ target.prototype.id = name;
650
691
  registeredTickers[name] = target;
651
692
  };
652
693
  }
653
- function geTickerInstanceByClassName(tickerName, args, duration, priority) {
694
+ function geTickerInstanceById(tickerId, args, duration, priority) {
654
695
  try {
655
- let ticker = registeredTickers[tickerName];
696
+ let ticker = registeredTickers[tickerId];
656
697
  if (!ticker) {
657
- console.error(`[Pixi'VN] Ticker ${tickerName} not found`);
698
+ console.error(`[Pixi'VN] Ticker ${tickerId} not found`);
658
699
  return;
659
700
  }
660
701
  return new ticker(args, duration, priority);
661
702
  } catch (e) {
662
- console.error(`[Pixi'VN] Error while getting Ticker ${tickerName}`, e);
703
+ console.error(`[Pixi'VN] Error while getting Ticker ${tickerId}`, e);
663
704
  return;
664
705
  }
665
706
  }
666
707
 
708
+ // src/types/CloseType.ts
709
+ var Close = "close";
710
+
667
711
  // src/functions/DialogueUtility.ts
668
712
  function setDialogue(props) {
669
713
  let text = "";
670
- let characterId = void 0;
714
+ let character = void 0;
671
715
  let dialogue;
672
716
  if (typeof props === "string") {
673
717
  text = props;
674
- dialogue = new DialogueBaseModel(text, characterId);
718
+ dialogue = new DialogueBaseModel(text, character);
675
719
  } else if (!(props instanceof DialogueBaseModel)) {
676
720
  text = props.text;
677
721
  if (props.character) {
678
722
  if (typeof props.character === "string") {
679
- characterId = props.character;
723
+ character = props.character;
680
724
  } else {
681
- characterId = props.character.id;
725
+ character = props.character.id;
682
726
  }
683
727
  }
684
- dialogue = new DialogueBaseModel(text, characterId);
728
+ dialogue = new DialogueBaseModel(text, character);
685
729
  } else {
686
730
  dialogue = props;
687
731
  }
@@ -691,8 +735,33 @@ function setDialogue(props) {
691
735
  function getDialogue() {
692
736
  return GameStorageManager.getVariable(GameStorageManager.keysSystem.CURRENT_DIALOGUE_MEMORY_KEY);
693
737
  }
694
- function clearDialogue() {
695
- GameStorageManager.setVariable(GameStorageManager.keysSystem.CURRENT_DIALOGUE_MEMORY_KEY, void 0);
738
+ function getChoiceMenuOptions() {
739
+ let d = GameStorageManager.getVariable(GameStorageManager.keysSystem.CURRENT_MENU_OPTIONS_MEMORY_KEY);
740
+ if (d) {
741
+ let options = [];
742
+ d.forEach((option, index) => {
743
+ if (option.type === Close) {
744
+ let itemLabel = newCloseLabel(index);
745
+ options.push({
746
+ text: option.text,
747
+ label: itemLabel,
748
+ type: Close,
749
+ closeCurrentLabel: option.closeCurrentLabel,
750
+ props: {}
751
+ });
752
+ return;
753
+ }
754
+ let label = getLabelById(option.label);
755
+ if (label) {
756
+ let itemLabel = new Label(label.id, label.steps, label.onStepRun, index);
757
+ options.push(__spreadProps(__spreadValues({}, option), {
758
+ label: itemLabel
759
+ }));
760
+ }
761
+ });
762
+ return options;
763
+ }
764
+ return void 0;
696
765
  }
697
766
 
698
767
  // src/classes/ticker/TickerBase.ts
@@ -703,9 +772,14 @@ var TickerBase = class {
703
772
  * @param priority The priority of the ticker. @default UPDATE_PRIORITY.NORMAL
704
773
  */
705
774
  constructor(args, duration, priority) {
775
+ /**
776
+ * Get the id of the ticker. This variable is used in the system to get the ticker by id, {@link geTickerInstanceById}
777
+ */
778
+ this.id = "ticker_id_not_set";
706
779
  this.args = args;
707
780
  this.duration = duration;
708
781
  this.priority = priority;
782
+ this.id = this.constructor.prototype.id;
709
783
  }
710
784
  /**
711
785
  * The method that will be called every frame.
@@ -928,8 +1002,8 @@ var ZoomTicker = class extends TickerBase {
928
1002
  tagToRemoveAfter2 = [tagToRemoveAfter2];
929
1003
  }
930
1004
  let type = args.type || "zoom";
931
- let xLimit = Infinity;
932
- let yLimit = Infinity;
1005
+ let xLimit = type === "zoom" ? Infinity : 0;
1006
+ let yLimit = type === "zoom" ? Infinity : 0;
933
1007
  if (args.limit) {
934
1008
  if (typeof args.limit === "number") {
935
1009
  xLimit = args.limit;
@@ -968,7 +1042,7 @@ var ZoomTicker = class extends TickerBase {
968
1042
  if (element.scale.x >= xLimit && element.scale.y >= yLimit) {
969
1043
  element.scale.x = xLimit;
970
1044
  element.scale.y = yLimit;
971
- GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
1045
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
972
1046
  }
973
1047
  } else if (type === "unzoom") {
974
1048
  if (element.scale.x < xLimit) {
@@ -980,17 +1054,20 @@ var ZoomTicker = class extends TickerBase {
980
1054
  if (element.scale.x <= xLimit && element.scale.y <= yLimit) {
981
1055
  element.scale.x = xLimit;
982
1056
  element.scale.y = yLimit;
983
- GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
1057
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
984
1058
  }
985
1059
  }
986
1060
  if (xSpeed < 1e-5 && ySpeed < 1e-5 && !(args.speedProgression && args.speedProgression.type == "linear" && args.speedProgression.amt != 0)) {
987
- GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
1061
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
988
1062
  }
989
1063
  }
990
1064
  });
991
1065
  if (args.speedProgression)
992
1066
  updateTickerProgression(args, "speed", args.speedProgression);
993
1067
  }
1068
+ onEndOfTicker(tag, tickerId, _element, tagToRemoveAfter2) {
1069
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
1070
+ }
994
1071
  };
995
1072
  ZoomTicker = __decorateClass([
996
1073
  tickerDecorator()
@@ -1460,18 +1537,18 @@ var _GameWindowManager = class _GameWindowManager {
1460
1537
  * ```
1461
1538
  */
1462
1539
  static addTicker(canvasElementTag, ticker) {
1463
- let tickerName = ticker.constructor.name;
1540
+ let tickerId = ticker.id;
1464
1541
  if (typeof canvasElementTag === "string") {
1465
1542
  canvasElementTag = [canvasElementTag];
1466
1543
  }
1467
- if (!geTickerInstanceByClassName(tickerName, ticker.args, ticker.duration, ticker.priority)) {
1468
- console.error(`[Pixi'VN] Ticker ${tickerName} not found`);
1544
+ if (!geTickerInstanceById(tickerId, ticker.args, ticker.duration, ticker.priority)) {
1545
+ console.error(`[Pixi'VN] Ticker ${tickerId} not found`);
1469
1546
  return;
1470
1547
  }
1471
1548
  let tickerHistory = {
1472
1549
  fn: () => {
1473
1550
  },
1474
- className: tickerName,
1551
+ id: tickerId,
1475
1552
  args: createExportableElement(ticker.args),
1476
1553
  canvasElementTags: canvasElementTag,
1477
1554
  priority: ticker.priority,
@@ -1487,11 +1564,11 @@ var _GameWindowManager = class _GameWindowManager {
1487
1564
  _GameWindowManager.removeTicker(id);
1488
1565
  }
1489
1566
  }, ticker.duration * 1e3);
1490
- _GameWindowManager.addTickerTimeoutInfo(canvasElementTag, tickerName, timeout.toString(), true);
1567
+ _GameWindowManager.addTickerTimeoutInfo(canvasElementTag, tickerId, timeout.toString(), true);
1491
1568
  }
1492
1569
  }
1493
1570
  static pushTicker(id, tickerData, ticker) {
1494
- _GameWindowManager.removeAssociationBetweenTickerCanvasElement(tickerData.canvasElementTags, tickerData);
1571
+ _GameWindowManager.removeAssociationBetweenTickerCanvasElement(tickerData.canvasElementTags, ticker);
1495
1572
  _GameWindowManager._currentTickers[id] = tickerData;
1496
1573
  tickerData.fn = (t) => {
1497
1574
  let data = _GameWindowManager._currentTickers[id];
@@ -1532,9 +1609,9 @@ var _GameWindowManager = class _GameWindowManager {
1532
1609
  if (step.hasOwnProperty("type") && step.type === "pause") {
1533
1610
  return step;
1534
1611
  }
1535
- let tickerName = step.constructor.name;
1612
+ let tickerId = step.id;
1536
1613
  return {
1537
- ticker: tickerName,
1614
+ ticker: tickerId,
1538
1615
  args: createExportableElement(step.args),
1539
1616
  duration: step.duration
1540
1617
  };
@@ -1572,16 +1649,16 @@ var _GameWindowManager = class _GameWindowManager {
1572
1649
  _GameWindowManager.addTickerTimeoutInfo(tag, "steps", timeout.toString(), false);
1573
1650
  return;
1574
1651
  }
1575
- let ticker = geTickerInstanceByClassName(step.ticker, step.args, step.duration, step.priority);
1652
+ let ticker = geTickerInstanceById(step.ticker, step.args, step.duration, step.priority);
1576
1653
  if (!ticker) {
1577
1654
  console.error(`[Pixi'VN] Ticker ${step.ticker} not found`);
1578
1655
  return;
1579
1656
  }
1580
- let tickerName = ticker.constructor.name;
1657
+ let tickerName = ticker.id;
1581
1658
  let tickerHistory = {
1582
1659
  fn: () => {
1583
1660
  },
1584
- className: tickerName,
1661
+ id: tickerName,
1585
1662
  args: createExportableElement(ticker.args),
1586
1663
  canvasElementTags: [tag],
1587
1664
  priority: ticker.priority,
@@ -1638,26 +1715,26 @@ var _GameWindowManager = class _GameWindowManager {
1638
1715
  * ```
1639
1716
  */
1640
1717
  static removeAssociationBetweenTickerCanvasElement(tags, ticker) {
1641
- let tickerName;
1718
+ let tickerId;
1642
1719
  if (typeof ticker === "string") {
1643
- tickerName = ticker;
1720
+ tickerId = ticker;
1644
1721
  } else if (ticker instanceof TickerBase) {
1645
- tickerName = ticker.constructor.name;
1722
+ tickerId = ticker.id;
1646
1723
  } else {
1647
- tickerName = ticker.name;
1724
+ tickerId = ticker.prototype.id;
1648
1725
  }
1649
1726
  if (typeof tags === "string") {
1650
1727
  tags = [tags];
1651
1728
  }
1652
1729
  for (let id in _GameWindowManager._currentTickers) {
1653
1730
  let ticker2 = _GameWindowManager._currentTickers[id];
1654
- if (ticker2.className === tickerName) {
1731
+ if (ticker2.id === tickerId) {
1655
1732
  _GameWindowManager._currentTickers[id].canvasElementTags = ticker2.canvasElementTags.filter((e) => !tags.includes(e));
1656
1733
  }
1657
1734
  }
1658
1735
  for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1659
1736
  let TickerTimeout = _GameWindowManager._currentTickersTimeouts[timeout];
1660
- if (TickerTimeout.ticker === tickerName && TickerTimeout.canBeDeletedBeforeEnd) {
1737
+ if (TickerTimeout.ticker === tickerId && TickerTimeout.canBeDeletedBeforeEnd) {
1661
1738
  _GameWindowManager._currentTickersTimeouts[timeout].tags = TickerTimeout.tags.filter((t) => !tags.includes(t));
1662
1739
  }
1663
1740
  }
@@ -1843,11 +1920,11 @@ var _GameWindowManager = class _GameWindowManager {
1843
1920
  for (let id in currentTickers) {
1844
1921
  let t = currentTickers[id];
1845
1922
  let tags = t.canvasElementTags;
1846
- let ticker = geTickerInstanceByClassName(t.className, t.args, t.duration, t.priority);
1923
+ let ticker = geTickerInstanceById(t.id, t.args, t.duration, t.priority);
1847
1924
  if (ticker) {
1848
1925
  _GameWindowManager.addTicker(tags, ticker);
1849
1926
  } else {
1850
- console.error(`[Pixi'VN] Ticker ${t.className} not found`);
1927
+ console.error(`[Pixi'VN] Ticker ${t.id} not found`);
1851
1928
  }
1852
1929
  }
1853
1930
  }
@@ -2048,6 +2125,13 @@ var _GameStepManager = class _GameStepManager {
2048
2125
  _GameStepManager._openedLabels = _GameStepManager.originalStepData.openedLabels;
2049
2126
  }
2050
2127
  /* Run Methods */
2128
+ static get canGoNext() {
2129
+ let options = getChoiceMenuOptions();
2130
+ if (options && options.length > 0) {
2131
+ return false;
2132
+ }
2133
+ return true;
2134
+ }
2051
2135
  /**
2052
2136
  * Execute the next step and add it to the history.
2053
2137
  * @param props The props to pass to the step.
@@ -2057,7 +2141,7 @@ var _GameStepManager = class _GameStepManager {
2057
2141
  * ```typescript
2058
2142
  * function nextOnClick() {
2059
2143
  * setLoading(true)
2060
- * GameStepManager.runNextStep(yourParams)
2144
+ * GameStepManager.goNext(yourParams)
2061
2145
  * .then((result) => {
2062
2146
  * setUpdate((p) => p + 1)
2063
2147
  * setLoading(false)
@@ -2072,8 +2156,12 @@ var _GameStepManager = class _GameStepManager {
2072
2156
  * }
2073
2157
  * ```
2074
2158
  */
2075
- static runNextStep(props, choiseMade) {
2159
+ static goNext(props, choiseMade) {
2076
2160
  return __async(this, null, function* () {
2161
+ if (!_GameStepManager.canGoNext) {
2162
+ console.warn("[Pixi'VN] The player must make a choice");
2163
+ return;
2164
+ }
2077
2165
  _GameStepManager.increaseCurrentStepIndex();
2078
2166
  return yield _GameStepManager.runCurrentStep(props, choiseMade);
2079
2167
  });
@@ -2104,7 +2192,7 @@ var _GameStepManager = class _GameStepManager {
2104
2192
  return result;
2105
2193
  } else if (_GameStepManager.openedLabels.length > 1) {
2106
2194
  _GameStepManager.closeCurrentLabel();
2107
- return yield _GameStepManager.runNextStep(props, choiseMade);
2195
+ return yield _GameStepManager.goNext(props, choiseMade);
2108
2196
  } else {
2109
2197
  _GameStepManager.restorLastLabelList();
2110
2198
  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");
@@ -2252,7 +2340,7 @@ var _GameStepManager = class _GameStepManager {
2252
2340
  if (choice.closeCurrentLabel) {
2253
2341
  _GameStepManager.closeCurrentLabel();
2254
2342
  }
2255
- return _GameStepManager.runNextStep(props, choiseMade);
2343
+ return _GameStepManager.goNext(props, choiseMade);
2256
2344
  });
2257
2345
  }
2258
2346
  /* After Update Methods */
@@ -2447,6 +2535,120 @@ _GameStepManager._openedLabels = [];
2447
2535
  _GameStepManager._originalStepData = void 0;
2448
2536
  var GameStepManager = _GameStepManager;
2449
2537
 
2538
+ // src/classes/StoredClassModel.ts
2539
+ var StoredClassModel = class {
2540
+ /**
2541
+ * @param categoryId The id of the category. For example if you are storing a character class, you can use "characters" as categoryId. so all instances of the character class will be stored in the "characters" category.
2542
+ * @param id The id of instance of the class. This id must be unique for the category.
2543
+ */
2544
+ constructor(categoryId, id) {
2545
+ this.categoryId = categoryId;
2546
+ this._id = id;
2547
+ }
2548
+ /**
2549
+ * Is id of the stored class. is unique for this class.
2550
+ */
2551
+ get id() {
2552
+ return this._id;
2553
+ }
2554
+ /**
2555
+ * Update a property in the storage.
2556
+ * @param propertyName The name of the property to set.
2557
+ * @param value The value to set. If is undefined, the property will be removed from the storage.
2558
+ */
2559
+ setStorageProperty(propertyName, value) {
2560
+ let storage = GameStorageManager.getVariable(this.categoryId);
2561
+ if (!storage) {
2562
+ storage = {};
2563
+ }
2564
+ if (!storage.hasOwnProperty(this.id)) {
2565
+ storage[this.id] = {};
2566
+ }
2567
+ if (value === void 0 || value === null) {
2568
+ if (storage[this.id].hasOwnProperty(propertyName)) {
2569
+ delete storage[this.id][propertyName];
2570
+ }
2571
+ } else {
2572
+ storage[this.id] = __spreadProps(__spreadValues({}, storage[this.id]), { [propertyName]: value });
2573
+ }
2574
+ if (Object.keys(storage[this.id]).length === 0) {
2575
+ delete storage[this.id];
2576
+ }
2577
+ GameStorageManager.setVariable(this.categoryId, storage);
2578
+ }
2579
+ /**
2580
+ * Get a property from the storage.
2581
+ * @param propertyName The name of the property to get.
2582
+ * @returns The value of the property. If the property is not found, returns undefined.
2583
+ */
2584
+ getStorageProperty(propertyName) {
2585
+ let storage = GameStorageManager.getVariable(this.categoryId);
2586
+ if (storage && storage.hasOwnProperty(this.id) && storage[this.id].hasOwnProperty(propertyName)) {
2587
+ return storage[this.id][propertyName];
2588
+ }
2589
+ return void 0;
2590
+ }
2591
+ };
2592
+
2593
+ // src/classes/CharacterBaseModel.ts
2594
+ var CharacterBaseModel2 = class extends StoredClassModel {
2595
+ /**
2596
+ * @param id The id of the character.
2597
+ * @param props The properties of the character.
2598
+ */
2599
+ constructor(id, props) {
2600
+ super(GameStorageManager.keysSystem.CHARACTER_CATEGORY_KEY, id);
2601
+ this.defaultName = "";
2602
+ this.defaultName = props.name;
2603
+ this.defaultSurname = props.surname;
2604
+ this.defaultAge = props.age;
2605
+ this._icon = props.icon;
2606
+ this._color = props.color;
2607
+ }
2608
+ /***
2609
+ * The name of the character.
2610
+ * If you set undefined, it will return the default name.
2611
+ */
2612
+ get name() {
2613
+ return this.getStorageProperty("name") || this.defaultName;
2614
+ }
2615
+ set name(value) {
2616
+ this.setStorageProperty("name", value);
2617
+ }
2618
+ /**
2619
+ * The surname of the character.
2620
+ * If you set undefined, it will return the default surname.
2621
+ */
2622
+ get surname() {
2623
+ return this.getStorageProperty("surname") || this.defaultSurname;
2624
+ }
2625
+ set surname(value) {
2626
+ this.setStorageProperty("surname", value);
2627
+ }
2628
+ /**
2629
+ * The age of the character.
2630
+ * If you set undefined, it will return the default age.
2631
+ */
2632
+ get age() {
2633
+ return this.getStorageProperty("age") || this.defaultAge;
2634
+ }
2635
+ set age(value) {
2636
+ this.setStorageProperty("age", value);
2637
+ }
2638
+ /**
2639
+ * The icon of the character.
2640
+ */
2641
+ get icon() {
2642
+ return this._icon;
2643
+ }
2644
+ /**
2645
+ * The color of the character.
2646
+ */
2647
+ get color() {
2648
+ return this._color;
2649
+ }
2650
+ };
2651
+
2450
2652
  // src/classes/DialogueBaseModel.ts
2451
2653
  var DialogueBaseModel = class {
2452
2654
  /**
@@ -2466,15 +2668,15 @@ var DialogueBaseModel = class {
2466
2668
  if (typeof text === "string") {
2467
2669
  this.text = text;
2468
2670
  if (typeof character === "string") {
2469
- this.characterId = character;
2671
+ this.character = character;
2470
2672
  } else {
2471
- this.characterId = character == null ? void 0 : character.id;
2673
+ this.character = character == null ? void 0 : character.id;
2472
2674
  }
2473
2675
  this.oltherParams = oltherParams;
2474
2676
  } else {
2475
2677
  this.text = text.text;
2476
- if (text.characterId) {
2477
- this.characterId = text.characterId;
2678
+ if (text.character) {
2679
+ this.character = text.character;
2478
2680
  }
2479
2681
  this.oltherParams = text.oltherParams || {};
2480
2682
  }
@@ -2487,14 +2689,25 @@ var DialogueBaseModel = class {
2487
2689
  export() {
2488
2690
  return {
2489
2691
  text: this.text,
2490
- characterId: this.characterId,
2692
+ character: this.character,
2491
2693
  oltherParams: this.oltherParams
2492
2694
  };
2493
2695
  }
2494
2696
  };
2495
2697
 
2496
- // src/labels/EventsTestLabel.ts
2497
- exports.EventTest = class EventTest extends CanvasEvent {
2698
+ // src/labels/TestConstant.ts
2699
+ var juliette = new CharacterBaseModel2("___pixivn_juliette___", {
2700
+ name: "Juliette",
2701
+ age: 25,
2702
+ icon: "https://firebasestorage.googleapis.com/v0/b/pixi-vn.appspot.com/o/public%2Fcharacters%2Fjuliette-square.webp?alt=media&token=5856ae7b-d99e-4563-86ec-cbc48cc9c6b4",
2703
+ color: "#ac0086"
2704
+ });
2705
+ saveCharacter(juliette);
2706
+ var bunnyImage = "https://pixijs.com/assets/bunny.png";
2707
+ var bunnyName = `Bunny`;
2708
+
2709
+ // src/labels/CanvasEventsTestLabel.ts
2710
+ exports.EventTest1 = class EventTest1 extends CanvasEvent {
2498
2711
  fn(event, sprite) {
2499
2712
  if (event === "pointerdown") {
2500
2713
  sprite.scale.x *= 1.25;
@@ -2502,9 +2715,9 @@ exports.EventTest = class EventTest extends CanvasEvent {
2502
2715
  }
2503
2716
  }
2504
2717
  };
2505
- exports.EventTest = __decorateClass([
2506
- eventDecorator()
2507
- ], exports.EventTest);
2718
+ exports.EventTest1 = __decorateClass([
2719
+ eventDecorator("___pixi_vn_canvas_events_test_event1___")
2720
+ ], exports.EventTest1);
2508
2721
  exports.EventTest2 = class EventTest2 extends CanvasEvent {
2509
2722
  constructor() {
2510
2723
  super(...arguments);
@@ -2540,28 +2753,37 @@ exports.EventTest2 = class EventTest2 extends CanvasEvent {
2540
2753
  }
2541
2754
  };
2542
2755
  exports.EventTest2 = __decorateClass([
2543
- eventDecorator()
2756
+ eventDecorator("___pixi_vn_canvas_events_test_event2___")
2544
2757
  ], exports.EventTest2);
2545
- var eventsTestLabel = newLabel(
2546
- "EventsTestLabel",
2758
+ var CANVAS_EVENTS_TEST_LABEL = "___pixi_vn_canvas_events_test___";
2759
+ var canvasEventsTestLabel = newLabel(
2760
+ CANVAS_EVENTS_TEST_LABEL,
2547
2761
  [
2762
+ () => setDialogue({
2763
+ character: juliette,
2764
+ text: "This is the test of clickable elements in a canvas."
2765
+ }),
2548
2766
  () => __async(void 0, null, function* () {
2549
- const texture = yield pixi_js.Assets.load("https://pixijs.com/assets/bunny.png");
2767
+ setDialogue({
2768
+ character: juliette,
2769
+ text: `This is my friend, ${bunnyName}. It's small now, but if you try to click on it it will get bigger and bigger. (This example is from the official [PixiJS website](https://pixijs.com/8.x/examples/events/click).)`
2770
+ });
2771
+ const texture = yield pixi_js.Assets.load(bunnyImage);
2550
2772
  const sprite = CanvasSprite.from(texture);
2551
2773
  sprite.anchor.set(0.5);
2552
2774
  sprite.x = GameWindowManager.screen.width / 2;
2553
2775
  sprite.y = GameWindowManager.screen.height / 2;
2554
2776
  sprite.eventMode = "static";
2555
2777
  sprite.cursor = "pointer";
2556
- sprite.onEvent("pointerdown", exports.EventTest);
2778
+ sprite.onEvent("pointerdown", exports.EventTest1);
2557
2779
  GameWindowManager.addCanvasElement("bunny", sprite);
2558
- setDialogue("This is the test of clickable elements in a canvas. To make it possible to save the added events in a canvas element, use CanvasEvents.");
2559
2780
  }),
2560
- () => setDialogue("To make the events in the canvas work. by default all elements in the gliaphic html interface are: pointerEvents = 'none'. to enable clicking on html elements, you will need to add the css pointerEvents = 'auto'"),
2561
- () => setDialogue("For performance reasons it is better to add the buttons in the html interface and not in the canvas."),
2562
2781
  () => __async(void 0, null, function* () {
2563
- clearDialogue();
2564
2782
  GameWindowManager.clear();
2783
+ setDialogue({
2784
+ character: juliette,
2785
+ text: `This is the test of buttons in a canvas. (This example is from the official [PixiJS website](https://pixijs.com/8.x/examples/events/interactivity).)`
2786
+ });
2565
2787
  yield pixi_js.Assets.load([
2566
2788
  "https://pixijs.com/assets/bg_button.jpg",
2567
2789
  "https://pixijs.com/assets/button.png",
@@ -2595,6 +2817,6 @@ var eventsTestLabel = newLabel(
2595
2817
  ]
2596
2818
  );
2597
2819
 
2598
- exports.eventsTestLabel = eventsTestLabel;
2820
+ exports.canvasEventsTestLabel = canvasEventsTestLabel;
2599
2821
  //# sourceMappingURL=out.js.map
2600
- //# sourceMappingURL=EventsTestLabel.js.map
2822
+ //# sourceMappingURL=CanvasEventsTestLabel.js.map