@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
@@ -1,6 +1,6 @@
1
1
  import { diff } from 'deep-diff';
2
2
  import sha1 from 'crypto-js/sha1';
3
- import { Assets, Texture, Sprite, Container, Application, Text } from 'pixi.js';
3
+ import { Container, Assets, Texture, Sprite, Application, Text } from 'pixi.js';
4
4
 
5
5
  var __defProp = Object.defineProperty;
6
6
  var __defProps = Object.defineProperties;
@@ -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;
@@ -284,26 +283,42 @@ var GameStorageManager = _GameStorageManager;
284
283
  var TickerBase = class {
285
284
  /**
286
285
  * @param args The arguments that you want to pass to the ticker.
287
- * @param duration The duration of the ticker. If is undefined, the ticker will be called every frame.
288
- * @param priority The priority of the ticker. If is undefined, the priority will be UPDATE_PRIORITY.NORMAL.
286
+ * @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
287
+ * @param priority The priority of the ticker. @default UPDATE_PRIORITY.NORMAL
289
288
  */
290
289
  constructor(args, duration, priority) {
290
+ /**
291
+ * Get the id of the ticker. This variable is used in the system to get the ticker by id, {@link geTickerInstanceById}
292
+ */
293
+ this.id = "ticker_id_not_set";
291
294
  this.args = args;
292
295
  this.duration = duration;
293
296
  this.priority = priority;
297
+ this.id = this.constructor.prototype.id;
294
298
  }
295
299
  /**
296
300
  * The method that will be called every frame.
297
301
  * This method should be overridden and you can use GameWindowManager.addCanvasElement() to get the canvas element of the canvas, and edit them.
298
- * @param t The ticker that is calling this method
299
- * @param args The arguments that you passed when you added the ticker
300
- * @param tags The tags of the canvas elements that are connected to this ticker
302
+ * @param _ticker The ticker that is calling this method
303
+ * @param _args The arguments that you passed when you added the ticker
304
+ * @param _tags The tags of the canvas elements that are connected to this ticker
305
+ * @param _tickerId The id of the ticker. You can use this to get the ticker from the {@link GameWindowManager.currentTickers}
301
306
  */
302
- fn(_t, _args, _tags) {
307
+ fn(_ticker, _args, _tags, _tickerId) {
303
308
  throw new Error("[Pixi'VN] The method TickerBase.fn() must be overridden");
304
309
  }
305
310
  };
306
311
 
312
+ // src/constants.ts
313
+ var PIXIVN_VERSION = "0.6.2";
314
+ var Repeat = "repeat";
315
+ function Pause(duration) {
316
+ return {
317
+ type: "pause",
318
+ duration
319
+ };
320
+ }
321
+
307
322
  // src/decorators/TickerDecorator.ts
308
323
  var registeredTickers = {};
309
324
  function tickerDecorator(name) {
@@ -312,25 +327,32 @@ function tickerDecorator(name) {
312
327
  name = target.name;
313
328
  }
314
329
  if (registeredTickers[name]) {
315
- console.warn(`[Pixi'VN] Ticker ${name} already exists, it will be overwritten`);
330
+ console.info(`[Pixi'VN] Ticker ${name} already exists, it will be overwritten`);
316
331
  }
332
+ target.prototype.id = name;
317
333
  registeredTickers[name] = target;
318
334
  };
319
335
  }
