@drincs/pixi-vn 0.6.0 → 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 (415) hide show
  1. package/dist/{TickerBase-RQDWNI4K.d.ts → TickerBase-3rLpDpmb.d.ts} +27 -13
  2. package/dist/{TickerBase-B5CQCJs8.d.mts → TickerBase-DKYzbzro.d.mts} +27 -13
  3. package/dist/classes/CanvasEvent.d.mts +7 -1
  4. package/dist/classes/CanvasEvent.d.ts +7 -1
  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.d.mts +2 -26
  10. package/dist/classes/CharacterBaseModel.d.ts +2 -26
  11. package/dist/classes/CharacterBaseModel.js +544 -241
  12. package/dist/classes/CharacterBaseModel.js.map +1 -1
  13. package/dist/classes/CharacterBaseModel.mjs +540 -241
  14. package/dist/classes/CharacterBaseModel.mjs.map +1 -1
  15. package/dist/classes/ChoiceMenuOption.d.mts +27 -17
  16. package/dist/classes/ChoiceMenuOption.d.ts +27 -17
  17. package/dist/classes/ChoiceMenuOption.js +548 -243
  18. package/dist/classes/ChoiceMenuOption.js.map +1 -1
  19. package/dist/classes/ChoiceMenuOption.mjs +544 -243
  20. package/dist/classes/ChoiceMenuOption.mjs.map +1 -1
  21. package/dist/classes/CloseLabel.d.mts +1 -1
  22. package/dist/classes/CloseLabel.d.ts +1 -1
  23. package/dist/classes/CloseLabel.js +1 -1
  24. package/dist/classes/CloseLabel.js.map +1 -1
  25. package/dist/classes/CloseLabel.mjs +1 -1
  26. package/dist/classes/CloseLabel.mjs.map +1 -1
  27. package/dist/classes/DialogueBaseModel.d.mts +3 -2
  28. package/dist/classes/DialogueBaseModel.d.ts +3 -2
  29. package/dist/classes/DialogueBaseModel.js +5 -5
  30. package/dist/classes/DialogueBaseModel.js.map +1 -1
  31. package/dist/classes/DialogueBaseModel.mjs +5 -5
  32. package/dist/classes/DialogueBaseModel.mjs.map +1 -1
  33. package/dist/classes/Label.d.mts +1 -1
  34. package/dist/classes/Label.d.ts +1 -1
  35. package/dist/classes/Label.js +1 -1
  36. package/dist/classes/Label.js.map +1 -1
  37. package/dist/classes/Label.mjs +1 -1
  38. package/dist/classes/Label.mjs.map +1 -1
  39. package/dist/classes/StoredClassModel.d.mts +2 -2
  40. package/dist/classes/StoredClassModel.d.ts +2 -2
  41. package/dist/classes/StoredClassModel.js +544 -241
  42. package/dist/classes/StoredClassModel.js.map +1 -1
  43. package/dist/classes/StoredClassModel.mjs +540 -241
  44. package/dist/classes/StoredClassModel.mjs.map +1 -1
  45. package/dist/classes/canvas/CanvasBase.d.mts +5 -1
  46. package/dist/classes/canvas/CanvasBase.d.ts +5 -1
  47. package/dist/classes/canvas/CanvasBase.js +7 -0
  48. package/dist/classes/canvas/CanvasBase.js.map +1 -1
  49. package/dist/classes/canvas/CanvasBase.mjs +7 -0
  50. package/dist/classes/canvas/CanvasBase.mjs.map +1 -1
  51. package/dist/classes/canvas/CanvasContainer.d.mts +4 -1
  52. package/dist/classes/canvas/CanvasContainer.d.ts +4 -1
  53. package/dist/classes/canvas/CanvasContainer.js +57 -37
  54. package/dist/classes/canvas/CanvasContainer.js.map +1 -1
  55. package/dist/classes/canvas/CanvasContainer.mjs +57 -38
  56. package/dist/classes/canvas/CanvasContainer.mjs.map +1 -1
  57. package/dist/classes/canvas/CanvasImage.d.mts +4 -2
  58. package/dist/classes/canvas/CanvasImage.d.ts +4 -2
  59. package/dist/classes/canvas/CanvasImage.js +33 -20
  60. package/dist/classes/canvas/CanvasImage.js.map +1 -1
  61. package/dist/classes/canvas/CanvasImage.mjs +30 -20
  62. package/dist/classes/canvas/CanvasImage.mjs.map +1 -1
  63. package/dist/classes/canvas/CanvasSprite.d.mts +6 -3
  64. package/dist/classes/canvas/CanvasSprite.d.ts +6 -3
  65. package/dist/classes/canvas/CanvasSprite.js +25 -17
  66. package/dist/classes/canvas/CanvasSprite.js.map +1 -1
  67. package/dist/classes/canvas/CanvasSprite.mjs +25 -18
  68. package/dist/classes/canvas/CanvasSprite.mjs.map +1 -1
  69. package/dist/classes/canvas/CanvasText.d.mts +6 -3
  70. package/dist/classes/canvas/CanvasText.d.ts +6 -3
  71. package/dist/classes/canvas/CanvasText.js +25 -17
  72. package/dist/classes/canvas/CanvasText.js.map +1 -1
  73. package/dist/classes/canvas/CanvasText.mjs +25 -18
  74. package/dist/classes/canvas/CanvasText.mjs.map +1 -1
  75. package/dist/classes/canvas/index.js +184 -158
  76. package/dist/classes/canvas/index.js.map +1 -1
  77. package/dist/classes/canvas/index.mjs +184 -158
  78. package/dist/classes/canvas/index.mjs.map +1 -1
  79. package/dist/classes/index.d.mts +6 -4
  80. package/dist/classes/index.d.ts +6 -4
  81. package/dist/classes/index.js +560 -248
  82. package/dist/classes/index.js.map +1 -1
  83. package/dist/classes/index.mjs +556 -248
  84. package/dist/classes/index.mjs.map +1 -1
  85. package/dist/classes/ticker/FadeAlphaTicker.d.mts +27 -0
  86. package/dist/classes/ticker/FadeAlphaTicker.d.ts +27 -0
  87. package/dist/classes/ticker/{TickerFadeAlpha.js → FadeAlphaTicker.js} +549 -248
  88. package/dist/classes/ticker/FadeAlphaTicker.js.map +1 -0
  89. package/dist/classes/ticker/{TickerRotate.mjs → FadeAlphaTicker.mjs} +571 -274
  90. package/dist/classes/ticker/FadeAlphaTicker.mjs.map +1 -0
  91. package/dist/classes/ticker/MoveTicker.d.mts +25 -0
  92. package/dist/classes/ticker/MoveTicker.d.ts +25 -0
  93. package/dist/classes/ticker/{TickerMove.js → MoveTicker.js} +544 -241
  94. package/dist/classes/ticker/MoveTicker.js.map +1 -0
  95. package/dist/classes/ticker/{TickerFadeAlpha.mjs → MoveTicker.mjs} +568 -269
  96. package/dist/classes/ticker/MoveTicker.mjs.map +1 -0
  97. package/dist/classes/ticker/RotateTicker.d.mts +27 -0
  98. package/dist/classes/ticker/RotateTicker.d.ts +27 -0
  99. package/dist/classes/ticker/{TickerRotate.js → RotateTicker.js} +544 -241
  100. package/dist/classes/ticker/RotateTicker.js.map +1 -0
  101. package/dist/classes/ticker/{TickerMove.mjs → RotateTicker.mjs} +558 -259
  102. package/dist/classes/ticker/RotateTicker.mjs.map +1 -0
  103. package/dist/classes/ticker/TickerBase.d.mts +2 -1
  104. package/dist/classes/ticker/TickerBase.d.ts +2 -1
  105. package/dist/classes/ticker/TickerBase.js +12 -6
  106. package/dist/classes/ticker/TickerBase.js.map +1 -1
  107. package/dist/classes/ticker/TickerBase.mjs +12 -6
  108. package/dist/classes/ticker/TickerBase.mjs.map +1 -1
  109. package/dist/classes/ticker/ZoomTicker.d.mts +31 -0
  110. package/dist/classes/ticker/ZoomTicker.d.ts +31 -0
  111. package/dist/classes/ticker/ZoomTicker.js +1647 -0
  112. package/dist/classes/ticker/ZoomTicker.js.map +1 -0
  113. package/dist/classes/ticker/ZoomTicker.mjs +1639 -0
  114. package/dist/classes/ticker/ZoomTicker.mjs.map +1 -0
  115. package/dist/classes/ticker/index.d.mts +11 -8
  116. package/dist/classes/ticker/index.d.ts +11 -8
  117. package/dist/classes/ticker/index.js +567 -266
  118. package/dist/classes/ticker/index.js.map +1 -1
  119. package/dist/classes/ticker/index.mjs +564 -267
  120. package/dist/classes/ticker/index.mjs.map +1 -1
  121. package/dist/constants.d.mts +12 -2
  122. package/dist/constants.d.ts +12 -2
  123. package/dist/constants.js +10 -1
  124. package/dist/constants.js.map +1 -1
  125. package/dist/constants.mjs +9 -2
  126. package/dist/constants.mjs.map +1 -1
  127. package/dist/decorators/CanvasElementDecorator.d.mts +3 -3
  128. package/dist/decorators/CanvasElementDecorator.d.ts +3 -3
  129. package/dist/decorators/CanvasElementDecorator.js +63 -43
  130. package/dist/decorators/CanvasElementDecorator.js.map +1 -1
  131. package/dist/decorators/CanvasElementDecorator.mjs +62 -42
  132. package/dist/decorators/CanvasElementDecorator.mjs.map +1 -1
  133. package/dist/decorators/CharacterDecorator.d.mts +1 -0
  134. package/dist/decorators/CharacterDecorator.d.ts +1 -0
  135. package/dist/decorators/CharacterDecorator.js +1 -1
  136. package/dist/decorators/CharacterDecorator.js.map +1 -1
  137. package/dist/decorators/CharacterDecorator.mjs +1 -1
  138. package/dist/decorators/CharacterDecorator.mjs.map +1 -1
  139. package/dist/decorators/EventDecorator.d.mts +7 -7
  140. package/dist/decorators/EventDecorator.d.ts +7 -7
  141. package/dist/decorators/EventDecorator.js +12 -11
  142. package/dist/decorators/EventDecorator.js.map +1 -1
  143. package/dist/decorators/EventDecorator.mjs +11 -10
  144. package/dist/decorators/EventDecorator.mjs.map +1 -1
  145. package/dist/decorators/LabelDecorator.d.mts +4 -3
  146. package/dist/decorators/LabelDecorator.d.ts +4 -3
  147. package/dist/decorators/LabelDecorator.js +546 -243
  148. package/dist/decorators/LabelDecorator.js.map +1 -1
  149. package/dist/decorators/LabelDecorator.mjs +542 -243
  150. package/dist/decorators/LabelDecorator.mjs.map +1 -1
  151. package/dist/decorators/TickerDecorator.d.mts +9 -6
  152. package/dist/decorators/TickerDecorator.d.ts +9 -6
  153. package/dist/decorators/TickerDecorator.js +7 -6
  154. package/dist/decorators/TickerDecorator.js.map +1 -1
  155. package/dist/decorators/TickerDecorator.mjs +7 -6
  156. package/dist/decorators/TickerDecorator.mjs.map +1 -1
  157. package/dist/decorators/index.d.mts +4 -3
  158. package/dist/decorators/index.d.ts +4 -3
  159. package/dist/decorators/index.js +550 -245
  160. package/dist/decorators/index.js.map +1 -1
  161. package/dist/decorators/index.mjs +546 -245
  162. package/dist/decorators/index.mjs.map +1 -1
  163. package/dist/functions/CanvasUtility.js +56 -37
  164. package/dist/functions/CanvasUtility.js.map +1 -1
  165. package/dist/functions/CanvasUtility.mjs +56 -37
  166. package/dist/functions/CanvasUtility.mjs.map +1 -1
  167. package/dist/functions/DialogueUtility.d.mts +7 -5
  168. package/dist/functions/DialogueUtility.d.ts +7 -5
  169. package/dist/functions/DialogueUtility.js +729 -397
  170. package/dist/functions/DialogueUtility.js.map +1 -1
  171. package/dist/functions/DialogueUtility.mjs +729 -397
  172. package/dist/functions/DialogueUtility.mjs.map +1 -1
  173. package/dist/functions/FlagsUtility.js +544 -241
  174. package/dist/functions/FlagsUtility.js.map +1 -1
  175. package/dist/functions/FlagsUtility.mjs +540 -241
  176. package/dist/functions/FlagsUtility.mjs.map +1 -1
  177. package/dist/functions/GameUtility.js +544 -241
  178. package/dist/functions/GameUtility.js.map +1 -1
  179. package/dist/functions/GameUtility.mjs +540 -241
  180. package/dist/functions/GameUtility.mjs.map +1 -1
  181. package/dist/functions/ImageUtility.d.mts +81 -8
  182. package/dist/functions/ImageUtility.d.ts +81 -8
  183. package/dist/functions/ImageUtility.js +911 -387
  184. package/dist/functions/ImageUtility.js.map +1 -1
  185. package/dist/functions/ImageUtility.mjs +899 -387
  186. package/dist/functions/ImageUtility.mjs.map +1 -1
  187. package/dist/functions/SavesUtility.d.mts +9 -5
  188. package/dist/functions/SavesUtility.d.ts +9 -5
  189. package/dist/functions/SavesUtility.js +611 -252
  190. package/dist/functions/SavesUtility.js.map +1 -1
  191. package/dist/functions/SavesUtility.mjs +611 -252
  192. package/dist/functions/SavesUtility.mjs.map +1 -1
  193. package/dist/functions/TickerUtility.d.mts +1 -1
  194. package/dist/functions/TickerUtility.d.ts +1 -1
  195. package/dist/functions/TickerUtility.js +32 -18
  196. package/dist/functions/TickerUtility.js.map +1 -1
  197. package/dist/functions/TickerUtility.mjs +32 -18
  198. package/dist/functions/TickerUtility.mjs.map +1 -1
  199. package/dist/functions/index.d.mts +18 -8
  200. package/dist/functions/index.d.ts +18 -8
  201. package/dist/functions/index.js +832 -279
  202. package/dist/functions/index.js.map +1 -1
  203. package/dist/functions/index.mjs +825 -280
  204. package/dist/functions/index.mjs.map +1 -1
  205. package/dist/index.d.mts +25 -16
  206. package/dist/index.d.ts +25 -16
  207. package/dist/index.js +1547 -290
  208. package/dist/index.js.map +1 -1
  209. package/dist/index.mjs +1538 -290
  210. package/dist/index.mjs.map +1 -1
  211. package/dist/interface/CharacterBaseModelProps.d.mts +27 -0
  212. package/dist/interface/CharacterBaseModelProps.d.ts +27 -0
  213. package/dist/interface/CharacterBaseModelProps.js +4 -0
  214. package/dist/interface/CharacterBaseModelProps.mjs +3 -0
  215. package/dist/interface/DialogueHistory.d.mts +3 -7
  216. package/dist/interface/DialogueHistory.d.ts +3 -7
  217. package/dist/interface/IHistoryStep.d.mts +12 -8
  218. package/dist/interface/IHistoryStep.d.ts +12 -8
  219. package/dist/interface/ISaveData.d.mts +8 -4
  220. package/dist/interface/ISaveData.d.ts +8 -4
  221. package/dist/interface/ITicker.d.mts +2 -1
  222. package/dist/interface/ITicker.d.ts +2 -1
  223. package/dist/interface/ITickersSteps.d.mts +14 -5
  224. package/dist/interface/ITickersSteps.d.ts +14 -5
  225. package/dist/interface/TickerHistory.d.mts +29 -0
  226. package/dist/interface/TickerHistory.d.ts +29 -0
  227. package/dist/{types/ticker/TickerMoveProps.js → interface/TickerHistory.js} +1 -1
  228. package/dist/interface/TickerHistory.mjs +3 -0
  229. package/dist/interface/TickerProgrationType.d.mts +13 -1
  230. package/dist/interface/TickerProgrationType.d.ts +13 -1
  231. package/dist/interface/TickerTimeoutHistory.d.mts +7 -0
  232. package/dist/interface/TickerTimeoutHistory.d.ts +7 -0
  233. package/dist/interface/TickerTimeoutHistory.js +4 -0
  234. package/dist/interface/TickerTimeoutHistory.mjs +3 -0
  235. package/dist/interface/canvas/ICanvasBaseMemory.d.mts +1 -1
  236. package/dist/interface/canvas/ICanvasBaseMemory.d.ts +1 -1
  237. package/dist/interface/canvas/ICanvasImageMemory.d.mts +1 -1
  238. package/dist/interface/canvas/ICanvasImageMemory.d.ts +1 -1
  239. package/dist/interface/canvas/ICanvasSpriteMemory.d.mts +0 -1
  240. package/dist/interface/canvas/ICanvasSpriteMemory.d.ts +0 -1
  241. package/dist/interface/canvas/ICanvasTextTextMemory.d.mts +0 -1
  242. package/dist/interface/canvas/ICanvasTextTextMemory.d.ts +0 -1
  243. package/dist/interface/export/ExportedCanvas.d.mts +11 -3
  244. package/dist/interface/export/ExportedCanvas.d.ts +11 -3
  245. package/dist/interface/export/ExportedStep.d.mts +7 -3
  246. package/dist/interface/export/ExportedStep.d.ts +7 -3
  247. package/dist/interface/export/index.d.mts +8 -4
  248. package/dist/interface/export/index.d.ts +8 -4
  249. package/dist/interface/index.d.mts +14 -11
  250. package/dist/interface/index.d.ts +14 -11
  251. package/dist/labels/BaseCanvasElementTestLabel.d.mts +9 -0
  252. package/dist/labels/BaseCanvasElementTestLabel.d.ts +9 -0
  253. package/dist/labels/BaseCanvasElementTestLabel.js +1888 -0
  254. package/dist/labels/BaseCanvasElementTestLabel.js.map +1 -0
  255. package/dist/labels/BaseCanvasElementTestLabel.mjs +1882 -0
  256. package/dist/labels/BaseCanvasElementTestLabel.mjs.map +1 -0
  257. package/dist/labels/CanvasEventsTestLabel.d.mts +27 -0
  258. package/dist/labels/CanvasEventsTestLabel.d.ts +27 -0
  259. package/dist/labels/CanvasEventsTestLabel.js +2822 -0
  260. package/dist/labels/CanvasEventsTestLabel.js.map +1 -0
  261. package/dist/labels/CanvasEventsTestLabel.mjs +2816 -0
  262. package/dist/labels/CanvasEventsTestLabel.mjs.map +1 -0
  263. package/dist/labels/CustomTickerCanvasElementTestLabel.d.mts +20 -0
  264. package/dist/labels/CustomTickerCanvasElementTestLabel.d.ts +20 -0
  265. package/dist/labels/CustomTickerCanvasElementTestLabel.js +2792 -0
  266. package/dist/labels/CustomTickerCanvasElementTestLabel.js.map +1 -0
  267. package/dist/labels/CustomTickerCanvasElementTestLabel.mjs +2786 -0
  268. package/dist/labels/CustomTickerCanvasElementTestLabel.mjs.map +1 -0
  269. package/dist/labels/ImagesAnimationsTestLabel.d.mts +9 -0
  270. package/dist/labels/ImagesAnimationsTestLabel.d.ts +9 -0
  271. package/dist/labels/ImagesAnimationsTestLabel.js +3378 -0
  272. package/dist/labels/ImagesAnimationsTestLabel.js.map +1 -0
  273. package/dist/labels/ImagesAnimationsTestLabel.mjs +3372 -0
  274. package/dist/labels/ImagesAnimationsTestLabel.mjs.map +1 -0
  275. package/dist/labels/MarkdownTest.d.mts +9 -0
  276. package/dist/labels/MarkdownTest.d.ts +9 -0
  277. package/dist/labels/MarkdownTest.js +2756 -0
  278. package/dist/labels/MarkdownTest.js.map +1 -0
  279. package/dist/labels/MarkdownTest.mjs +2750 -0
  280. package/dist/labels/MarkdownTest.mjs.map +1 -0
  281. package/dist/labels/StartLabel.d.mts +10 -0
  282. package/dist/labels/StartLabel.d.ts +10 -0
  283. package/dist/labels/StartLabel.js +3736 -0
  284. package/dist/labels/StartLabel.js.map +1 -0
  285. package/dist/labels/StartLabel.mjs +3729 -0
  286. package/dist/labels/StartLabel.mjs.map +1 -0
  287. package/dist/labels/TestConstant.d.mts +17 -0
  288. package/dist/labels/TestConstant.d.ts +17 -0
  289. package/dist/labels/TestConstant.js +1872 -0
  290. package/dist/labels/TestConstant.js.map +1 -0
  291. package/dist/labels/TestConstant.mjs +1856 -0
  292. package/dist/labels/TestConstant.mjs.map +1 -0
  293. package/dist/labels/TickerTestLabel.d.mts +9 -0
  294. package/dist/labels/TickerTestLabel.d.ts +9 -0
  295. package/dist/labels/TickerTestLabel.js +2675 -0
  296. package/dist/labels/TickerTestLabel.js.map +1 -0
  297. package/dist/labels/TickerTestLabel.mjs +2669 -0
  298. package/dist/labels/TickerTestLabel.mjs.map +1 -0
  299. package/dist/labels/index.d.mts +10 -0
  300. package/dist/labels/index.d.ts +10 -0
  301. package/dist/labels/index.js +3736 -0
  302. package/dist/labels/index.js.map +1 -0
  303. package/dist/labels/index.mjs +3729 -0
  304. package/dist/labels/index.mjs.map +1 -0
  305. package/dist/managers/StepManager.d.mts +21 -15
  306. package/dist/managers/StepManager.d.ts +21 -15
  307. package/dist/managers/StepManager.js +610 -251
  308. package/dist/managers/StepManager.js.map +1 -1
  309. package/dist/managers/StepManager.mjs +610 -251
  310. package/dist/managers/StepManager.mjs.map +1 -1
  311. package/dist/managers/WindowManager.d.mts +38 -24
  312. package/dist/managers/WindowManager.d.ts +38 -24
  313. package/dist/managers/WindowManager.js +356 -170
  314. package/dist/managers/WindowManager.js.map +1 -1
  315. package/dist/managers/WindowManager.mjs +352 -170
  316. package/dist/managers/WindowManager.mjs.map +1 -1
  317. package/dist/managers/index.d.mts +15 -14
  318. package/dist/managers/index.d.ts +15 -14
  319. package/dist/managers/index.js +612 -251
  320. package/dist/managers/index.js.map +1 -1
  321. package/dist/managers/index.mjs +612 -251
  322. package/dist/managers/index.mjs.map +1 -1
  323. package/dist/types/CanvasEventNamesType.d.mts +1 -1
  324. package/dist/types/CanvasEventNamesType.d.ts +1 -1
  325. package/dist/types/ChoiceMenuOptionsType.d.mts +2 -2
  326. package/dist/types/ChoiceMenuOptionsType.d.ts +2 -2
  327. package/dist/types/HistoryChoiceMenuOption.d.mts +22 -0
  328. package/dist/types/HistoryChoiceMenuOption.d.ts +22 -0
  329. package/dist/types/HistoryChoiceMenuOption.js +4 -0
  330. package/dist/types/HistoryChoiceMenuOption.mjs +3 -0
  331. package/dist/types/PauseType.d.mts +8 -4
  332. package/dist/types/PauseType.d.ts +8 -4
  333. package/dist/types/PauseType.js +0 -11
  334. package/dist/types/PauseType.js.map +1 -1
  335. package/dist/types/PauseType.mjs +0 -9
  336. package/dist/types/PauseType.mjs.map +1 -1
  337. package/dist/types/RepeatType.d.mts +1 -2
  338. package/dist/types/RepeatType.d.ts +1 -2
  339. package/dist/types/RepeatType.js +0 -4
  340. package/dist/types/RepeatType.js.map +1 -1
  341. package/dist/types/RepeatType.mjs +0 -3
  342. package/dist/types/RepeatType.mjs.map +1 -1
  343. package/dist/types/index.d.mts +5 -4
  344. package/dist/types/index.d.ts +5 -4
  345. package/dist/types/index.js +0 -15
  346. package/dist/types/index.js.map +1 -1
  347. package/dist/types/index.mjs +1 -13
  348. package/dist/types/index.mjs.map +1 -1
  349. package/dist/types/ticker/{TickerFadeAlphaProps.d.mts → FadeAlphaTickerProps.d.mts} +9 -5
  350. package/dist/types/ticker/{TickerFadeAlphaProps.d.ts → FadeAlphaTickerProps.d.ts} +9 -5
  351. package/dist/types/ticker/FadeAlphaTickerProps.js +4 -0
  352. package/dist/types/ticker/FadeAlphaTickerProps.js.map +1 -0
  353. package/dist/types/ticker/FadeAlphaTickerProps.mjs +3 -0
  354. package/dist/types/ticker/FadeAlphaTickerProps.mjs.map +1 -0
  355. package/dist/types/ticker/{TickerMoveProps.d.mts → MoveTickerProps.d.mts} +14 -5
  356. package/dist/types/ticker/{TickerMoveProps.d.ts → MoveTickerProps.d.ts} +14 -5
  357. package/dist/types/ticker/{TickerRotateProps.js → MoveTickerProps.js} +1 -1
  358. package/dist/types/ticker/MoveTickerProps.js.map +1 -0
  359. package/dist/types/ticker/MoveTickerProps.mjs +3 -0
  360. package/dist/types/ticker/MoveTickerProps.mjs.map +1 -0
  361. package/dist/types/ticker/{TickerRotateProps.d.mts → RotateTickerProps.d.mts} +10 -4
  362. package/dist/types/ticker/{TickerRotateProps.d.ts → RotateTickerProps.d.ts} +10 -4
  363. package/dist/types/ticker/RotateTickerProps.js +4 -0
  364. package/dist/types/ticker/RotateTickerProps.js.map +1 -0
  365. package/dist/types/ticker/RotateTickerProps.mjs +3 -0
  366. package/dist/types/ticker/RotateTickerProps.mjs.map +1 -0
  367. package/dist/types/ticker/TagToRemoveAfterType.d.mts +4 -0
  368. package/dist/types/ticker/TagToRemoveAfterType.d.ts +4 -0
  369. package/dist/types/ticker/TagToRemoveAfterType.js +8 -0
  370. package/dist/types/ticker/TagToRemoveAfterType.js.map +1 -0
  371. package/dist/types/ticker/TagToRemoveAfterType.mjs +6 -0
  372. package/dist/types/ticker/TagToRemoveAfterType.mjs.map +1 -0
  373. package/dist/types/ticker/ZoomTickerProps.d.mts +45 -0
  374. package/dist/types/ticker/ZoomTickerProps.d.ts +45 -0
  375. package/dist/types/ticker/ZoomTickerProps.js +4 -0
  376. package/dist/types/ticker/ZoomTickerProps.js.map +1 -0
  377. package/dist/types/ticker/ZoomTickerProps.mjs +3 -0
  378. package/dist/types/ticker/ZoomTickerProps.mjs.map +1 -0
  379. package/dist/types/ticker/index.d.mts +4 -2
  380. package/dist/types/ticker/index.d.ts +4 -2
  381. package/package.json +7 -7
  382. package/dist/classes/ticker/TickerFadeAlpha.d.mts +0 -31
  383. package/dist/classes/ticker/TickerFadeAlpha.d.ts +0 -31
  384. package/dist/classes/ticker/TickerFadeAlpha.js.map +0 -1
  385. package/dist/classes/ticker/TickerFadeAlpha.mjs.map +0 -1
  386. package/dist/classes/ticker/TickerMove.d.mts +0 -29
  387. package/dist/classes/ticker/TickerMove.d.ts +0 -29
  388. package/dist/classes/ticker/TickerMove.js.map +0 -1
  389. package/dist/classes/ticker/TickerMove.mjs.map +0 -1
  390. package/dist/classes/ticker/TickerRotate.d.mts +0 -30
  391. package/dist/classes/ticker/TickerRotate.d.ts +0 -30
  392. package/dist/classes/ticker/TickerRotate.js.map +0 -1
  393. package/dist/classes/ticker/TickerRotate.mjs.map +0 -1
  394. package/dist/functions/ErrorUtility.d.mts +0 -24
  395. package/dist/functions/ErrorUtility.d.ts +0 -24
  396. package/dist/functions/ErrorUtility.js +0 -261
  397. package/dist/functions/ErrorUtility.js.map +0 -1
  398. package/dist/functions/ErrorUtility.mjs +0 -258
  399. package/dist/functions/ErrorUtility.mjs.map +0 -1
  400. package/dist/interface/IClassWithArgsHistory.d.mts +0 -25
  401. package/dist/interface/IClassWithArgsHistory.d.ts +0 -25
  402. package/dist/interface/IClassWithArgsHistory.js +0 -4
  403. package/dist/interface/IClassWithArgsHistory.mjs +0 -3
  404. package/dist/types/ticker/TickerFadeAlphaProps.js +0 -4
  405. package/dist/types/ticker/TickerFadeAlphaProps.mjs +0 -3
  406. package/dist/types/ticker/TickerMoveProps.mjs +0 -3
  407. package/dist/types/ticker/TickerRotateProps.mjs +0 -3
  408. /package/dist/interface/{IClassWithArgsHistory.js.map → CharacterBaseModelProps.js.map} +0 -0
  409. /package/dist/interface/{IClassWithArgsHistory.mjs.map → CharacterBaseModelProps.mjs.map} +0 -0
  410. /package/dist/{types/ticker/TickerFadeAlphaProps.js.map → interface/TickerHistory.js.map} +0 -0
  411. /package/dist/{types/ticker/TickerFadeAlphaProps.mjs.map → interface/TickerHistory.mjs.map} +0 -0
  412. /package/dist/{types/ticker/TickerMoveProps.js.map → interface/TickerTimeoutHistory.js.map} +0 -0
  413. /package/dist/{types/ticker/TickerMoveProps.mjs.map → interface/TickerTimeoutHistory.mjs.map} +0 -0
  414. /package/dist/types/{ticker/TickerRotateProps.js.map → HistoryChoiceMenuOption.js.map} +0 -0
  415. /package/dist/types/{ticker/TickerRotateProps.mjs.map → HistoryChoiceMenuOption.mjs.map} +0 -0
