@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
@@ -27,8 +27,7 @@ var __decorateClass = (decorators, target, key, kind) => {
27
27
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
28
28
  if (decorator = decorators[i])
29
29
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
30
- if (kind && result)
31
- __defProp(target, key, result);
30
+ if (kind && result) __defProp(target, key, result);
32
31
  return result;
33
32
  };
34
33
  var __async = (__this, __arguments, generator) => {
@@ -74,7 +73,7 @@ var Label = class {
74
73
  this._choiseIndex = choiseIndex;
75
74
  }
76
75
  /**
77
- * Get the id of the label
76
+ * Get the id of the label. This variable is used in the system to get the label by id, {@link getLabelById}
78
77
  */
79
78
  get id() {
80
79
  return this._id;
@@ -142,138 +141,6 @@ function getLabelById(id) {
142
141
  }
143
142
  return label;
144
143
  }
145
-
146
- // src/decorators/CanvasElementDecorator.ts
147
- var registeredCanvasElement = {};
148
- function getCanvasElementInstanceByClassName(canvasName) {
149
- try {
150
- let eventType = registeredCanvasElement[canvasName];
151
- if (!eventType) {
152
- if (canvasName === "CanvasContainer") {
153
- eventType = CanvasContainer;
154
- } else if (canvasName === "CanvasImage") {
155
- eventType = CanvasImage;
156
- } else if (canvasName === "CanvasSprite") {
157
- eventType = CanvasSprite;
158
- } else if (canvasName === "CanvasText") {
159
- eventType = CanvasText;
160
- }
161
- }
162
- if (!eventType) {
163
- console.error(`[Pixi'VN] CanvasElement ${canvasName} not found`);
164
- return;
165
- }
166
- let canvasElement = new eventType();
167
- return canvasElement;
168
- } catch (e) {
169
- console.error(`[Pixi'VN] Error while getting CanvasElement ${canvasName}`, e);
170
- return;
171
- }
172
- }
173
-
174
- // src/functions/CanvasUtility.ts
175
- function getTextureMemory(texture) {
176
- let sourceTexture = texture.source;
177
- let textureMemory = {
178
- image: sourceTexture.label
179
- };
180
- return textureMemory;
181
- }
182
- function exportCanvasElement(element) {
183
- return element.memory;
184
- }
185
- function importCanvasElement(memory) {
186
- let element = getCanvasElementInstanceByClassName(memory.className);
187
- if (element) {
188
- element.memory = memory;
189
- } else {
190
- throw new Error("[Pixi'VN] The element " + memory.className + " could not be created");
191
- }
192
- return element;
193
- }
194
-
195
- // src/classes/canvas/CanvasContainer.ts
196
- var CanvasContainer = class extends Container {
197
- get memory() {
198
- let memory = getMemoryContainer(this);
199
- this.children.forEach((child) => {
200
- memory.elements.push(exportCanvasElement(child));
201
- });
202
- return memory;
203
- }
204
- set memory(value) {
205
- setMemoryContainer(this, value);
206
- value.elements.forEach((child) => {
207
- this.addChild(importCanvasElement(child));
208
- });
209
- }
210
- };
211
- function getMemoryContainer(element) {
212
- return {
213
- className: "CanvasContainer",
214
- elements: [],
215
- width: element.width,
216
- height: element.height,
217
- isRenderGroup: element.isRenderGroup,
218
- blendMode: element.blendMode,
219
- tint: element.tint,
220
- alpha: element.alpha,
221
- angle: element.angle,
222
- renderable: element.renderable,
223
- rotation: element.rotation,
224
- scale: { x: element.scale.x, y: element.scale.y },
225
- pivot: { x: element.pivot.x, y: element.pivot.y },
226
- position: { x: element.position.x, y: element.position.y },
227
- skew: { x: element.skew.x, y: element.skew.y },
228
- visible: element.visible,
229
- culled: element.culled,
230
- x: element.x,
231
- y: element.y,
232
- boundsArea: element.boundsArea,
233
- cursor: element.cursor,
234
- eventMode: element.eventMode,
235
- interactive: element.interactive,
236
- interactiveChildren: element.interactiveChildren,
237
- hitArea: element.hitArea
238
- };
239
- }
240
- function setMemoryContainer(element, memory) {
241
- memory.width && (element.width = memory.width);
242
- memory.height && (element.height = memory.height);
243
- memory.isRenderGroup && (element.isRenderGroup = memory.isRenderGroup);
244
- memory.blendMode && (element.blendMode = memory.blendMode);
245
- memory.tint && (element.tint = memory.tint);
246
- memory.alpha && (element.alpha = memory.alpha);
247
- memory.angle && (element.angle = memory.angle);
248
- memory.renderable && (element.renderable = memory.renderable);
249
- memory.rotation && (element.rotation = memory.rotation);
250
- if (memory.scale) {
251
- if (typeof memory.scale === "number") {
252
- element.scale.set(memory.scale, memory.scale);
253
- } else {
254
- element.scale.set(memory.scale.x, memory.scale.y);
255
- }
256
- }
257
- if (memory.pivot) {
258
- if (typeof memory.pivot === "number") {
259
- element.pivot.set(memory.pivot, memory.pivot);
260
- } else {
261
- element.pivot.set(memory.pivot.x, memory.pivot.y);
262
- }
263
- }
264
- memory.position && element.position.set(memory.position.x, memory.position.y);
265
- memory.skew && element.skew.set(memory.skew.x, memory.skew.y);
266
- memory.visible && (element.visible = memory.visible);
267
- memory.culled && (element.culled = memory.culled);
268
- memory.x && (element.x = memory.x);
269
- memory.y && (element.y = memory.y);
270
- memory.boundsArea && (element.boundsArea = memory.boundsArea);
271
- memory.cursor && (element.cursor = memory.cursor);
272
- memory.eventMode && (element.eventMode = memory.eventMode);
273
- memory.interactive && (element.interactive = memory.interactive);
274
- memory.interactiveChildren && (element.interactiveChildren = memory.interactiveChildren);
275
- memory.hitArea && (element.hitArea = memory.hitArea);
276
- }
277
144
  function getTexture(imageUrl) {
278
145
  return __async(this, null, function* () {
279
146
  if (Assets.cache.has(imageUrl)) {
@@ -326,40 +193,43 @@ function getTextStyle(style) {
326
193
 
327
194
  // src/decorators/EventDecorator.ts
328
195
  var registeredEvents = {};
329
- function getEventTypeByClassName(eventName) {
196
+ function getEventTypeById(eventId) {
330
197
  try {
331
- let eventType = registeredEvents[eventName];
198
+ let eventType = registeredEvents[eventId];
332
199
  if (!eventType) {
333
- console.error(`[Pixi'VN] Event ${eventName} not found`);
200
+ console.error(`[Pixi'VN] Event ${eventId} not found`);
334
201
  return;
335
202
  }
336
203
  new eventType();
337
204
  return eventType;
338
205
  } catch (e) {
339
- console.error(`[Pixi'VN] Error while getting Event ${eventName}`, e);
206
+ console.error(`[Pixi'VN] Error while getting Event ${eventId}`, e);
340
207
  return;
341
208
  }
342
209
  }
343
- function getEventInstanceByClassName(eventName) {
210
+ function getEventInstanceById(eventId) {
344
211
  try {
345
- let eventType = registeredEvents[eventName];
212
+ let eventType = registeredEvents[eventId];
346
213
  if (!eventType) {
347
- console.error(`[Pixi'VN] Event ${eventName} not found`);
214
+ console.error(`[Pixi'VN] Event ${eventId} not found`);
348
215
  return;
349
216
  }
350
217
  let event = new eventType();
351
218
  return event;
352
219
  } catch (e) {
353
- console.error(`[Pixi'VN] Error while getting Event ${eventName}`, e);
220
+ console.error(`[Pixi'VN] Error while getting Event ${eventId}`, e);
354
221
  return;
355
222
  }
356
223
  }
357
224
 
358
225
  // src/classes/canvas/CanvasSprite.ts
226
+ var CANVAS_SPRITE_ID = "CanvasSprite";
359
227
  var CanvasSprite = class _CanvasSprite extends Sprite {
360
- constructor() {
361
- super(...arguments);
228
+ constructor(options) {
229
+ super(options);
230
+ this.pixivnId = CANVAS_SPRITE_ID;
362
231
  this._onEvents = {};
232
+ this.pixivnId = this.constructor.prototype.pixivnId;
363
233
  }
364
234
  get memory() {
365
235
  return getMemorySprite(this);
@@ -400,9 +270,9 @@ var CanvasSprite = class _CanvasSprite extends Sprite {
400
270
  * ```
401
271
  */
402
272
  onEvent(event, eventClass) {
403
- let className = eventClass.name;
404
- let instance = getEventInstanceByClassName(className);
405
- this._onEvents[event] = className;
273
+ let id = eventClass.prototype.id;
274
+ let instance = getEventInstanceById(id);
275
+ this._onEvents[event] = id;
406
276
  if (instance) {
407
277
  super.on(event, () => {
408
278
  instance.fn(event, this);
@@ -431,7 +301,7 @@ var CanvasSprite = class _CanvasSprite extends Sprite {
431
301
  function getMemorySprite(element) {
432
302
  let temp = getMemoryContainer(element);
433
303
  return __spreadProps(__spreadValues({}, temp), {
434
- className: "CanvasSprite",
304
+ pixivnId: element.pixivnId,
435
305
  textureImage: getTextureMemory(element.texture),
436
306
  anchor: { x: element.anchor.x, y: element.anchor.y },
437
307
  roundPixels: element.roundPixels,
@@ -454,8 +324,8 @@ function setMemorySprite(element, memory) {
454
324
  }
455
325
  memory.roundPixels && (element.roundPixels = memory.roundPixels);
456
326
  for (let event in memory.onEvents) {
457
- let className = memory.onEvents[event];
458
- let instance = getEventTypeByClassName(className);
327
+ let id = memory.onEvents[event];
328
+ let instance = getEventTypeById(id);
459
329
  if (instance) {
460
330
  element.onEvent(event, instance);
461
331
  }
@@ -463,9 +333,11 @@ function setMemorySprite(element, memory) {
463
333
  }
464
334
 
465
335
  // src/classes/canvas/CanvasImage.ts
336
+ var CANVAS_IMAGE_ID = "CanvasImage";
466
337
  var CanvasImage = class _CanvasImage extends CanvasSprite {
467
338
  constructor(options, imageLink) {
468
339
  super(options);
340
+ this.pixivnId = CANVAS_IMAGE_ID;
469
341
  this.imageLink = "";
470
342
  if (imageLink) {
471
343
  this.imageLink = imageLink;
@@ -473,12 +345,13 @@ var CanvasImage = class _CanvasImage extends CanvasSprite {
473
345
  }
474
346
  get memory() {
475
347
  return __spreadProps(__spreadValues({}, getMemorySprite(this)), {
476
- className: "CanvasImage",
477
- textureImage: { image: this.imageLink }
348
+ pixivnId: this.pixivnId,
349
+ imageLink: this.imageLink
478
350
  });
479
351
  }
480
352
  set memory(memory) {
481
353
  setMemorySprite(this, memory);
354
+ this.imageLink = memory.imageLink;
482
355
  }
483
356
  static from(source, skipCache) {
484
357
  let sprite = Sprite.from(source, skipCache);
@@ -506,10 +379,13 @@ var CanvasImage = class _CanvasImage extends CanvasSprite {
506
379
  });
507
380
  }
508
381
  };
382
+ var CANVAS_TEXT_ID = "CanvasText";
509
383
  var CanvasText = class extends Text {
510
- constructor() {
511
- super(...arguments);
384
+ constructor(options) {
385
+ super(options);
386
+ this.pixivnId = CANVAS_TEXT_ID;
512
387
  this._onEvents = {};
388
+ this.pixivnId = this.constructor.prototype.pixivnId;
513
389
  }
514
390
  get memory() {
515
391
  return getMemoryText(this);
@@ -550,9 +426,9 @@ var CanvasText = class extends Text {
550
426
  * ```
551
427
  */
552
428
  onEvent(event, eventClass) {
553
- let className = eventClass.name;
554
- let instance = getEventInstanceByClassName(className);
555
- this._onEvents[event] = className;
429
+ let id = eventClass.prototype.id;
430
+ let instance = getEventInstanceById(id);
431
+ this._onEvents[event] = id;
556
432
  if (instance) {
557
433
  super.on(event, () => {
558
434
  instance.fn(event, this);
@@ -575,7 +451,7 @@ var CanvasText = class extends Text {
575
451
  function getMemoryText(element) {
576
452
  let temp = getMemoryContainer(element);
577
453
  return __spreadProps(__spreadValues({}, temp), {
578
- className: "CanvasText",
454
+ pixivnId: element.pixivnId,
579
455
  anchor: { x: element.anchor.x, y: element.anchor.y },
580
456
  text: element.text,
581
457
  resolution: element.resolution,
@@ -598,37 +474,155 @@ function setMemoryText(element, memory) {
598
474
  memory.style && (element.style = memory.style);
599
475
  memory.roundPixels && (element.roundPixels = memory.roundPixels);
600
476
  for (let event in memory.onEvents) {
601
- let className = memory.onEvents[event];
602
- let instance = getEventTypeByClassName(className);
477
+ let id = memory.onEvents[event];
478
+ let instance = getEventTypeById(id);
603
479
  if (instance) {
604
480
  element.onEvent(event, instance);
605
481
  }
606
482
  }
607
483
  }
608
484
 
609
- // src/classes/ticker/TickerBase.ts
610
- var TickerBase = class {
611
- /**
612
- * @param args The arguments that you want to pass to the ticker.
613
- * @param duration The duration of the ticker. If is undefined, the ticker will be called every frame.
614
- * @param priority The priority of the ticker. If is undefined, the priority will be UPDATE_PRIORITY.NORMAL.
615
- */
616
- constructor(args, duration, priority) {
617
- this.args = args;
618
- this.duration = duration;
619
- this.priority = priority;
485
+ // src/decorators/CanvasElementDecorator.ts
486
+ var registeredCanvasElement = {};
487
+ function getCanvasElementInstanceById(canvasId) {
488
+ try {
489
+ let eventType = registeredCanvasElement[canvasId];
490
+ if (!eventType) {
491
+ if (canvasId === CANVAS_CONTAINER_ID) {
492
+ eventType = CanvasContainer;
493
+ } else if (canvasId === CANVAS_IMAGE_ID) {
494
+ eventType = CanvasImage;
495
+ } else if (canvasId === CANVAS_SPRITE_ID) {
496
+ eventType = CanvasSprite;
497
+ } else if (canvasId === CANVAS_TEXT_ID) {
498
+ eventType = CanvasText;
499
+ }
500
+ }
501
+ if (!eventType) {
502
+ console.error(`[Pixi'VN] CanvasElement ${canvasId} not found`);
503
+ return;
504
+ }
505
+ let canvasElement = new eventType();
506
+ return canvasElement;
507
+ } catch (e) {
508
+ console.error(`[Pixi'VN] Error while getting CanvasElement ${canvasId}`, e);
509
+ return;
620
510
  }
621
- /**
622
- * The method that will be called every frame.
623
- * This method should be overridden and you can use GameWindowManager.addCanvasElement() to get the canvas element of the canvas, and edit them.
624
- * @param t The ticker that is calling this method
625
- * @param args The arguments that you passed when you added the ticker
626
- * @param tags The tags of the canvas elements that are connected to this ticker
627
- */
628
- fn(_t, _args, _tags) {
629
- throw new Error("[Pixi'VN] The method TickerBase.fn() must be overridden");
511
+ }
512
+
513
+ // src/functions/CanvasUtility.ts
514
+ function getTextureMemory(texture) {
515
+ let sourceTexture = texture.source;
516
+ let textureMemory = {
517
+ image: sourceTexture.label
518
+ };
519
+ return textureMemory;
520
+ }
521
+ function exportCanvasElement(element) {
522
+ return element.memory;
523
+ }
524
+ function importCanvasElement(memory) {
525
+ let element = getCanvasElementInstanceById(memory.pixivnId);
526
+ if (element) {
527
+ element.memory = memory;
528
+ } else {
529
+ throw new Error("[Pixi'VN] The element " + memory.pixivnId + " could not be created");
530
+ }
531
+ return element;
532
+ }
533
+
534
+ // src/classes/canvas/CanvasContainer.ts
535
+ var CANVAS_CONTAINER_ID = "CanvasContainer";
536
+ var CanvasContainer = class extends Container {
537
+ constructor(options) {
538
+ super(options);
539
+ this.pixivnId = CANVAS_CONTAINER_ID;
540
+ this.pixivnId = this.constructor.prototype.pixivnId;
541
+ }
542
+ get memory() {
543
+ let memory = getMemoryContainer(this);
544
+ this.children.forEach((child) => {
545
+ memory.elements.push(exportCanvasElement(child));
546
+ });
547
+ return memory;
548
+ }
549
+ set memory(value) {
550
+ setMemoryContainer(this, value);
551
+ value.elements.forEach((child) => {
552
+ this.addChild(importCanvasElement(child));
553
+ });
630
554
  }
631
555
  };
556
+ function getMemoryContainer(element) {
557
+ let className = "CanvasContainer";
558
+ if (element.hasOwnProperty("pixivnId")) {
559
+ className = element.pixivnId;
560
+ }
561
+ return {
562
+ pixivnId: className,
563
+ elements: [],
564
+ width: element.width,
565
+ height: element.height,
566
+ isRenderGroup: element.isRenderGroup,
567
+ blendMode: element.blendMode,
568
+ tint: element.tint,
569
+ alpha: element.alpha,
570
+ angle: element.angle,
571
+ renderable: element.renderable,
572
+ rotation: element.rotation,
573
+ scale: { x: element.scale.x, y: element.scale.y },
574
+ pivot: { x: element.pivot.x, y: element.pivot.y },
575
+ position: { x: element.position.x, y: element.position.y },
576
+ skew: { x: element.skew.x, y: element.skew.y },
577
+ visible: element.visible,
578
+ culled: element.culled,
579
+ x: element.x,
580
+ y: element.y,
581
+ boundsArea: element.boundsArea,
582
+ cursor: element.cursor,
583
+ eventMode: element.eventMode,
584
+ interactive: element.interactive,
585
+ interactiveChildren: element.interactiveChildren,
586
+ hitArea: element.hitArea
587
+ };
588
+ }
589
+ function setMemoryContainer(element, memory) {
590
+ memory.width && (element.width = memory.width);
591
+ memory.height && (element.height = memory.height);
592
+ memory.isRenderGroup && (element.isRenderGroup = memory.isRenderGroup);
593
+ memory.blendMode && (element.blendMode = memory.blendMode);
594
+ memory.tint && (element.tint = memory.tint);
595
+ memory.alpha && (element.alpha = memory.alpha);
596
+ memory.angle && (element.angle = memory.angle);
597
+ memory.renderable && (element.renderable = memory.renderable);
598
+ memory.rotation && (element.rotation = memory.rotation);
599
+ if (memory.scale) {
600
+ if (typeof memory.scale === "number") {
601
+ element.scale.set(memory.scale, memory.scale);
602
+ } else {
603
+ element.scale.set(memory.scale.x, memory.scale.y);
604
+ }
605
+ }
606
+ if (memory.pivot) {
607
+ if (typeof memory.pivot === "number") {
608
+ element.pivot.set(memory.pivot, memory.pivot);
609
+ } else {
610
+ element.pivot.set(memory.pivot.x, memory.pivot.y);
611
+ }
612
+ }
613
+ memory.position && element.position.set(memory.position.x, memory.position.y);
614
+ memory.skew && element.skew.set(memory.skew.x, memory.skew.y);
615
+ memory.visible && (element.visible = memory.visible);
616
+ memory.culled && (element.culled = memory.culled);
617
+ memory.x && (element.x = memory.x);
618
+ memory.y && (element.y = memory.y);
619
+ memory.boundsArea && (element.boundsArea = memory.boundsArea);
620
+ memory.cursor && (element.cursor = memory.cursor);
621
+ memory.eventMode && (element.eventMode = memory.eventMode);
622
+ memory.interactive && (element.interactive = memory.interactive);
623
+ memory.interactiveChildren && (element.interactiveChildren = memory.interactiveChildren);
624
+ memory.hitArea && (element.hitArea = memory.hitArea);
625
+ }
632
626
 
633
627
  // src/decorators/TickerDecorator.ts
634
628
  var registeredTickers = {};
@@ -638,40 +632,66 @@ function tickerDecorator(name) {
638
632
  name = target.name;
639
633
  }
640
634
  if (registeredTickers[name]) {
641
- console.warn(`[Pixi'VN] Ticker ${name} already exists, it will be overwritten`);
635
+ console.info(`[Pixi'VN] Ticker ${name} already exists, it will be overwritten`);
642
636
  }
637
+ target.prototype.id = name;
643
638
  registeredTickers[name] = target;
644
639
  };
645
640
  }
646
- function geTickerInstanceByClassName(tickerName, args, duration, priority) {
641
+ function geTickerInstanceById(tickerId, args, duration, priority) {
647
642
  try {
648
- let ticker = registeredTickers[tickerName];
643
+ let ticker = registeredTickers[tickerId];
649
644
  if (!ticker) {
650
- console.error(`[Pixi'VN] Ticker ${tickerName} not found`);
645
+ console.error(`[Pixi'VN] Ticker ${tickerId} not found`);
651
646
  return;
652
647
  }
653
648
  return new ticker(args, duration, priority);
654
649
  } catch (e) {
655
- console.error(`[Pixi'VN] Error while getting Ticker ${tickerName}`, e);
650
+ console.error(`[Pixi'VN] Error while getting Ticker ${tickerId}`, e);
656
651
  return;
657
652
  }
658
653
  }
659
654
 
660
- // src/classes/ticker/TickerFadeAlpha.ts
661
- var TickerFadeAlpha = class extends TickerBase {
655
+ // src/classes/ticker/TickerBase.ts
656
+ var TickerBase = class {
657
+ /**
658
+ * @param args The arguments that you want to pass to the ticker.
659
+ * @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
660
+ * @param priority The priority of the ticker. @default UPDATE_PRIORITY.NORMAL
661
+ */
662
+ constructor(args, duration, priority) {
663
+ /**
664
+ * Get the id of the ticker. This variable is used in the system to get the ticker by id, {@link geTickerInstanceById}
665
+ */
666
+ this.id = "ticker_id_not_set";
667
+ this.args = args;
668
+ this.duration = duration;
669
+ this.priority = priority;
670
+ this.id = this.constructor.prototype.id;
671
+ }
662
672
  /**
663
- * The method that will be called every frame to fade the alpha of the canvas element of the canvas.
664
- * @param delta The delta time
665
- * @param args The arguments that are passed to the ticker
666
- * @param tags The tags of the canvas element that are connected to this ticker
673
+ * The method that will be called every frame.
674
+ * This method should be overridden and you can use GameWindowManager.addCanvasElement() to get the canvas element of the canvas, and edit them.
675
+ * @param _ticker The ticker that is calling this method
676
+ * @param _args The arguments that you passed when you added the ticker
677
+ * @param _tags The tags of the canvas elements that are connected to this ticker
678
+ * @param _tickerId The id of the ticker. You can use this to get the ticker from the {@link GameWindowManager.currentTickers}
667
679
  */
668
- fn(t, args, tags) {
680
+ fn(_ticker, _args, _tags, _tickerId) {
681
+ throw new Error("[Pixi'VN] The method TickerBase.fn() must be overridden");
682
+ }
683
+ };
684
+
685
+ // src/classes/ticker/FadeAlphaTicker.ts
686
+ var FadeAlphaTicker = class extends TickerBase {
687
+ fn(ticker, args, tags, tickerId) {
669
688
  let type = args.type === void 0 ? "hide" : args.type;
670
- let speed = args.speed === void 0 ? 0.1 : args.speed;
689
+ let duration = args.duration === void 0 ? 1 : args.duration;
690
+ let speed = 1 / (duration * 60);
671
691
  let limit = args.limit === void 0 ? type === "hide" ? 0 : 1 : args.limit;
672
- let removeElementAfter = args.tagToRemoveAfter || [];
673
- if (typeof removeElementAfter === "string") {
674
- removeElementAfter = [removeElementAfter];
692
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
693
+ if (typeof tagToRemoveAfter2 === "string") {
694
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
675
695
  }
676
696
  if (type === "hide" && limit < 0) {
677
697
  limit = 0;
@@ -692,61 +712,88 @@ var TickerFadeAlpha = class extends TickerBase {
692
712
  let element = GameWindowManager.getCanvasElement(tag);
693
713
  if (element && element instanceof Container) {
694
714
  if (type === "show" && element.alpha < limit) {
695
- element.alpha += speed * t.deltaTime;
715
+ element.alpha += speed * ticker.deltaTime;
696
716
  } else if (type === "hide" && element.alpha > limit) {
697
- element.alpha -= speed * t.deltaTime;
698
- } else {
717
+ element.alpha -= speed * ticker.deltaTime;
718
+ }
719
+ if (type === "show" && element.alpha >= limit) {
699
720
  element.alpha = limit;
700
- GameWindowManager.removeAssociationBetweenTickerCanvasElement(tag, this);
701
- GameWindowManager.removeCanvasElement(removeElementAfter);
721
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
722
+ } else if (type === "hide" && element.alpha <= limit) {
723
+ element.alpha = limit;
724
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
702
725
  }
703
726
  }
704
727
  });
705
728
  }
706
729
  };
707
- TickerFadeAlpha = __decorateClass([
730
+ FadeAlphaTicker = __decorateClass([
708
731
  tickerDecorator()
709
- ], TickerFadeAlpha);
732
+ ], FadeAlphaTicker);
710
733
 
711
734
  // src/functions/TickerUtility.ts
712
735
  function updateTickerProgression(args, propertyName, progression) {
713
- if (args.hasOwnProperty(propertyName) && typeof args[propertyName] !== "number") {
736
+ if (args[propertyName] === void 0 || !progression || args[propertyName] === progression.limit) {
714
737
  return;
715
738
  }
716
- if (args[propertyName] !== void 0 && progression && args[propertyName] !== progression.limit) {
739
+ if (typeof args[propertyName] === "number") {
717
740
  if (progression.type === "linear") {
718
- args[propertyName] += progression.amt;
719
- if (progression.limit !== void 0) {
720
- if (args[propertyName] > progression.limit && progression.amt > 0) {
721
- args[propertyName] = progression.limit;
722
- } else if (args[propertyName] < progression.limit && progression.amt < 0) {
723
- args[propertyName] = progression.limit;
724
- }
725
- }
741
+ args[propertyName] = getLinearProgression(args[propertyName], progression);
726
742
  } else if (progression.type === "exponential") {
727
- args[propertyName] += args[propertyName] * progression.percentage;
728
- if (progression.limit !== void 0) {
729
- if (args[propertyName] > progression.limit && progression.percentage > 0) {
730
- args[propertyName] = progression.limit;
731
- } else if (args[propertyName] < progression.limit && progression.percentage < 0) {
732
- args[propertyName] = progression.limit;
733
- }
734
- }
743
+ args[propertyName] = getExponentialProgression(args[propertyName], progression);
744
+ }
745
+ } 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") {
746
+ if (progression.type === "linear") {
747
+ args[propertyName].x = getLinearProgression(args[propertyName].x, progression);
748
+ args[propertyName].y = getLinearProgression(args[propertyName].y, progression);
749
+ } else if (progression.type === "exponential") {
750
+ args[propertyName].x = getExponentialProgression(args[propertyName].x, progression);
751
+ args[propertyName].y = getExponentialProgression(args[propertyName].y, progression);
752
+ }
753
+ }
754
+ }
755
+ function getLinearProgression(number, progression) {
756
+ if (progression.limit !== void 0) {
757
+ if (number > progression.limit && progression.amt > 0) {
758
+ return progression.limit;
759
+ } else if (number < progression.limit && progression.amt < 0) {
760
+ return progression.limit;
761
+ }
762
+ }
763
+ return number + progression.amt / 60;
764
+ }
765
+ function getExponentialProgression(number, progression) {
766
+ if (progression.limit !== void 0) {
767
+ if (number > progression.limit && progression.percentage > 0) {
768
+ return progression.limit;
769
+ } else if (number < progression.limit && progression.percentage < 0) {
770
+ return progression.limit;
735
771
  }
736
772
  }
773
+ return number + number * progression.percentage;
737
774
  }
738
775
 
739
- // src/classes/ticker/TickerMove.ts
740
- var TickerMove = class extends TickerBase {
741
- /**
742
- * The method that will be called every frame to move the canvas element of the canvas.
743
- * @param t The ticker that is calling this method
744
- * @param args The arguments that are passed to the ticker
745
- * @param tags The tags of the canvas element that are connected to this ticker
746
- */
747
- fn(t, args, tags) {
748
- let speed = args.speed === void 0 ? 0.1 : args.speed;
776
+ // src/classes/ticker/MoveTicker.ts
777
+ var MoveTicker = class extends TickerBase {
778
+ fn(ticker, args, tags, tickerId) {
779
+ let xSpeed = 1;
780
+ let ySpeed = 1;
781
+ if (args.speed) {
782
+ if (typeof args.speed === "number") {
783
+ xSpeed = args.speed;
784
+ ySpeed = args.speed;
785
+ } else {
786
+ xSpeed = args.speed.x;
787
+ ySpeed = args.speed.y;
788
+ }
789
+ }
790
+ xSpeed /= 60;
791
+ ySpeed /= 60;
749
792
  let destination = args.destination;
793
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
794
+ if (typeof tagToRemoveAfter2 === "string") {
795
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
796
+ }
750
797
  tags.filter((tag) => {
751
798
  var _a;
752
799
  let element = GameWindowManager.getCanvasElement(tag);
@@ -759,41 +806,42 @@ var TickerMove = class extends TickerBase {
759
806
  }).forEach((tag) => {
760
807
  let element = GameWindowManager.getCanvasElement(tag);
761
808
  if (element && element instanceof Container) {
762
- let xDistance = destination.x - element.x;
809
+ let xDistance = destination.x - element.x > 0 ? 1 : -1;
763
810
  if (xDistance != 0) {
764
- element.x += xDistance / speed * t.deltaTime;
811
+ element.x += xDistance * xSpeed * ticker.deltaTime;
765
812
  let newDistance = destination.x - element.x;
766
813
  if (xDistance < 0 && newDistance > 0 || xDistance > 0 && newDistance < 0) {
767
814
  element.x = destination.x;
768
815
  }
769
816
  }
770
- let yDistance = destination.y - element.y;
817
+ let yDistance = destination.y - element.y > 0 ? 1 : -1;
771
818
  if (yDistance != 0) {
772
- element.y += yDistance / speed * t.deltaTime;
819
+ element.y += yDistance * ySpeed * ticker.deltaTime;
773
820
  let newDistance = destination.y - element.y;
774
821
  if (yDistance < 0 && newDistance > 0 || yDistance > 0 && newDistance < 0) {
775
822
  element.y = destination.y;
776
823
  }
777
824
  }
825
+ if (element.x == destination.x && element.y == destination.y) {
826
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
827
+ }
778
828
  }
779
829
  });
780
830
  if (args.speedProgression)
781
831
  updateTickerProgression(args, "speed", args.speedProgression);
782
832
  }
783
833
  };
784
- TickerMove = __decorateClass([
834
+ MoveTicker = __decorateClass([
785
835
  tickerDecorator()
786
- ], TickerMove);
787
- var TickerRotate = class extends TickerBase {
788
- /**
789
- * The method that will be called every frame to rotate the canvas element of the canvas.
790
- * @param delta The delta time
791
- * @param args The arguments that are passed to the ticker
792
- * @param tags The tags of the canvas element that are connected to this ticker
793
- */
794
- fn(t, args, tags) {
795
- let speed = args.speed === void 0 ? 0.1 : args.speed;
836
+ ], MoveTicker);
837
+ var RotateTicker = class extends TickerBase {
838
+ fn(ticker, args, tags, tickerId) {
839
+ let speed = (args.speed === void 0 ? 1 : args.speed) / 60;
796
840
  let clockwise = args.clockwise === void 0 ? true : args.clockwise;
841
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
842
+ if (typeof tagToRemoveAfter2 === "string") {
843
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
844
+ }
797
845
  tags.filter((tag) => {
798
846
  var _a;
799
847
  let element = GameWindowManager.getCanvasElement(tag);
@@ -807,18 +855,114 @@ var TickerRotate = class extends TickerBase {
807
855
  let element = GameWindowManager.getCanvasElement(tag);
808
856
  if (element && element instanceof Container) {
809
857
  if (clockwise)
810
- element.rotation += speed * t.deltaTime;
858
+ element.rotation += speed * ticker.deltaTime;
811
859
  else
812
- element.rotation -= speed * t.deltaTime;
860
+ element.rotation -= speed * ticker.deltaTime;
861
+ if (speed < 1e-5 && !(args.speedProgression && args.speedProgression.type == "linear" && args.speedProgression.amt != 0)) {
862
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
863
+ }
813
864
  }
814
865
  });
815
866
  if (args.speedProgression)
816
867
  updateTickerProgression(args, "speed", args.speedProgression);
817
868
  }
818
869
  };
819
- TickerRotate = __decorateClass([
870
+ RotateTicker = __decorateClass([
820
871
  tickerDecorator()
821
- ], TickerRotate);
872
+ ], RotateTicker);
873
+ var ZoomTicker = class extends TickerBase {
874
+ fn(ticker, args, tags, tickerId) {
875
+ let xSpeed = 0.1;
876
+ let ySpeed = 0.1;
877
+ if (args.speed) {
878
+ if (typeof args.speed === "number") {
879
+ xSpeed = args.speed;
880
+ ySpeed = args.speed;
881
+ } else {
882
+ xSpeed = args.speed.x;
883
+ ySpeed = args.speed.y;
884
+ }
885
+ }
886
+ xSpeed /= 60;
887
+ ySpeed /= 60;
888
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
889
+ if (typeof tagToRemoveAfter2 === "string") {
890
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
891
+ }
892
+ let type = args.type || "zoom";
893
+ let xLimit = type === "zoom" ? Infinity : 0;
894
+ let yLimit = type === "zoom" ? Infinity : 0;
895
+ if (args.limit) {
896
+ if (typeof args.limit === "number") {
897
+ xLimit = args.limit;
898
+ yLimit = args.limit;
899
+ } else {
900
+ xLimit = args.limit.x;
901
+ yLimit = args.limit.y;
902
+ }
903
+ }
904
+ tags.filter((tag) => {
905
+ var _a;
906
+ let element = GameWindowManager.getCanvasElement(tag);
907
+ if (args.startOnlyIfHaveTexture) {
908
+ if (element && element instanceof Sprite && ((_a = element.texture) == null ? void 0 : _a.label) == "EMPTY") {
909
+ return false;
910
+ }
911
+ }
912
+ return true;
913
+ }).forEach((tag) => {
914
+ let element = GameWindowManager.getCanvasElement(tag);
915
+ if (element && element instanceof Container) {
916
+ if (type === "zoom" && (element.scale.x < xLimit || element.scale.y < yLimit)) {
917
+ element.scale.x += xSpeed * ticker.deltaTime;
918
+ element.scale.y += ySpeed * ticker.deltaTime;
919
+ } else if (type === "unzoom" && (element.scale.x > xLimit || element.scale.y > yLimit)) {
920
+ element.scale.x -= xSpeed * ticker.deltaTime;
921
+ element.scale.y -= ySpeed * ticker.deltaTime;
922
+ }
923
+ if (type === "zoom") {
924
+ if (element.scale.x > xLimit) {
925
+ element.scale.x = xLimit;
926
+ }
927
+ if (element.scale.y > yLimit) {
928
+ element.scale.y = yLimit;
929
+ }
930
+ if (element.scale.x >= xLimit && element.scale.y >= yLimit) {
931
+ element.scale.x = xLimit;
932
+ element.scale.y = yLimit;
933
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
934
+ }
935
+ } else if (type === "unzoom") {
936
+ if (element.scale.x < xLimit) {
937
+ element.scale.x = xLimit;
938
+ }
939
+ if (element.scale.y < yLimit) {
940
+ element.scale.y = yLimit;
941
+ }
942
+ if (element.scale.x <= xLimit && element.scale.y <= yLimit) {
943
+ element.scale.x = xLimit;
944
+ element.scale.y = yLimit;
945
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
946
+ }
947
+ }
948
+ if (xSpeed < 1e-5 && ySpeed < 1e-5 && !(args.speedProgression && args.speedProgression.type == "linear" && args.speedProgression.amt != 0)) {
949
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
950
+ }
951
+ }
952
+ });
953
+ if (args.speedProgression)
954
+ updateTickerProgression(args, "speed", args.speedProgression);
955
+ }
956
+ onEndOfTicker(tag, tickerId, _element, tagToRemoveAfter2) {
957
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
958
+ }
959
+ };
960
+ ZoomTicker = __decorateClass([
961
+ tickerDecorator()
962
+ ], ZoomTicker);
963
+
964
+ // src/constants.ts
965
+ var Repeat = "repeat";
822
966
 
823
967
  // src/functions/ExportUtility.ts
824
968
  function createExportableElement(element) {
@@ -968,11 +1112,8 @@ function asciiArtLog() {
968
1112
  `);
969
1113
  }
970
1114
 
971
- // src/types/PauseType.ts
972
- var PauseValueType = "pause";
973
-
974
- // src/types/RepeatType.ts
975
- var Repeat = "repeat";
1115
+ // src/types/ticker/TagToRemoveAfterType.ts
1116
+ var tagToRemoveAfter = "tagToRemoveAfter";
976
1117
 
977
1118
  // src/managers/WindowManager.ts
978
1119
  var _GameWindowManager = class _GameWindowManager {
@@ -1156,25 +1297,25 @@ var _GameWindowManager = class _GameWindowManager {
1156
1297
  /**
1157
1298
  * Remove a canvas element from the canvas.
1158
1299
  * And remove all tickers that are not connected to any canvas element.
1159
- * @param tag The tag of the canvas element to be removed.
1300
+ * @param tags The tag of the canvas element to be removed.
1160
1301
  * @returns
1161
1302
  * @example
1162
1303
  * ```typescript
1163
1304
  * GameWindowManager.removeCanvasElement("bunny");
1164
1305
  * ```
1165
1306
  */
1166
- static removeCanvasElement(tag) {
1167
- if (typeof tag === "string") {
1168
- tag = [tag];
1307
+ static removeCanvasElement(tags) {
1308
+ if (typeof tags === "string") {
1309
+ tags = [tags];
1169
1310
  }
1170
- tag.forEach((t) => {
1171
- if (_GameWindowManager._children[t]) {
1172
- _GameWindowManager.app.stage.removeChild(_GameWindowManager._children[t]);
1173
- delete _GameWindowManager._children[t];
1311
+ tags.forEach((tag) => {
1312
+ if (_GameWindowManager._children[tag]) {
1313
+ _GameWindowManager.app.stage.removeChild(_GameWindowManager._children[tag]);
1314
+ delete _GameWindowManager._children[tag];
1315
+ _GameWindowManager.removeTickerByCanvasElement(tag);
1174
1316
  }
1175
1317
  });
1176
- _GameWindowManager.removeTickersWithoutAssociatedCanvasElement();
1177
- _GameWindowManager.childrenTagsOrder = _GameWindowManager.childrenTagsOrder.filter((t) => !tag.includes(t));
1318
+ _GameWindowManager.childrenTagsOrder = _GameWindowManager.childrenTagsOrder.filter((t) => !tags.includes(t));
1178
1319
  }
1179
1320
  /**
1180
1321
  * Get a canvas element by the tag.
@@ -1204,18 +1345,43 @@ var _GameWindowManager = class _GameWindowManager {
1204
1345
  _GameWindowManager.app.stage.removeChildren();
1205
1346
  _GameWindowManager._children = {};
1206
1347
  _GameWindowManager.childrenTagsOrder = [];
1207
- _GameWindowManager.removeTickers();
1348
+ _GameWindowManager.removeAllTickers();
1208
1349
  }
1209
1350
  /**
1210
1351
  * Edit the tag of a canvas element.
1211
1352
  * @param oldTag The old tag of the canvas element.
1212
1353
  * @param newTag The new tag of the canvas element.
1213
1354
  */
1214
- static editTagCanvasElement(oldTag, newTag) {
1355
+ static editCanvasElementTag(oldTag, newTag) {
1215
1356
  if (_GameWindowManager._children[oldTag]) {
1216
1357
  _GameWindowManager._children[newTag] = _GameWindowManager._children[oldTag];
1217
1358
  delete _GameWindowManager._children[oldTag];
1218
1359
  }
1360
+ if (_GameWindowManager._currentTickersSteps[oldTag]) {
1361
+ _GameWindowManager._currentTickersSteps[newTag] = _GameWindowManager._currentTickersSteps[oldTag];
1362
+ delete _GameWindowManager._currentTickersSteps[oldTag];
1363
+ }
1364
+ for (let id in _GameWindowManager._currentTickers) {
1365
+ let ticker = _GameWindowManager._currentTickers[id];
1366
+ if (ticker.canvasElementTags.includes(oldTag)) {
1367
+ ticker.canvasElementTags = ticker.canvasElementTags.map((t) => t === oldTag ? newTag : t);
1368
+ if (ticker.args.hasOwnProperty(tagToRemoveAfter)) {
1369
+ let tagToRemoveAfter2 = ticker.args.tagToRemoveAfter;
1370
+ if (typeof tagToRemoveAfter2 === "string") {
1371
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
1372
+ }
1373
+ if (Array.isArray(tagToRemoveAfter2)) {
1374
+ ticker.args.tagToRemoveAfter = tagToRemoveAfter2.map((t) => t === oldTag ? newTag : t);
1375
+ }
1376
+ }
1377
+ }
1378
+ }
1379
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1380
+ let TickerTimeout = _GameWindowManager._currentTickersTimeouts[timeout];
1381
+ if (TickerTimeout.tags.includes(oldTag)) {
1382
+ TickerTimeout.tags = TickerTimeout.tags.map((t) => t === oldTag ? newTag : t);
1383
+ }
1384
+ }
1219
1385
  }
1220
1386
  /** Edit Tickers Methods */
1221
1387
  /**
@@ -1224,106 +1390,127 @@ var _GameWindowManager = class _GameWindowManager {
1224
1390
  static get currentTickers() {
1225
1391
  return _GameWindowManager._currentTickers;
1226
1392
  }
1393
+ static get currentTickersList() {
1394
+ return Object.values(_GameWindowManager._currentTickers);
1395
+ }
1396
+ static get currentTickersWithoutCreatedBySteps() {
1397
+ return Object.fromEntries(Object.entries(_GameWindowManager._currentTickers).filter(([_, ticker]) => !ticker.createdByTicketStepsId));
1398
+ }
1227
1399
  /**
1228
1400
  * The steps of the tickers
1229
1401
  */
1230
1402
  static get currentTickersSteps() {
1231
1403
  return _GameWindowManager._currentTickersSteps;
1232
1404
  }
1405
+ static generateTickerId(tickerData) {
1406
+ try {
1407
+ return sha1(JSON.stringify(tickerData)).toString() + "_" + Math.random().toString(36).substring(7);
1408
+ } catch (e) {
1409
+ throw new Error(`[Pixi'VN] Error to generate ticker id: ${e}`);
1410
+ }
1411
+ }
1233
1412
  /**
1234
- * Run a ticker.
1413
+ * Run a ticker. You can run multiple addTicker with the same tag and different tickerClasses.
1414
+ * If you run a ticker with the same tag and tickerClass, the old ticker will be removed.
1415
+ * If already exists a sequence of tickers with the same tag, it will be removed.
1235
1416
  * @param canvasEslementTag The tag of the canvas element that will use the ticker.
1236
1417
  * @param ticker The ticker class to be run.
1237
1418
  * @param args The arguments to be used in the ticker.
1238
- * @param duration The time to be used in the ticker. This number is in milliseconds. If it is undefined, the ticker will run forever.
1419
+ * @param duration The time to be used in the ticker. This number is in seconds. If it is undefined, the ticker will run forever.
1239
1420
  * @param priority The priority to be used in the ticker.
1240
1421
  * @returns
1241
1422
  * @example
1242
1423
  * ```typescript
1243
- * GameWindowManager.addTicker("alien", new TickerRotate({ speed: 0.2 }))
1424
+ * GameWindowManager.addTicker("alien", new RotateTicker({ speed: 0.2 }))
1244
1425
  * ```
1245
1426
  */
1246
1427
  static addTicker(canvasElementTag, ticker) {
1247
- let tickerName = ticker.constructor.name;
1428
+ let tickerId = ticker.id;
1248
1429
  if (typeof canvasElementTag === "string") {
1249
1430
  canvasElementTag = [canvasElementTag];
1250
1431
  }
1251
- let t = geTickerInstanceByClassName(tickerName, ticker.args, ticker.duration, ticker.priority);
1252
- if (!t) {
1253
- console.error(`[Pixi'VN] Ticker ${tickerName} not found`);
1432
+ if (!geTickerInstanceById(tickerId, ticker.args, ticker.duration, ticker.priority)) {
1433
+ console.error(`[Pixi'VN] Ticker ${tickerId} not found`);
1254
1434
  return;
1255
1435
  }
1256
- _GameWindowManager.removeAssociationBetweenTickerCanvasElement(canvasElementTag, ticker);
1257
1436
  let tickerHistory = {
1258
1437
  fn: () => {
1259
1438
  },
1260
- className: tickerName,
1261
- args: ticker.args,
1439
+ id: tickerId,
1440
+ args: createExportableElement(ticker.args),
1262
1441
  canvasElementTags: canvasElementTag,
1263
1442
  priority: ticker.priority,
1264
1443
  duration: ticker.duration
1265
1444
  };
1266
- _GameWindowManager.pushTicker(tickerHistory, t);
1267
- _GameWindowManager.removeTickersWithoutAssociatedCanvasElement();
1445
+ let id = _GameWindowManager.generateTickerId(tickerHistory);
1446
+ _GameWindowManager.pushTicker(id, tickerHistory, ticker);
1268
1447
  if (ticker.duration) {
1269
1448
  let timeout = setTimeout(() => {
1270
1449
  _GameWindowManager.removeTickerTimeoutInfo(timeout);
1271
- _GameWindowManager.nextTickerStep(canvasElementTag);
1272
- }, ticker.duration);
1273
- _GameWindowManager.addTickerTimeoutInfo(canvasElementTag, tickerName, timeout.toString());
1450
+ let tickerTimeoutInfo = _GameWindowManager._currentTickersTimeouts[timeout.toString()];
1451
+ if (tickerTimeoutInfo) {
1452
+ _GameWindowManager.removeTicker(id);
1453
+ }
1454
+ }, ticker.duration * 1e3);
1455
+ _GameWindowManager.addTickerTimeoutInfo(canvasElementTag, tickerId, timeout.toString(), true);
1274
1456
  }
1275
1457
  }
1276
- static pushTicker(tickerData, ticker) {
1277
- _GameWindowManager.removeAssociationBetweenTickerCanvasElement(tickerData.canvasElementTags, tickerData);
1278
- _GameWindowManager._currentTickers.push(tickerData);
1458
+ static pushTicker(id, tickerData, ticker) {
1459
+ _GameWindowManager.removeAssociationBetweenTickerCanvasElement(tickerData.canvasElementTags, ticker);
1460
+ _GameWindowManager._currentTickers[id] = tickerData;
1279
1461
  tickerData.fn = (t) => {
1280
- ticker == null ? void 0 : ticker.fn(t, tickerData.args, tickerData.canvasElementTags);
1462
+ let data = _GameWindowManager._currentTickers[id];
1463
+ if (data) {
1464
+ ticker == null ? void 0 : ticker.fn(t, data.args, data.canvasElementTags, id);
1465
+ }
1281
1466
  };
1282
1467
  _GameWindowManager.app.ticker.add(tickerData.fn, void 0, tickerData.priority);
1283
1468
  }
1284
1469
  /**
1285
- * Run a sequence of tickers.
1470
+ * Run a sequence of tickers. If exists a ticker steps with the same tag, it will be removed.
1286
1471
  * @param tag The tag of canvas element that will use the tickers.
1287
1472
  * @param steps The steps of the tickers.
1473
+ * @param currentStepNumber The current step number. It is used to continue the sequence of tickers.
1288
1474
  * @returns
1289
1475
  * @example
1290
1476
  * ```typescript
1291
1477
  * GameWindowManager.addTickersSteps("alien", [
1292
- * new TickerRotate({ speed: 0.1, clockwise: true }, 2000),
1293
- * Pause(500),
1294
- * new TickerRotate({ speed: 0.2, clockwise: false }, 2000),
1478
+ * new RotateTicker({ speed: 0.1, clockwise: true }, 2), // 2 seconds
1479
+ * Pause(1), // 1 second
1480
+ * new RotateTicker({ speed: 0.2, clockwise: false }, 2),
1295
1481
  * Repeat,
1296
1482
  * ])
1297
1483
  * ```
1298
1484
  */
1299
- static addTickersSteps(tag, steps) {
1485
+ static addTickersSteps(tag, steps, currentStepNumber = 0) {
1300
1486
  if (steps.length == 0) {
1301
1487
  console.warn("[Pixi'VN] The steps of the tickers is empty");
1302
1488
  return;
1303
1489
  }
1304
- let alredyExists = _GameWindowManager._currentTickersSteps[tag] !== void 0;
1490
+ _GameWindowManager.removeTickerStepByCanvasElement(tag);
1305
1491
  _GameWindowManager._currentTickersSteps[tag] = {
1306
- currentStepNumber: 0,
1307
- steps: steps.map((s) => {
1308
- if (s === Repeat) {
1309
- return s;
1310
- }
1311
- if (!s.duration) {
1312
- console.warn("[Pixi'VN] Duration is not defined, so it will be set to 1000");
1313
- s.duration = 1e3;
1492
+ currentStepNumber,
1493
+ steps: steps.map((step) => {
1494
+ if (step === Repeat) {
1495
+ return step;
1314
1496
  }
1315
- if (s.hasOwnProperty("type") && s.type === PauseValueType) {
1316
- return s;
1497
+ if (step.hasOwnProperty("type") && step.type === "pause") {
1498
+ return step;
1317
1499
  }
1318
- let tickerName = s.constructor.name;
1500
+ let tickerId = step.id;
1319
1501
  return {
1320
- ticker: tickerName,
1321
- args: s.args,
1322
- duration: s.duration
1502
+ ticker: tickerId,
1503
+ args: createExportableElement(step.args),
1504
+ duration: step.duration
1323
1505
  };
1324
1506
  })
1325
1507
  };
1326
- if (!alredyExists) {
1508
+ _GameWindowManager.runTickersSteps(tag);
1509
+ }
1510
+ static restoneTickersSteps(data) {
1511
+ for (let tag in data) {
1512
+ let steps = data[tag];
1513
+ _GameWindowManager._currentTickersSteps[tag] = steps;
1327
1514
  _GameWindowManager.runTickersSteps(tag);
1328
1515
  }
1329
1516
  }
@@ -1337,70 +1524,106 @@ var _GameWindowManager = class _GameWindowManager {
1337
1524
  return;
1338
1525
  }
1339
1526
  }
1340
- if (step.hasOwnProperty("type") && step.type === PauseValueType) {
1527
+ if (step.hasOwnProperty("type") && step.type === "pause") {
1341
1528
  let timeout = setTimeout(() => {
1529
+ let tickerTimeoutInfo = _GameWindowManager._currentTickersTimeouts[timeout.toString()];
1530
+ if (tickerTimeoutInfo) {
1531
+ tickerTimeoutInfo.tags.forEach((tag2) => {
1532
+ _GameWindowManager.nextTickerStep(tag2);
1533
+ });
1534
+ }
1342
1535
  _GameWindowManager.removeTickerTimeoutInfo(timeout);
1343
- _GameWindowManager.nextTickerStep(tag);
1344
- }, step.duration);
1345
- _GameWindowManager.addTickerTimeoutInfo(tag, "steps", timeout.toString());
1536
+ }, step.duration * 1e3);
1537
+ _GameWindowManager.addTickerTimeoutInfo(tag, "steps", timeout.toString(), false);
1346
1538
  return;
1347
1539
  }
1348
- let ticker = geTickerInstanceByClassName(step.ticker, step.args, step.duration, step.priority);
1540
+ let ticker = geTickerInstanceById(step.ticker, step.args, step.duration, step.priority);
1349
1541
  if (!ticker) {
1350
1542
  console.error(`[Pixi'VN] Ticker ${step.ticker} not found`);
1351
1543
  return;
1352
1544
  }
1353
- _GameWindowManager.addTicker(tag, ticker);
1545
+ let tickerName = ticker.id;
1546
+ let tickerHistory = {
1547
+ fn: () => {
1548
+ },
1549
+ id: tickerName,
1550
+ args: createExportableElement(ticker.args),
1551
+ canvasElementTags: [tag],
1552
+ priority: ticker.priority,
1553
+ duration: ticker.duration,
1554
+ createdByTicketStepsId: tag
1555
+ };
1556
+ let id = _GameWindowManager.generateTickerId(tickerHistory);
1557
+ _GameWindowManager.pushTicker(id, tickerHistory, ticker);
1558
+ if (ticker.duration) {
1559
+ let timeout = setTimeout(() => {
1560
+ let tickerTimeoutInfo = _GameWindowManager._currentTickersTimeouts[timeout.toString()];
1561
+ if (tickerTimeoutInfo) {
1562
+ _GameWindowManager.removeTicker(id);
1563
+ tickerTimeoutInfo.tags.forEach((tag2) => {
1564
+ _GameWindowManager.nextTickerStep(tag2);
1565
+ });
1566
+ }
1567
+ _GameWindowManager.removeTickerTimeoutInfo(timeout);
1568
+ }, ticker.duration * 1e3);
1569
+ _GameWindowManager.addTickerTimeoutInfo(tag, tickerName, timeout.toString(), false);
1570
+ }
1354
1571
  }
1355
1572
  static nextTickerStep(tag) {
1356
- if (typeof tag === "string") {
1357
- tag = [tag];
1573
+ if (_GameWindowManager._currentTickersSteps[tag]) {
1574
+ let steps = _GameWindowManager._currentTickersSteps[tag];
1575
+ if (steps.currentStepNumber + 1 < steps.steps.length) {
1576
+ steps.currentStepNumber++;
1577
+ _GameWindowManager._currentTickersSteps[tag] = steps;
1578
+ _GameWindowManager.runTickersSteps(tag);
1579
+ } else {
1580
+ _GameWindowManager.removeTickerStepByCanvasElement(tag);
1581
+ }
1358
1582
  }
1359
- tag.forEach((tag2) => {
1360
- if (_GameWindowManager._currentTickersSteps[tag2]) {
1361
- let steps = _GameWindowManager._currentTickersSteps[tag2];
1362
- if (steps.currentStepNumber + 1 < steps.steps.length) {
1363
- steps.currentStepNumber++;
1364
- _GameWindowManager._currentTickersSteps[tag2] = steps;
1365
- _GameWindowManager.runTickersSteps(tag2);
1366
- } else {
1367
- delete _GameWindowManager._currentTickersSteps[tag2];
1368
- }
1583
+ }
1584
+ static onEndOfTicker(canvasElementTags, ticker, canvasElementTagsToDelete, tickerId) {
1585
+ let tickerData = _GameWindowManager._currentTickers[tickerId];
1586
+ _GameWindowManager.removeAssociationBetweenTickerCanvasElement(canvasElementTags, ticker);
1587
+ _GameWindowManager.removeCanvasElement(canvasElementTagsToDelete);
1588
+ if (tickerData) {
1589
+ _GameWindowManager.removeTicker(tickerId);
1590
+ if (tickerData.duration == void 0 && tickerData.createdByTicketStepsId) {
1591
+ _GameWindowManager.nextTickerStep(tickerData.createdByTicketStepsId);
1369
1592
  }
1370
- });
1593
+ }
1371
1594
  }
1372
1595
  /**
1373
1596
  * Remove a connection between a canvas element and a ticker.
1374
1597
  * And remove the ticker if there is no canvas element connected to it.
1375
- * @param tag The tag of the canvas element that will use the ticker.
1598
+ * @param tags The tag of the canvas element that will use the ticker.
1376
1599
  * @param ticker The ticker class to be removed.
1377
1600
  * @example
1378
1601
  * ```typescript
1379
- * GameWindowManager.removeAssociationBetweenTickerCanvasElement("alien", TickerRotate)
1602
+ * GameWindowManager.removeAssociationBetweenTickerCanvasElement("alien", RotateTicker)
1380
1603
  * ```
1381
1604
  */
1382
- static removeAssociationBetweenTickerCanvasElement(tag, ticker) {
1383
- let tickerName;
1384
- if (ticker instanceof TickerBase) {
1385
- tickerName = ticker.constructor.name;
1605
+ static removeAssociationBetweenTickerCanvasElement(tags, ticker) {
1606
+ let tickerId;
1607
+ if (typeof ticker === "string") {
1608
+ tickerId = ticker;
1609
+ } else if (ticker instanceof TickerBase) {
1610
+ tickerId = ticker.id;
1386
1611
  } else {
1387
- tickerName = ticker.name;
1612
+ tickerId = ticker.prototype.id;
1388
1613
  }
1389
- if (typeof tag === "string") {
1390
- tag = [tag];
1614
+ if (typeof tags === "string") {
1615
+ tags = [tags];
1391
1616
  }
1392
- _GameWindowManager._currentTickers = _GameWindowManager._currentTickers.map((t) => {
1393
- if (t.className === tickerName) {
1394
- t.canvasElementTags = t.canvasElementTags.filter((e) => !tag.includes(e));
1617
+ for (let id in _GameWindowManager._currentTickers) {
1618
+ let ticker2 = _GameWindowManager._currentTickers[id];
1619
+ if (ticker2.id === tickerId) {
1620
+ _GameWindowManager._currentTickers[id].canvasElementTags = ticker2.canvasElementTags.filter((e) => !tags.includes(e));
1395
1621
  }
1396
- return t;
1397
- });
1398
- for (let timeout in _GameWindowManager.currentTickersTimeouts) {
1399
- let t = _GameWindowManager.currentTickersTimeouts[timeout].tags.filter((e) => !tag.includes(e));
1400
- if (t.length == 0) {
1401
- _GameWindowManager.removeTickerTimeoutInfo(timeout);
1402
- } else {
1403
- _GameWindowManager.currentTickersTimeouts[timeout].tags = t;
1622
+ }
1623
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1624
+ let TickerTimeout = _GameWindowManager._currentTickersTimeouts[timeout];
1625
+ if (TickerTimeout.ticker === tickerId && TickerTimeout.canBeDeletedBeforeEnd) {
1626
+ _GameWindowManager._currentTickersTimeouts[timeout].tags = TickerTimeout.tags.filter((t) => !tags.includes(t));
1404
1627
  }
1405
1628
  }
1406
1629
  _GameWindowManager.removeTickersWithoutAssociatedCanvasElement();
@@ -1409,49 +1632,117 @@ var _GameWindowManager = class _GameWindowManager {
1409
1632
  * Remove all tickers that are not connected to any existing canvas element.
1410
1633
  */
1411
1634
  static removeTickersWithoutAssociatedCanvasElement() {
1412
- let currentTickers = _GameWindowManager._currentTickers.map((t) => {
1413
- t.canvasElementTags = t.canvasElementTags.filter((e) => _GameWindowManager._children[e]);
1414
- return t;
1415
- });
1416
- currentTickers.filter((t) => t.canvasElementTags.length === 0).forEach((t) => {
1417
- _GameWindowManager.app.ticker.remove(t.fn);
1418
- });
1419
- currentTickers = currentTickers.filter((t) => t.canvasElementTags.length > 0);
1420
- _GameWindowManager._currentTickers = currentTickers;
1635
+ for (let id in _GameWindowManager._currentTickers) {
1636
+ let ticker = _GameWindowManager._currentTickers[id];
1637
+ ticker.canvasElementTags = ticker.canvasElementTags.filter((e) => _GameWindowManager._children[e]);
1638
+ if (ticker.canvasElementTags.length === 0) {
1639
+ _GameWindowManager.removeTicker(id);
1640
+ }
1641
+ }
1421
1642
  for (let tag in _GameWindowManager._currentTickersSteps) {
1422
1643
  if (_GameWindowManager._children[tag] === void 0) {
1423
1644
  delete _GameWindowManager._currentTickersSteps[tag];
1424
1645
  }
1425
1646
  }
1647
+ Object.entries(_GameWindowManager._currentTickersTimeouts).forEach(([timeout, { tags }]) => {
1648
+ if (tags.length === 0) {
1649
+ _GameWindowManager.removeTickerTimeout(timeout);
1650
+ }
1651
+ });
1426
1652
  }
1427
- static addTickerTimeoutInfo(tags, ticker, timeout) {
1653
+ static addTickerTimeoutInfo(tags, ticker, timeout, canBeDeletedBeforeEnd) {
1428
1654
  if (typeof tags === "string") {
1429
1655
  tags = [tags];
1430
1656
  }
1431
- _GameWindowManager.currentTickersTimeouts[timeout] = {
1657
+ _GameWindowManager._currentTickersTimeouts[timeout] = {
1432
1658
  tags,
1433
- ticker
1659
+ ticker,
1660
+ canBeDeletedBeforeEnd
1434
1661
  };
1435
1662
  }
1436
1663
  static removeTickerTimeoutInfo(timeout) {
1437
1664
  if (typeof timeout !== "string") {
1438
1665
  timeout = timeout.toString();
1439
1666
  }
1440
- if (_GameWindowManager.currentTickersTimeouts[timeout]) {
1441
- delete _GameWindowManager.currentTickersTimeouts[timeout];
1667
+ if (_GameWindowManager._currentTickersTimeouts[timeout]) {
1668
+ delete _GameWindowManager._currentTickersTimeouts[timeout];
1669
+ }
1670
+ }
1671
+ static removeTickerTimeout(timeout) {
1672
+ if (typeof timeout !== "string") {
1673
+ timeout = timeout.toString();
1674
+ }
1675
+ clearTimeout(Number(timeout));
1676
+ _GameWindowManager.removeTickerTimeoutInfo(timeout);
1677
+ }
1678
+ static removeTickerTimeoutsByTag(tag, checkCanBeDeletedBeforeEnd) {
1679
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1680
+ let tagsWithoutTagToRemove = _GameWindowManager._currentTickersTimeouts[timeout].tags.filter((t) => t !== tag);
1681
+ if (tagsWithoutTagToRemove.length === 0) {
1682
+ let canBeDeletedBeforeEnd = _GameWindowManager._currentTickersTimeouts[timeout].canBeDeletedBeforeEnd;
1683
+ if (!checkCanBeDeletedBeforeEnd || canBeDeletedBeforeEnd) {
1684
+ _GameWindowManager.removeTickerTimeout(timeout);
1685
+ }
1686
+ } else {
1687
+ _GameWindowManager._currentTickersTimeouts[timeout].tags = tagsWithoutTagToRemove;
1688
+ }
1442
1689
  }
1443
1690
  }
1444
1691
  /**
1445
1692
  * Remove all tickers from the canvas.
1446
1693
  */
1447
- static removeTickers() {
1694
+ static removeAllTickers() {
1448
1695
  _GameWindowManager._currentTickersSteps = {};
1449
- _GameWindowManager._currentTickers.forEach((t) => {
1450
- _GameWindowManager.app.ticker.remove(t.fn);
1696
+ Object.keys(_GameWindowManager._currentTickers).forEach((id) => {
1697
+ _GameWindowManager.removeTicker(id);
1451
1698
  });
1452
- _GameWindowManager._currentTickers = [];
1453
- for (let timeout in _GameWindowManager.currentTickersTimeouts) {
1454
- _GameWindowManager.removeTickerTimeoutInfo(timeout);
1699
+ _GameWindowManager._currentTickers = {};
1700
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1701
+ _GameWindowManager.removeTickerTimeout(timeout);
1702
+ }
1703
+ }
1704
+ /**
1705
+ * Remove all tickers from a canvas element.
1706
+ * @param tag The tag of the canvas element that will use the ticker.
1707
+ */
1708
+ static removeTickerByCanvasElement(tag) {
1709
+ if (typeof tag === "string") {
1710
+ tag = [tag];
1711
+ }
1712
+ tag.forEach((tag2) => {
1713
+ for (let id in _GameWindowManager._currentTickers) {
1714
+ let ticker = _GameWindowManager._currentTickers[id];
1715
+ if (ticker.canvasElementTags.includes(tag2)) {
1716
+ _GameWindowManager.removeTicker(id);
1717
+ }
1718
+ }
1719
+ if (_GameWindowManager._currentTickersSteps[tag2]) {
1720
+ delete _GameWindowManager._currentTickersSteps[tag2];
1721
+ }
1722
+ _GameWindowManager.removeTickerTimeoutsByTag(tag2, false);
1723
+ delete _GameWindowManager._currentTickersSteps[tag2];
1724
+ });
1725
+ }
1726
+ static removeTickerStepByCanvasElement(tag) {
1727
+ if (_GameWindowManager._currentTickersSteps[tag]) {
1728
+ delete _GameWindowManager._currentTickersSteps[tag];
1729
+ }
1730
+ for (let id in _GameWindowManager._currentTickers) {
1731
+ let ticker = _GameWindowManager._currentTickers[id];
1732
+ if (ticker.createdByTicketStepsId === tag) {
1733
+ _GameWindowManager.removeTicker(id);
1734
+ }
1735
+ }
1736
+ }
1737
+ static removeTicker(tickerId) {
1738
+ let ticker = _GameWindowManager._currentTickers[tickerId];
1739
+ if (ticker) {
1740
+ if (ticker.args.hasOwnProperty(tagToRemoveAfter)) {
1741
+ let tagToRemoveAfter2 = ticker.args.tagToRemoveAfter;
1742
+ _GameWindowManager.removeCanvasElement(tagToRemoveAfter2);
1743
+ }
1744
+ _GameWindowManager.app.ticker.remove(ticker.fn);
1745
+ delete _GameWindowManager._currentTickers[tickerId];
1455
1746
  }
1456
1747
  }
1457
1748
  /**
@@ -1478,7 +1769,8 @@ var _GameWindowManager = class _GameWindowManager {
1478
1769
  currentElements[tag] = exportCanvasElement(_GameWindowManager._children[tag]);
1479
1770
  }
1480
1771
  return {
1481
- currentTickers: createExportableElement(_GameWindowManager._currentTickers),
1772
+ currentTickers: createExportableElement(_GameWindowManager.currentTickersWithoutCreatedBySteps),
1773
+ currentTickersSteps: createExportableElement(_GameWindowManager._currentTickersSteps),
1482
1774
  currentElements: createExportableElement(currentElements),
1483
1775
  childrenTagsOrder: createExportableElement(_GameWindowManager.childrenTagsOrder)
1484
1776
  };
@@ -1513,15 +1805,20 @@ var _GameWindowManager = class _GameWindowManager {
1513
1805
  }
1514
1806
  if (data.hasOwnProperty("currentTickers")) {
1515
1807
  let currentTickers = data["currentTickers"];
1516
- currentTickers.forEach((t) => {
1808
+ for (let id in currentTickers) {
1809
+ let t = currentTickers[id];
1517
1810
  let tags = t.canvasElementTags;
1518
- let ticker = geTickerInstanceByClassName(t.className, t.args, t.duration, t.priority);
1811
+ let ticker = geTickerInstanceById(t.id, t.args, t.duration, t.priority);
1519
1812
  if (ticker) {
1520
1813
  _GameWindowManager.addTicker(tags, ticker);
1521
1814
  } else {
1522
- console.error(`[Pixi'VN] Ticker ${t.className} not found`);
1815
+ console.error(`[Pixi'VN] Ticker ${t.id} not found`);
1523
1816
  }
1524
- });
1817
+ }
1818
+ }
1819
+ if (data.hasOwnProperty("currentTickersSteps")) {
1820
+ let currentTickersSteps = data["currentTickersSteps"];
1821
+ _GameWindowManager.restoneTickersSteps(currentTickersSteps);
1525
1822
  }
1526
1823
  } catch (e) {
1527
1824
  console.error("[Pixi'VN] Error importing data", e);
@@ -1535,9 +1832,9 @@ _GameWindowManager._children = {};
1535
1832
  * The order of the children tags.
1536
1833
  */
1537
1834
  _GameWindowManager.childrenTagsOrder = [];
1538
- _GameWindowManager._currentTickers = [];
1835
+ _GameWindowManager._currentTickers = {};
1539
1836
  _GameWindowManager._currentTickersSteps = {};
1540
- _GameWindowManager.currentTickersTimeouts = {};
1837
+ _GameWindowManager._currentTickersTimeouts = {};
1541
1838
  var GameWindowManager = _GameWindowManager;
1542
1839
 
1543
1840
  // src/managers/StepManager.ts
@@ -1604,7 +1901,8 @@ var _GameStepManager = class _GameStepManager {
1604
1901
  canvas: {
1605
1902
  childrenTagsOrder: [],
1606
1903
  currentElements: {},
1607
- currentTickers: []
1904
+ currentTickers: {},
1905
+ currentTickersSteps: {}
1608
1906
  },
1609
1907
  labelIndex: -1,
1610
1908
  openedLabels: []
@@ -1715,6 +2013,13 @@ var _GameStepManager = class _GameStepManager {
1715
2013
  _GameStepManager._openedLabels = _GameStepManager.originalStepData.openedLabels;
1716
2014
  }
1717
2015
  /* Run Methods */
2016
+ static get canGoNext() {
2017
+ let options = getChoiceMenuOptions();
2018
+ if (options && options.length > 0) {
2019
+ return false;
2020
+ }
2021
+ return true;
2022
+ }
1718
2023
  /**
1719
2024
  * Execute the next step and add it to the history.
1720
2025
  * @param props The props to pass to the step.
@@ -1724,7 +2029,7 @@ var _GameStepManager = class _GameStepManager {
1724
2029
  * ```typescript
1725
2030
  * function nextOnClick() {
1726
2031
  * setLoading(true)
1727
- * GameStepManager.runNextStep(yourParams)
2032
+ * GameStepManager.goNext(yourParams)
1728
2033
  * .then((result) => {
1729
2034
  * setUpdate((p) => p + 1)
1730
2035
  * setLoading(false)
@@ -1739,8 +2044,12 @@ var _GameStepManager = class _GameStepManager {
1739
2044
  * }
1740
2045
  * ```
1741
2046
  */
1742
- static runNextStep(props, choiseMade) {
2047
+ static goNext(props, choiseMade) {
1743
2048
  return __async(this, null, function* () {
2049
+ if (!_GameStepManager.canGoNext) {
2050
+ console.warn("[Pixi'VN] The player must make a choice");
2051
+ return;
2052
+ }
1744
2053
  _GameStepManager.increaseCurrentStepIndex();
1745
2054
  return yield _GameStepManager.runCurrentStep(props, choiseMade);
1746
2055
  });
@@ -1771,7 +2080,7 @@ var _GameStepManager = class _GameStepManager {
1771
2080
  return result;
1772
2081
  } else if (_GameStepManager.openedLabels.length > 1) {
1773
2082
  _GameStepManager.closeCurrentLabel();
1774
- return yield _GameStepManager.runNextStep(props, choiseMade);
2083
+ return yield _GameStepManager.goNext(props, choiseMade);
1775
2084
  } else {
1776
2085
  _GameStepManager.restorLastLabelList();
1777
2086
  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");
@@ -1815,8 +2124,15 @@ var _GameStepManager = class _GameStepManager {
1815
2124
  }
1816
2125
  try {
1817
2126
  if (labelId === CLOSE_LABEL_ID) {
1818
- let closeLabel = newCloseLabel(choiseMade);
1819
- return _GameStepManager.closeChoiceMenu(closeLabel, props);
2127
+ let closeCurrentLabel = newCloseLabel(choiseMade);
2128
+ let choice = {
2129
+ label: closeCurrentLabel,
2130
+ text: "",
2131
+ closeCurrentLabel: false,
2132
+ type: "close",
2133
+ props: {}
2134
+ };
2135
+ return _GameStepManager.closeChoiceMenu(choice, props);
1820
2136
  }
1821
2137
  let tempLabel = getLabelById(labelId);
1822
2138
  if (!tempLabel) {
@@ -1866,8 +2182,15 @@ var _GameStepManager = class _GameStepManager {
1866
2182
  }
1867
2183
  try {
1868
2184
  if (labelId === CLOSE_LABEL_ID) {
1869
- let closeLabel = newCloseLabel(choiseMade);
1870
- return _GameStepManager.closeChoiceMenu(closeLabel, props);
2185
+ let closeCurrentLabel = newCloseLabel(choiseMade);
2186
+ let choice = {
2187
+ label: closeCurrentLabel,
2188
+ text: "",
2189
+ closeCurrentLabel: false,
2190
+ type: "close",
2191
+ props: {}
2192
+ };
2193
+ return _GameStepManager.closeChoiceMenu(choice, props);
1871
2194
  }
1872
2195
  let tempLabel = getLabelById(labelId);
1873
2196
  if (!tempLabel) {
@@ -1883,7 +2206,8 @@ var _GameStepManager = class _GameStepManager {
1883
2206
  }
1884
2207
  /**
1885
2208
  * When the player is in a choice menu, can use this function to exit to the choice menu.
1886
- * @param props The props to pass to the step.
2209
+ * @param choice
2210
+ * @param props
1887
2211
  * @returns StepLabelResultType or undefined.
1888
2212
  * @example
1889
2213
  * ```typescript
@@ -1894,13 +2218,17 @@ var _GameStepManager = class _GameStepManager {
1894
2218
  * })
1895
2219
  * ```
1896
2220
  */
1897
- static closeChoiceMenu(label, props) {
2221
+ static closeChoiceMenu(choice, props) {
1898
2222
  return __async(this, null, function* () {
2223
+ let label = choice.label;
1899
2224
  let choiseMade = void 0;
1900
2225
  if (typeof label.choiseIndex === "number") {
1901
2226
  choiseMade = label.choiseIndex;
1902
2227
  }
1903
- return _GameStepManager.runNextStep(props, choiseMade);
2228
+ if (choice.closeCurrentLabel) {
2229
+ _GameStepManager.closeCurrentLabel();
2230
+ }
2231
+ return _GameStepManager.goNext(props, choiseMade);
1904
2232
  });
1905
2233
  }
1906
2234
  /* After Update Methods */
@@ -2102,8 +2430,9 @@ var Close = "close";
2102
2430
  var ChoiceMenuOptionClose = class {
2103
2431
  /**
2104
2432
  * @param text Text to be displayed in the menu
2433
+ * @param closeCurrentLabel If true, the current label will be closed. @default false
2105
2434
  */
2106
- constructor(text) {
2435
+ constructor(text, closeCurrentLabel = false) {
2107
2436
  /**
2108
2437
  * Label to be opened when the option is selected
2109
2438
  */
@@ -2117,6 +2446,7 @@ var ChoiceMenuOptionClose = class {
2117
2446
  */
2118
2447
  this.props = {};
2119
2448
  this.text = text;
2449
+ this.closeCurrentLabel = closeCurrentLabel;
2120
2450
  }
2121
2451
  };
2122
2452
 
@@ -2139,15 +2469,15 @@ var DialogueBaseModel = class {
2139
2469
  if (typeof text === "string") {
2140
2470
  this.text = text;
2141
2471
  if (typeof character === "string") {
2142
- this.characterId = character;
2472
+ this.character = character;
2143
2473
  } else {
2144
- this.characterId = character == null ? void 0 : character.id;
2474
+ this.character = character == null ? void 0 : character.id;
2145
2475
  }
2146
2476
  this.oltherParams = oltherParams;
2147
2477
  } else {
2148
2478
  this.text = text.text;
2149
- if (text.characterId) {
2150
- this.characterId = text.characterId;
2479
+ if (text.character) {
2480
+ this.character = text.character;
2151
2481
  }
2152
2482
  this.oltherParams = text.oltherParams || {};
2153
2483
  }
@@ -2160,7 +2490,7 @@ var DialogueBaseModel = class {
2160
2490
  export() {
2161
2491
  return {
2162
2492
  text: this.text,
2163
- characterId: this.characterId,
2493
+ character: this.character,
2164
2494
  oltherParams: this.oltherParams
2165
2495
  };
2166
2496
  }
@@ -2169,21 +2499,21 @@ var DialogueBaseModel = class {
2169
2499
  // src/functions/DialogueUtility.ts
2170
2500
  function setDialogue(props) {
2171
2501
  let text = "";
2172
- let characterId = void 0;
2502
+ let character = void 0;
2173
2503
  let dialogue;
2174
2504
  if (typeof props === "string") {
2175
2505
  text = props;
2176
- dialogue = new DialogueBaseModel(text, characterId);
2506
+ dialogue = new DialogueBaseModel(text, character);
2177
2507
  } else if (!(props instanceof DialogueBaseModel)) {
2178
2508
  text = props.text;
2179
2509
  if (props.character) {
2180
2510
  if (typeof props.character === "string") {
2181
- characterId = props.character;
2511
+ character = props.character;
2182
2512
  } else {
2183
- characterId = props.character.id;
2513
+ character = props.character.id;
2184
2514
  }
2185
2515
  }
2186
- dialogue = new DialogueBaseModel(text, characterId);
2516
+ dialogue = new DialogueBaseModel(text, character);
2187
2517
  } else {
2188
2518
  dialogue = props;
2189
2519
  }
@@ -2201,7 +2531,8 @@ function setChoiceMenuOptions(options) {
2201
2531
  if (option instanceof ChoiceMenuOptionClose) {
2202
2532
  return {
2203
2533
  text: option.text,
2204
- type: Close
2534
+ type: Close,
2535
+ closeCurrentLabel: option.closeCurrentLabel
2205
2536
  };
2206
2537
  }
2207
2538
  return __spreadProps(__spreadValues({}, option), {
@@ -2222,6 +2553,7 @@ function getChoiceMenuOptions() {
2222
2553
  text: option.text,
2223
2554
  label: itemLabel,
2224
2555
  type: Close,
2556
+ closeCurrentLabel: option.closeCurrentLabel,
2225
2557
  props: {}
2226
2558
  });
2227
2559
  return;