320
- function geTickerInstanceByClassName(tickerName, args, duration, priority) {
336
+ function geTickerInstanceById(tickerId, args, duration, priority) {
321
337
  try {
322
- let ticker = registeredTickers[tickerName];
338
+ let ticker = registeredTickers[tickerId];
323
339
  if (!ticker) {
324
- console.error(`[Pixi'VN] Ticker ${tickerName} not found`);
340
+ console.error(`[Pixi'VN] Ticker ${tickerId} not found`);
325
341
  return;
326
342
  }
327
343
  return new ticker(args, duration, priority);
328
344
  } catch (e) {
329
- console.error(`[Pixi'VN] Error while getting Ticker ${tickerName}`, e);
345
+ console.error(`[Pixi'VN] Error while getting Ticker ${tickerId}`, e);
330
346
  return;
331
347
  }
332
348
  }
349
+ var CANVAS_CONTAINER_ID = "CanvasContainer";
333
350
  var CanvasContainer = class extends Container {
351
+ constructor(options) {
352
+ super(options);
353
+ this.pixivnId = CANVAS_CONTAINER_ID;
354
+ this.pixivnId = this.constructor.prototype.pixivnId;
355
+ }
334
356
  get memory() {
335
357
  let memory = getMemoryContainer(this);
336
358
  this.children.forEach((child) => {
@@ -346,8 +368,12 @@ var CanvasContainer = class extends Container {
346
368
  }
347
369
  };
348
370
  function getMemoryContainer(element) {
371
+ let className = "CanvasContainer";
372
+ if (element.hasOwnProperty("pixivnId")) {
373
+ className = element.pixivnId;
374
+ }
349
375
  return {
350
- className: "CanvasContainer",
376
+ pixivnId: className,
351
377
  elements: [],
352
378
  width: element.width,
353
379
  height: element.height,
@@ -463,40 +489,43 @@ function getTextStyle(style) {
463
489
 
464
490
  // src/decorators/EventDecorator.ts
465
491
  var registeredEvents = {};
466
- function getEventTypeByClassName(eventName) {
492
+ function getEventTypeById(eventId) {
467
493
  try {
468
- let eventType = registeredEvents[eventName];
494
+ let eventType = registeredEvents[eventId];
469
495
  if (!eventType) {
470
- console.error(`[Pixi'VN] Event ${eventName} not found`);
496
+ console.error(`[Pixi'VN] Event ${eventId} not found`);
471
497
  return;
472
498
  }
473
499
  new eventType();
474
500
  return eventType;
475
501
  } catch (e) {
476
- console.error(`[Pixi'VN] Error while getting Event ${eventName}`, e);
502
+ console.error(`[Pixi'VN] Error while getting Event ${eventId}`, e);
477
503
  return;
478
504
  }
479
505
  }
480
- function getEventInstanceByClassName(eventName) {
506
+ function getEventInstanceById(eventId) {
481
507
  try {
482
- let eventType = registeredEvents[eventName];
508
+ let eventType = registeredEvents[eventId];
483
509
  if (!eventType) {
484
- console.error(`[Pixi'VN] Event ${eventName} not found`);
510
+ console.error(`[Pixi'VN] Event ${eventId} not found`);
485
511
  return;
486
512
  }
487
513
  let event = new eventType();
488
514
  return event;
489
515
  } catch (e) {
490
- console.error(`[Pixi'VN] Error while getting Event ${eventName}`, e);
516
+ console.error(`[Pixi'VN] Error while getting Event ${eventId}`, e);
491
517
  return;
492
518
  }
493
519
  }
494
520
 
495
521
  // src/classes/canvas/CanvasSprite.ts
522
+ var CANVAS_SPRITE_ID = "CanvasSprite";
496
523
  var CanvasSprite = class _CanvasSprite extends Sprite {
497
- constructor() {
498
- super(...arguments);
524
+ constructor(options) {
525
+ super(options);
526
+ this.pixivnId = CANVAS_SPRITE_ID;
499
527
  this._onEvents = {};
528
+ this.pixivnId = this.constructor.prototype.pixivnId;
500
529
  }
501
530
  get memory() {
502
531
  return getMemorySprite(this);
@@ -537,9 +566,9 @@ var CanvasSprite = class _CanvasSprite extends Sprite {
537
566
  * ```
538
567
  */
539
568
  onEvent(event, eventClass) {
540
- let className = eventClass.name;
541
- let instance = getEventInstanceByClassName(className);
542
- this._onEvents[event] = className;
569
+ let id = eventClass.prototype.id;
570
+ let instance = getEventInstanceById(id);
571
+ this._onEvents[event] = id;
543
572
  if (instance) {
544
573
  super.on(event, () => {
545
574
  instance.fn(event, this);
@@ -568,7 +597,7 @@ var CanvasSprite = class _CanvasSprite extends Sprite {
568
597
  function getMemorySprite(element) {
569
598
  let temp = getMemoryContainer(element);
570
599
  return __spreadProps(__spreadValues({}, temp), {
571
- className: "CanvasSprite",
600
+ pixivnId: element.pixivnId,
572
601
  textureImage: getTextureMemory(element.texture),
573
602
  anchor: { x: element.anchor.x, y: element.anchor.y },
574
603
  roundPixels: element.roundPixels,
@@ -591,8 +620,8 @@ function setMemorySprite(element, memory) {
591
620
  }
592
621
  memory.roundPixels && (element.roundPixels = memory.roundPixels);
593
622
  for (let event in memory.onEvents) {
594
- let className = memory.onEvents[event];
595
- let instance = getEventTypeByClassName(className);
623
+ let id = memory.onEvents[event];
624
+ let instance = getEventTypeById(id);
596
625
  if (instance) {
597
626
  element.onEvent(event, instance);
598
627
  }
@@ -600,9 +629,11 @@ function setMemorySprite(element, memory) {
600
629
  }
601
630
 
602
631
  // src/classes/canvas/CanvasImage.ts
632
+ var CANVAS_IMAGE_ID = "CanvasImage";
603
633
  var CanvasImage = class _CanvasImage extends CanvasSprite {
604
634
  constructor(options, imageLink) {
605
635
  super(options);
636
+ this.pixivnId = CANVAS_IMAGE_ID;
606
637
  this.imageLink = "";
607
638
  if (imageLink) {
608
639
  this.imageLink = imageLink;
@@ -610,12 +641,13 @@ var CanvasImage = class _CanvasImage extends CanvasSprite {
610
641
  }
611
642
  get memory() {
612
643
  return __spreadProps(__spreadValues({}, getMemorySprite(this)), {
613
- className: "CanvasImage",
614
- textureImage: { image: this.imageLink }
644
+ pixivnId: this.pixivnId,
645
+ imageLink: this.imageLink
615
646
  });
616
647
  }
617
648
  set memory(memory) {
618
649
  setMemorySprite(this, memory);
650
+ this.imageLink = memory.imageLink;
619
651
  }
620
652
  static from(source, skipCache) {
621
653
  let sprite = Sprite.from(source, skipCache);
@@ -643,10 +675,13 @@ var CanvasImage = class _CanvasImage extends CanvasSprite {
643
675
  });
644
676
  }
645
677
  };
678
+ var CANVAS_TEXT_ID = "CanvasText";
646
679
  var CanvasText = class extends Text {
647
- constructor() {
648
- super(...arguments);
680
+ constructor(options) {
681
+ super(options);
682
+ this.pixivnId = CANVAS_TEXT_ID;
649
683
  this._onEvents = {};
684
+ this.pixivnId = this.constructor.prototype.pixivnId;
650
685
  }
651
686
  get memory() {
652
687
  return getMemoryText(this);
@@ -687,9 +722,9 @@ var CanvasText = class extends Text {
687
722
  * ```
688
723
  */
689
724
  onEvent(event, eventClass) {
690
- let className = eventClass.name;
691
- let instance = getEventInstanceByClassName(className);
692
- this._onEvents[event] = className;
725
+ let id = eventClass.prototype.id;
726
+ let instance = getEventInstanceById(id);
727
+ this._onEvents[event] = id;
693
728
  if (instance) {
694
729
  super.on(event, () => {
695
730
  instance.fn(event, this);
@@ -712,7 +747,7 @@ var CanvasText = class extends Text {
712
747
  function getMemoryText(element) {
713
748
  let temp = getMemoryContainer(element);
714
749
  return __spreadProps(__spreadValues({}, temp), {
715
- className: "CanvasText",
750
+ pixivnId: element.pixivnId,
716
751
  anchor: { x: element.anchor.x, y: element.anchor.y },
717
752
  text: element.text,
718
753
  resolution: element.resolution,
@@ -735,8 +770,8 @@ function setMemoryText(element, memory) {
735
770
  memory.style && (element.style = memory.style);
736
771
  memory.roundPixels && (element.roundPixels = memory.roundPixels);
737
772
  for (let event in memory.onEvents) {
738
- let className = memory.onEvents[event];
739
- let instance = getEventTypeByClassName(className);
773
+ let id = memory.onEvents[event];
774
+ let instance = getEventTypeById(id);
740
775
  if (instance) {
741
776
  element.onEvent(event, instance);
742
777
  }
@@ -745,28 +780,28 @@ function setMemoryText(element, memory) {
745
780
 
746
781
  // src/decorators/CanvasElementDecorator.ts
747
782
  var registeredCanvasElement = {};
748
- function getCanvasElementInstanceByClassName(canvasName) {
783
+ function getCanvasElementInstanceById(canvasId) {
749
784
  try {
750
- let eventType = registeredCanvasElement[canvasName];
785
+ let eventType = registeredCanvasElement[canvasId];
751
786
  if (!eventType) {
752
- if (canvasName === "CanvasContainer") {
787
+ if (canvasId === CANVAS_CONTAINER_ID) {
753
788
  eventType = CanvasContainer;
754
- } else if (canvasName === "CanvasImage") {
789
+ } else if (canvasId === CANVAS_IMAGE_ID) {
755
790
  eventType = CanvasImage;
756
- } else if (canvasName === "CanvasSprite") {
791
+ } else if (canvasId === CANVAS_SPRITE_ID) {
757
792
  eventType = CanvasSprite;
758
- } else if (canvasName === "CanvasText") {
793
+ } else if (canvasId === CANVAS_TEXT_ID) {
759
794
  eventType = CanvasText;
760
795
  }
761
796
  }
762
797
  if (!eventType) {
763
- console.error(`[Pixi'VN] CanvasElement ${canvasName} not found`);
798
+ console.error(`[Pixi'VN] CanvasElement ${canvasId} not found`);
764
799
  return;
765
800
  }
766
801
  let canvasElement = new eventType();
767
802
  return canvasElement;
768
803
  } catch (e) {
769
- console.error(`[Pixi'VN] Error while getting CanvasElement ${canvasName}`, e);
804
+ console.error(`[Pixi'VN] Error while getting CanvasElement ${canvasId}`, e);
770
805
  return;
771
806
  }
772
807
  }
@@ -783,11 +818,11 @@ function exportCanvasElement(element) {
783
818
  return element.memory;
784
819
  }
785
820
  function importCanvasElement(memory) {
786
- let element = getCanvasElementInstanceByClassName(memory.className);
821
+ let element = getCanvasElementInstanceById(memory.pixivnId);
787
822
  if (element) {
788
823
  element.memory = memory;
789
824
  } else {
790
- throw new Error("[Pixi'VN] The element " + memory.className + " could not be created");
825
+ throw new Error("[Pixi'VN] The element " + memory.pixivnId + " could not be created");
791
826
  }
792
827
  return element;
793
828
  }
@@ -803,11 +838,8 @@ function asciiArtLog() {
803
838
  `);
804
839
  }
805
840
 
806
- // src/types/PauseType.ts
807
- var PauseValueType = "pause";
808
-
809
- // src/types/RepeatType.ts
810
- var Repeat = "repeat";
841
+ // src/types/ticker/TagToRemoveAfterType.ts
842
+ var tagToRemoveAfter = "tagToRemoveAfter";
811
843
 
812
844
  // src/managers/WindowManager.ts
813
845
  var _GameWindowManager = class _GameWindowManager {
@@ -991,25 +1023,25 @@ var _GameWindowManager = class _GameWindowManager {
991
1023
  /**
992
1024
  * Remove a canvas element from the canvas.
993
1025
  * And remove all tickers that are not connected to any canvas element.
994
- * @param tag The tag of the canvas element to be removed.
1026
+ * @param tags The tag of the canvas element to be removed.
995
1027
  * @returns
996
1028
  * @example
997
1029
  * ```typescript
998
1030
  * GameWindowManager.removeCanvasElement("bunny");
999
1031
  * ```
1000
1032
  */
1001
- static removeCanvasElement(tag) {
1002
- if (typeof tag === "string") {
1003
- tag = [tag];
1033
+ static removeCanvasElement(tags) {
1034
+ if (typeof tags === "string") {
1035
+ tags = [tags];
1004
1036
  }
1005
- tag.forEach((t) => {
1006
- if (_GameWindowManager._children[t]) {
1007
- _GameWindowManager.app.stage.removeChild(_GameWindowManager._children[t]);
1008
- delete _GameWindowManager._children[t];
1037
+ tags.forEach((tag) => {
1038
+ if (_GameWindowManager._children[tag]) {
1039
+ _GameWindowManager.app.stage.removeChild(_GameWindowManager._children[tag]);
1040
+ delete _GameWindowManager._children[tag];
1041
+ _GameWindowManager.removeTickerByCanvasElement(tag);
1009
1042
  }
1010
1043
  });
1011
- _GameWindowManager.removeTickersWithoutAssociatedCanvasElement();
1012
- _GameWindowManager.childrenTagsOrder = _GameWindowManager.childrenTagsOrder.filter((t) => !tag.includes(t));
1044
+ _GameWindowManager.childrenTagsOrder = _GameWindowManager.childrenTagsOrder.filter((t) => !tags.includes(t));
1013
1045
  }
1014
1046
  /**
1015
1047
  * Get a canvas element by the tag.
@@ -1039,18 +1071,43 @@ var _GameWindowManager = class _GameWindowManager {
1039
1071
  _GameWindowManager.app.stage.removeChildren();
1040
1072
  _GameWindowManager._children = {};
1041
1073
  _GameWindowManager.childrenTagsOrder = [];
1042
- _GameWindowManager.removeTickers();
1074
+ _GameWindowManager.removeAllTickers();
1043
1075
  }
1044
1076
  /**
1045
1077
  * Edit the tag of a canvas element.
1046
1078
  * @param oldTag The old tag of the canvas element.
1047
1079
  * @param newTag The new tag of the canvas element.
1048
1080
  */
1049
- static editTagCanvasElement(oldTag, newTag) {
1081
+ static editCanvasElementTag(oldTag, newTag) {
1050
1082
  if (_GameWindowManager._children[oldTag]) {
1051
1083
  _GameWindowManager._children[newTag] = _GameWindowManager._children[oldTag];
1052
1084
  delete _GameWindowManager._children[oldTag];
1053
1085
  }
1086
+ if (_GameWindowManager._currentTickersSteps[oldTag]) {
1087
+ _GameWindowManager._currentTickersSteps[newTag] = _GameWindowManager._currentTickersSteps[oldTag];
1088
+ delete _GameWindowManager._currentTickersSteps[oldTag];
1089
+ }
1090
+ for (let id in _GameWindowManager._currentTickers) {
1091
+ let ticker = _GameWindowManager._currentTickers[id];
1092
+ if (ticker.canvasElementTags.includes(oldTag)) {
1093
+ ticker.canvasElementTags = ticker.canvasElementTags.map((t) => t === oldTag ? newTag : t);
1094
+ if (ticker.args.hasOwnProperty(tagToRemoveAfter)) {
1095
+ let tagToRemoveAfter2 = ticker.args.tagToRemoveAfter;
1096
+ if (typeof tagToRemoveAfter2 === "string") {
1097
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
1098
+ }
1099
+ if (Array.isArray(tagToRemoveAfter2)) {
1100
+ ticker.args.tagToRemoveAfter = tagToRemoveAfter2.map((t) => t === oldTag ? newTag : t);
1101
+ }
1102
+ }
1103
+ }
1104
+ }
1105
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1106
+ let TickerTimeout = _GameWindowManager._currentTickersTimeouts[timeout];
1107
+ if (TickerTimeout.tags.includes(oldTag)) {
1108
+ TickerTimeout.tags = TickerTimeout.tags.map((t) => t === oldTag ? newTag : t);
1109
+ }
1110
+ }
1054
1111
  }
1055
1112
  /** Edit Tickers Methods */
1056
1113
  /**
@@ -1059,106 +1116,127 @@ var _GameWindowManager = class _GameWindowManager {
1059
1116
  static get currentTickers() {
1060
1117
  return _GameWindowManager._currentTickers;
1061
1118
  }
1119
+ static get currentTickersList() {
1120
+ return Object.values(_GameWindowManager._currentTickers);
1121
+ }
1122
+ static get currentTickersWithoutCreatedBySteps() {
1123
+ return Object.fromEntries(Object.entries(_GameWindowManager._currentTickers).filter(([_, ticker]) => !ticker.createdByTicketStepsId));
1124
+ }
1062
1125
  /**
1063
1126
  * The steps of the tickers
1064
1127
  */
1065
1128
  static get currentTickersSteps() {
1066
1129
  return _GameWindowManager._currentTickersSteps;
1067
1130
  }
1131
+ static generateTickerId(tickerData) {
1132
+ try {
1133
+ return sha1(JSON.stringify(tickerData)).toString() + "_" + Math.random().toString(36).substring(7);
1134
+ } catch (e) {
1135
+ throw new Error(`[Pixi'VN] Error to generate ticker id: ${e}`);
1136
+ }
1137
+ }
1068
1138
  /**
1069
- * Run a ticker.
1139
+ * Run a ticker. You can run multiple addTicker with the same tag and different tickerClasses.
1140
+ * If you run a ticker with the same tag and tickerClass, the old ticker will be removed.
1141
+ * If already exists a sequence of tickers with the same tag, it will be removed.
1070
1142
  * @param canvasEslementTag The tag of the canvas element that will use the ticker.
1071
1143
  * @param ticker The ticker class to be run.
1072
1144
  * @param args The arguments to be used in the ticker.
1073
- * @param duration The time to be used in the ticker. This number is in milliseconds. If it is undefined, the ticker will run forever.
1145
+ * @param duration The time to be used in the ticker. This number is in seconds. If it is undefined, the ticker will run forever.
1074
1146
  * @param priority The priority to be used in the ticker.
1075
1147
  * @returns
1076
1148
  * @example
1077
1149
  * ```typescript
1078
- * GameWindowManager.addTicker("alien", new TickerRotate({ speed: 0.2 }))
1150
+ * GameWindowManager.addTicker("alien", new RotateTicker({ speed: 0.2 }))
1079
1151
  * ```
1080
1152
  */
1081
1153
  static addTicker(canvasElementTag, ticker) {
1082
- let tickerName = ticker.constructor.name;
1154
+ let tickerId = ticker.id;
1083
1155
  if (typeof canvasElementTag === "string") {
1084
1156
  canvasElementTag = [canvasElementTag];
1085
1157
  }
1086
- let t = geTickerInstanceByClassName(tickerName, ticker.args, ticker.duration, ticker.priority);
1087
- if (!t) {
1088
- console.error(`[Pixi'VN] Ticker ${tickerName} not found`);
1158
+ if (!geTickerInstanceById(tickerId, ticker.args, ticker.duration, ticker.priority)) {
1159
+ console.error(`[Pixi'VN] Ticker ${tickerId} not found`);
1089
1160
  return;
1090
1161
  }
1091
- _GameWindowManager.removeAssociationBetweenTickerCanvasElement(canvasElementTag, ticker);
1092
1162
  let tickerHistory = {
1093
1163
  fn: () => {
1094
1164
  },
1095
- className: tickerName,
1096
- args: ticker.args,
1165
+ id: tickerId,
1166
+ args: createExportableElement(ticker.args),
1097
1167
  canvasElementTags: canvasElementTag,
1098
1168
  priority: ticker.priority,
1099
1169
  duration: ticker.duration
1100
1170
  };
1101
- _GameWindowManager.pushTicker(tickerHistory, t);
1102
- _GameWindowManager.removeTickersWithoutAssociatedCanvasElement();
1171
+ let id = _GameWindowManager.generateTickerId(tickerHistory);
1172
+ _GameWindowManager.pushTicker(id, tickerHistory, ticker);
1103
1173
  if (ticker.duration) {
1104
1174
  let timeout = setTimeout(() => {
1105
1175
  _GameWindowManager.removeTickerTimeoutInfo(timeout);
1106
- _GameWindowManager.nextTickerStep(canvasElementTag);
1107
- }, ticker.duration);
1108
- _GameWindowManager.addTickerTimeoutInfo(canvasElementTag, tickerName, timeout.toString());
1176
+ let tickerTimeoutInfo = _GameWindowManager._currentTickersTimeouts[timeout.toString()];
1177
+ if (tickerTimeoutInfo) {
1178
+ _GameWindowManager.removeTicker(id);
1179
+ }
1180
+ }, ticker.duration * 1e3);
1181
+ _GameWindowManager.addTickerTimeoutInfo(canvasElementTag, tickerId, timeout.toString(), true);
1109
1182
  }
1110
1183
  }
1111
- static pushTicker(tickerData, ticker) {
1112
- _GameWindowManager.removeAssociationBetweenTickerCanvasElement(tickerData.canvasElementTags, tickerData);
1113
- _GameWindowManager._currentTickers.push(tickerData);
1184
+ static pushTicker(id, tickerData, ticker) {
1185
+ _GameWindowManager.removeAssociationBetweenTickerCanvasElement(tickerData.canvasElementTags, ticker);
1186
+ _GameWindowManager._currentTickers[id] = tickerData;
1114
1187
  tickerData.fn = (t) => {
1115
- ticker == null ? void 0 : ticker.fn(t, tickerData.args, tickerData.canvasElementTags);
1188
+ let data = _GameWindowManager._currentTickers[id];
1189
+ if (data) {
1190
+ ticker == null ? void 0 : ticker.fn(t, data.args, data.canvasElementTags, id);
1191
+ }
1116
1192
  };
1117
1193
  _GameWindowManager.app.ticker.add(tickerData.fn, void 0, tickerData.priority);
1118
1194
  }
1119
1195
  /**
1120
- * Run a sequence of tickers.
1196
+ * Run a sequence of tickers. If exists a ticker steps with the same tag, it will be removed.
1121
1197
  * @param tag The tag of canvas element that will use the tickers.
1122
1198
  * @param steps The steps of the tickers.
1199
+ * @param currentStepNumber The current step number. It is used to continue the sequence of tickers.
1123
1200
  * @returns
1124
1201
  * @example
1125
1202
  * ```typescript
1126
1203
  * GameWindowManager.addTickersSteps("alien", [
1127
- * new TickerRotate({ speed: 0.1, clockwise: true }, 2000),
1128
- * Pause(500),
1129
- * new TickerRotate({ speed: 0.2, clockwise: false }, 2000),
1204
+ * new RotateTicker({ speed: 0.1, clockwise: true }, 2), // 2 seconds
1205
+ * Pause(1), // 1 second
1206
+ * new RotateTicker({ speed: 0.2, clockwise: false }, 2),
1130
1207
  * Repeat,
1131
1208
  * ])
1132
1209
  * ```
1133
1210
  */
1134
- static addTickersSteps(tag, steps) {
1211
+ static addTickersSteps(tag, steps, currentStepNumber = 0) {
1135
1212
  if (steps.length == 0) {
1136
1213
  console.warn("[Pixi'VN] The steps of the tickers is empty");
1137
1214
  return;
1138
1215
  }
1139
- let alredyExists = _GameWindowManager._currentTickersSteps[tag] !== void 0;
1216
+ _GameWindowManager.removeTickerStepByCanvasElement(tag);
1140
1217
  _GameWindowManager._currentTickersSteps[tag] = {
1141
- currentStepNumber: 0,
1142
- steps: steps.map((s) => {
1143
- if (s === Repeat) {
1144
- return s;
1145
- }
1146
- if (!s.duration) {
1147
- console.warn("[Pixi'VN] Duration is not defined, so it will be set to 1000");
1148
- s.duration = 1e3;
1218
+ currentStepNumber,
1219
+ steps: steps.map((step) => {
1220
+ if (step === Repeat) {
1221
+ return step;
1149
1222
  }
1150
- if (s.hasOwnProperty("type") && s.type === PauseValueType) {
1151
- return s;
1223
+ if (step.hasOwnProperty("type") && step.type === "pause") {
1224
+ return step;
1152
1225
  }
1153
- let tickerName = s.constructor.name;
1226
+ let tickerId = step.id;
1154
1227
  return {
1155
- ticker: tickerName,
1156
- args: s.args,
1157
- duration: s.duration
1228
+ ticker: tickerId,
1229
+ args: createExportableElement(step.args),
1230
+ duration: step.duration
1158
1231
  };
1159
1232
  })
1160
1233
  };
1161
- if (!alredyExists) {
1234
+ _GameWindowManager.runTickersSteps(tag);
1235
+ }
1236
+ static restoneTickersSteps(data) {
1237
+ for (let tag in data) {
1238
+ let steps = data[tag];
1239
+ _GameWindowManager._currentTickersSteps[tag] = steps;
1162
1240
  _GameWindowManager.runTickersSteps(tag);
1163
1241
  }
1164
1242
  }
@@ -1172,70 +1250,106 @@ var _GameWindowManager = class _GameWindowManager {
1172
1250
  return;
1173
1251
  }
1174
1252
  }
1175
- if (step.hasOwnProperty("type") && step.type === PauseValueType) {
1253
+ if (step.hasOwnProperty("type") && step.type === "pause") {
1176
1254
  let timeout = setTimeout(() => {
1255
+ let tickerTimeoutInfo = _GameWindowManager._currentTickersTimeouts[timeout.toString()];
1256
+ if (tickerTimeoutInfo) {
1257
+ tickerTimeoutInfo.tags.forEach((tag2) => {
1258
+ _GameWindowManager.nextTickerStep(tag2);
1259
+ });
1260
+ }
1177
1261
  _GameWindowManager.removeTickerTimeoutInfo(timeout);
1178
- _GameWindowManager.nextTickerStep(tag);
1179
- }, step.duration);
1180
- _GameWindowManager.addTickerTimeoutInfo(tag, "steps", timeout.toString());
1262
+ }, step.duration * 1e3);
1263
+ _GameWindowManager.addTickerTimeoutInfo(tag, "steps", timeout.toString(), false);
1181
1264
  return;
1182
1265
  }
1183
- let ticker = geTickerInstanceByClassName(step.ticker, step.args, step.duration, step.priority);
1266
+ let ticker = geTickerInstanceById(step.ticker, step.args, step.duration, step.priority);
1184
1267
  if (!ticker) {
1185
1268
  console.error(`[Pixi'VN] Ticker ${step.ticker} not found`);
1186
1269
  return;
1187
1270
  }
1188
- _GameWindowManager.addTicker(tag, ticker);
1271
+ let tickerName = ticker.id;
1272
+ let tickerHistory = {
1273
+ fn: () => {
1274
+ },
1275
+ id: tickerName,
1276
+ args: createExportableElement(ticker.args),
1277
+ canvasElementTags: [tag],
1278
+ priority: ticker.priority,
1279
+ duration: ticker.duration,
1280
+ createdByTicketStepsId: tag
1281
+ };
1282
+ let id = _GameWindowManager.generateTickerId(tickerHistory);
1283
+ _GameWindowManager.pushTicker(id, tickerHistory, ticker);
1284
+ if (ticker.duration) {
1285
+ let timeout = setTimeout(() => {
1286
+ let tickerTimeoutInfo = _GameWindowManager._currentTickersTimeouts[timeout.toString()];
1287
+ if (tickerTimeoutInfo) {
1288
+ _GameWindowManager.removeTicker(id);
1289
+ tickerTimeoutInfo.tags.forEach((tag2) => {
1290
+ _GameWindowManager.nextTickerStep(tag2);
1291
+ });
1292
+ }
1293
+ _GameWindowManager.removeTickerTimeoutInfo(timeout);
1294
+ }, ticker.duration * 1e3);
1295
+ _GameWindowManager.addTickerTimeoutInfo(tag, tickerName, timeout.toString(), false);
1296
+ }
1189
1297
  }
1190
1298
  static nextTickerStep(tag) {
1191
- if (typeof tag === "string") {
1192
- tag = [tag];
1299
+ if (_GameWindowManager._currentTickersSteps[tag]) {
1300
+ let steps = _GameWindowManager._currentTickersSteps[tag];
1301
+ if (steps.currentStepNumber + 1 < steps.steps.length) {
1302
+ steps.currentStepNumber++;
1303
+ _GameWindowManager._currentTickersSteps[tag] = steps;
1304
+ _GameWindowManager.runTickersSteps(tag);
1305
+ } else {
1306
+ _GameWindowManager.removeTickerStepByCanvasElement(tag);
1307
+ }
1193
1308
  }
1194
- tag.forEach((tag2) => {
1195
- if (_GameWindowManager._currentTickersSteps[tag2]) {
1196
- let steps = _GameWindowManager._currentTickersSteps[tag2];
1197
- if (steps.currentStepNumber + 1 < steps.steps.length) {
1198
- steps.currentStepNumber++;
1199
- _GameWindowManager._currentTickersSteps[tag2] = steps;
1200
- _GameWindowManager.runTickersSteps(tag2);
1201
- } else {
1202
- delete _GameWindowManager._currentTickersSteps[tag2];
1203
- }
1309
+ }
1310
+ static onEndOfTicker(canvasElementTags, ticker, canvasElementTagsToDelete, tickerId) {
1311
+ let tickerData = _GameWindowManager._currentTickers[tickerId];
1312
+ _GameWindowManager.removeAssociationBetweenTickerCanvasElement(canvasElementTags, ticker);
1313
+ _GameWindowManager.removeCanvasElement(canvasElementTagsToDelete);
1314
+ if (tickerData) {
1315
+ _GameWindowManager.removeTicker(tickerId);
1316
+ if (tickerData.duration == void 0 && tickerData.createdByTicketStepsId) {
1317
+ _GameWindowManager.nextTickerStep(tickerData.createdByTicketStepsId);
1204
1318
  }
1205
- });
1319
+ }
1206
1320
  }
1207
1321
  /**
1208
1322
  * Remove a connection between a canvas element and a ticker.
1209
1323
  * And remove the ticker if there is no canvas element connected to it.
1210
- * @param tag The tag of the canvas element that will use the ticker.
1324
+ * @param tags The tag of the canvas element that will use the ticker.
1211
1325
  * @param ticker The ticker class to be removed.
1212
1326
  * @example
1213
1327
  * ```typescript
1214
- * GameWindowManager.removeAssociationBetweenTickerCanvasElement("alien", TickerRotate)
1328
+ * GameWindowManager.removeAssociationBetweenTickerCanvasElement("alien", RotateTicker)
1215
1329
  * ```
1216
1330
  */
1217
- static removeAssociationBetweenTickerCanvasElement(tag, ticker) {
1218
- let tickerName;
1219
- if (ticker instanceof TickerBase) {
1220
- tickerName = ticker.constructor.name;
1331
+ static removeAssociationBetweenTickerCanvasElement(tags, ticker) {
1332
+ let tickerId;
1333
+ if (typeof ticker === "string") {
1334
+ tickerId = ticker;
1335
+ } else if (ticker instanceof TickerBase) {
1336
+ tickerId = ticker.id;
1221
1337
  } else {
1222
- tickerName = ticker.name;
1338
+ tickerId = ticker.prototype.id;
1223
1339
  }
1224
- if (typeof tag === "string") {
1225
- tag = [tag];
1340
+ if (typeof tags === "string") {
1341
+ tags = [tags];
1226
1342
  }
1227
- _GameWindowManager._currentTickers = _GameWindowManager._currentTickers.map((t) => {
1228
- if (t.className === tickerName) {
1229
- t.canvasElementTags = t.canvasElementTags.filter((e) => !tag.includes(e));
1343
+ for (let id in _GameWindowManager._currentTickers) {
1344
+ let ticker2 = _GameWindowManager._currentTickers[id];
1345
+ if (ticker2.id === tickerId) {
1346
+ _GameWindowManager._currentTickers[id].canvasElementTags = ticker2.canvasElementTags.filter((e) => !tags.includes(e));
1230
1347
  }
1231
- return t;
1232
- });
1233
- for (let timeout in _GameWindowManager.currentTickersTimeouts) {
1234
- let t = _GameWindowManager.currentTickersTimeouts[timeout].tags.filter((e) => !tag.includes(e));
1235
- if (t.length == 0) {
1236
- _GameWindowManager.removeTickerTimeoutInfo(timeout);
1237
- } else {
1238
- _GameWindowManager.currentTickersTimeouts[timeout].tags = t;
1348
+ }
1349
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1350
+ let TickerTimeout = _GameWindowManager._currentTickersTimeouts[timeout];
1351
+ if (TickerTimeout.ticker === tickerId && TickerTimeout.canBeDeletedBeforeEnd) {
1352
+ _GameWindowManager._currentTickersTimeouts[timeout].tags = TickerTimeout.tags.filter((t) => !tags.includes(t));
1239
1353
  }
1240
1354
  }
1241
1355
  _GameWindowManager.removeTickersWithoutAssociatedCanvasElement();
@@ -1244,49 +1358,117 @@ var _GameWindowManager = class _GameWindowManager {
1244
1358
  * Remove all tickers that are not connected to any existing canvas element.
1245
1359
  */
1246
1360
  static removeTickersWithoutAssociatedCanvasElement() {
1247
- let currentTickers = _GameWindowManager._currentTickers.map((t) => {
1248
- t.canvasElementTags = t.canvasElementTags.filter((e) => _GameWindowManager._children[e]);
1249
- return t;
1250
- });
1251
- currentTickers.filter((t) => t.canvasElementTags.length === 0).forEach((t) => {
1252
- _GameWindowManager.app.ticker.remove(t.fn);
1253
- });
1254
- currentTickers = currentTickers.filter((t) => t.canvasElementTags.length > 0);
1255
- _GameWindowManager._currentTickers = currentTickers;
1361
+ for (let id in _GameWindowManager._currentTickers) {
1362
+ let ticker = _GameWindowManager._currentTickers[id];
1363
+ ticker.canvasElementTags = ticker.canvasElementTags.filter((e) => _GameWindowManager._children[e]);
1364
+ if (ticker.canvasElementTags.length === 0) {
1365
+ _GameWindowManager.removeTicker(id);
1366
+ }
1367
+ }
1256
1368
  for (let tag in _GameWindowManager._currentTickersSteps) {
1257
1369
  if (_GameWindowManager._children[tag] === void 0) {
1258
1370
  delete _GameWindowManager._currentTickersSteps[tag];
1259
1371
  }
1260
1372
  }
1373
+ Object.entries(_GameWindowManager._currentTickersTimeouts).forEach(([timeout, { tags }]) => {
1374
+ if (tags.length === 0) {
1375
+ _GameWindowManager.removeTickerTimeout(timeout);
1376
+ }
1377
+ });
1261
1378
  }
1262
- static addTickerTimeoutInfo(tags, ticker, timeout) {
1379
+ static addTickerTimeoutInfo(tags, ticker, timeout, canBeDeletedBeforeEnd) {
1263
1380
  if (typeof tags === "string") {
1264
1381
  tags = [tags];
1265
1382
  }
1266
- _GameWindowManager.currentTickersTimeouts[timeout] = {
1383
+ _GameWindowManager._currentTickersTimeouts[timeout] = {
1267
1384
  tags,
1268
- ticker
1385
+ ticker,
1386
+ canBeDeletedBeforeEnd
1269
1387
  };
1270
1388
  }
1271
1389
  static removeTickerTimeoutInfo(timeout) {
1272
1390
  if (typeof timeout !== "string") {
1273
1391
  timeout = timeout.toString();
1274
1392
  }
1275
- if (_GameWindowManager.currentTickersTimeouts[timeout]) {
1276
- delete _GameWindowManager.currentTickersTimeouts[timeout];
1393
+ if (_GameWindowManager._currentTickersTimeouts[timeout]) {
1394
+ delete _GameWindowManager._currentTickersTimeouts[timeout];
1395
+ }
1396
+ }
1397
+ static removeTickerTimeout(timeout) {
1398
+ if (typeof timeout !== "string") {
1399
+ timeout = timeout.toString();
1400
+ }
1401
+ clearTimeout(Number(timeout));
1402
+ _GameWindowManager.removeTickerTimeoutInfo(timeout);
1403
+ }
1404
+ static removeTickerTimeoutsByTag(tag, checkCanBeDeletedBeforeEnd) {
1405
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1406
+ let tagsWithoutTagToRemove = _GameWindowManager._currentTickersTimeouts[timeout].tags.filter((t) => t !== tag);
1407
+ if (tagsWithoutTagToRemove.length === 0) {
1408
+ let canBeDeletedBeforeEnd = _GameWindowManager._currentTickersTimeouts[timeout].canBeDeletedBeforeEnd;
1409
+ if (!checkCanBeDeletedBeforeEnd || canBeDeletedBeforeEnd) {
1410
+ _GameWindowManager.removeTickerTimeout(timeout);
1411
+ }
1412
+ } else {
1413
+ _GameWindowManager._currentTickersTimeouts[timeout].tags = tagsWithoutTagToRemove;
1414
+ }
1277
1415
  }
1278
1416
  }
1279
1417
  /**
1280
1418
  * Remove all tickers from the canvas.
1281
1419
  */
1282
- static removeTickers() {
1420
+ static removeAllTickers() {
1283
1421
  _GameWindowManager._currentTickersSteps = {};
1284
- _GameWindowManager._currentTickers.forEach((t) => {
1285
- _GameWindowManager.app.ticker.remove(t.fn);
1422
+ Object.keys(_GameWindowManager._currentTickers).forEach((id) => {
1423
+ _GameWindowManager.removeTicker(id);
1424
+ });
1425
+ _GameWindowManager._currentTickers = {};
1426
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1427
+ _GameWindowManager.removeTickerTimeout(timeout);
1428
+ }
1429
+ }
1430
+ /**
1431
+ * Remove all tickers from a canvas element.
1432
+ * @param tag The tag of the canvas element that will use the ticker.
1433
+ */
1434
+ static removeTickerByCanvasElement(tag) {
1435
+ if (typeof tag === "string") {
1436
+ tag = [tag];
1437
+ }
1438
+ tag.forEach((tag2) => {
1439
+ for (let id in _GameWindowManager._currentTickers) {
1440
+ let ticker = _GameWindowManager._currentTickers[id];
1441
+ if (ticker.canvasElementTags.includes(tag2)) {
1442
+ _GameWindowManager.removeTicker(id);
1443
+ }
1444
+ }
1445
+ if (_GameWindowManager._currentTickersSteps[tag2]) {
1446
+ delete _GameWindowManager._currentTickersSteps[tag2];
1447
+ }
1448
+ _GameWindowManager.removeTickerTimeoutsByTag(tag2, false);
1449
+ delete _GameWindowManager._currentTickersSteps[tag2];
1286
1450
  });
1287
- _GameWindowManager._currentTickers = [];
1288
- for (let timeout in _GameWindowManager.currentTickersTimeouts) {
1289
- _GameWindowManager.removeTickerTimeoutInfo(timeout);
1451
+ }
1452
+ static removeTickerStepByCanvasElement(tag) {
1453
+ if (_GameWindowManager._currentTickersSteps[tag]) {
1454
+ delete _GameWindowManager._currentTickersSteps[tag];
1455
+ }
1456
+ for (let id in _GameWindowManager._currentTickers) {
1457
+ let ticker = _GameWindowManager._currentTickers[id];
1458
+ if (ticker.createdByTicketStepsId === tag) {
1459
+ _GameWindowManager.removeTicker(id);
1460
+ }
1461
+ }
1462
+ }
1463
+ static removeTicker(tickerId) {
1464
+ let ticker = _GameWindowManager._currentTickers[tickerId];
1465
+ if (ticker) {
1466
+ if (ticker.args.hasOwnProperty(tagToRemoveAfter)) {
1467
+ let tagToRemoveAfter2 = ticker.args.tagToRemoveAfter;
1468
+ _GameWindowManager.removeCanvasElement(tagToRemoveAfter2);
1469
+ }
1470
+ _GameWindowManager.app.ticker.remove(ticker.fn);
1471
+ delete _GameWindowManager._currentTickers[tickerId];
1290
1472
  }
1291
1473
  }
1292
1474
  /**
@@ -1313,7 +1495,8 @@ var _GameWindowManager = class _GameWindowManager {
1313
1495
  currentElements[tag] = exportCanvasElement(_GameWindowManager._children[tag]);
1314
1496
  }
1315
1497
  return {
1316
- currentTickers: createExportableElement(_GameWindowManager._currentTickers),
1498
+ currentTickers: createExportableElement(_GameWindowManager.currentTickersWithoutCreatedBySteps),
1499
+ currentTickersSteps: createExportableElement(_GameWindowManager._currentTickersSteps),
1317
1500
  currentElements: createExportableElement(currentElements),
1318
1501
  childrenTagsOrder: createExportableElement(_GameWindowManager.childrenTagsOrder)
1319
1502
  };
@@ -1348,15 +1531,20 @@ var _GameWindowManager = class _GameWindowManager {
1348
1531
  }
1349
1532
  if (data.hasOwnProperty("currentTickers")) {
1350
1533
  let currentTickers = data["currentTickers"];
1351
- currentTickers.forEach((t) => {
1534
+ for (let id in currentTickers) {
1535
+ let t = currentTickers[id];
1352
1536
  let tags = t.canvasElementTags;
1353
- let ticker = geTickerInstanceByClassName(t.className, t.args, t.duration, t.priority);
1537
+ let ticker = geTickerInstanceById(t.id, t.args, t.duration, t.priority);
1354
1538
  if (ticker) {
1355
1539
  _GameWindowManager.addTicker(tags, ticker);
1356
1540
  } else {
1357
- console.error(`[Pixi'VN] Ticker ${t.className} not found`);
1541
+ console.error(`[Pixi'VN] Ticker ${t.id} not found`);
1358
1542
  }
1359
- });
1543
+ }
1544
+ }
1545
+ if (data.hasOwnProperty("currentTickersSteps")) {
1546
+ let currentTickersSteps = data["currentTickersSteps"];
1547
+ _GameWindowManager.restoneTickersSteps(currentTickersSteps);
1360
1548
  }
1361
1549
  } catch (e) {
1362
1550
  console.error("[Pixi'VN] Error importing data", e);
@@ -1370,9 +1558,9 @@ _GameWindowManager._children = {};
1370
1558
  * The order of the children tags.
1371
1559
  */
1372
1560
  _GameWindowManager.childrenTagsOrder = [];
1373
- _GameWindowManager._currentTickers = [];
1561
+ _GameWindowManager._currentTickers = {};
1374
1562
  _GameWindowManager._currentTickersSteps = {};
1375
- _GameWindowManager.currentTickersTimeouts = {};
1563
+ _GameWindowManager._currentTickersTimeouts = {};
1376
1564
  var GameWindowManager = _GameWindowManager;
1377
1565
 
1378
1566
  // src/managers/StepManager.ts
@@ -1439,7 +1627,8 @@ var _GameStepManager = class _GameStepManager {
1439
1627
  canvas: {
1440
1628
  childrenTagsOrder: [],
1441
1629
  currentElements: {},
1442
- currentTickers: []
1630
+ currentTickers: {},
1631
+ currentTickersSteps: {}
1443
1632
  },
1444
1633
  labelIndex: -1,
1445
1634
  openedLabels: []
@@ -1550,6 +1739,13 @@ var _GameStepManager = class _GameStepManager {
1550
1739
  _GameStepManager._openedLabels = _GameStepManager.originalStepData.openedLabels;
1551
1740
  }
1552
1741
  /* Run Methods */
1742
+ static get canGoNext() {
1743
+ let options = getChoiceMenuOptions();
1744
+ if (options && options.length > 0) {
1745
+ return false;
1746
+ }
1747
+ return true;
1748
+ }
1553
1749
  /**
1554
1750
  * Execute the next step and add it to the history.
1555
1751
  * @param props The props to pass to the step.
@@ -1559,7 +1755,7 @@ var _GameStepManager = class _GameStepManager {
1559
1755
  * ```typescript
1560
1756
  * function nextOnClick() {
1561
1757
  * setLoading(true)
1562
- * GameStepManager.runNextStep(yourParams)
1758
+ * GameStepManager.goNext(yourParams)
1563
1759
  * .then((result) => {
1564
1760
  * setUpdate((p) => p + 1)
1565
1761
  * setLoading(false)
@@ -1574,8 +1770,12 @@ var _GameStepManager = class _GameStepManager {
1574
1770
  * }
1575
1771
  * ```
1576
1772
  */
1577
- static runNextStep(props, choiseMade) {
1773
+ static goNext(props, choiseMade) {
1578
1774
  return __async(this, null, function* () {
1775
+ if (!_GameStepManager.canGoNext) {
1776
+ console.warn("[Pixi'VN] The player must make a choice");
1777
+ return;
1778
+ }
1579
1779
  _GameStepManager.increaseCurrentStepIndex();
1580
1780
  return yield _GameStepManager.runCurrentStep(props, choiseMade);
1581
1781
  });
@@ -1606,7 +1806,7 @@ var _GameStepManager = class _GameStepManager {
1606
1806
  return result;
1607
1807
  } else if (_GameStepManager.openedLabels.length > 1) {
1608
1808
  _GameStepManager.closeCurrentLabel();
1609
- return yield _GameStepManager.runNextStep(props, choiseMade);
1809
+ return yield _GameStepManager.goNext(props, choiseMade);
1610
1810
  } else {
1611
1811
  _GameStepManager.restorLastLabelList();
1612
1812
  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");
@@ -1650,8 +1850,15 @@ var _GameStepManager = class _GameStepManager {
1650
1850
  }
1651
1851
  try {
1652
1852
  if (labelId === CLOSE_LABEL_ID) {
1653
- let closeLabel = newCloseLabel(choiseMade);
1654
- return _GameStepManager.closeChoiceMenu(closeLabel, props);
1853
+ let closeCurrentLabel = newCloseLabel(choiseMade);
1854
+ let choice = {
1855
+ label: closeCurrentLabel,
1856
+ text: "",
1857
+ closeCurrentLabel: false,
1858
+ type: "close",
1859
+ props: {}
1860
+ };
1861
+ return _GameStepManager.closeChoiceMenu(choice, props);
1655
1862
  }
1656
1863
  let tempLabel = getLabelById(labelId);
1657
1864
  if (!tempLabel) {
@@ -1701,8 +1908,15 @@ var _GameStepManager = class _GameStepManager {
1701
1908
  }
1702
1909
  try {
1703
1910
  if (labelId === CLOSE_LABEL_ID) {
1704
- let closeLabel = newCloseLabel(choiseMade);
1705
- return _GameStepManager.closeChoiceMenu(closeLabel, props);
1911
+ let closeCurrentLabel = newCloseLabel(choiseMade);
1912
+ let choice = {
1913
+ label: closeCurrentLabel,
1914
+ text: "",
1915
+ closeCurrentLabel: false,
1916
+ type: "close",
1917
+ props: {}
1918
+ };
1919
+ return _GameStepManager.closeChoiceMenu(choice, props);
1706
1920
  }
1707
1921
  let tempLabel = getLabelById(labelId);
1708
1922
  if (!tempLabel) {
@@ -1718,7 +1932,8 @@ var _GameStepManager = class _GameStepManager {
1718
1932
  }
1719
1933
  /**
1720
1934
  * When the player is in a choice menu, can use this function to exit to the choice menu.
1721
- * @param props The props to pass to the step.
1935
+ * @param choice
1936
+ * @param props
1722
1937
  * @returns StepLabelResultType or undefined.
1723
1938
  * @example
1724
1939
  * ```typescript
@@ -1729,13 +1944,17 @@ var _GameStepManager = class _GameStepManager {
1729
1944
  * })
1730
1945
  * ```
1731
1946
  */
1732
- static closeChoiceMenu(label, props) {
1947
+ static closeChoiceMenu(choice, props) {
1733
1948
  return __async(this, null, function* () {
1949
+ let label = choice.label;
1734
1950
  let choiseMade = void 0;
1735
1951
  if (typeof label.choiseIndex === "number") {
1736
1952
  choiseMade = label.choiseIndex;
1737
1953
  }
1738
- return _GameStepManager.runNextStep(props, choiseMade);
1954
+ if (choice.closeCurrentLabel) {
1955
+ _GameStepManager.closeCurrentLabel();
1956
+ }
1957
+ return _GameStepManager.goNext(props, choiseMade);
1739
1958
  });
1740
1959
  }
1741
1960
  /* After Update Methods */
@@ -1937,8 +2156,9 @@ var Close = "close";
1937
2156
  var ChoiceMenuOptionClose = class {
1938
2157
  /**
1939
2158
  * @param text Text to be displayed in the menu
2159
+ * @param closeCurrentLabel If true, the current label will be closed. @default false
1940
2160
  */
1941
- constructor(text) {
2161
+ constructor(text, closeCurrentLabel = false) {
1942
2162
  /**
1943
2163
  * Label to be opened when the option is selected
1944
2164
  */
@@ -1952,6 +2172,7 @@ var ChoiceMenuOptionClose = class {
1952
2172
  */
1953
2173
  this.props = {};
1954
2174
  this.text = text;
2175
+ this.closeCurrentLabel = closeCurrentLabel;
1955
2176
  }
1956
2177
  };
1957
2178
 
@@ -1974,15 +2195,15 @@ var DialogueBaseModel = class {
1974
2195
  if (typeof text === "string") {
1975
2196
  this.text = text;
1976
2197
  if (typeof character === "string") {
1977
- this.characterId = character;
2198
+ this.character = character;
1978
2199
  } else {
1979
- this.characterId = character == null ? void 0 : character.id;
2200
+ this.character = character == null ? void 0 : character.id;
1980
2201
  }
1981
2202
  this.oltherParams = oltherParams;
1982
2203
  } else {
1983
2204
  this.text = text.text;
1984
- if (text.characterId) {
1985
- this.characterId = text.characterId;
2205
+ if (text.character) {
2206
+ this.character = text.character;
1986
2207
  }
1987
2208
  this.oltherParams = text.oltherParams || {};
1988
2209
  }
@@ -1995,7 +2216,7 @@ var DialogueBaseModel = class {
1995
2216
  export() {
1996
2217
  return {
1997
2218
  text: this.text,
1998
- characterId: this.characterId,
2219
+ character: this.character,
1999
2220
  oltherParams: this.oltherParams
2000
2221
  };
2001
2222
  }
@@ -2004,21 +2225,21 @@ var DialogueBaseModel = class {
2004
2225
  // src/functions/DialogueUtility.ts
2005
2226
  function setDialogue(props) {
2006
2227
  let text = "";
2007
- let characterId = void 0;
2228
+ let character = void 0;
2008
2229
  let dialogue;
2009
2230
  if (typeof props === "string") {
2010
2231
  text = props;
2011
- dialogue = new DialogueBaseModel(text, characterId);
2232
+ dialogue = new DialogueBaseModel(text, character);
2012
2233
  } else if (!(props instanceof DialogueBaseModel)) {
2013
2234
  text = props.text;
2014
2235
  if (props.character) {
2015
2236
  if (typeof props.character === "string") {
2016
- characterId = props.character;
2237
+ character = props.character;
2017
2238
  } else {
2018
- characterId = props.character.id;
2239
+ character = props.character.id;
2019
2240
  }
2020
2241
  }
2021
- dialogue = new DialogueBaseModel(text, characterId);
2242
+ dialogue = new DialogueBaseModel(text, character);
2022
2243
  } else {
2023
2244
  dialogue = props;
2024
2245
  }
@@ -2036,7 +2257,8 @@ function setChoiceMenuOptions(options) {
2036
2257
  if (option instanceof ChoiceMenuOptionClose) {
2037
2258
  return {
2038
2259
  text: option.text,
2039
- type: Close
2260
+ type: Close,
2261
+ closeCurrentLabel: option.closeCurrentLabel
2040
2262
  };
2041
2263
  }
2042
2264
  return __spreadProps(__spreadValues({}, option), {
@@ -2057,6 +2279,7 @@ function getChoiceMenuOptions() {
2057
2279
  text: option.text,
2058
2280
  label: itemLabel,
2059
2281
  type: Close,
2282
+ closeCurrentLabel: option.closeCurrentLabel,
2060
2283
  props: {}
2061
2284
  });
2062
2285
  return;
@@ -2138,20 +2361,15 @@ function clearAllGameDatas() {
2138
2361
  GameWindowManager.clear();
2139
2362
  GameStepManager.clear();
2140
2363
  }
2141
- var TickerFadeAlpha = class extends TickerBase {
2142
- /**
2143
- * The method that will be called every frame to fade the alpha of the canvas element of the canvas.
2144
- * @param delta The delta time
2145
- * @param args The arguments that are passed to the ticker
2146
- * @param tags The tags of the canvas element that are connected to this ticker
2147
- */
2148
- fn(t, args, tags) {
2364
+ var FadeAlphaTicker = class extends TickerBase {
2365
+ fn(ticker, args, tags, tickerId) {
2149
2366
  let type = args.type === void 0 ? "hide" : args.type;
2150
- let speed = args.speed === void 0 ? 0.1 : args.speed;
2367
+ let duration = args.duration === void 0 ? 1 : args.duration;
2368
+ let speed = 1 / (duration * 60);
2151
2369
  let limit = args.limit === void 0 ? type === "hide" ? 0 : 1 : args.limit;
2152
- let removeElementAfter = args.tagToRemoveAfter || [];
2153
- if (typeof removeElementAfter === "string") {
2154
- removeElementAfter = [removeElementAfter];
2370
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
2371
+ if (typeof tagToRemoveAfter2 === "string") {
2372
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
2155
2373
  }
2156
2374
  if (type === "hide" && limit < 0) {
2157
2375
  limit = 0;
@@ -2172,61 +2390,88 @@ var TickerFadeAlpha = class extends TickerBase {
2172
2390
  let element = GameWindowManager.getCanvasElement(tag);
2173
2391
  if (element && element instanceof Container) {
2174
2392
  if (type === "show" && element.alpha < limit) {
2175
- element.alpha += speed * t.deltaTime;
2393
+ element.alpha += speed * ticker.deltaTime;
2176
2394
  } else if (type === "hide" && element.alpha > limit) {
2177
- element.alpha -= speed * t.deltaTime;
2178
- } else {
2395
+ element.alpha -= speed * ticker.deltaTime;
2396
+ }
2397
+ if (type === "show" && element.alpha >= limit) {
2179
2398
  element.alpha = limit;
2180
- GameWindowManager.removeAssociationBetweenTickerCanvasElement(tag, this);
2181
- GameWindowManager.removeCanvasElement(removeElementAfter);
2399
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
2400
+ } else if (type === "hide" && element.alpha <= limit) {
2401
+ element.alpha = limit;
2402
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
2182
2403
  }
2183
2404
  }
2184
2405
  });
2185
2406
  }
2186
2407
  };
2187
- TickerFadeAlpha = __decorateClass([
2408
+ FadeAlphaTicker = __decorateClass([
2188
2409
  tickerDecorator()
2189
- ], TickerFadeAlpha);
2410
+ ], FadeAlphaTicker);
2190
2411
 
2191
2412
  // src/functions/TickerUtility.ts
2192
2413
  function updateTickerProgression(args, propertyName, progression) {
2193
- if (args.hasOwnProperty(propertyName) && typeof args[propertyName] !== "number") {
2414
+ if (args[propertyName] === void 0 || !progression || args[propertyName] === progression.limit) {
2194
2415
  return;
2195
2416
  }
2196
- if (args[propertyName] !== void 0 && progression && args[propertyName] !== progression.limit) {
2417
+ if (typeof args[propertyName] === "number") {
2197
2418
  if (progression.type === "linear") {
2198
- args[propertyName] += progression.amt;
2199
- if (progression.limit !== void 0) {
2200
- if (args[propertyName] > progression.limit && progression.amt > 0) {
2201
- args[propertyName] = progression.limit;
2202
- } else if (args[propertyName] < progression.limit && progression.amt < 0) {
2203
- args[propertyName] = progression.limit;
2204
- }
2205
- }
2419
+ args[propertyName] = getLinearProgression(args[propertyName], progression);
2206
2420
  } else if (progression.type === "exponential") {
2207
- args[propertyName] += args[propertyName] * progression.percentage;
2208
- if (progression.limit !== void 0) {
2209
- if (args[propertyName] > progression.limit && progression.percentage > 0) {
2210
- args[propertyName] = progression.limit;
2211
- } else if (args[propertyName] < progression.limit && progression.percentage < 0) {
2212
- args[propertyName] = progression.limit;
2213
- }
2214
- }
2421
+ args[propertyName] = getExponentialProgression(args[propertyName], progression);
2422
+ }
2423
+ } 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") {
2424
+ if (progression.type === "linear") {
2425
+ args[propertyName].x = getLinearProgression(args[propertyName].x, progression);
2426
+ args[propertyName].y = getLinearProgression(args[propertyName].y, progression);
2427
+ } else if (progression.type === "exponential") {
2428
+ args[propertyName].x = getExponentialProgression(args[propertyName].x, progression);
2429
+ args[propertyName].y = getExponentialProgression(args[propertyName].y, progression);
2430
+ }
2431
+ }
2432
+ }
2433
+ function getLinearProgression(number, progression) {
2434
+ if (progression.limit !== void 0) {
2435
+ if (number > progression.limit && progression.amt > 0) {
2436
+ return progression.limit;
2437
+ } else if (number < progression.limit && progression.amt < 0) {
2438
+ return progression.limit;
2439
+ }
2440
+ }
2441
+ return number + progression.amt / 60;
2442
+ }
2443
+ function getExponentialProgression(number, progression) {
2444
+ if (progression.limit !== void 0) {
2445
+ if (number > progression.limit && progression.percentage > 0) {
2446
+ return progression.limit;
2447
+ } else if (number < progression.limit && progression.percentage < 0) {
2448
+ return progression.limit;
2215
2449
  }
2216
2450
  }
2451
+ return number + number * progression.percentage;
2217
2452
  }
2218
2453
 
2219
- // src/classes/ticker/TickerMove.ts
2220
- var TickerMove = class extends TickerBase {
2221
- /**
2222
- * The method that will be called every frame to move the canvas element of the canvas.
2223
- * @param t The ticker that is calling this method
2224
- * @param args The arguments that are passed to the ticker
2225
- * @param tags The tags of the canvas element that are connected to this ticker
2226
- */
2227
- fn(t, args, tags) {
2228
- let speed = args.speed === void 0 ? 0.1 : args.speed;
2454
+ // src/classes/ticker/MoveTicker.ts
2455
+ var MoveTicker = class extends TickerBase {
2456
+ fn(ticker, args, tags, tickerId) {
2457
+ let xSpeed = 1;
2458
+ let ySpeed = 1;
2459
+ if (args.speed) {
2460
+ if (typeof args.speed === "number") {
2461
+ xSpeed = args.speed;
2462
+ ySpeed = args.speed;
2463
+ } else {
2464
+ xSpeed = args.speed.x;
2465
+ ySpeed = args.speed.y;
2466
+ }
2467
+ }
2468
+ xSpeed /= 60;
2469
+ ySpeed /= 60;
2229
2470
  let destination = args.destination;
2471
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
2472
+ if (typeof tagToRemoveAfter2 === "string") {
2473
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
2474
+ }
2230
2475
  tags.filter((tag) => {
2231
2476
  var _a;
2232
2477
  let element = GameWindowManager.getCanvasElement(tag);
@@ -2239,41 +2484,42 @@ var TickerMove = class extends TickerBase {
2239
2484
  }).forEach((tag) => {
2240
2485
  let element = GameWindowManager.getCanvasElement(tag);
2241
2486
  if (element && element instanceof Container) {
2242
- let xDistance = destination.x - element.x;
2487
+ let xDistance = destination.x - element.x > 0 ? 1 : -1;
2243
2488
  if (xDistance != 0) {
2244
- element.x += xDistance / speed * t.deltaTime;
2489
+ element.x += xDistance * xSpeed * ticker.deltaTime;
2245
2490
  let newDistance = destination.x - element.x;
2246
2491
  if (xDistance < 0 && newDistance > 0 || xDistance > 0 && newDistance < 0) {
2247
2492
  element.x = destination.x;
2248
2493
  }
2249
2494
  }
2250
- let yDistance = destination.y - element.y;
2495
+ let yDistance = destination.y - element.y > 0 ? 1 : -1;
2251
2496
  if (yDistance != 0) {
2252
- element.y += yDistance / speed * t.deltaTime;
2497
+ element.y += yDistance * ySpeed * ticker.deltaTime;
2253
2498
  let newDistance = destination.y - element.y;
2254
2499
  if (yDistance < 0 && newDistance > 0 || yDistance > 0 && newDistance < 0) {
2255
2500
  element.y = destination.y;
2256
2501
  }
2257
2502
  }
2503
+ if (element.x == destination.x && element.y == destination.y) {
2504
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
2505
+ }
2258
2506
  }
2259
2507
  });
2260
2508
  if (args.speedProgression)
2261
2509
  updateTickerProgression(args, "speed", args.speedProgression);
2262
2510
  }
2263
2511
  };
2264
- TickerMove = __decorateClass([
2512
+ MoveTicker = __decorateClass([
2265
2513
  tickerDecorator()
2266
- ], TickerMove);
2267
- var TickerRotate = class extends TickerBase {
2268
- /**
2269
- * The method that will be called every frame to rotate the canvas element of the canvas.
2270
- * @param delta The delta time
2271
- * @param args The arguments that are passed to the ticker
2272
- * @param tags The tags of the canvas element that are connected to this ticker
2273
- */
2274
- fn(t, args, tags) {
2275
- let speed = args.speed === void 0 ? 0.1 : args.speed;
2514
+ ], MoveTicker);
2515
+ var RotateTicker = class extends TickerBase {
2516
+ fn(ticker, args, tags, tickerId) {
2517
+ let speed = (args.speed === void 0 ? 1 : args.speed) / 60;
2276
2518
  let clockwise = args.clockwise === void 0 ? true : args.clockwise;
2519
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
2520
+ if (typeof tagToRemoveAfter2 === "string") {
2521
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
2522
+ }
2277
2523
  tags.filter((tag) => {
2278
2524
  var _a;
2279
2525
  let element = GameWindowManager.getCanvasElement(tag);
@@ -2287,18 +2533,123 @@ var TickerRotate = class extends TickerBase {
2287
2533
  let element = GameWindowManager.getCanvasElement(tag);
2288
2534
  if (element && element instanceof Container) {
2289
2535
  if (clockwise)
2290
- element.rotation += speed * t.deltaTime;
2536
+ element.rotation += speed * ticker.deltaTime;
2291
2537
  else
2292
- element.rotation -= speed * t.deltaTime;
2538
+ element.rotation -= speed * ticker.deltaTime;
2539
+ if (speed < 1e-5 && !(args.speedProgression && args.speedProgression.type == "linear" && args.speedProgression.amt != 0)) {
2540
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
2541
+ }
2542
+ }
2543
+ });
2544
+ if (args.speedProgression)
2545
+ updateTickerProgression(args, "speed", args.speedProgression);
2546
+ }
2547
+ };
2548
+ RotateTicker = __decorateClass([
2549
+ tickerDecorator()
2550
+ ], RotateTicker);
2551
+ var ZoomTicker = class extends TickerBase {
2552
+ fn(ticker, args, tags, tickerId) {
2553
+ let xSpeed = 0.1;
2554
+ let ySpeed = 0.1;
2555
+ if (args.speed) {
2556
+ if (typeof args.speed === "number") {
2557
+ xSpeed = args.speed;
2558
+ ySpeed = args.speed;
2559
+ } else {
2560
+ xSpeed = args.speed.x;
2561
+ ySpeed = args.speed.y;
2562
+ }
2563
+ }
2564
+ xSpeed /= 60;
2565
+ ySpeed /= 60;
2566
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
2567
+ if (typeof tagToRemoveAfter2 === "string") {
2568
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
2569
+ }
2570
+ let type = args.type || "zoom";
2571
+ let xLimit = type === "zoom" ? Infinity : 0;
2572
+ let yLimit = type === "zoom" ? Infinity : 0;
2573
+ if (args.limit) {
2574
+ if (typeof args.limit === "number") {
2575
+ xLimit = args.limit;
2576
+ yLimit = args.limit;
2577
+ } else {
2578
+ xLimit = args.limit.x;
2579
+ yLimit = args.limit.y;
2580
+ }
2581
+ }
2582
+ tags.filter((tag) => {
2583
+ var _a;
2584
+ let element = GameWindowManager.getCanvasElement(tag);
2585
+ if (args.startOnlyIfHaveTexture) {
2586
+ if (element && element instanceof Sprite && ((_a = element.texture) == null ? void 0 : _a.label) == "EMPTY") {
2587
+ return false;
2588
+ }
2589
+ }
2590
+ return true;
2591
+ }).forEach((tag) => {
2592
+ let element = GameWindowManager.getCanvasElement(tag);
2593
+ if (element && element instanceof Container) {
2594
+ if (type === "zoom" && (element.scale.x < xLimit || element.scale.y < yLimit)) {
2595
+ element.scale.x += xSpeed * ticker.deltaTime;
2596
+ element.scale.y += ySpeed * ticker.deltaTime;
2597
+ } else if (type === "unzoom" && (element.scale.x > xLimit || element.scale.y > yLimit)) {
2598
+ element.scale.x -= xSpeed * ticker.deltaTime;
2599
+ element.scale.y -= ySpeed * ticker.deltaTime;
2600
+ }
2601
+ if (type === "zoom") {
2602
+ if (element.scale.x > xLimit) {
2603
+ element.scale.x = xLimit;
2604
+ }
2605
+ if (element.scale.y > yLimit) {
2606
+ element.scale.y = yLimit;
2607
+ }
2608
+ if (element.scale.x >= xLimit && element.scale.y >= yLimit) {
2609
+ element.scale.x = xLimit;
2610
+ element.scale.y = yLimit;
2611
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
2612
+ }
2613
+ } else if (type === "unzoom") {
2614
+ if (element.scale.x < xLimit) {
2615
+ element.scale.x = xLimit;
2616
+ }
2617
+ if (element.scale.y < yLimit) {
2618
+ element.scale.y = yLimit;
2619
+ }
2620
+ if (element.scale.x <= xLimit && element.scale.y <= yLimit) {
2621
+ element.scale.x = xLimit;
2622
+ element.scale.y = yLimit;
2623
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
2624
+ }
2625
+ }
2626
+ if (xSpeed < 1e-5 && ySpeed < 1e-5 && !(args.speedProgression && args.speedProgression.type == "linear" && args.speedProgression.amt != 0)) {
2627
+ this.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
2628
+ }
2293
2629
  }
2294
2630
  });
2295
2631
  if (args.speedProgression)
2296
2632
  updateTickerProgression(args, "speed", args.speedProgression);
2297
2633
  }
2634
+ onEndOfTicker(tag, tickerId, _element, tagToRemoveAfter2) {
2635
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
2636
+ }
2298
2637
  };
2299
- TickerRotate = __decorateClass([
2638
+ ZoomTicker = __decorateClass([
2300
2639
  tickerDecorator()
2301
- ], TickerRotate);
2640
+ ], ZoomTicker);
2641
+ var ZoomInOutTicker = class extends ZoomTicker {
2642
+ constructor(props, duration, priority) {
2643
+ super(props, duration, priority);
2644
+ }
2645
+ onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2) {
2646
+ if (element.children.length > 0) {
2647
+ let elementChild = element.children[0];
2648
+ GameWindowManager.addCanvasElement(tag, elementChild);
2649
+ }
2650
+ super.onEndOfTicker(tag, tickerId, element, tagToRemoveAfter2);
2651
+ }
2652
+ };
2302
2653
 
2303
2654
  // src/functions/ImageUtility.ts
2304
2655
  function addImage(tag, imageUrl) {
@@ -2307,7 +2658,7 @@ function addImage(tag, imageUrl) {
2307
2658
  GameWindowManager.addCanvasElement(tag, image);
2308
2659
  return image;
2309
2660
  }
2310
- function loadImages(canvasImages) {
2661
+ function loadImage(canvasImages) {
2311
2662
  return __async(this, null, function* () {
2312
2663
  if (!Array.isArray(canvasImages)) {
2313
2664
  return [canvasImages];
@@ -2328,39 +2679,233 @@ function loadImages(canvasImages) {
2328
2679
  });
2329
2680
  });
2330
2681
  }
2682
+ function showImage(tag, imageUrl) {
2683
+ return __async(this, null, function* () {
2684
+ let image = addImage(tag, imageUrl);
2685
+ yield image.load();
2686
+ return image;
2687
+ });
2688
+ }
2331
2689
  function removeCanvasElement(tag) {
2332
2690
  GameWindowManager.removeCanvasElement(tag);
2333
2691
  }
2334
- function showWithDissolveTransition(tag, image, speed, priority) {
2335
- return __async(this, null, function* () {
2336
- let specialTag = void 0;
2692
+ function showWithDissolveTransition(_0, _1) {
2693
+ return __async(this, arguments, function* (tag, image, props = {}, priority) {
2694
+ var _a;
2695
+ let oldCanvasTag = void 0;
2337
2696
  if (GameWindowManager.getCanvasElement(tag)) {
2338
- specialTag = tag + "_temp_disolve";
2339
- GameWindowManager.editTagCanvasElement(tag, specialTag);
2697
+ oldCanvasTag = tag + "_temp_disolve";
2698
+ GameWindowManager.editCanvasElementTag(tag, oldCanvasTag);
2340
2699
  }
2341
2700
  let canvasElement;
2342
2701
  if (typeof image === "string") {
2343
2702
  canvasElement = addImage(tag, image);
2344
2703
  } else {
2345
2704
  canvasElement = image;
2705
+ GameWindowManager.addCanvasElement(tag, canvasElement);
2706
+ }
2707
+ if (canvasElement instanceof CanvasImage && ((_a = canvasElement.texture) == null ? void 0 : _a.label) == "EMPTY") {
2708
+ yield canvasElement.load();
2346
2709
  }
2347
2710
  canvasElement.alpha = 0;
2348
- let effect = new TickerFadeAlpha({
2349
- speed,
2711
+ let effect = new FadeAlphaTicker(__spreadProps(__spreadValues({}, props), {
2350
2712
  type: "show",
2351
- tagToRemoveAfter: specialTag,
2713
+ tagToRemoveAfter: oldCanvasTag,
2352
2714
  startOnlyIfHaveTexture: true
2353
- }, 1e4, priority);
2715
+ }), 10, priority);
2354
2716
  GameWindowManager.addTicker(tag, effect);
2355
- if (canvasElement instanceof CanvasImage) {
2356
- return canvasElement.load();
2717
+ return;
2718
+ });
2719
+ }
2720
+ function removeWithDissolveTransition(tag, props = {}, priority) {
2721
+ if (typeof tag === "string") {
2722
+ tag = [tag];
2723
+ }
2724
+ let effect = new FadeAlphaTicker(__spreadProps(__spreadValues({}, props), {
2725
+ type: "hide",
2726
+ tagToRemoveAfter: tag,
2727
+ startOnlyIfHaveTexture: true
2728
+ }), 10, priority);
2729
+ GameWindowManager.addTicker(tag, effect);
2730
+ }
2731
+ function showWithFadeTransition(_0, _1) {
2732
+ return __async(this, arguments, function* (tag, image, props = {}, priority) {
2733
+ var _a;
2734
+ if (!GameWindowManager.getCanvasElement(tag)) {
2735
+ return showWithDissolveTransition(tag, image, props, priority);
2736
+ }
2737
+ let oldCanvasTag = tag + "_temp_fade";
2738
+ GameWindowManager.editCanvasElementTag(tag, oldCanvasTag);
2739
+ let canvasElement;
2740
+ if (typeof image === "string") {
2741
+ canvasElement = addImage(tag, image);
2742
+ } else {
2743
+ canvasElement = image;
2744
+ GameWindowManager.addCanvasElement(tag, canvasElement);
2745
+ }
2746
+ if (canvasElement instanceof CanvasImage && ((_a = canvasElement.texture) == null ? void 0 : _a.label) == "EMPTY") {
2747
+ yield canvasElement.load();
2357
2748
  }
2749
+ canvasElement.alpha = 0;
2750
+ GameWindowManager.addTickersSteps(oldCanvasTag, [
2751
+ new FadeAlphaTicker(__spreadProps(__spreadValues({}, props), {
2752
+ type: "hide",
2753
+ startOnlyIfHaveTexture: true
2754
+ }))
2755
+ ]);
2756
+ GameWindowManager.addTickersSteps(tag, [
2757
+ Pause(props.duration || 1),
2758
+ new FadeAlphaTicker(__spreadProps(__spreadValues({}, props), {
2759
+ type: "show",
2760
+ startOnlyIfHaveTexture: true
2761
+ }))
2762
+ ]);
2763
+ });
2764
+ }
2765
+ function removeWithFadeTransition(tag, props = {}, priority) {
2766
+ return removeWithDissolveTransition(tag, props, priority);
2767
+ }
2768
+ function moveIn(_0, _1) {
2769
+ return __async(this, arguments, function* (tag, image, props = { direction: "right" }, priority) {
2770
+ var _a;
2771
+ let canvasElement;
2772
+ if (typeof image === "string") {
2773
+ canvasElement = addImage(tag, image);
2774
+ } else {
2775
+ canvasElement = image;
2776
+ GameWindowManager.addCanvasElement(tag, canvasElement);
2777
+ }
2778
+ if (canvasElement instanceof CanvasImage && ((_a = canvasElement.texture) == null ? void 0 : _a.label) == "EMPTY") {
2779
+ yield canvasElement.load();
2780
+ }
2781
+ let destination = { x: canvasElement.x, y: canvasElement.y };
2782
+ if (props.direction == "up") {
2783
+ canvasElement.y = GameWindowManager.canvasHeight + canvasElement.height;
2784
+ } else if (props.direction == "down") {
2785
+ canvasElement.y = -canvasElement.height;
2786
+ } else if (props.direction == "left") {
2787
+ canvasElement.x = GameWindowManager.canvasWidth + canvasElement.width;
2788
+ } else if (props.direction == "right") {
2789
+ canvasElement.x = -canvasElement.width;
2790
+ }
2791
+ let effect = new MoveTicker(__spreadProps(__spreadValues({}, props), {
2792
+ destination,
2793
+ startOnlyIfHaveTexture: true
2794
+ }), priority);
2795
+ GameWindowManager.addTicker(tag, effect);
2796
+ });
2797
+ }
2798
+ function moveOut(tag, props = { direction: "right" }, priority) {
2799
+ let canvasElement = GameWindowManager.getCanvasElement(tag);
2800
+ if (!canvasElement) {
2801
+ console.warn("[Pixi'VN] The canvas element is not found.");
2358
2802
  return;
2803
+ }
2804
+ let destination = { x: canvasElement.x, y: canvasElement.y };
2805
+ if (props.direction == "up") {
2806
+ destination.y = -canvasElement.height;
2807
+ } else if (props.direction == "down") {
2808
+ destination.y = GameWindowManager.canvasHeight + canvasElement.height;
2809
+ } else if (props.direction == "left") {
2810
+ destination.x = -canvasElement.width;
2811
+ } else if (props.direction == "right") {
2812
+ destination.x = GameWindowManager.canvasWidth + canvasElement.width;
2813
+ }
2814
+ let effect = new MoveTicker(__spreadProps(__spreadValues({}, props), {
2815
+ destination,
2816
+ startOnlyIfHaveTexture: true,
2817
+ tagToRemoveAfter: tag
2818
+ }), priority);
2819
+ GameWindowManager.addTicker(tag, effect);
2820
+ }
2821
+ function zoomIn(_0, _1) {
2822
+ return __async(this, arguments, function* (tag, image, props = { direction: "right" }, priority) {
2823
+ var _a;
2824
+ let canvasElement;
2825
+ if (typeof image === "string") {
2826
+ canvasElement = new CanvasImage({}, image);
2827
+ } else {
2828
+ canvasElement = image;
2829
+ }
2830
+ if (canvasElement instanceof CanvasImage && ((_a = canvasElement.texture) == null ? void 0 : _a.label) == "EMPTY") {
2831
+ yield canvasElement.load();
2832
+ }
2833
+ let container = new CanvasContainer();
2834
+ container.addChild(canvasElement);
2835
+ container.height = GameWindowManager.canvasHeight;
2836
+ container.width = GameWindowManager.canvasWidth;
2837
+ GameWindowManager.addCanvasElement(tag, container);
2838
+ if (props.direction == "up") {
2839
+ container.pivot.y = GameWindowManager.canvasHeight;
2840
+ container.pivot.x = GameWindowManager.canvasWidth / 2;
2841
+ container.y = GameWindowManager.canvasHeight;
2842
+ container.x = GameWindowManager.canvasWidth / 2;
2843
+ } else if (props.direction == "down") {
2844
+ container.pivot.y = 0;
2845
+ container.pivot.x = GameWindowManager.canvasWidth / 2;
2846
+ container.y = 0;
2847
+ container.x = GameWindowManager.canvasWidth / 2;
2848
+ } else if (props.direction == "left") {
2849
+ container.pivot.x = GameWindowManager.canvasWidth;
2850
+ container.pivot.y = GameWindowManager.canvasHeight / 2;
2851
+ container.x = GameWindowManager.canvasWidth;
2852
+ container.y = GameWindowManager.canvasHeight / 2;
2853
+ } else if (props.direction == "right") {
2854
+ container.pivot.x = 0;
2855
+ container.pivot.y = GameWindowManager.canvasHeight / 2;
2856
+ container.x = 0;
2857
+ container.y = GameWindowManager.canvasHeight / 2;
2858
+ }
2859
+ container.scale.set(0);
2860
+ let effect = new ZoomInOutTicker(__spreadProps(__spreadValues({}, props), {
2861
+ startOnlyIfHaveTexture: true,
2862
+ type: "zoom",
2863
+ limit: 1
2864
+ }), priority);
2865
+ GameWindowManager.addTicker(tag, effect);
2359
2866
  });
2360
2867
  }
2361
-
2362
- // src/constants.ts
2363
- var PIXIVN_VERSION = "0.6.0";
2868
+ function zoomOut(tag, props = { direction: "right" }, priority) {
2869
+ let canvasElement = GameWindowManager.getCanvasElement(tag);
2870
+ if (!canvasElement) {
2871
+ console.warn("[Pixi'VN] The canvas element is not found.");
2872
+ return;
2873
+ }
2874
+ let container = new CanvasContainer();
2875
+ container.addChild(canvasElement);
2876
+ container.height = GameWindowManager.canvasHeight;
2877
+ container.width = GameWindowManager.canvasWidth;
2878
+ GameWindowManager.addCanvasElement(tag, container);
2879
+ if (props.direction == "up") {
2880
+ container.pivot.y = GameWindowManager.canvasHeight;
2881
+ container.pivot.x = GameWindowManager.canvasWidth / 2;
2882
+ container.y = GameWindowManager.canvasHeight;
2883
+ container.x = GameWindowManager.canvasWidth / 2;
2884
+ } else if (props.direction == "down") {
2885
+ container.pivot.y = 0;
2886
+ container.pivot.x = GameWindowManager.canvasWidth / 2;
2887
+ container.y = 0;
2888
+ container.x = GameWindowManager.canvasWidth / 2;
2889
+ } else if (props.direction == "left") {
2890
+ container.pivot.x = GameWindowManager.canvasWidth;
2891
+ container.pivot.y = GameWindowManager.canvasHeight / 2;
2892
+ container.x = GameWindowManager.canvasWidth;
2893
+ container.y = GameWindowManager.canvasHeight / 2;
2894
+ } else if (props.direction == "right") {
2895
+ container.pivot.x = 0;
2896
+ container.pivot.y = GameWindowManager.canvasHeight / 2;
2897
+ container.x = 0;
2898
+ container.y = GameWindowManager.canvasHeight / 2;
2899
+ }
2900
+ container.scale.set(1);
2901
+ let effect = new ZoomInOutTicker(__spreadProps(__spreadValues({}, props), {
2902
+ startOnlyIfHaveTexture: true,
2903
+ type: "unzoom",
2904
+ limit: 0,
2905
+ tagToRemoveAfter: tag
2906
+ }), priority);
2907
+ GameWindowManager.addTicker(tag, effect);
2908
+ }
2364
2909
 
2365
2910
  // src/functions/SavesUtility.ts
2366
2911
  function getSaveData() {
@@ -2389,6 +2934,6 @@ function jsonToSaveData(json) {
2389
2934
  return JSON.parse(json);
2390
2935
  }
2391
2936
 
2392
- export { addImage, clearAllGameDatas, clearChoiceMenuOptions, clearDialogue, getChoiceMenuOptions, getDialogue, getDialogueHistory, getFlag, getSaveData, getSaveJson, getTexture, loadImages, loadSaveData, loadSaveJson, removeCanvasElement, setChoiceMenuOptions, setDialogue, setFlag, showWithDissolveTransition };
2937
+ export { addImage, clearAllGameDatas, clearChoiceMenuOptions, clearDialogue, getChoiceMenuOptions, getDialogue, getDialogueHistory, getFlag, getSaveData, getSaveJson, getTexture, loadImage, loadSaveData, loadSaveJson, moveIn, moveOut, removeCanvasElement, removeWithDissolveTransition, removeWithFadeTransition, setChoiceMenuOptions, setDialogue, setFlag, showImage, showWithDissolveTransition, showWithFadeTransition, zoomIn, zoomOut };
2393
2938
  //# sourceMappingURL=out.js.map
2394
2939
  //# sourceMappingURL=index.mjs.map