@@ -33,8 +33,7 @@ var __decorateClass = (decorators, target, key, kind) => {
33
33
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
34
34
  if (decorator = decorators[i])
35
35
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
36
- if (kind && result)
37
- __defProp(target, key, result);
36
+ if (kind && result) __defProp(target, key, result);
38
37
  return result;
39
38
  };
40
39
  var __async = (__this, __arguments, generator) => {
@@ -80,7 +79,7 @@ var Label = class {
80
79
  this._choiseIndex = choiseIndex;
81
80
  }
82
81
  /**
83
- * Get the id of the label
82
+ * Get the id of the label. This variable is used in the system to get the label by id, {@link getLabelById}
84
83
  */
85
84
  get id() {
86
85
  return this._id;
@@ -148,138 +147,6 @@ function getLabelById(id) {
148
147
  }
149
148
  return label;
150
149
  }
151
-
152
- // src/decorators/CanvasElementDecorator.ts
153
- var registeredCanvasElement = {};
154
- function getCanvasElementInstanceByClassName(canvasName) {
155
- try {
156
- let eventType = registeredCanvasElement[canvasName];
157
- if (!eventType) {
158
- if (canvasName === "CanvasContainer") {
159
- eventType = CanvasContainer;
160
- } else if (canvasName === "CanvasImage") {
161
- eventType = CanvasImage;
162
- } else if (canvasName === "CanvasSprite") {
163
- eventType = CanvasSprite;
164
- } else if (canvasName === "CanvasText") {
165
- eventType = CanvasText;
166
- }
167
- }
168
- if (!eventType) {
169
- console.error(`[Pixi'VN] CanvasElement ${canvasName} not found`);
170
- return;
171
- }
172
- let canvasElement = new eventType();
173
- return canvasElement;
174
- } catch (e) {
175
- console.error(`[Pixi'VN] Error while getting CanvasElement ${canvasName}`, e);
176
- return;
177
- }
178
- }
179
-
180
- // src/functions/CanvasUtility.ts
181
- function getTextureMemory(texture) {
182
- let sourceTexture = texture.source;
183
- let textureMemory = {
184
- image: sourceTexture.label
185
- };
186
- return textureMemory;
187
- }
188
- function exportCanvasElement(element) {
189
- return element.memory;
190
- }
191
- function importCanvasElement(memory) {
192
- let element = getCanvasElementInstanceByClassName(memory.className);
193
- if (element) {
194
- element.memory = memory;
195
- } else {
196
- throw new Error("[Pixi'VN] The element " + memory.className + " could not be created");
197
- }
198
- return element;
199
- }
200
-
201
- // src/classes/canvas/CanvasContainer.ts
202
- var CanvasContainer = class extends pixi_js.Container {
203
- get memory() {
204
- let memory = getMemoryContainer(this);
205
- this.children.forEach((child) => {
206
- memory.elements.push(exportCanvasElement(child));
207
- });
208
- return memory;
209
- }
210
- set memory(value) {
211
- setMemoryContainer(this, value);
212
- value.elements.forEach((child) => {
213
- this.addChild(importCanvasElement(child));
214
- });
215
- }
216
- };
217
- function getMemoryContainer(element) {
218
- return {
219
- className: "CanvasContainer",
220
- elements: [],
221
- width: element.width,
222
- height: element.height,
223
- isRenderGroup: element.isRenderGroup,
224
- blendMode: element.blendMode,
225
- tint: element.tint,
226
- alpha: element.alpha,
227
- angle: element.angle,
228
- renderable: element.renderable,
229
- rotation: element.rotation,
230
- scale: { x: element.scale.x, y: element.scale.y },
231
- pivot: { x: element.pivot.x, y: element.pivot.y },
232
- position: { x: element.position.x, y: element.position.y },
233
- skew: { x: element.skew.x, y: element.skew.y },
234
- visible: element.visible,
235
- culled: element.culled,
236
- x: element.x,
237
- y: element.y,
238
- boundsArea: element.boundsArea,
239
- cursor: element.cursor,
240
- eventMode: element.eventMode,
241
- interactive: element.interactive,
242
- interactiveChildren: element.interactiveChildren,
243
- hitArea: element.hitArea
244
- };
245
- }
246
- function setMemoryContainer(element, memory) {
247
- memory.width && (element.width = memory.width);
248
- memory.height && (element.height = memory.height);
249
- memory.isRenderGroup && (element.isRenderGroup = memory.isRenderGroup);
250
- memory.blendMode && (element.blendMode = memory.blendMode);
251
- memory.tint && (element.tint = memory.tint);
252
- memory.alpha && (element.alpha = memory.alpha);
253
- memory.angle && (element.angle = memory.angle);
254
- memory.renderable && (element.renderable = memory.renderable);
255
- memory.rotation && (element.rotation = memory.rotation);
256
- if (memory.scale) {
257
- if (typeof memory.scale === "number") {
258
- element.scale.set(memory.scale, memory.scale);
259
- } else {
260
- element.scale.set(memory.scale.x, memory.scale.y);
261
- }
262
- }
263
- if (memory.pivot) {
264
- if (typeof memory.pivot === "number") {
265
- element.pivot.set(memory.pivot, memory.pivot);
266
- } else {
267
- element.pivot.set(memory.pivot.x, memory.pivot.y);
268
- }
269
- }
270
- memory.position && element.position.set(memory.position.x, memory.position.y);
271
- memory.skew && element.skew.set(memory.skew.x, memory.skew.y);
272
- memory.visible && (element.visible = memory.visible);
273
- memory.culled && (element.culled = memory.culled);
274
- memory.x && (element.x = memory.x);
275
- memory.y && (element.y = memory.y);
276
- memory.boundsArea && (element.boundsArea = memory.boundsArea);
277
- memory.cursor && (element.cursor = memory.cursor);
278
- memory.eventMode && (element.eventMode = memory.eventMode);
279
- memory.interactive && (element.interactive = memory.interactive);
280
- memory.interactiveChildren && (element.interactiveChildren = memory.interactiveChildren);
281
- memory.hitArea && (element.hitArea = memory.hitArea);
282
- }
283
150
  function getTexture(imageUrl) {
284
151
  return __async(this, null, function* () {
285
152
  if (pixi_js.Assets.cache.has(imageUrl)) {
@@ -332,40 +199,43 @@ function getTextStyle(style) {
332
199
 
333
200
  // src/decorators/EventDecorator.ts
334
201
  var registeredEvents = {};
335
- function getEventTypeByClassName(eventName) {
202
+ function getEventTypeById(eventId) {
336
203
  try {
337
- let eventType = registeredEvents[eventName];
204
+ let eventType = registeredEvents[eventId];
338
205
  if (!eventType) {
339
- console.error(`[Pixi'VN] Event ${eventName} not found`);
206
+ console.error(`[Pixi'VN] Event ${eventId} not found`);
340
207
  return;
341
208
  }
342
209
  new eventType();
343
210
  return eventType;
344
211
  } catch (e) {
345
- console.error(`[Pixi'VN] Error while getting Event ${eventName}`, e);
212
+ console.error(`[Pixi'VN] Error while getting Event ${eventId}`, e);
346
213
  return;
347
214
  }
348
215
  }
349
- function getEventInstanceByClassName(eventName) {
216
+ function getEventInstanceById(eventId) {
350
217
  try {
351
- let eventType = registeredEvents[eventName];
218
+ let eventType = registeredEvents[eventId];
352
219
  if (!eventType) {
353
- console.error(`[Pixi'VN] Event ${eventName} not found`);
220
+ console.error(`[Pixi'VN] Event ${eventId} not found`);
354
221
  return;
355
222
  }
356
223
  let event = new eventType();
357
224
  return event;
358
225
  } catch (e) {
359
- console.error(`[Pixi'VN] Error while getting Event ${eventName}`, e);
226
+ console.error(`[Pixi'VN] Error while getting Event ${eventId}`, e);
360
227
  return;
361
228
  }
362
229
  }
363
230
 
364
231
  // src/classes/canvas/CanvasSprite.ts
232
+ var CANVAS_SPRITE_ID = "CanvasSprite";
365
233
  var CanvasSprite = class _CanvasSprite extends pixi_js.Sprite {
366
- constructor() {
367
- super(...arguments);
234
+ constructor(options) {
235
+ super(options);
236
+ this.pixivnId = CANVAS_SPRITE_ID;
368
237
  this._onEvents = {};
238
+ this.pixivnId = this.constructor.prototype.pixivnId;
369
239
  }
370
240
  get memory() {
371
241
  return getMemorySprite(this);
@@ -406,9 +276,9 @@ var CanvasSprite = class _CanvasSprite extends pixi_js.Sprite {
406
276
  * ```
407
277
  */
408
278
  onEvent(event, eventClass) {
409
- let className = eventClass.name;
410
- let instance = getEventInstanceByClassName(className);
411
- this._onEvents[event] = className;
279
+ let id = eventClass.prototype.id;
280
+ let instance = getEventInstanceById(id);
281
+ this._onEvents[event] = id;
412
282
  if (instance) {
413
283
  super.on(event, () => {
414
284
  instance.fn(event, this);
@@ -437,7 +307,7 @@ var CanvasSprite = class _CanvasSprite extends pixi_js.Sprite {
437
307
  function getMemorySprite(element) {
438
308
  let temp = getMemoryContainer(element);
439
309
  return __spreadProps(__spreadValues({}, temp), {
440
- className: "CanvasSprite",
310
+ pixivnId: element.pixivnId,
441
311
  textureImage: getTextureMemory(element.texture),
442
312
  anchor: { x: element.anchor.x, y: element.anchor.y },
443
313
  roundPixels: element.roundPixels,
@@ -460,8 +330,8 @@ function setMemorySprite(element, memory) {
460
330
  }
461
331
  memory.roundPixels && (element.roundPixels = memory.roundPixels);
462
332
  for (let event in memory.onEvents) {
463
- let className = memory.onEvents[event];
464
- let instance = getEventTypeByClassName(className);
333
+ let id = memory.onEvents[event];
334
+ let instance = getEventTypeById(id);
465
335
  if (instance) {
466
336
  element.onEvent(event, instance);
467
337
  }
@@ -469,9 +339,11 @@ function setMemorySprite(element, memory) {
469
339
  }
470
340
 
471
341
  // src/classes/canvas/CanvasImage.ts
342
+ var CANVAS_IMAGE_ID = "CanvasImage";
472
343
  var CanvasImage = class _CanvasImage extends CanvasSprite {
473
344
  constructor(options, imageLink) {
474
345
  super(options);
346
+ this.pixivnId = CANVAS_IMAGE_ID;
475
347
  this.imageLink = "";
476
348
  if (imageLink) {
477
349
  this.imageLink = imageLink;
@@ -479,12 +351,13 @@ var CanvasImage = class _CanvasImage extends CanvasSprite {
479
351
  }
480
352
  get memory() {
481
353
  return __spreadProps(__spreadValues({}, getMemorySprite(this)), {
482
- className: "CanvasImage",
483
- textureImage: { image: this.imageLink }
354
+ pixivnId: this.pixivnId,
355
+ imageLink: this.imageLink
484
356
  });
485
357
  }
486
358
  set memory(memory) {
487
359
  setMemorySprite(this, memory);
360
+ this.imageLink = memory.imageLink;
488
361
  }
489
362
  static from(source, skipCache) {
490
363
  let sprite = pixi_js.Sprite.from(source, skipCache);
@@ -512,10 +385,13 @@ var CanvasImage = class _CanvasImage extends CanvasSprite {
512
385
  });
513
386
  }
514
387
  };
388
+ var CANVAS_TEXT_ID = "CanvasText";
515
389
  var CanvasText = class extends pixi_js.Text {
516
- constructor() {
517
- super(...arguments);
390
+ constructor(options) {
391
+ super(options);
392
+ this.pixivnId = CANVAS_TEXT_ID;
518
393
  this._onEvents = {};
394
+ this.pixivnId = this.constructor.prototype.pixivnId;
519
395
  }
520
396
  get memory() {
521
397
  return getMemoryText(this);
@@ -556,9 +432,9 @@ var CanvasText = class extends pixi_js.Text {
556
432
  * ```
557
433
  */
558
434
  onEvent(event, eventClass) {
559
- let className = eventClass.name;
560
- let instance = getEventInstanceByClassName(className);
561
- this._onEvents[event] = className;
435
+ let id = eventClass.prototype.id;
436
+ let instance = getEventInstanceById(id);
437
+ this._onEvents[event] = id;
562
438
  if (instance) {
563
439
  super.on(event, () => {
564
440
  instance.fn(event, this);
@@ -581,7 +457,7 @@ var CanvasText = class extends pixi_js.Text {
581
457
  function getMemoryText(element) {
582
458
  let temp = getMemoryContainer(element);
583
459
  return __spreadProps(__spreadValues({}, temp), {
584
- className: "CanvasText",
460
+ pixivnId: element.pixivnId,
585
461
  anchor: { x: element.anchor.x, y: element.anchor.y },
586
462
  text: element.text,
587
463
  resolution: element.resolution,
@@ -604,37 +480,155 @@ function setMemoryText(element, memory) {
604
480
  memory.style && (element.style = memory.style);
605
481
  memory.roundPixels && (element.roundPixels = memory.roundPixels);
606
482
  for (let event in memory.onEvents) {
607
- let className = memory.onEvents[event];
608
- let instance = getEventTypeByClassName(className);
483
+ let id = memory.onEvents[event];
484
+ let instance = getEventTypeById(id);
609
485
  if (instance) {
610
486
  element.onEvent(event, instance);
611
487
  }
612
488
  }
613
489
  }
614
490
 
615
- // src/classes/ticker/TickerBase.ts
616
- var TickerBase = class {
617
- /**
618
- * @param args The arguments that you want to pass to the ticker.
619
- * @param duration The duration of the ticker. If is undefined, the ticker will be called every frame.
620
- * @param priority The priority of the ticker. If is undefined, the priority will be UPDATE_PRIORITY.NORMAL.
621
- */
622
- constructor(args, duration, priority) {
623
- this.args = args;
624
- this.duration = duration;
625
- this.priority = priority;
491
+ // src/decorators/CanvasElementDecorator.ts
492
+ var registeredCanvasElement = {};
493
+ function getCanvasElementInstanceById(canvasId) {
494
+ try {
495
+ let eventType = registeredCanvasElement[canvasId];
496
+ if (!eventType) {
497
+ if (canvasId === CANVAS_CONTAINER_ID) {
498
+ eventType = CanvasContainer;
499
+ } else if (canvasId === CANVAS_IMAGE_ID) {
500
+ eventType = CanvasImage;
501
+ } else if (canvasId === CANVAS_SPRITE_ID) {
502
+ eventType = CanvasSprite;
503
+ } else if (canvasId === CANVAS_TEXT_ID) {
504
+ eventType = CanvasText;
505
+ }
506
+ }
507
+ if (!eventType) {
508
+ console.error(`[Pixi'VN] CanvasElement ${canvasId} not found`);
509
+ return;
510
+ }
511
+ let canvasElement = new eventType();
512
+ return canvasElement;
513
+ } catch (e) {
514
+ console.error(`[Pixi'VN] Error while getting CanvasElement ${canvasId}`, e);
515
+ return;
626
516
  }
627
- /**
628
- * The method that will be called every frame.
629
- * This method should be overridden and you can use GameWindowManager.addCanvasElement() to get the canvas element of the canvas, and edit them.
630
- * @param t The ticker that is calling this method
631
- * @param args The arguments that you passed when you added the ticker
632
- * @param tags The tags of the canvas elements that are connected to this ticker
633
- */
634
- fn(_t, _args, _tags) {
635
- throw new Error("[Pixi'VN] The method TickerBase.fn() must be overridden");
517
+ }
518
+
519
+ // src/functions/CanvasUtility.ts
520
+ function getTextureMemory(texture) {
521
+ let sourceTexture = texture.source;
522
+ let textureMemory = {
523
+ image: sourceTexture.label
524
+ };
525
+ return textureMemory;
526
+ }
527
+ function exportCanvasElement(element) {
528
+ return element.memory;
529
+ }
530
+ function importCanvasElement(memory) {
531
+ let element = getCanvasElementInstanceById(memory.pixivnId);
532
+ if (element) {
533
+ element.memory = memory;
534
+ } else {
535
+ throw new Error("[Pixi'VN] The element " + memory.pixivnId + " could not be created");
536
+ }
537
+ return element;
538
+ }
539
+
540
+ // src/classes/canvas/CanvasContainer.ts
541
+ var CANVAS_CONTAINER_ID = "CanvasContainer";
542
+ var CanvasContainer = class extends pixi_js.Container {
543
+ constructor(options) {
544
+ super(options);
545
+ this.pixivnId = CANVAS_CONTAINER_ID;
546
+ this.pixivnId = this.constructor.prototype.pixivnId;
547
+ }
548
+ get memory() {
549
+ let memory = getMemoryContainer(this);
550
+ this.children.forEach((child) => {
551
+ memory.elements.push(exportCanvasElement(child));
552
+ });
553
+ return memory;
554
+ }
555
+ set memory(value) {
556
+ setMemoryContainer(this, value);
557
+ value.elements.forEach((child) => {
558
+ this.addChild(importCanvasElement(child));
559
+ });
636
560
  }
637
561
  };
562
+ function getMemoryContainer(element) {
563
+ let className = "CanvasContainer";
564
+ if (element.hasOwnProperty("pixivnId")) {
565
+ className = element.pixivnId;
566
+ }
567
+ return {
568
+ pixivnId: className,
569
+ elements: [],
570
+ width: element.width,
571
+ height: element.height,
572
+ isRenderGroup: element.isRenderGroup,
573
+ blendMode: element.blendMode,
574
+ tint: element.tint,
575
+ alpha: element.alpha,
576
+ angle: element.angle,
577
+ renderable: element.renderable,
578
+ rotation: element.rotation,
579
+ scale: { x: element.scale.x, y: element.scale.y },
580
+ pivot: { x: element.pivot.x, y: element.pivot.y },
581
+ position: { x: element.position.x, y: element.position.y },
582
+ skew: { x: element.skew.x, y: element.skew.y },
583
+ visible: element.visible,
584
+ culled: element.culled,
585
+ x: element.x,
586
+ y: element.y,
587
+ boundsArea: element.boundsArea,
588
+ cursor: element.cursor,
589
+ eventMode: element.eventMode,
590
+ interactive: element.interactive,
591
+ interactiveChildren: element.interactiveChildren,
592
+ hitArea: element.hitArea
593
+ };
594
+ }
595
+ function setMemoryContainer(element, memory) {
596
+ memory.width && (element.width = memory.width);
597
+ memory.height && (element.height = memory.height);
598
+ memory.isRenderGroup && (element.isRenderGroup = memory.isRenderGroup);
599
+ memory.blendMode && (element.blendMode = memory.blendMode);
600
+ memory.tint && (element.tint = memory.tint);
601
+ memory.alpha && (element.alpha = memory.alpha);
602
+ memory.angle && (element.angle = memory.angle);
603
+ memory.renderable && (element.renderable = memory.renderable);
604
+ memory.rotation && (element.rotation = memory.rotation);
605
+ if (memory.scale) {
606
+ if (typeof memory.scale === "number") {
607
+ element.scale.set(memory.scale, memory.scale);
608
+ } else {
609
+ element.scale.set(memory.scale.x, memory.scale.y);
610
+ }
611
+ }
612
+ if (memory.pivot) {
613
+ if (typeof memory.pivot === "number") {
614
+ element.pivot.set(memory.pivot, memory.pivot);
615
+ } else {
616
+ element.pivot.set(memory.pivot.x, memory.pivot.y);
617
+ }
618
+ }
619
+ memory.position && element.position.set(memory.position.x, memory.position.y);
620
+ memory.skew && element.skew.set(memory.skew.x, memory.skew.y);
621
+ memory.visible && (element.visible = memory.visible);
622
+ memory.culled && (element.culled = memory.culled);
623
+ memory.x && (element.x = memory.x);
624
+ memory.y && (element.y = memory.y);
625
+ memory.boundsArea && (element.boundsArea = memory.boundsArea);
626
+ memory.cursor && (element.cursor = memory.cursor);
627
+ memory.eventMode && (element.eventMode = memory.eventMode);
628
+ memory.interactive && (element.interactive = memory.interactive);
629
+ memory.interactiveChildren && (element.interactiveChildren = memory.interactiveChildren);
630
+ memory.hitArea && (element.hitArea = memory.hitArea);
631
+ }
638
632
 
639
633
  // src/decorators/TickerDecorator.ts
640
634
  var registeredTickers = {};
@@ -644,40 +638,66 @@ function tickerDecorator(name) {
644
638
  name = target.name;
645
639
  }
646
640
  if (registeredTickers[name]) {
647
- console.warn(`[Pixi'VN] Ticker ${name} already exists, it will be overwritten`);
641
+ console.info(`[Pixi'VN] Ticker ${name} already exists, it will be overwritten`);
648
642
  }
643
+ target.prototype.id = name;
649
644
  registeredTickers[name] = target;
650
645
  };
651
646
  }
652
- function geTickerInstanceByClassName(tickerName, args, duration, priority) {
647
+ function geTickerInstanceById(tickerId, args, duration, priority) {
653
648
  try {
654
- let ticker = registeredTickers[tickerName];
649
+ let ticker = registeredTickers[tickerId];
655
650
  if (!ticker) {
656
- console.error(`[Pixi'VN] Ticker ${tickerName} not found`);
651
+ console.error(`[Pixi'VN] Ticker ${tickerId} not found`);
657
652
  return;
658
653
  }
659
654
  return new ticker(args, duration, priority);
660
655
  } catch (e) {
661
- console.error(`[Pixi'VN] Error while getting Ticker ${tickerName}`, e);
656
+ console.error(`[Pixi'VN] Error while getting Ticker ${tickerId}`, e);
662
657
  return;
663
658
  }
664
659
  }
665
660
 
666
- // src/classes/ticker/TickerFadeAlpha.ts
667
- var TickerFadeAlpha = class extends TickerBase {
661
+ // src/classes/ticker/TickerBase.ts
662
+ var TickerBase = class {
663
+ /**
664
+ * @param args The arguments that you want to pass to the ticker.
665
+ * @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
666
+ * @param priority The priority of the ticker. @default UPDATE_PRIORITY.NORMAL
667
+ */
668
+ constructor(args, duration, priority) {
669
+ /**
670
+ * Get the id of the ticker. This variable is used in the system to get the ticker by id, {@link geTickerInstanceById}
671
+ */
672
+ this.id = "ticker_id_not_set";
673
+ this.args = args;
674
+ this.duration = duration;
675
+ this.priority = priority;
676
+ this.id = this.constructor.prototype.id;
677
+ }
668
678
  /**
669
- * The method that will be called every frame to fade the alpha of the canvas element of the canvas.
670
- * @param delta The delta time
671
- * @param args The arguments that are passed to the ticker
672
- * @param tags The tags of the canvas element that are connected to this ticker
679
+ * The method that will be called every frame.
680
+ * This method should be overridden and you can use GameWindowManager.addCanvasElement() to get the canvas element of the canvas, and edit them.
681
+ * @param _ticker The ticker that is calling this method
682
+ * @param _args The arguments that you passed when you added the ticker
683
+ * @param _tags The tags of the canvas elements that are connected to this ticker
684
+ * @param _tickerId The id of the ticker. You can use this to get the ticker from the {@link GameWindowManager.currentTickers}
673
685
  */
674
- fn(t, args, tags) {
686
+ fn(_ticker, _args, _tags, _tickerId) {
687
+ throw new Error("[Pixi'VN] The method TickerBase.fn() must be overridden");
688
+ }
689
+ };
690
+
691
+ // src/classes/ticker/FadeAlphaTicker.ts
692
+ var FadeAlphaTicker = class extends TickerBase {
693
+ fn(ticker, args, tags, tickerId) {
675
694
  let type = args.type === void 0 ? "hide" : args.type;
676
- let speed = args.speed === void 0 ? 0.1 : args.speed;
695
+ let duration = args.duration === void 0 ? 1 : args.duration;
696
+ let speed = 1 / (duration * 60);
677
697
  let limit = args.limit === void 0 ? type === "hide" ? 0 : 1 : args.limit;
678
- let removeElementAfter = args.tagToRemoveAfter || [];
679
- if (typeof removeElementAfter === "string") {
680
- removeElementAfter = [removeElementAfter];
698
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
699
+ if (typeof tagToRemoveAfter2 === "string") {
700
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
681
701
  }
682
702
  if (type === "hide" && limit < 0) {
683
703
  limit = 0;
@@ -698,61 +718,88 @@ var TickerFadeAlpha = class extends TickerBase {
698
718
  let element = GameWindowManager.getCanvasElement(tag);
699
719
  if (element && element instanceof pixi_js.Container) {
700
720
  if (type === "show" && element.alpha < limit) {
701
- element.alpha += speed * t.deltaTime;
721
+ element.alpha += speed * ticker.deltaTime;
702
722
  } else if (type === "hide" && element.alpha > limit) {
703
- element.alpha -= speed * t.deltaTime;
704
- } else {
723
+ element.alpha -= speed * ticker.deltaTime;
724
+ }
725
+ if (type === "show" && element.alpha >= limit) {
705
726
  element.alpha = limit;
706
- GameWindowManager.removeAssociationBetweenTickerCanvasElement(tag, this);
707
- GameWindowManager.removeCanvasElement(removeElementAfter);
727
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
728
+ } else if (type === "hide" && element.alpha <= limit) {
729
+ element.alpha = limit;
730
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
708
731
  }
709
732
  }
710
733
  });
711
734
  }
712
735
  };
713
- TickerFadeAlpha = __decorateClass([
736
+ FadeAlphaTicker = __decorateClass([
714
737
  tickerDecorator()
715
- ], TickerFadeAlpha);
738
+ ], FadeAlphaTicker);
716
739
 
717
740
  // src/functions/TickerUtility.ts
718
741
  function updateTickerProgression(args, propertyName, progression) {
719
- if (args.hasOwnProperty(propertyName) && typeof args[propertyName] !== "number") {
742
+ if (args[propertyName] === void 0 || !progression || args[propertyName] === progression.limit) {
720
743
  return;
721
744
  }
722
- if (args[propertyName] !== void 0 && progression && args[propertyName] !== progression.limit) {
745
+ if (typeof args[propertyName] === "number") {
723
746
  if (progression.type === "linear") {
724
- args[propertyName] += progression.amt;
725
- if (progression.limit !== void 0) {
726
- if (args[propertyName] > progression.limit && progression.amt > 0) {
727
- args[propertyName] = progression.limit;
728
- } else if (args[propertyName] < progression.limit && progression.amt < 0) {
729
- args[propertyName] = progression.limit;
730
- }
731
- }
747
+ args[propertyName] = getLinearProgression(args[propertyName], progression);
732
748
  } else if (progression.type === "exponential") {
733
- args[propertyName] += args[propertyName] * progression.percentage;
734
- if (progression.limit !== void 0) {
735
- if (args[propertyName] > progression.limit && progression.percentage > 0) {
736
- args[propertyName] = progression.limit;
737
- } else if (args[propertyName] < progression.limit && progression.percentage < 0) {
738
- args[propertyName] = progression.limit;
739
- }
740
- }
749
+ args[propertyName] = getExponentialProgression(args[propertyName], progression);
750
+ }
751
+ } 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") {
752
+ if (progression.type === "linear") {
753
+ args[propertyName].x = getLinearProgression(args[propertyName].x, progression);
754
+ args[propertyName].y = getLinearProgression(args[propertyName].y, progression);
755
+ } else if (progression.type === "exponential") {
756
+ args[propertyName].x = getExponentialProgression(args[propertyName].x, progression);
757
+ args[propertyName].y = getExponentialProgression(args[propertyName].y, progression);
758
+ }
759
+ }
760
+ }
761
+ function getLinearProgression(number, progression) {
762
+ if (progression.limit !== void 0) {
763
+ if (number > progression.limit && progression.amt > 0) {
764
+ return progression.limit;
765
+ } else if (number < progression.limit && progression.amt < 0) {
766
+ return progression.limit;
767
+ }
768
+ }
769
+ return number + progression.amt / 60;
770
+ }
771
+ function getExponentialProgression(number, progression) {
772
+ if (progression.limit !== void 0) {
773
+ if (number > progression.limit && progression.percentage > 0) {
774
+ return progression.limit;
775
+ } else if (number < progression.limit && progression.percentage < 0) {
776
+ return progression.limit;
741
777
  }
742
778
  }
779
+ return number + number * progression.percentage;
743
780
  }
744
781
 
745
- // src/classes/ticker/TickerMove.ts
746
- var TickerMove = class extends TickerBase {
747
- /**
748
- * The method that will be called every frame to move the canvas element of the canvas.
749
- * @param t The ticker that is calling this method
750
- * @param args The arguments that are passed to the ticker
751
- * @param tags The tags of the canvas element that are connected to this ticker
752
- */
753
- fn(t, args, tags) {
754
- let speed = args.speed === void 0 ? 0.1 : args.speed;
782
+ // src/classes/ticker/MoveTicker.ts
783
+ var MoveTicker = class extends TickerBase {
784
+ fn(ticker, args, tags, tickerId) {
785
+ let xSpeed = 1;
786
+ let ySpeed = 1;
787
+ if (args.speed) {
788
+ if (typeof args.speed === "number") {
789
+ xSpeed = args.speed;
790
+ ySpeed = args.speed;
791
+ } else {
792
+ xSpeed = args.speed.x;
793
+ ySpeed = args.speed.y;
794
+ }
795
+ }
796
+ xSpeed /= 60;
797
+ ySpeed /= 60;
755
798
  let destination = args.destination;
799
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
800
+ if (typeof tagToRemoveAfter2 === "string") {
801
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
802
+ }
756
803
  tags.filter((tag) => {
757
804
  var _a;
758
805
  let element = GameWindowManager.getCanvasElement(tag);
@@ -765,41 +812,42 @@ var TickerMove = class extends TickerBase {
765
812
  }).forEach((tag) => {
766
813
  let element = GameWindowManager.getCanvasElement(tag);
767
814
  if (element && element instanceof pixi_js.Container) {
768
- let xDistance = destination.x - element.x;
815
+ let xDistance = destination.x - element.x > 0 ? 1 : -1;
769
816
  if (xDistance != 0) {
770
- element.x += xDistance / speed * t.deltaTime;
817
+ element.x += xDistance * xSpeed * ticker.deltaTime;
771
818
  let newDistance = destination.x - element.x;
772
819
  if (xDistance < 0 && newDistance > 0 || xDistance > 0 && newDistance < 0) {
773
820
  element.x = destination.x;
774
821
  }
775
822
  }
776
- let yDistance = destination.y - element.y;
823
+ let yDistance = destination.y - element.y > 0 ? 1 : -1;
777
824
  if (yDistance != 0) {
778
- element.y += yDistance / speed * t.deltaTime;
825
+ element.y += yDistance * ySpeed * ticker.deltaTime;
779
826
  let newDistance = destination.y - element.y;
780
827
  if (yDistance < 0 && newDistance > 0 || yDistance > 0 && newDistance < 0) {
781
828
  element.y = destination.y;
782
829
  }
783
830
  }
831
+ if (element.x == destination.x && element.y == destination.y) {
832
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
833
+ }
784
834
  }
785
835
  });
786
836
  if (args.speedProgression)
787
837
  updateTickerProgression(args, "speed", args.speedProgression);
788
838
  }
789
839
  };
790
- TickerMove = __decorateClass([
840
+ MoveTicker = __decorateClass([
791
841
  tickerDecorator()
792
- ], TickerMove);
793
- var TickerRotate = class extends TickerBase {
794
- /**
795
- * The method that will be called every frame to rotate the canvas element of the canvas.
796
- * @param delta The delta time
797
- * @param args The arguments that are passed to the ticker
798
- * @param tags The tags of the canvas element that are connected to this ticker
799
- */
800
- fn(t, args, tags) {
801
- let speed = args.speed === void 0 ? 0.1 : args.speed;
842
+ ], MoveTicker);
843
+ var RotateTicker = class extends TickerBase {
844
+ fn(ticker, args, tags, tickerId) {
845
+ let speed = (args.speed === void 0 ? 1 : args.speed) / 60;
802
846
  let clockwise = args.clockwise === void 0 ? true : args.clockwise;
847
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
848
+ if (typeof tagToRemoveAfter2 === "string") {
849
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
850
+ }
803
851
  tags.filter((tag) => {
804
852
  var _a;
805
853
  let element = GameWindowManager.getCanvasElement(tag);
@@ -813,18 +861,114 @@ var TickerRotate = class extends TickerBase {
813
861
  let element = GameWindowManager.getCanvasElement(tag);
814
862
  if (element && element instanceof pixi_js.Container) {
815
863
  if (clockwise)
816
- element.rotation += speed * t.deltaTime;
864
+ element.rotation += speed * ticker.deltaTime;
817
865
  else
818
- element.rotation -= speed * t.deltaTime;
866
+ element.rotation -= speed * ticker.deltaTime;
867
+ if (speed < 1e-5 && !(args.speedProgression && args.speedProgression.type == "linear" && args.speedProgression.amt != 0)) {
868
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
869
+ }
819
870
  }
820
871
  });
821
872
  if (args.speedProgression)
822
873
  updateTickerProgression(args, "speed", args.speedProgression);
823
874
  }
824
875
  };
825
- TickerRotate = __decorateClass([
876
+ RotateTicker = __decorateClass([
826
877
  tickerDecorator()
827
- ], TickerRotate);
878
+ ], RotateTicker);
879
+ var ZoomTicker = class extends TickerBase {
880
+ fn(ticker, args, tags, tickerId) {
881
+ let xSpeed = 0.1;
882
+ let ySpeed = 0.1;
883
+ if (args.speed) {
884
+ if (typeof args.speed === "number") {
885
+ xSpeed = args.speed;
886
+ ySpeed = args.speed;
887
+ } else {
888
+ xSpeed = args.speed.x;
889
+ ySpeed = args.speed.y;
890
+ }
891
+ }
892
+ xSpeed /= 60;
893
+ ySpeed /= 60;
894
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
895
+ if (typeof tagToRemoveAfter2 === "string") {
896
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
897
+ }
898
+ let type = args.type || "zoom";
899
+ let xLimit = type === "zoom" ? Infinity : 0;
900
+ let yLimit = type === "zoom" ? Infinity : 0;
901
+ if (args.limit) {
902
+ if (typeof args.limit === "number") {
903
+ xLimit = args.limit;
904
+ yLimit = args.limit;
905
+ } else {
906
+ xLimit = args.limit.x;
907
+ yLimit = args.limit.y;
908
+ }
909
+ }
910
+ tags.filter((tag) => {
911
+ var _a;
912
+ let element = GameWindowManager.getCanvasElement(tag);
913
+ if (args.startOnlyIfHaveTexture) {
914
+ if (element && element instanceof pixi_js.Sprite && ((_a = element.texture) == null ? void 0 : _a.label) == "EMPTY") {
915
+ return false;
916
+ }
917
+ }
918
+ return true;
919
+ }).forEach((tag) => {
920
+ let element = GameWindowManager.getCanvasElement(tag);
921
+ if (element && element instanceof pixi_js.Container) {
922
+ if (type === "zoom" && (element.scale.x < xLimit || element.scale.y < yLimit)) {
923
+ element.scale.x += xSpeed * ticker.deltaTime;
924
+ element.scale.y += ySpeed * ticker.deltaTime;
925
+ } else if (type === "unzoom" && (element.scale.x > xLimit || element.scale.y > yLimit)) {
926
+ element.scale.x -= xSpeed * ticker.deltaTime;
927
+ element.scale.y -= ySpeed * ticker.deltaTime;
928
+ }
929
+ if (type === "zoom") {
930
+ if (element.scale.x > xLimit) {
931
+ element.scale.x = xLimit;
932
+ }
933
+ if (element.scale.y > yLimit) {
934
+ element.scale.y = yLimit;
935
+ }
936
+ if (element.scale.x >= xLimit && element.scale.y >= yLimit) {
937
+ element.scale.x = xLimit;
938
+ element.scale.y = yLimit;
939
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
940
+ }
941
+ } else if (type === "unzoom") {
942
+ if (element.scale.x < xLimit) {
943
+ element.scale.x = xLimit;
944
+ }
945
+ if (element.scale.y < yLimit) {
946
+ element.scale.y = yLimit;
947
+ }
948
+ if (element.scale.x <= xLimit && element.scale.y <= yLimit) {
949
+ element.scale.x = xLimit;
950
+ element.scale.y = yLimit;
951
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
952
+ }
953
+ }
954
+ if (xSpeed < 1e-5 && ySpeed < 1e-5 && !(args.speedProgression && args.speedProgression.type == "linear" && args.speedProgression.amt != 0)) {
955
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
956
+ }
957
+ }
958
+ });
959
+ if (args.speedProgression)
960
+ updateTickerProgression(args, "speed", args.speedProgression);
961
+ }
962
+ onEndOfTicker(tag, tickerId, _element, tagToRemoveAfter2) {
963
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
964
+ }
965
+ };
966
+ ZoomTicker = __decorateClass([
967
+ tickerDecorator()
968
+ ], ZoomTicker);
969
+
970
+ // src/constants.ts
971
+ var Repeat = "repeat";
828
972
 
829
973
  // src/functions/ExportUtility.ts
830
974
  function createExportableElement(element) {
@@ -974,11 +1118,8 @@ function asciiArtLog() {
974
1118
  `);
975
1119
  }
976
1120
 
977
- // src/types/PauseType.ts
978
- var PauseValueType = "pause";
979
-
980
- // src/types/RepeatType.ts
981
- var Repeat = "repeat";
1121
+ // src/types/ticker/TagToRemoveAfterType.ts
1122
+ var tagToRemoveAfter = "tagToRemoveAfter";
982
1123
 
983
1124
  // src/managers/WindowManager.ts
984
1125
  var _GameWindowManager = class _GameWindowManager {
@@ -1162,25 +1303,25 @@ var _GameWindowManager = class _GameWindowManager {
1162
1303
  /**
1163
1304
  * Remove a canvas element from the canvas.
1164
1305
  * And remove all tickers that are not connected to any canvas element.
1165
- * @param tag The tag of the canvas element to be removed.
1306
+ * @param tags The tag of the canvas element to be removed.
1166
1307
  * @returns
1167
1308
  * @example
1168
1309
  * ```typescript
1169
1310
  * GameWindowManager.removeCanvasElement("bunny");
1170
1311
  * ```
1171
1312
  */
1172
- static removeCanvasElement(tag) {
1173
- if (typeof tag === "string") {
1174
- tag = [tag];
1313
+ static removeCanvasElement(tags) {
1314
+ if (typeof tags === "string") {
1315
+ tags = [tags];
1175
1316
  }
1176
- tag.forEach((t) => {
1177
- if (_GameWindowManager._children[t]) {
1178
- _GameWindowManager.app.stage.removeChild(_GameWindowManager._children[t]);
1179
- delete _GameWindowManager._children[t];
1317
+ tags.forEach((tag) => {
1318
+ if (_GameWindowManager._children[tag]) {
1319
+ _GameWindowManager.app.stage.removeChild(_GameWindowManager._children[tag]);
1320
+ delete _GameWindowManager._children[tag];
1321
+ _GameWindowManager.removeTickerByCanvasElement(tag);
1180
1322
  }
1181
1323
  });
1182
- _GameWindowManager.removeTickersWithoutAssociatedCanvasElement();
1183
- _GameWindowManager.childrenTagsOrder = _GameWindowManager.childrenTagsOrder.filter((t) => !tag.includes(t));
1324
+ _GameWindowManager.childrenTagsOrder = _GameWindowManager.childrenTagsOrder.filter((t) => !tags.includes(t));
1184
1325
  }
1185
1326
  /**
1186
1327
  * Get a canvas element by the tag.
@@ -1210,18 +1351,43 @@ var _GameWindowManager = class _GameWindowManager {
1210
1351
  _GameWindowManager.app.stage.removeChildren();
1211
1352
  _GameWindowManager._children = {};
1212
1353
  _GameWindowManager.childrenTagsOrder = [];
1213
- _GameWindowManager.removeTickers();
1354
+ _GameWindowManager.removeAllTickers();
1214
1355
  }
1215
1356
  /**
1216
1357
  * Edit the tag of a canvas element.
1217
1358
  * @param oldTag The old tag of the canvas element.
1218
1359
  * @param newTag The new tag of the canvas element.
1219
1360
  */
1220
- static editTagCanvasElement(oldTag, newTag) {
1361
+ static editCanvasElementTag(oldTag, newTag) {
1221
1362
  if (_GameWindowManager._children[oldTag]) {
1222
1363
  _GameWindowManager._children[newTag] = _GameWindowManager._children[oldTag];
1223
1364
  delete _GameWindowManager._children[oldTag];
1224
1365
  }
1366
+ if (_GameWindowManager._currentTickersSteps[oldTag]) {
1367
+ _GameWindowManager._currentTickersSteps[newTag] = _GameWindowManager._currentTickersSteps[oldTag];
1368
+ delete _GameWindowManager._currentTickersSteps[oldTag];
1369
+ }
1370
+ for (let id in _GameWindowManager._currentTickers) {
1371
+ let ticker = _GameWindowManager._currentTickers[id];
1372
+ if (ticker.canvasElementTags.includes(oldTag)) {
1373
+ ticker.canvasElementTags = ticker.canvasElementTags.map((t) => t === oldTag ? newTag : t);
1374
+ if (ticker.args.hasOwnProperty(tagToRemoveAfter)) {
1375
+ let tagToRemoveAfter2 = ticker.args.tagToRemoveAfter;
1376
+ if (typeof tagToRemoveAfter2 === "string") {
1377
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
1378
+ }
1379
+ if (Array.isArray(tagToRemoveAfter2)) {
1380
+ ticker.args.tagToRemoveAfter = tagToRemoveAfter2.map((t) => t === oldTag ? newTag : t);
1381
+ }
1382
+ }
1383
+ }
1384
+ }
1385
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1386
+ let TickerTimeout = _GameWindowManager._currentTickersTimeouts[timeout];
1387
+ if (TickerTimeout.tags.includes(oldTag)) {
1388
+ TickerTimeout.tags = TickerTimeout.tags.map((t) => t === oldTag ? newTag : t);
1389
+ }
1390
+ }
1225
1391
  }
1226
1392
  /** Edit Tickers Methods */
1227
1393
  /**
@@ -1230,106 +1396,127 @@ var _GameWindowManager = class _GameWindowManager {
1230
1396
  static get currentTickers() {
1231
1397
  return _GameWindowManager._currentTickers;
1232
1398
  }
1399
+ static get currentTickersList() {
1400
+ return Object.values(_GameWindowManager._currentTickers);
1401
+ }
1402
+ static get currentTickersWithoutCreatedBySteps() {
1403
+ return Object.fromEntries(Object.entries(_GameWindowManager._currentTickers).filter(([_, ticker]) => !ticker.createdByTicketStepsId));
1404
+ }
1233
1405
  /**
1234
1406
  * The steps of the tickers
1235
1407
  */
1236
1408
  static get currentTickersSteps() {
1237
1409
  return _GameWindowManager._currentTickersSteps;
1238
1410
  }
1411
+ static generateTickerId(tickerData) {
1412
+ try {
1413
+ return sha1__default.default(JSON.stringify(tickerData)).toString() + "_" + Math.random().toString(36).substring(7);
1414
+ } catch (e) {
1415
+ throw new Error(`[Pixi'VN] Error to generate ticker id: ${e}`);
1416
+ }
1417
+ }
1239
1418
  /**
1240
- * Run a ticker.
1419
+ * Run a ticker. You can run multiple addTicker with the same tag and different tickerClasses.
1420
+ * If you run a ticker with the same tag and tickerClass, the old ticker will be removed.
1421
+ * If already exists a sequence of tickers with the same tag, it will be removed.
1241
1422
  * @param canvasEslementTag The tag of the canvas element that will use the ticker.
1242
1423
  * @param ticker The ticker class to be run.
1243
1424
  * @param args The arguments to be used in the ticker.
1244
- * @param duration The time to be used in the ticker. This number is in milliseconds. If it is undefined, the ticker will run forever.
1425
+ * @param duration The time to be used in the ticker. This number is in seconds. If it is undefined, the ticker will run forever.
1245
1426
  * @param priority The priority to be used in the ticker.
1246
1427
  * @returns
1247
1428
  * @example
1248
1429
  * ```typescript
1249
- * GameWindowManager.addTicker("alien", new TickerRotate({ speed: 0.2 }))
1430
+ * GameWindowManager.addTicker("alien", new RotateTicker({ speed: 0.2 }))
1250
1431
  * ```
1251
1432
  */
1252
1433
  static addTicker(canvasElementTag, ticker) {
1253
- let tickerName = ticker.constructor.name;
1434
+ let tickerId = ticker.id;
1254
1435
  if (typeof canvasElementTag === "string") {
1255
1436
  canvasElementTag = [canvasElementTag];
1256
1437
  }
1257
- let t = geTickerInstanceByClassName(tickerName, ticker.args, ticker.duration, ticker.priority);
1258
- if (!t) {
1259
- console.error(`[Pixi'VN] Ticker ${tickerName} not found`);
1438
+ if (!geTickerInstanceById(tickerId, ticker.args, ticker.duration, ticker.priority)) {
1439
+ console.error(`[Pixi'VN] Ticker ${tickerId} not found`);
1260
1440
  return;
1261
1441
  }
1262
- _GameWindowManager.removeAssociationBetweenTickerCanvasElement(canvasElementTag, ticker);
1263
1442
  let tickerHistory = {
1264
1443
  fn: () => {
1265
1444
  },
1266
- className: tickerName,
1267
- args: ticker.args,
1445
+ id: tickerId,
1446
+ args: createExportableElement(ticker.args),
1268
1447
  canvasElementTags: canvasElementTag,
1269
1448
  priority: ticker.priority,
1270
1449
  duration: ticker.duration
1271
1450
  };
1272
- _GameWindowManager.pushTicker(tickerHistory, t);
1273
- _GameWindowManager.removeTickersWithoutAssociatedCanvasElement();
1451
+ let id = _GameWindowManager.generateTickerId(tickerHistory);
1452
+ _GameWindowManager.pushTicker(id, tickerHistory, ticker);
1274
1453
  if (ticker.duration) {
1275
1454
  let timeout = setTimeout(() => {
1276
1455
  _GameWindowManager.removeTickerTimeoutInfo(timeout);
1277
- _GameWindowManager.nextTickerStep(canvasElementTag);
1278
- }, ticker.duration);
1279
- _GameWindowManager.addTickerTimeoutInfo(canvasElementTag, tickerName, timeout.toString());
1456
+ let tickerTimeoutInfo = _GameWindowManager._currentTickersTimeouts[timeout.toString()];
1457
+ if (tickerTimeoutInfo) {
1458
+ _GameWindowManager.removeTicker(id);
1459
+ }
1460
+ }, ticker.duration * 1e3);
1461
+ _GameWindowManager.addTickerTimeoutInfo(canvasElementTag, tickerId, timeout.toString(), true);
1280
1462
  }
1281
1463
  }
1282
- static pushTicker(tickerData, ticker) {
1283
- _GameWindowManager.removeAssociationBetweenTickerCanvasElement(tickerData.canvasElementTags, tickerData);
1284
- _GameWindowManager._currentTickers.push(tickerData);
1464
+ static pushTicker(id, tickerData, ticker) {
1465
+ _GameWindowManager.removeAssociationBetweenTickerCanvasElement(tickerData.canvasElementTags, ticker);
1466
+ _GameWindowManager._currentTickers[id] = tickerData;
1285
1467
  tickerData.fn = (t) => {
1286
- ticker == null ? void 0 : ticker.fn(t, tickerData.args, tickerData.canvasElementTags);
1468
+ let data = _GameWindowManager._currentTickers[id];
1469
+ if (data) {
1470
+ ticker == null ? void 0 : ticker.fn(t, data.args, data.canvasElementTags, id);
1471
+ }
1287
1472
  };
1288
1473
  _GameWindowManager.app.ticker.add(tickerData.fn, void 0, tickerData.priority);
1289
1474
  }
1290
1475
  /**
1291
- * Run a sequence of tickers.
1476
+ * Run a sequence of tickers. If exists a ticker steps with the same tag, it will be removed.
1292
1477
  * @param tag The tag of canvas element that will use the tickers.
1293
1478
  * @param steps The steps of the tickers.
1479
+ * @param currentStepNumber The current step number. It is used to continue the sequence of tickers.
1294
1480
  * @returns
1295
1481
  * @example
1296
1482
  * ```typescript
1297
1483
  * GameWindowManager.addTickersSteps("alien", [
1298
- * new TickerRotate({ speed: 0.1, clockwise: true }, 2000),
1299
- * Pause(500),
1300
- * new TickerRotate({ speed: 0.2, clockwise: false }, 2000),
1484
+ * new RotateTicker({ speed: 0.1, clockwise: true }, 2), // 2 seconds
1485
+ * Pause(1), // 1 second
1486
+ * new RotateTicker({ speed: 0.2, clockwise: false }, 2),
1301
1487
  * Repeat,
1302
1488
  * ])
1303
1489
  * ```
1304
1490
  */
1305
- static addTickersSteps(tag, steps) {
1491
+ static addTickersSteps(tag, steps, currentStepNumber = 0) {
1306
1492
  if (steps.length == 0) {
1307
1493
  console.warn("[Pixi'VN] The steps of the tickers is empty");
1308
1494
  return;
1309
1495
  }
1310
- let alredyExists = _GameWindowManager._currentTickersSteps[tag] !== void 0;
1496
+ _GameWindowManager.removeTickerStepByCanvasElement(tag);
1311
1497
  _GameWindowManager._currentTickersSteps[tag] = {
1312
- currentStepNumber: 0,
1313
- steps: steps.map((s) => {
1314
- if (s === Repeat) {
1315
- return s;
1316
- }
1317
- if (!s.duration) {
1318
- console.warn("[Pixi'VN] Duration is not defined, so it will be set to 1000");
1319
- s.duration = 1e3;
1498
+ currentStepNumber,
1499
+ steps: steps.map((step) => {
1500
+ if (step === Repeat) {
1501
+ return step;
1320
1502
  }
1321
- if (s.hasOwnProperty("type") && s.type === PauseValueType) {
1322
- return s;
1503
+ if (step.hasOwnProperty("type") && step.type === "pause") {
1504
+ return step;
1323
1505
  }
1324
- let tickerName = s.constructor.name;
1506
+ let tickerId = step.id;
1325
1507
  return {
1326
- ticker: tickerName,
1327
- args: s.args,
1328
- duration: s.duration
1508
+ ticker: tickerId,
1509
+ args: createExportableElement(step.args),
1510
+ duration: step.duration
1329
1511
  };
1330
1512
  })
1331
1513
  };
1332
- if (!alredyExists) {
1514
+ _GameWindowManager.runTickersSteps(tag);
1515
+ }
1516
+ static restoneTickersSteps(data) {
1517
+ for (let tag in data) {
1518
+ let steps = data[tag];
1519
+ _GameWindowManager._currentTickersSteps[tag] = steps;
1333
1520
  _GameWindowManager.runTickersSteps(tag);
1334
1521
  }
1335
1522
  }
@@ -1343,70 +1530,106 @@ var _GameWindowManager = class _GameWindowManager {
1343
1530
  return;
1344
1531
  }
1345
1532
  }
1346
- if (step.hasOwnProperty("type") && step.type === PauseValueType) {
1533
+ if (step.hasOwnProperty("type") && step.type === "pause") {
1347
1534
  let timeout = setTimeout(() => {
1535
+ let tickerTimeoutInfo = _GameWindowManager._currentTickersTimeouts[timeout.toString()];
1536
+ if (tickerTimeoutInfo) {
1537
+ tickerTimeoutInfo.tags.forEach((tag2) => {
1538
+ _GameWindowManager.nextTickerStep(tag2);
1539
+ });
1540
+ }
1348
1541
  _GameWindowManager.removeTickerTimeoutInfo(timeout);
1349
- _GameWindowManager.nextTickerStep(tag);
1350
- }, step.duration);
1351
- _GameWindowManager.addTickerTimeoutInfo(tag, "steps", timeout.toString());
1542
+ }, step.duration * 1e3);
1543
+ _GameWindowManager.addTickerTimeoutInfo(tag, "steps", timeout.toString(), false);
1352
1544
  return;
1353
1545
  }
1354
- let ticker = geTickerInstanceByClassName(step.ticker, step.args, step.duration, step.priority);
1546
+ let ticker = geTickerInstanceById(step.ticker, step.args, step.duration, step.priority);
1355
1547
  if (!ticker) {
1356
1548
  console.error(`[Pixi'VN] Ticker ${step.ticker} not found`);
1357
1549
  return;
1358
1550
  }
1359
- _GameWindowManager.addTicker(tag, ticker);
1551
+ let tickerName = ticker.id;
1552
+ let tickerHistory = {
1553
+ fn: () => {
1554
+ },
1555
+ id: tickerName,
1556
+ args: createExportableElement(ticker.args),
1557
+ canvasElementTags: [tag],
1558
+ priority: ticker.priority,
1559
+ duration: ticker.duration,
1560
+ createdByTicketStepsId: tag
1561
+ };
1562
+ let id = _GameWindowManager.generateTickerId(tickerHistory);
1563
+ _GameWindowManager.pushTicker(id, tickerHistory, ticker);
1564
+ if (ticker.duration) {
1565
+ let timeout = setTimeout(() => {
1566
+ let tickerTimeoutInfo = _GameWindowManager._currentTickersTimeouts[timeout.toString()];
1567
+ if (tickerTimeoutInfo) {
1568
+ _GameWindowManager.removeTicker(id);
1569
+ tickerTimeoutInfo.tags.forEach((tag2) => {
1570
+ _GameWindowManager.nextTickerStep(tag2);
1571
+ });
1572
+ }
1573
+ _GameWindowManager.removeTickerTimeoutInfo(timeout);
1574
+ }, ticker.duration * 1e3);
1575
+ _GameWindowManager.addTickerTimeoutInfo(tag, tickerName, timeout.toString(), false);
1576
+ }
1360
1577
  }
1361
1578
  static nextTickerStep(tag) {
1362
- if (typeof tag === "string") {
1363
- tag = [tag];
1579
+ if (_GameWindowManager._currentTickersSteps[tag]) {
1580
+ let steps = _GameWindowManager._currentTickersSteps[tag];
1581
+ if (steps.currentStepNumber + 1 < steps.steps.length) {
1582
+ steps.currentStepNumber++;
1583
+ _GameWindowManager._currentTickersSteps[tag] = steps;
1584
+ _GameWindowManager.runTickersSteps(tag);
1585
+ } else {
1586
+ _GameWindowManager.removeTickerStepByCanvasElement(tag);
1587
+ }
1364
1588
  }
1365
- tag.forEach((tag2) => {
1366
- if (_GameWindowManager._currentTickersSteps[tag2]) {
1367
- let steps = _GameWindowManager._currentTickersSteps[tag2];
1368
- if (steps.currentStepNumber + 1 < steps.steps.length) {
1369
- steps.currentStepNumber++;
1370
- _GameWindowManager._currentTickersSteps[tag2] = steps;
1371
- _GameWindowManager.runTickersSteps(tag2);
1372
- } else {
1373
- delete _GameWindowManager._currentTickersSteps[tag2];
1374
- }
1589
+ }
1590
+ static onEndOfTicker(canvasElementTags, ticker, canvasElementTagsToDelete, tickerId) {
1591
+ let tickerData = _GameWindowManager._currentTickers[tickerId];
1592
+ _GameWindowManager.removeAssociationBetweenTickerCanvasElement(canvasElementTags, ticker);
1593
+ _GameWindowManager.removeCanvasElement(canvasElementTagsToDelete);
1594
+ if (tickerData) {
1595
+ _GameWindowManager.removeTicker(tickerId);
1596
+ if (tickerData.duration == void 0 && tickerData.createdByTicketStepsId) {
1597
+ _GameWindowManager.nextTickerStep(tickerData.createdByTicketStepsId);
1375
1598
  }
1376
- });
1599
+ }
1377
1600
  }
1378
1601
  /**
1379
1602
  * Remove a connection between a canvas element and a ticker.
1380
1603
  * And remove the ticker if there is no canvas element connected to it.
1381
- * @param tag The tag of the canvas element that will use the ticker.
1604
+ * @param tags The tag of the canvas element that will use the ticker.
1382
1605
  * @param ticker The ticker class to be removed.
1383
1606
  * @example
1384
1607
  * ```typescript
1385
- * GameWindowManager.removeAssociationBetweenTickerCanvasElement("alien", TickerRotate)
1608
+ * GameWindowManager.removeAssociationBetweenTickerCanvasElement("alien", RotateTicker)
1386
1609
  * ```
1387
1610
  */
1388
- static removeAssociationBetweenTickerCanvasElement(tag, ticker) {
1389
- let tickerName;
1390
- if (ticker instanceof TickerBase) {
1391
- tickerName = ticker.constructor.name;
1611
+ static removeAssociationBetweenTickerCanvasElement(tags, ticker) {
1612
+ let tickerId;
1613
+ if (typeof ticker === "string") {
1614
+ tickerId = ticker;
1615
+ } else if (ticker instanceof TickerBase) {
1616
+ tickerId = ticker.id;
1392
1617
  } else {
1393
- tickerName = ticker.name;
1618
+ tickerId = ticker.prototype.id;
1394
1619
  }
1395
- if (typeof tag === "string") {
1396
- tag = [tag];
1620
+ if (typeof tags === "string") {
1621
+ tags = [tags];
1397
1622
  }
1398
- _GameWindowManager._currentTickers = _GameWindowManager._currentTickers.map((t) => {
1399
- if (t.className === tickerName) {
1400
- t.canvasElementTags = t.canvasElementTags.filter((e) => !tag.includes(e));
1623
+ for (let id in _GameWindowManager._currentTickers) {
1624
+ let ticker2 = _GameWindowManager._currentTickers[id];
1625
+ if (ticker2.id === tickerId) {
1626
+ _GameWindowManager._currentTickers[id].canvasElementTags = ticker2.canvasElementTags.filter((e) => !tags.includes(e));
1401
1627
  }
1402
- return t;
1403
- });
1404
- for (let timeout in _GameWindowManager.currentTickersTimeouts) {
1405
- let t = _GameWindowManager.currentTickersTimeouts[timeout].tags.filter((e) => !tag.includes(e));
1406
- if (t.length == 0) {
1407
- _GameWindowManager.removeTickerTimeoutInfo(timeout);
1408
- } else {
1409
- _GameWindowManager.currentTickersTimeouts[timeout].tags = t;
1628
+ }
1629
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1630
+ let TickerTimeout = _GameWindowManager._currentTickersTimeouts[timeout];
1631
+ if (TickerTimeout.ticker === tickerId && TickerTimeout.canBeDeletedBeforeEnd) {
1632
+ _GameWindowManager._currentTickersTimeouts[timeout].tags = TickerTimeout.tags.filter((t) => !tags.includes(t));
1410
1633
  }
1411
1634
  }
1412
1635
  _GameWindowManager.removeTickersWithoutAssociatedCanvasElement();
@@ -1415,49 +1638,117 @@ var _GameWindowManager = class _GameWindowManager {
1415
1638
  * Remove all tickers that are not connected to any existing canvas element.
1416
1639
  */
1417
1640
  static removeTickersWithoutAssociatedCanvasElement() {
1418
- let currentTickers = _GameWindowManager._currentTickers.map((t) => {
1419
- t.canvasElementTags = t.canvasElementTags.filter((e) => _GameWindowManager._children[e]);
1420
- return t;
1421
- });
1422
- currentTickers.filter((t) => t.canvasElementTags.length === 0).forEach((t) => {
1423
- _GameWindowManager.app.ticker.remove(t.fn);
1424
- });
1425
- currentTickers = currentTickers.filter((t) => t.canvasElementTags.length > 0);
1426
- _GameWindowManager._currentTickers = currentTickers;
1641
+ for (let id in _GameWindowManager._currentTickers) {
1642
+ let ticker = _GameWindowManager._currentTickers[id];
1643
+ ticker.canvasElementTags = ticker.canvasElementTags.filter((e) => _GameWindowManager._children[e]);
1644
+ if (ticker.canvasElementTags.length === 0) {
1645
+ _GameWindowManager.removeTicker(id);
1646
+ }
1647
+ }
1427
1648
  for (let tag in _GameWindowManager._currentTickersSteps) {
1428
1649
  if (_GameWindowManager._children[tag] === void 0) {
1429
1650
  delete _GameWindowManager._currentTickersSteps[tag];
1430
1651
  }
1431
1652
  }
1653
+ Object.entries(_GameWindowManager._currentTickersTimeouts).forEach(([timeout, { tags }]) => {
1654
+ if (tags.length === 0) {
1655
+ _GameWindowManager.removeTickerTimeout(timeout);
1656
+ }
1657
+ });
1432
1658
  }
1433
- static addTickerTimeoutInfo(tags, ticker, timeout) {
1659
+ static addTickerTimeoutInfo(tags, ticker, timeout, canBeDeletedBeforeEnd) {
1434
1660
  if (typeof tags === "string") {
1435
1661
  tags = [tags];
1436
1662
  }
1437
- _GameWindowManager.currentTickersTimeouts[timeout] = {
1663
+ _GameWindowManager._currentTickersTimeouts[timeout] = {
1438
1664
  tags,
1439
- ticker
1665
+ ticker,
1666
+ canBeDeletedBeforeEnd
1440
1667
  };
1441
1668
  }
1442
1669
  static removeTickerTimeoutInfo(timeout) {
1443
1670
  if (typeof timeout !== "string") {
1444
1671
  timeout = timeout.toString();
1445
1672
  }
1446
- if (_GameWindowManager.currentTickersTimeouts[timeout]) {
1447
- delete _GameWindowManager.currentTickersTimeouts[timeout];
1673
+ if (_GameWindowManager._currentTickersTimeouts[timeout]) {
1674
+ delete _GameWindowManager._currentTickersTimeouts[timeout];
1675
+ }
1676
+ }
1677
+ static removeTickerTimeout(timeout) {
1678
+ if (typeof timeout !== "string") {
1679
+ timeout = timeout.toString();
1680
+ }
1681
+ clearTimeout(Number(timeout));
1682
+ _GameWindowManager.removeTickerTimeoutInfo(timeout);
1683
+ }
1684
+ static removeTickerTimeoutsByTag(tag, checkCanBeDeletedBeforeEnd) {
1685
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1686
+ let tagsWithoutTagToRemove = _GameWindowManager._currentTickersTimeouts[timeout].tags.filter((t) => t !== tag);
1687
+ if (tagsWithoutTagToRemove.length === 0) {
1688
+ let canBeDeletedBeforeEnd = _GameWindowManager._currentTickersTimeouts[timeout].canBeDeletedBeforeEnd;
1689
+ if (!checkCanBeDeletedBeforeEnd || canBeDeletedBeforeEnd) {
1690
+ _GameWindowManager.removeTickerTimeout(timeout);
1691
+ }
1692
+ } else {
1693
+ _GameWindowManager._currentTickersTimeouts[timeout].tags = tagsWithoutTagToRemove;
1694
+ }
1448
1695
  }
1449
1696
  }
1450
1697
  /**
1451
1698
  * Remove all tickers from the canvas.
1452
1699
  */
1453
- static removeTickers() {
1700
+ static removeAllTickers() {
1454
1701
  _GameWindowManager._currentTickersSteps = {};
1455
- _GameWindowManager._currentTickers.forEach((t) => {
1456
- _GameWindowManager.app.ticker.remove(t.fn);
1702
+ Object.keys(_GameWindowManager._currentTickers).forEach((id) => {
1703
+ _GameWindowManager.removeTicker(id);
1457
1704
  });
1458
- _GameWindowManager._currentTickers = [];
1459
- for (let timeout in _GameWindowManager.currentTickersTimeouts) {
1460
- _GameWindowManager.removeTickerTimeoutInfo(timeout);
1705
+ _GameWindowManager._currentTickers = {};
1706
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1707
+ _GameWindowManager.removeTickerTimeout(timeout);
1708
+ }
1709
+ }
1710
+ /**
1711
+ * Remove all tickers from a canvas element.
1712
+ * @param tag The tag of the canvas element that will use the ticker.
1713
+ */
1714
+ static removeTickerByCanvasElement(tag) {
1715
+ if (typeof tag === "string") {
1716
+ tag = [tag];
1717
+ }
1718
+ tag.forEach((tag2) => {
1719
+ for (let id in _GameWindowManager._currentTickers) {
1720
+ let ticker = _GameWindowManager._currentTickers[id];
1721
+ if (ticker.canvasElementTags.includes(tag2)) {
1722
+ _GameWindowManager.removeTicker(id);
1723
+ }
1724
+ }
1725
+ if (_GameWindowManager._currentTickersSteps[tag2]) {
1726
+ delete _GameWindowManager._currentTickersSteps[tag2];
1727
+ }
1728
+ _GameWindowManager.removeTickerTimeoutsByTag(tag2, false);
1729
+ delete _GameWindowManager._currentTickersSteps[tag2];
1730
+ });
1731
+ }
1732
+ static removeTickerStepByCanvasElement(tag) {
1733
+ if (_GameWindowManager._currentTickersSteps[tag]) {
1734
+ delete _GameWindowManager._currentTickersSteps[tag];
1735
+ }
1736
+ for (let id in _GameWindowManager._currentTickers) {
1737
+ let ticker = _GameWindowManager._currentTickers[id];
1738
+ if (ticker.createdByTicketStepsId === tag) {
1739
+ _GameWindowManager.removeTicker(id);
1740
+ }
1741
+ }
1742
+ }
1743
+ static removeTicker(tickerId) {
1744
+ let ticker = _GameWindowManager._currentTickers[tickerId];
1745
+ if (ticker) {
1746
+ if (ticker.args.hasOwnProperty(tagToRemoveAfter)) {
1747
+ let tagToRemoveAfter2 = ticker.args.tagToRemoveAfter;
1748
+ _GameWindowManager.removeCanvasElement(tagToRemoveAfter2);
1749
+ }
1750
+ _GameWindowManager.app.ticker.remove(ticker.fn);
1751
+ delete _GameWindowManager._currentTickers[tickerId];
1461
1752
  }
1462
1753
  }
1463
1754
  /**
@@ -1484,7 +1775,8 @@ var _GameWindowManager = class _GameWindowManager {
1484
1775
  currentElements[tag] = exportCanvasElement(_GameWindowManager._children[tag]);
1485
1776
  }
1486
1777
  return {
1487
- currentTickers: createExportableElement(_GameWindowManager._currentTickers),
1778
+ currentTickers: createExportableElement(_GameWindowManager.currentTickersWithoutCreatedBySteps),
1779
+ currentTickersSteps: createExportableElement(_GameWindowManager._currentTickersSteps),
1488
1780
  currentElements: createExportableElement(currentElements),
1489
1781
  childrenTagsOrder: createExportableElement(_GameWindowManager.childrenTagsOrder)
1490
1782
  };
@@ -1519,15 +1811,20 @@ var _GameWindowManager = class _GameWindowManager {
1519
1811
  }
1520
1812
  if (data.hasOwnProperty("currentTickers")) {
1521
1813
  let currentTickers = data["currentTickers"];
1522
- currentTickers.forEach((t) => {
1814
+ for (let id in currentTickers) {
1815
+ let t = currentTickers[id];
1523
1816
  let tags = t.canvasElementTags;
1524
- let ticker = geTickerInstanceByClassName(t.className, t.args, t.duration, t.priority);
1817
+ let ticker = geTickerInstanceById(t.id, t.args, t.duration, t.priority);
1525
1818
  if (ticker) {
1526
1819
  _GameWindowManager.addTicker(tags, ticker);
1527
1820
  } else {
1528
- console.error(`[Pixi'VN] Ticker ${t.className} not found`);
1821
+ console.error(`[Pixi'VN] Ticker ${t.id} not found`);
1529
1822
  }
1530
- });
1823
+ }
1824
+ }
1825
+ if (data.hasOwnProperty("currentTickersSteps")) {
1826
+ let currentTickersSteps = data["currentTickersSteps"];
1827
+ _GameWindowManager.restoneTickersSteps(currentTickersSteps);
1531
1828
  }
1532
1829
  } catch (e) {
1533
1830
  console.error("[Pixi'VN] Error importing data", e);
@@ -1541,9 +1838,9 @@ _GameWindowManager._children = {};
1541
1838
  * The order of the children tags.
1542
1839
  */
1543
1840
  _GameWindowManager.childrenTagsOrder = [];
1544
- _GameWindowManager._currentTickers = [];
1841
+ _GameWindowManager._currentTickers = {};
1545
1842
  _GameWindowManager._currentTickersSteps = {};
1546
- _GameWindowManager.currentTickersTimeouts = {};
1843
+ _GameWindowManager._currentTickersTimeouts = {};
1547
1844
  var GameWindowManager = _GameWindowManager;
1548
1845
 
1549
1846
  // src/managers/StepManager.ts
@@ -1610,7 +1907,8 @@ var _GameStepManager = class _GameStepManager {
1610
1907
  canvas: {
1611
1908
  childrenTagsOrder: [],
1612
1909
  currentElements: {},
1613
- currentTickers: []
1910
+ currentTickers: {},
1911
+ currentTickersSteps: {}
1614
1912
  },
1615
1913
  labelIndex: -1,
1616
1914
  openedLabels: []
@@ -1721,6 +2019,13 @@ var _GameStepManager = class _GameStepManager {
1721
2019
  _GameStepManager._openedLabels = _GameStepManager.originalStepData.openedLabels;
1722
2020
  }
1723
2021
  /* Run Methods */
2022
+ static get canGoNext() {
2023
+ let options = getChoiceMenuOptions();
2024
+ if (options && options.length > 0) {
2025
+ return false;
2026
+ }
2027
+ return true;
2028
+ }
1724
2029
  /**
1725
2030
  * Execute the next step and add it to the history.
1726
2031
  * @param props The props to pass to the step.
@@ -1730,7 +2035,7 @@ var _GameStepManager = class _GameStepManager {
1730
2035
  * ```typescript
1731
2036
  * function nextOnClick() {
1732
2037
  * setLoading(true)
1733
- * GameStepManager.runNextStep(yourParams)
2038
+ * GameStepManager.goNext(yourParams)
1734
2039
  * .then((result) => {
1735
2040
  * setUpdate((p) => p + 1)
1736
2041
  * setLoading(false)
@@ -1745,8 +2050,12 @@ var _GameStepManager = class _GameStepManager {
1745
2050
  * }
1746
2051
  * ```
1747
2052
  */
1748
- static runNextStep(props, choiseMade) {
2053
+ static goNext(props, choiseMade) {
1749
2054
  return __async(this, null, function* () {
2055
+ if (!_GameStepManager.canGoNext) {
2056
+ console.warn("[Pixi'VN] The player must make a choice");
2057
+ return;
2058
+ }
1750
2059
  _GameStepManager.increaseCurrentStepIndex();
1751
2060
  return yield _GameStepManager.runCurrentStep(props, choiseMade);
1752
2061
  });
@@ -1777,7 +2086,7 @@ var _GameStepManager = class _GameStepManager {
1777
2086
  return result;
1778
2087
  } else if (_GameStepManager.openedLabels.length > 1) {
1779
2088
  _GameStepManager.closeCurrentLabel();
1780
- return yield _GameStepManager.runNextStep(props, choiseMade);
2089
+ return yield _GameStepManager.goNext(props, choiseMade);
1781
2090
  } else {
1782
2091
  _GameStepManager.restorLastLabelList();
1783
2092
  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");
@@ -1821,8 +2130,15 @@ var _GameStepManager = class _GameStepManager {
1821
2130
  }
1822
2131
  try {
1823
2132
  if (labelId === CLOSE_LABEL_ID) {
1824
- let closeLabel = newCloseLabel(choiseMade);
1825
- return _GameStepManager.closeChoiceMenu(closeLabel, props);
2133
+ let closeCurrentLabel = newCloseLabel(choiseMade);
2134
+ let choice = {
2135
+ label: closeCurrentLabel,
2136
+ text: "",
2137
+ closeCurrentLabel: false,
2138
+ type: "close",
2139
+ props: {}
2140
+ };
2141
+ return _GameStepManager.closeChoiceMenu(choice, props);
1826
2142
  }
1827
2143
  let tempLabel = getLabelById(labelId);
1828
2144
  if (!tempLabel) {
@@ -1872,8 +2188,15 @@ var _GameStepManager = class _GameStepManager {
1872
2188
  }
1873
2189
  try {
1874
2190
  if (labelId === CLOSE_LABEL_ID) {
1875
- let closeLabel = newCloseLabel(choiseMade);
1876
- return _GameStepManager.closeChoiceMenu(closeLabel, props);
2191
+ let closeCurrentLabel = newCloseLabel(choiseMade);
2192
+ let choice = {
2193
+ label: closeCurrentLabel,
2194
+ text: "",
2195
+ closeCurrentLabel: false,
2196
+ type: "close",
2197
+ props: {}
2198
+ };
2199
+ return _GameStepManager.closeChoiceMenu(choice, props);
1877
2200
  }
1878
2201
  let tempLabel = getLabelById(labelId);
1879
2202
  if (!tempLabel) {
@@ -1889,7 +2212,8 @@ var _GameStepManager = class _GameStepManager {
1889
2212
  }
1890
2213
  /**
1891
2214
  * When the player is in a choice menu, can use this function to exit to the choice menu.
1892
- * @param props The props to pass to the step.
2215
+ * @param choice
2216
+ * @param props
1893
2217
  * @returns StepLabelResultType or undefined.
1894
2218
  * @example
1895
2219
  * ```typescript
@@ -1900,13 +2224,17 @@ var _GameStepManager = class _GameStepManager {
1900
2224
  * })
1901
2225
  * ```
1902
2226
  */
1903
- static closeChoiceMenu(label, props) {
2227
+ static closeChoiceMenu(choice, props) {
1904
2228
  return __async(this, null, function* () {
2229
+ let label = choice.label;
1905
2230
  let choiseMade = void 0;
1906
2231
  if (typeof label.choiseIndex === "number") {
1907
2232
  choiseMade = label.choiseIndex;
1908
2233
  }
1909
- return _GameStepManager.runNextStep(props, choiseMade);
2234
+ if (choice.closeCurrentLabel) {
2235
+ _GameStepManager.closeCurrentLabel();
2236
+ }
2237
+ return _GameStepManager.goNext(props, choiseMade);
1910
2238
  });
1911
2239
  }
1912
2240
  /* After Update Methods */
@@ -2108,8 +2436,9 @@ var Close = "close";
2108
2436
  var ChoiceMenuOptionClose = class {
2109
2437
  /**
2110
2438
  * @param text Text to be displayed in the menu
2439
+ * @param closeCurrentLabel If true, the current label will be closed. @default false
2111
2440
  */
2112
- constructor(text) {
2441
+ constructor(text, closeCurrentLabel = false) {
2113
2442
  /**
2114
2443
  * Label to be opened when the option is selected
2115
2444
  */
@@ -2123,6 +2452,7 @@ var ChoiceMenuOptionClose = class {
2123
2452
  */
2124
2453
  this.props = {};
2125
2454
  this.text = text;
2455
+ this.closeCurrentLabel = closeCurrentLabel;
2126
2456
  }
2127
2457
  };
2128
2458
 
@@ -2145,15 +2475,15 @@ var DialogueBaseModel = class {
2145
2475
  if (typeof text === "string") {
2146
2476
  this.text = text;
2147
2477
  if (typeof character === "string") {
2148
- this.characterId = character;
2478
+ this.character = character;
2149
2479
  } else {
2150
- this.characterId = character == null ? void 0 : character.id;
2480
+ this.character = character == null ? void 0 : character.id;
2151
2481
  }
2152
2482
  this.oltherParams = oltherParams;
2153
2483
  } else {
2154
2484
  this.text = text.text;
2155
- if (text.characterId) {
2156
- this.characterId = text.characterId;
2485
+ if (text.character) {
2486
+ this.character = text.character;
2157
2487
  }
2158
2488
  this.oltherParams = text.oltherParams || {};
2159
2489
  }
@@ -2166,7 +2496,7 @@ var DialogueBaseModel = class {
2166
2496
  export() {
2167
2497
  return {
2168
2498
  text: this.text,
2169
- characterId: this.characterId,
2499
+ character: this.character,
2170
2500
  oltherParams: this.oltherParams
2171
2501
  };
2172
2502
  }
@@ -2175,21 +2505,21 @@ var DialogueBaseModel = class {
2175
2505
  // src/functions/DialogueUtility.ts
2176
2506
  function setDialogue(props) {
2177
2507
  let text = "";
2178
- let characterId = void 0;
2508
+ let character = void 0;
2179
2509
  let dialogue;
2180
2510
  if (typeof props === "string") {
2181
2511
  text = props;
2182
- dialogue = new DialogueBaseModel(text, characterId);
2512
+ dialogue = new DialogueBaseModel(text, character);
2183
2513
  } else if (!(props instanceof DialogueBaseModel)) {
2184
2514
  text = props.text;
2185
2515
  if (props.character) {
2186
2516
  if (typeof props.character === "string") {
2187
- characterId = props.character;
2517
+ character = props.character;
2188
2518
  } else {
2189
- characterId = props.character.id;
2519
+ character = props.character.id;
2190
2520
  }
2191
2521
  }
2192
- dialogue = new DialogueBaseModel(text, characterId);
2522
+ dialogue = new DialogueBaseModel(text, character);
2193
2523
  } else {
2194
2524
  dialogue = props;
2195
2525
  }
@@ -2207,7 +2537,8 @@ function setChoiceMenuOptions(options) {
2207
2537
  if (option instanceof ChoiceMenuOptionClose) {
2208
2538
  return {
2209
2539
  text: option.text,
2210
- type: Close
2540
+ type: Close,
2541
+ closeCurrentLabel: option.closeCurrentLabel
2211
2542
  };
2212
2543
  }
2213
2544
  return __spreadProps(__spreadValues({}, option), {
@@ -2228,6 +2559,7 @@ function getChoiceMenuOptions() {
2228
2559
  text: option.text,
2229
2560
  label: itemLabel,
2230
2561
  type: Close,
2562
+ closeCurrentLabel: option.closeCurrentLabel,
2231
2563
  props: {}
2232
2564
  });
2233
2565
  return;