@drincs/pixi-vn 0.6.0 → 0.6.1

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 (373) hide show
  1. package/dist/{TickerBase-RQDWNI4K.d.ts → TickerBase-BAUiHet_.d.ts} +18 -13
  2. package/dist/{TickerBase-B5CQCJs8.d.mts → TickerBase-BctFf13y.d.mts} +18 -13
  3. package/dist/classes/CanvasEvent.d.mts +1 -1
  4. package/dist/classes/CanvasEvent.d.ts +1 -1
  5. package/dist/classes/CanvasEvent.js.map +1 -1
  6. package/dist/classes/CanvasEvent.mjs.map +1 -1
  7. package/dist/classes/CharacterBaseModel.d.mts +2 -26
  8. package/dist/classes/CharacterBaseModel.d.ts +2 -26
  9. package/dist/classes/CharacterBaseModel.js +464 -189
  10. package/dist/classes/CharacterBaseModel.js.map +1 -1
  11. package/dist/classes/CharacterBaseModel.mjs +460 -189
  12. package/dist/classes/CharacterBaseModel.mjs.map +1 -1
  13. package/dist/classes/ChoiceMenuOption.d.mts +27 -17
  14. package/dist/classes/ChoiceMenuOption.d.ts +27 -17
  15. package/dist/classes/ChoiceMenuOption.js +467 -190
  16. package/dist/classes/ChoiceMenuOption.js.map +1 -1
  17. package/dist/classes/ChoiceMenuOption.mjs +463 -190
  18. package/dist/classes/ChoiceMenuOption.mjs.map +1 -1
  19. package/dist/classes/CloseLabel.d.mts +1 -1
  20. package/dist/classes/CloseLabel.d.ts +1 -1
  21. package/dist/classes/CloseLabel.js.map +1 -1
  22. package/dist/classes/CloseLabel.mjs.map +1 -1
  23. package/dist/classes/DialogueBaseModel.d.mts +1 -0
  24. package/dist/classes/DialogueBaseModel.d.ts +1 -0
  25. package/dist/classes/StoredClassModel.d.mts +2 -2
  26. package/dist/classes/StoredClassModel.d.ts +2 -2
  27. package/dist/classes/StoredClassModel.js +464 -189
  28. package/dist/classes/StoredClassModel.js.map +1 -1
  29. package/dist/classes/StoredClassModel.mjs +460 -189
  30. package/dist/classes/StoredClassModel.mjs.map +1 -1
  31. package/dist/classes/canvas/CanvasContainer.js.map +1 -1
  32. package/dist/classes/canvas/CanvasContainer.mjs.map +1 -1
  33. package/dist/classes/canvas/CanvasImage.d.mts +2 -2
  34. package/dist/classes/canvas/CanvasImage.d.ts +2 -2
  35. package/dist/classes/canvas/CanvasImage.js.map +1 -1
  36. package/dist/classes/canvas/CanvasImage.mjs.map +1 -1
  37. package/dist/classes/canvas/CanvasSprite.d.mts +1 -1
  38. package/dist/classes/canvas/CanvasSprite.d.ts +1 -1
  39. package/dist/classes/canvas/CanvasSprite.js.map +1 -1
  40. package/dist/classes/canvas/CanvasSprite.mjs.map +1 -1
  41. package/dist/classes/canvas/CanvasText.d.mts +2 -2
  42. package/dist/classes/canvas/CanvasText.d.ts +2 -2
  43. package/dist/classes/canvas/CanvasText.js.map +1 -1
  44. package/dist/classes/canvas/CanvasText.mjs.map +1 -1
  45. package/dist/classes/canvas/index.js.map +1 -1
  46. package/dist/classes/canvas/index.mjs.map +1 -1
  47. package/dist/classes/index.d.mts +5 -4
  48. package/dist/classes/index.d.ts +5 -4
  49. package/dist/classes/index.js +467 -190
  50. package/dist/classes/index.js.map +1 -1
  51. package/dist/classes/index.mjs +463 -190
  52. package/dist/classes/index.mjs.map +1 -1
  53. package/dist/classes/ticker/FadeAlphaTicker.d.mts +26 -0
  54. package/dist/classes/ticker/FadeAlphaTicker.d.ts +26 -0
  55. package/dist/classes/ticker/{TickerFadeAlpha.js → FadeAlphaTicker.js} +469 -196
  56. package/dist/classes/ticker/FadeAlphaTicker.js.map +1 -0
  57. package/dist/classes/ticker/{TickerRotate.mjs → FadeAlphaTicker.mjs} +491 -222
  58. package/dist/classes/ticker/FadeAlphaTicker.mjs.map +1 -0
  59. package/dist/classes/ticker/MoveTicker.d.mts +24 -0
  60. package/dist/classes/ticker/MoveTicker.d.ts +24 -0
  61. package/dist/classes/ticker/MoveTicker.js +1605 -0
  62. package/dist/classes/ticker/MoveTicker.js.map +1 -0
  63. package/dist/classes/ticker/{TickerMove.mjs → MoveTicker.mjs} +463 -192
  64. package/dist/classes/ticker/MoveTicker.mjs.map +1 -0
  65. package/dist/classes/ticker/RotateTicker.d.mts +26 -0
  66. package/dist/classes/ticker/RotateTicker.d.ts +26 -0
  67. package/dist/classes/ticker/{TickerRotate.js → RotateTicker.js} +464 -189
  68. package/dist/classes/ticker/RotateTicker.js.map +1 -0
  69. package/dist/classes/ticker/RotateTicker.mjs +1599 -0
  70. package/dist/classes/ticker/RotateTicker.mjs.map +1 -0
  71. package/dist/classes/ticker/TickerBase.d.mts +1 -1
  72. package/dist/classes/ticker/TickerBase.d.ts +1 -1
  73. package/dist/classes/ticker/TickerBase.js +7 -6
  74. package/dist/classes/ticker/TickerBase.js.map +1 -1
  75. package/dist/classes/ticker/TickerBase.mjs +7 -6
  76. package/dist/classes/ticker/TickerBase.mjs.map +1 -1
  77. package/dist/classes/ticker/ZoomTicker.d.mts +25 -0
  78. package/dist/classes/ticker/ZoomTicker.d.ts +25 -0
  79. package/dist/classes/ticker/{TickerMove.js → ZoomTicker.js} +474 -199
  80. package/dist/classes/ticker/ZoomTicker.js.map +1 -0
  81. package/dist/classes/ticker/{TickerFadeAlpha.mjs → ZoomTicker.mjs} +472 -201
  82. package/dist/classes/ticker/ZoomTicker.mjs.map +1 -0
  83. package/dist/classes/ticker/index.d.mts +10 -8
  84. package/dist/classes/ticker/index.d.ts +10 -8
  85. package/dist/classes/ticker/index.js +479 -206
  86. package/dist/classes/ticker/index.js.map +1 -1
  87. package/dist/classes/ticker/index.mjs +476 -207
  88. package/dist/classes/ticker/index.mjs.map +1 -1
  89. package/dist/constants.d.mts +12 -2
  90. package/dist/constants.d.ts +12 -2
  91. package/dist/constants.js +10 -1
  92. package/dist/constants.js.map +1 -1
  93. package/dist/constants.mjs +9 -2
  94. package/dist/constants.mjs.map +1 -1
  95. package/dist/decorators/CanvasElementDecorator.js.map +1 -1
  96. package/dist/decorators/CanvasElementDecorator.mjs.map +1 -1
  97. package/dist/decorators/CharacterDecorator.d.mts +1 -0
  98. package/dist/decorators/CharacterDecorator.d.ts +1 -0
  99. package/dist/decorators/CharacterDecorator.js +1 -1
  100. package/dist/decorators/CharacterDecorator.js.map +1 -1
  101. package/dist/decorators/CharacterDecorator.mjs +1 -1
  102. package/dist/decorators/CharacterDecorator.mjs.map +1 -1
  103. package/dist/decorators/EventDecorator.js +1 -1
  104. package/dist/decorators/EventDecorator.js.map +1 -1
  105. package/dist/decorators/EventDecorator.mjs +1 -1
  106. package/dist/decorators/EventDecorator.mjs.map +1 -1
  107. package/dist/decorators/LabelDecorator.d.mts +4 -3
  108. package/dist/decorators/LabelDecorator.d.ts +4 -3
  109. package/dist/decorators/LabelDecorator.js +465 -190
  110. package/dist/decorators/LabelDecorator.js.map +1 -1
  111. package/dist/decorators/LabelDecorator.mjs +461 -190
  112. package/dist/decorators/LabelDecorator.mjs.map +1 -1
  113. package/dist/decorators/TickerDecorator.d.mts +6 -3
  114. package/dist/decorators/TickerDecorator.d.ts +6 -3
  115. package/dist/decorators/TickerDecorator.js +1 -1
  116. package/dist/decorators/TickerDecorator.js.map +1 -1
  117. package/dist/decorators/TickerDecorator.mjs +1 -1
  118. package/dist/decorators/TickerDecorator.mjs.map +1 -1
  119. package/dist/decorators/index.d.mts +4 -3
  120. package/dist/decorators/index.d.ts +4 -3
  121. package/dist/decorators/index.js +467 -192
  122. package/dist/decorators/index.js.map +1 -1
  123. package/dist/decorators/index.mjs +463 -192
  124. package/dist/decorators/index.mjs.map +1 -1
  125. package/dist/functions/CanvasUtility.js.map +1 -1
  126. package/dist/functions/CanvasUtility.mjs.map +1 -1
  127. package/dist/functions/DialogueUtility.d.mts +6 -4
  128. package/dist/functions/DialogueUtility.d.ts +6 -4
  129. package/dist/functions/DialogueUtility.js +506 -213
  130. package/dist/functions/DialogueUtility.js.map +1 -1
  131. package/dist/functions/DialogueUtility.mjs +506 -213
  132. package/dist/functions/DialogueUtility.mjs.map +1 -1
  133. package/dist/functions/FlagsUtility.js +464 -189
  134. package/dist/functions/FlagsUtility.js.map +1 -1
  135. package/dist/functions/FlagsUtility.mjs +460 -189
  136. package/dist/functions/FlagsUtility.mjs.map +1 -1
  137. package/dist/functions/GameUtility.js +464 -189
  138. package/dist/functions/GameUtility.js.map +1 -1
  139. package/dist/functions/GameUtility.mjs +460 -189
  140. package/dist/functions/GameUtility.mjs.map +1 -1
  141. package/dist/functions/ImageUtility.d.mts +47 -7
  142. package/dist/functions/ImageUtility.d.ts +47 -7
  143. package/dist/functions/ImageUtility.js +554 -215
  144. package/dist/functions/ImageUtility.js.map +1 -1
  145. package/dist/functions/ImageUtility.mjs +546 -215
  146. package/dist/functions/ImageUtility.mjs.map +1 -1
  147. package/dist/functions/SavesUtility.d.mts +9 -5
  148. package/dist/functions/SavesUtility.d.ts +9 -5
  149. package/dist/functions/SavesUtility.js +485 -196
  150. package/dist/functions/SavesUtility.js.map +1 -1
  151. package/dist/functions/SavesUtility.mjs +485 -196
  152. package/dist/functions/SavesUtility.mjs.map +1 -1
  153. package/dist/functions/TickerUtility.d.mts +1 -1
  154. package/dist/functions/TickerUtility.d.ts +1 -1
  155. package/dist/functions/TickerUtility.js +32 -18
  156. package/dist/functions/TickerUtility.js.map +1 -1
  157. package/dist/functions/TickerUtility.mjs +32 -18
  158. package/dist/functions/TickerUtility.mjs.map +1 -1
  159. package/dist/functions/index.d.mts +15 -8
  160. package/dist/functions/index.d.ts +15 -8
  161. package/dist/functions/index.js +570 -213
  162. package/dist/functions/index.js.map +1 -1
  163. package/dist/functions/index.mjs +566 -213
  164. package/dist/functions/index.mjs.map +1 -1
  165. package/dist/index.d.mts +23 -14
  166. package/dist/index.d.ts +23 -14
  167. package/dist/index.js +990 -224
  168. package/dist/index.js.map +1 -1
  169. package/dist/index.mjs +984 -223
  170. package/dist/index.mjs.map +1 -1
  171. package/dist/interface/CharacterBaseModelProps.d.mts +27 -0
  172. package/dist/interface/CharacterBaseModelProps.d.ts +27 -0
  173. package/dist/interface/CharacterBaseModelProps.js +4 -0
  174. package/dist/interface/CharacterBaseModelProps.mjs +3 -0
  175. package/dist/interface/DialogueHistory.d.mts +3 -7
  176. package/dist/interface/DialogueHistory.d.ts +3 -7
  177. package/dist/interface/IHistoryStep.d.mts +12 -8
  178. package/dist/interface/IHistoryStep.d.ts +12 -8
  179. package/dist/interface/ISaveData.d.mts +8 -4
  180. package/dist/interface/ISaveData.d.ts +8 -4
  181. package/dist/interface/ITicker.d.mts +1 -1
  182. package/dist/interface/ITicker.d.ts +1 -1
  183. package/dist/interface/ITickersSteps.d.mts +3 -3
  184. package/dist/interface/ITickersSteps.d.ts +3 -3
  185. package/dist/interface/{IClassWithArgsHistory.d.mts → TickerHistory.d.mts} +9 -5
  186. package/dist/interface/{IClassWithArgsHistory.d.ts → TickerHistory.d.ts} +9 -5
  187. package/dist/{types/ticker/TickerMoveProps.js → interface/TickerHistory.js} +1 -1
  188. package/dist/interface/TickerHistory.mjs +3 -0
  189. package/dist/interface/TickerProgrationType.d.mts +13 -1
  190. package/dist/interface/TickerProgrationType.d.ts +13 -1
  191. package/dist/interface/TickerTimeoutHistory.d.mts +7 -0
  192. package/dist/interface/TickerTimeoutHistory.d.ts +7 -0
  193. package/dist/interface/TickerTimeoutHistory.js +4 -0
  194. package/dist/interface/TickerTimeoutHistory.mjs +3 -0
  195. package/dist/interface/canvas/ICanvasImageMemory.d.mts +1 -1
  196. package/dist/interface/canvas/ICanvasImageMemory.d.ts +1 -1
  197. package/dist/interface/canvas/ICanvasSpriteMemory.d.mts +1 -1
  198. package/dist/interface/canvas/ICanvasSpriteMemory.d.ts +1 -1
  199. package/dist/interface/canvas/ICanvasTextTextMemory.d.mts +1 -1
  200. package/dist/interface/canvas/ICanvasTextTextMemory.d.ts +1 -1
  201. package/dist/interface/export/ExportedCanvas.d.mts +11 -3
  202. package/dist/interface/export/ExportedCanvas.d.ts +11 -3
  203. package/dist/interface/export/ExportedStep.d.mts +7 -3
  204. package/dist/interface/export/ExportedStep.d.ts +7 -3
  205. package/dist/interface/export/index.d.mts +8 -4
  206. package/dist/interface/export/index.d.ts +8 -4
  207. package/dist/interface/index.d.mts +14 -11
  208. package/dist/interface/index.d.ts +14 -11
  209. package/dist/labels/BaseCanvasElementTestLabel.d.mts +9 -0
  210. package/dist/labels/BaseCanvasElementTestLabel.d.ts +9 -0
  211. package/dist/labels/BaseCanvasElementTestLabel.js +1860 -0
  212. package/dist/labels/BaseCanvasElementTestLabel.js.map +1 -0
  213. package/dist/labels/BaseCanvasElementTestLabel.mjs +1854 -0
  214. package/dist/labels/BaseCanvasElementTestLabel.mjs.map +1 -0
  215. package/dist/labels/EventsTestLabel.d.mts +30 -0
  216. package/dist/labels/EventsTestLabel.d.ts +30 -0
  217. package/dist/labels/EventsTestLabel.js +2600 -0
  218. package/dist/labels/EventsTestLabel.js.map +1 -0
  219. package/dist/labels/EventsTestLabel.mjs +2594 -0
  220. package/dist/labels/EventsTestLabel.mjs.map +1 -0
  221. package/dist/labels/MarkdownTest.d.mts +9 -0
  222. package/dist/labels/MarkdownTest.d.ts +9 -0
  223. package/dist/labels/MarkdownTest.js +2686 -0
  224. package/dist/labels/MarkdownTest.js.map +1 -0
  225. package/dist/labels/MarkdownTest.mjs +2680 -0
  226. package/dist/labels/MarkdownTest.mjs.map +1 -0
  227. package/dist/labels/ShowImageTest.d.mts +9 -0
  228. package/dist/labels/ShowImageTest.d.ts +9 -0
  229. package/dist/labels/ShowImageTest.js +3087 -0
  230. package/dist/labels/ShowImageTest.js.map +1 -0
  231. package/dist/labels/ShowImageTest.mjs +3081 -0
  232. package/dist/labels/ShowImageTest.mjs.map +1 -0
  233. package/dist/labels/StartLabel.d.mts +10 -0
  234. package/dist/labels/StartLabel.d.ts +10 -0
  235. package/dist/labels/StartLabel.js +3199 -0
  236. package/dist/labels/StartLabel.js.map +1 -0
  237. package/dist/labels/StartLabel.mjs +3192 -0
  238. package/dist/labels/StartLabel.mjs.map +1 -0
  239. package/dist/labels/TestConstant.d.mts +15 -0
  240. package/dist/labels/TestConstant.d.ts +15 -0
  241. package/dist/labels/TestConstant.js +1840 -0
  242. package/dist/labels/TestConstant.js.map +1 -0
  243. package/dist/labels/TestConstant.mjs +1826 -0
  244. package/dist/labels/TestConstant.mjs.map +1 -0
  245. package/dist/labels/TickerTestLabel.d.mts +9 -0
  246. package/dist/labels/TickerTestLabel.d.ts +9 -0
  247. package/dist/labels/TickerTestLabel.js +2605 -0
  248. package/dist/labels/TickerTestLabel.js.map +1 -0
  249. package/dist/labels/TickerTestLabel.mjs +2599 -0
  250. package/dist/labels/TickerTestLabel.mjs.map +1 -0
  251. package/dist/labels/TintingTestLabel.d.mts +19 -0
  252. package/dist/labels/TintingTestLabel.d.ts +19 -0
  253. package/dist/labels/TintingTestLabel.js +1786 -0
  254. package/dist/labels/TintingTestLabel.js.map +1 -0
  255. package/dist/labels/TintingTestLabel.mjs +1780 -0
  256. package/dist/labels/TintingTestLabel.mjs.map +1 -0
  257. package/dist/labels/index.d.mts +10 -0
  258. package/dist/labels/index.d.ts +10 -0
  259. package/dist/labels/index.js +3199 -0
  260. package/dist/labels/index.js.map +1 -0
  261. package/dist/labels/index.mjs +3192 -0
  262. package/dist/labels/index.mjs.map +1 -0
  263. package/dist/managers/StepManager.d.mts +18 -13
  264. package/dist/managers/StepManager.d.ts +18 -13
  265. package/dist/managers/StepManager.js +483 -194
  266. package/dist/managers/StepManager.js.map +1 -1
  267. package/dist/managers/StepManager.mjs +483 -194
  268. package/dist/managers/StepManager.mjs.map +1 -1
  269. package/dist/managers/WindowManager.d.mts +38 -24
  270. package/dist/managers/WindowManager.d.ts +38 -24
  271. package/dist/managers/WindowManager.js +280 -118
  272. package/dist/managers/WindowManager.js.map +1 -1
  273. package/dist/managers/WindowManager.mjs +276 -118
  274. package/dist/managers/WindowManager.mjs.map +1 -1
  275. package/dist/managers/index.d.mts +15 -14
  276. package/dist/managers/index.d.ts +15 -14
  277. package/dist/managers/index.js +486 -195
  278. package/dist/managers/index.js.map +1 -1
  279. package/dist/managers/index.mjs +486 -195
  280. package/dist/managers/index.mjs.map +1 -1
  281. package/dist/types/CanvasEventNamesType.d.mts +1 -1
  282. package/dist/types/CanvasEventNamesType.d.ts +1 -1
  283. package/dist/types/ChoiceMenuOptionsType.d.mts +2 -2
  284. package/dist/types/ChoiceMenuOptionsType.d.ts +2 -2
  285. package/dist/types/HistoryChoiceMenuOption.d.mts +22 -0
  286. package/dist/types/HistoryChoiceMenuOption.d.ts +22 -0
  287. package/dist/types/HistoryChoiceMenuOption.js +4 -0
  288. package/dist/types/HistoryChoiceMenuOption.mjs +3 -0
  289. package/dist/types/PauseType.d.mts +8 -4
  290. package/dist/types/PauseType.d.ts +8 -4
  291. package/dist/types/PauseType.js +0 -11
  292. package/dist/types/PauseType.js.map +1 -1
  293. package/dist/types/PauseType.mjs +0 -9
  294. package/dist/types/PauseType.mjs.map +1 -1
  295. package/dist/types/RepeatType.d.mts +1 -2
  296. package/dist/types/RepeatType.d.ts +1 -2
  297. package/dist/types/RepeatType.js +0 -4
  298. package/dist/types/RepeatType.js.map +1 -1
  299. package/dist/types/RepeatType.mjs +0 -3
  300. package/dist/types/RepeatType.mjs.map +1 -1
  301. package/dist/types/index.d.mts +5 -4
  302. package/dist/types/index.d.ts +5 -4
  303. package/dist/types/index.js +0 -15
  304. package/dist/types/index.js.map +1 -1
  305. package/dist/types/index.mjs +1 -13
  306. package/dist/types/index.mjs.map +1 -1
  307. package/dist/types/ticker/{TickerFadeAlphaProps.d.mts → FadeAlphaTickerProps.d.mts} +9 -5
  308. package/dist/types/ticker/{TickerFadeAlphaProps.d.ts → FadeAlphaTickerProps.d.ts} +9 -5
  309. package/dist/types/ticker/FadeAlphaTickerProps.js +4 -0
  310. package/dist/types/ticker/FadeAlphaTickerProps.js.map +1 -0
  311. package/dist/types/ticker/FadeAlphaTickerProps.mjs +3 -0
  312. package/dist/types/ticker/FadeAlphaTickerProps.mjs.map +1 -0
  313. package/dist/types/ticker/MoveTickerProps.d.mts +35 -0
  314. package/dist/types/ticker/MoveTickerProps.d.ts +35 -0
  315. package/dist/types/ticker/{TickerRotateProps.js → MoveTickerProps.js} +1 -1
  316. package/dist/types/ticker/MoveTickerProps.js.map +1 -0
  317. package/dist/types/ticker/MoveTickerProps.mjs +3 -0
  318. package/dist/types/ticker/MoveTickerProps.mjs.map +1 -0
  319. package/dist/types/ticker/{TickerRotateProps.d.mts → RotateTickerProps.d.mts} +11 -5
  320. package/dist/types/ticker/{TickerRotateProps.d.ts → RotateTickerProps.d.ts} +11 -5
  321. package/dist/types/ticker/RotateTickerProps.js +4 -0
  322. package/dist/types/ticker/RotateTickerProps.js.map +1 -0
  323. package/dist/types/ticker/RotateTickerProps.mjs +3 -0
  324. package/dist/types/ticker/RotateTickerProps.mjs.map +1 -0
  325. package/dist/types/ticker/TagToRemoveAfterType.d.mts +4 -0
  326. package/dist/types/ticker/TagToRemoveAfterType.d.ts +4 -0
  327. package/dist/types/ticker/TagToRemoveAfterType.js +8 -0
  328. package/dist/types/ticker/TagToRemoveAfterType.js.map +1 -0
  329. package/dist/types/ticker/TagToRemoveAfterType.mjs +6 -0
  330. package/dist/types/ticker/TagToRemoveAfterType.mjs.map +1 -0
  331. package/dist/types/ticker/ZoomTickerProps.d.mts +45 -0
  332. package/dist/types/ticker/ZoomTickerProps.d.ts +45 -0
  333. package/dist/types/ticker/ZoomTickerProps.js +4 -0
  334. package/dist/types/ticker/ZoomTickerProps.js.map +1 -0
  335. package/dist/types/ticker/ZoomTickerProps.mjs +3 -0
  336. package/dist/types/ticker/ZoomTickerProps.mjs.map +1 -0
  337. package/dist/types/ticker/index.d.mts +4 -2
  338. package/dist/types/ticker/index.d.ts +4 -2
  339. package/package.json +7 -7
  340. package/dist/classes/ticker/TickerFadeAlpha.d.mts +0 -31
  341. package/dist/classes/ticker/TickerFadeAlpha.d.ts +0 -31
  342. package/dist/classes/ticker/TickerFadeAlpha.js.map +0 -1
  343. package/dist/classes/ticker/TickerFadeAlpha.mjs.map +0 -1
  344. package/dist/classes/ticker/TickerMove.d.mts +0 -29
  345. package/dist/classes/ticker/TickerMove.d.ts +0 -29
  346. package/dist/classes/ticker/TickerMove.js.map +0 -1
  347. package/dist/classes/ticker/TickerMove.mjs.map +0 -1
  348. package/dist/classes/ticker/TickerRotate.d.mts +0 -30
  349. package/dist/classes/ticker/TickerRotate.d.ts +0 -30
  350. package/dist/classes/ticker/TickerRotate.js.map +0 -1
  351. package/dist/classes/ticker/TickerRotate.mjs.map +0 -1
  352. package/dist/functions/ErrorUtility.d.mts +0 -24
  353. package/dist/functions/ErrorUtility.d.ts +0 -24
  354. package/dist/functions/ErrorUtility.js +0 -261
  355. package/dist/functions/ErrorUtility.js.map +0 -1
  356. package/dist/functions/ErrorUtility.mjs +0 -258
  357. package/dist/functions/ErrorUtility.mjs.map +0 -1
  358. package/dist/interface/IClassWithArgsHistory.js +0 -4
  359. package/dist/interface/IClassWithArgsHistory.mjs +0 -3
  360. package/dist/types/ticker/TickerFadeAlphaProps.js +0 -4
  361. package/dist/types/ticker/TickerFadeAlphaProps.mjs +0 -3
  362. package/dist/types/ticker/TickerMoveProps.d.mts +0 -26
  363. package/dist/types/ticker/TickerMoveProps.d.ts +0 -26
  364. package/dist/types/ticker/TickerMoveProps.mjs +0 -3
  365. package/dist/types/ticker/TickerRotateProps.mjs +0 -3
  366. /package/dist/interface/{IClassWithArgsHistory.js.map → CharacterBaseModelProps.js.map} +0 -0
  367. /package/dist/interface/{IClassWithArgsHistory.mjs.map → CharacterBaseModelProps.mjs.map} +0 -0
  368. /package/dist/{types/ticker/TickerFadeAlphaProps.js.map → interface/TickerHistory.js.map} +0 -0
  369. /package/dist/{types/ticker/TickerFadeAlphaProps.mjs.map → interface/TickerHistory.mjs.map} +0 -0
  370. /package/dist/{types/ticker/TickerMoveProps.js.map → interface/TickerTimeoutHistory.js.map} +0 -0
  371. /package/dist/{types/ticker/TickerMoveProps.mjs.map → interface/TickerTimeoutHistory.mjs.map} +0 -0
  372. /package/dist/types/{ticker/TickerRotateProps.js.map → HistoryChoiceMenuOption.js.map} +0 -0
  373. /package/dist/types/{ticker/TickerRotateProps.mjs.map → HistoryChoiceMenuOption.mjs.map} +0 -0
@@ -0,0 +1,1840 @@
1
+ 'use strict';
2
+
3
+ require('deep-diff');
4
+ var sha1 = require('crypto-js/sha1');
5
+ var pixi_js = require('pixi.js');
6
+
7
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
+
9
+ var sha1__default = /*#__PURE__*/_interopDefault(sha1);
10
+
11
+ var __defProp = Object.defineProperty;
12
+ var __defProps = Object.defineProperties;
13
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
14
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
15
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
16
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
17
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
18
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
19
+ var __spreadValues = (a, b) => {
20
+ for (var prop in b || (b = {}))
21
+ if (__hasOwnProp.call(b, prop))
22
+ __defNormalProp(a, prop, b[prop]);
23
+ if (__getOwnPropSymbols)
24
+ for (var prop of __getOwnPropSymbols(b)) {
25
+ if (__propIsEnum.call(b, prop))
26
+ __defNormalProp(a, prop, b[prop]);
27
+ }
28
+ return a;
29
+ };
30
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
31
+ var __decorateClass = (decorators, target, key, kind) => {
32
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
33
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
34
+ if (decorator = decorators[i])
35
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
36
+ if (kind && result) __defProp(target, key, result);
37
+ return result;
38
+ };
39
+ var __async = (__this, __arguments, generator) => {
40
+ return new Promise((resolve, reject) => {
41
+ var fulfilled = (value) => {
42
+ try {
43
+ step(generator.next(value));
44
+ } catch (e) {
45
+ reject(e);
46
+ }
47
+ };
48
+ var rejected = (value) => {
49
+ try {
50
+ step(generator.throw(value));
51
+ } catch (e) {
52
+ reject(e);
53
+ }
54
+ };
55
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
56
+ step((generator = generator.apply(__this, __arguments)).next());
57
+ });
58
+ };
59
+
60
+ // src/functions/CanvasUtility.ts
61
+ function getTextureMemory(texture) {
62
+ let sourceTexture = texture.source;
63
+ let textureMemory = {
64
+ image: sourceTexture.label
65
+ };
66
+ return textureMemory;
67
+ }
68
+ function exportCanvasElement(element) {
69
+ return element.memory;
70
+ }
71
+ function importCanvasElement(memory) {
72
+ let element = getCanvasElementInstanceByClassName(memory.className);
73
+ if (element) {
74
+ element.memory = memory;
75
+ } else {
76
+ throw new Error("[Pixi'VN] The element " + memory.className + " could not be created");
77
+ }
78
+ return element;
79
+ }
80
+
81
+ // src/classes/canvas/CanvasContainer.ts
82
+ var CanvasContainer = class extends pixi_js.Container {
83
+ get memory() {
84
+ let memory = getMemoryContainer(this);
85
+ this.children.forEach((child) => {
86
+ memory.elements.push(exportCanvasElement(child));
87
+ });
88
+ return memory;
89
+ }
90
+ set memory(value) {
91
+ setMemoryContainer(this, value);
92
+ value.elements.forEach((child) => {
93
+ this.addChild(importCanvasElement(child));
94
+ });
95
+ }
96
+ };
97
+ function getMemoryContainer(element) {
98
+ return {
99
+ className: "CanvasContainer",
100
+ elements: [],
101
+ width: element.width,
102
+ height: element.height,
103
+ isRenderGroup: element.isRenderGroup,
104
+ blendMode: element.blendMode,
105
+ tint: element.tint,
106
+ alpha: element.alpha,
107
+ angle: element.angle,
108
+ renderable: element.renderable,
109
+ rotation: element.rotation,
110
+ scale: { x: element.scale.x, y: element.scale.y },
111
+ pivot: { x: element.pivot.x, y: element.pivot.y },
112
+ position: { x: element.position.x, y: element.position.y },
113
+ skew: { x: element.skew.x, y: element.skew.y },
114
+ visible: element.visible,
115
+ culled: element.culled,
116
+ x: element.x,
117
+ y: element.y,
118
+ boundsArea: element.boundsArea,
119
+ cursor: element.cursor,
120
+ eventMode: element.eventMode,
121
+ interactive: element.interactive,
122
+ interactiveChildren: element.interactiveChildren,
123
+ hitArea: element.hitArea
124
+ };
125
+ }
126
+ function setMemoryContainer(element, memory) {
127
+ memory.width && (element.width = memory.width);
128
+ memory.height && (element.height = memory.height);
129
+ memory.isRenderGroup && (element.isRenderGroup = memory.isRenderGroup);
130
+ memory.blendMode && (element.blendMode = memory.blendMode);
131
+ memory.tint && (element.tint = memory.tint);
132
+ memory.alpha && (element.alpha = memory.alpha);
133
+ memory.angle && (element.angle = memory.angle);
134
+ memory.renderable && (element.renderable = memory.renderable);
135
+ memory.rotation && (element.rotation = memory.rotation);
136
+ if (memory.scale) {
137
+ if (typeof memory.scale === "number") {
138
+ element.scale.set(memory.scale, memory.scale);
139
+ } else {
140
+ element.scale.set(memory.scale.x, memory.scale.y);
141
+ }
142
+ }
143
+ if (memory.pivot) {
144
+ if (typeof memory.pivot === "number") {
145
+ element.pivot.set(memory.pivot, memory.pivot);
146
+ } else {
147
+ element.pivot.set(memory.pivot.x, memory.pivot.y);
148
+ }
149
+ }
150
+ memory.position && element.position.set(memory.position.x, memory.position.y);
151
+ memory.skew && element.skew.set(memory.skew.x, memory.skew.y);
152
+ memory.visible && (element.visible = memory.visible);
153
+ memory.culled && (element.culled = memory.culled);
154
+ memory.x && (element.x = memory.x);
155
+ memory.y && (element.y = memory.y);
156
+ memory.boundsArea && (element.boundsArea = memory.boundsArea);
157
+ memory.cursor && (element.cursor = memory.cursor);
158
+ memory.eventMode && (element.eventMode = memory.eventMode);
159
+ memory.interactive && (element.interactive = memory.interactive);
160
+ memory.interactiveChildren && (element.interactiveChildren = memory.interactiveChildren);
161
+ memory.hitArea && (element.hitArea = memory.hitArea);
162
+ }
163
+ function getTexture(imageUrl) {
164
+ return __async(this, null, function* () {
165
+ if (pixi_js.Assets.cache.has(imageUrl)) {
166
+ return pixi_js.Assets.get(imageUrl);
167
+ }
168
+ return pixi_js.Assets.load(imageUrl).then((texture) => {
169
+ if (!texture) {
170
+ console.error("[Pixi'VN] Texture not found", imageUrl);
171
+ return;
172
+ }
173
+ if (!(texture instanceof pixi_js.Texture)) {
174
+ console.error("[Pixi'VN] File not is a image", imageUrl);
175
+ return;
176
+ }
177
+ return texture;
178
+ }).catch((e) => {
179
+ console.error("[Pixi'VN] Error loading image", e);
180
+ return;
181
+ });
182
+ });
183
+ }
184
+ function getTextStyle(style) {
185
+ let fill = style.fill;
186
+ if (fill instanceof Object) {
187
+ console.warn("[Pixi'VN] CanvasText.style.fill is a FillGradient or FillPattern, this is not supported yet.", fill);
188
+ fill = "#00FF00";
189
+ }
190
+ return {
191
+ align: style.align,
192
+ breakWords: style.breakWords,
193
+ dropShadow: style.dropShadow,
194
+ fill,
195
+ fontFamily: style.fontFamily,
196
+ fontSize: style.fontSize,
197
+ fontStyle: style.fontStyle,
198
+ fontVariant: style.fontVariant,
199
+ fontWeight: style.fontWeight,
200
+ leading: style.leading,
201
+ letterSpacing: style.letterSpacing,
202
+ lineHeight: style.lineHeight,
203
+ padding: style.padding,
204
+ stroke: style.stroke,
205
+ textBaseline: style.textBaseline,
206
+ trim: style.trim,
207
+ whiteSpace: style.whiteSpace,
208
+ wordWrap: style.wordWrap,
209
+ wordWrapWidth: style.wordWrapWidth
210
+ };
211
+ }
212
+
213
+ // src/decorators/EventDecorator.ts
214
+ var registeredEvents = {};
215
+ function getEventTypeByClassName(eventName) {
216
+ try {
217
+ let eventType = registeredEvents[eventName];
218
+ if (!eventType) {
219
+ console.error(`[Pixi'VN] Event ${eventName} not found`);
220
+ return;
221
+ }
222
+ new eventType();
223
+ return eventType;
224
+ } catch (e) {
225
+ console.error(`[Pixi'VN] Error while getting Event ${eventName}`, e);
226
+ return;
227
+ }
228
+ }
229
+ function getEventInstanceByClassName(eventName) {
230
+ try {
231
+ let eventType = registeredEvents[eventName];
232
+ if (!eventType) {
233
+ console.error(`[Pixi'VN] Event ${eventName} not found`);
234
+ return;
235
+ }
236
+ let event = new eventType();
237
+ return event;
238
+ } catch (e) {
239
+ console.error(`[Pixi'VN] Error while getting Event ${eventName}`, e);
240
+ return;
241
+ }
242
+ }
243
+
244
+ // src/classes/canvas/CanvasSprite.ts
245
+ var CanvasSprite = class _CanvasSprite extends pixi_js.Sprite {
246
+ constructor() {
247
+ super(...arguments);
248
+ this._onEvents = {};
249
+ }
250
+ get memory() {
251
+ return getMemorySprite(this);
252
+ }
253
+ set memory(value) {
254
+ setMemorySprite(this, value);
255
+ }
256
+ get onEvents() {
257
+ return this._onEvents;
258
+ }
259
+ /**
260
+ * is same function as on(), but it keeps in memory the children.
261
+ * @param event The event type, e.g., 'click', 'mousedown', 'mouseup', 'pointerdown', etc.
262
+ * @param eventClass The class that extends CanvasEvent.
263
+ * @returns
264
+ * @example
265
+ * ```typescript
266
+ * \@eventDecorator()
267
+ * export class EventTest extends CanvasEvent<CanvasSprite> {
268
+ * override fn(event: CanvasEventNamesType, sprite: CanvasSprite): void {
269
+ * if (event === 'pointerdown') {
270
+ * sprite.scale.x *= 1.25;
271
+ * sprite.scale.y *= 1.25;
272
+ * }
273
+ * }
274
+ * }
275
+ * ```
276
+ *
277
+ * ```typescript
278
+ * let sprite = addImage("alien", 'https://pixijs.com/assets/eggHead.png')
279
+ * await sprite.load()
280
+ *
281
+ * sprite.eventMode = 'static';
282
+ * sprite.cursor = 'pointer';
283
+ * sprite.onEvent('pointerdown', EventTest);
284
+ *
285
+ * GameWindowManager.addCanvasElement("bunny", sprite);
286
+ * ```
287
+ */
288
+ onEvent(event, eventClass) {
289
+ let className = eventClass.name;
290
+ let instance = getEventInstanceByClassName(className);
291
+ this._onEvents[event] = className;
292
+ if (instance) {
293
+ super.on(event, () => {
294
+ instance.fn(event, this);
295
+ });
296
+ }
297
+ return this;
298
+ }
299
+ /**
300
+ * on() does not keep in memory the event class, use onEvent() instead
301
+ * @deprecated
302
+ * @private
303
+ * @param event
304
+ * @param fn
305
+ * @param context
306
+ */
307
+ on(event, fn, context) {
308
+ return super.on(event, fn, context);
309
+ }
310
+ static from(source, skipCache) {
311
+ let sprite = pixi_js.Sprite.from(source, skipCache);
312
+ let mySprite = new _CanvasSprite();
313
+ mySprite.texture = sprite.texture;
314
+ return mySprite;
315
+ }
316
+ };
317
+ function getMemorySprite(element) {
318
+ let temp = getMemoryContainer(element);
319
+ return __spreadProps(__spreadValues({}, temp), {
320
+ className: "CanvasSprite",
321
+ textureImage: getTextureMemory(element.texture),
322
+ anchor: { x: element.anchor.x, y: element.anchor.y },
323
+ roundPixels: element.roundPixels,
324
+ onEvents: element.onEvents
325
+ });
326
+ }
327
+ function setMemorySprite(element, memory) {
328
+ setMemoryContainer(element, memory);
329
+ getTexture(memory.textureImage.image).then((texture) => {
330
+ if (texture) {
331
+ element.texture = texture;
332
+ }
333
+ });
334
+ if (memory.anchor) {
335
+ if (typeof memory.anchor === "number") {
336
+ element.anchor.set(memory.anchor, memory.anchor);
337
+ } else {
338
+ element.anchor.set(memory.anchor.x, memory.anchor.y);
339
+ }
340
+ }
341
+ memory.roundPixels && (element.roundPixels = memory.roundPixels);
342
+ for (let event in memory.onEvents) {
343
+ let className = memory.onEvents[event];
344
+ let instance = getEventTypeByClassName(className);
345
+ if (instance) {
346
+ element.onEvent(event, instance);
347
+ }
348
+ }
349
+ }
350
+
351
+ // src/classes/canvas/CanvasImage.ts
352
+ var CanvasImage = class _CanvasImage extends CanvasSprite {
353
+ constructor(options, imageLink) {
354
+ super(options);
355
+ this.imageLink = "";
356
+ if (imageLink) {
357
+ this.imageLink = imageLink;
358
+ }
359
+ }
360
+ get memory() {
361
+ return __spreadProps(__spreadValues({}, getMemorySprite(this)), {
362
+ className: "CanvasImage",
363
+ textureImage: { image: this.imageLink }
364
+ });
365
+ }
366
+ set memory(memory) {
367
+ setMemorySprite(this, memory);
368
+ }
369
+ static from(source, skipCache) {
370
+ let sprite = pixi_js.Sprite.from(source, skipCache);
371
+ let mySprite = new _CanvasImage();
372
+ mySprite.texture = sprite.texture;
373
+ return mySprite;
374
+ }
375
+ /**
376
+ * Load the image from the link and set the texture of the sprite.
377
+ * @param image The link of the image. If it is not set, it will use the imageLink property.
378
+ * @returns A promise that resolves when the image is loaded.
379
+ */
380
+ load(image) {
381
+ return __async(this, null, function* () {
382
+ if (!image) {
383
+ image = this.imageLink;
384
+ }
385
+ return getTexture(this.imageLink).then((texture) => {
386
+ if (texture) {
387
+ this.texture = texture;
388
+ }
389
+ }).catch((e) => {
390
+ console.error("[Pixi'VN] Error into CanvasImage.load()", e);
391
+ });
392
+ });
393
+ }
394
+ };
395
+ var CanvasText = class extends pixi_js.Text {
396
+ constructor() {
397
+ super(...arguments);
398
+ this._onEvents = {};
399
+ }
400
+ get memory() {
401
+ return getMemoryText(this);
402
+ }
403
+ set memory(value) {
404
+ setMemoryText(this, value);
405
+ }
406
+ get onEvents() {
407
+ return this._onEvents;
408
+ }
409
+ /**
410
+ * is same function as on(), but it keeps in memory the children.
411
+ * @param event The event type, e.g., 'click', 'mousedown', 'mouseup', 'pointerdown', etc.
412
+ * @param eventClass The class that extends CanvasEvent.
413
+ * @returns
414
+ * @example
415
+ * ```typescript
416
+ * \@eventDecorator()
417
+ * export class EventTest extends CanvasEvent<CanvasText> {
418
+ * override fn(event: CanvasEventNamesType, text: CanvasText): void {
419
+ * if (event === 'pointerdown') {
420
+ * text.scale.x *= 1.25;
421
+ * text.scale.y *= 1.25;
422
+ * }
423
+ * }
424
+ * }
425
+ * ```
426
+ *
427
+ * ```typescript
428
+ * const text = new CanvasText();
429
+ * text.text = "Hello World"
430
+ *
431
+ * text.eventMode = 'static';
432
+ * text.cursor = 'pointer';
433
+ * text.onEvent('pointerdown', EventTest);
434
+ *
435
+ * GameWindowManager.addCanvasElement("text", text);
436
+ * ```
437
+ */
438
+ onEvent(event, eventClass) {
439
+ let className = eventClass.name;
440
+ let instance = getEventInstanceByClassName(className);
441
+ this._onEvents[event] = className;
442
+ if (instance) {
443
+ super.on(event, () => {
444
+ instance.fn(event, this);
445
+ });
446
+ }
447
+ return this;
448
+ }
449
+ /**
450
+ * on() does not keep in memory the event class, use onEvent() instead
451
+ * @deprecated
452
+ * @private
453
+ * @param event
454
+ * @param fn
455
+ * @param context
456
+ */
457
+ on(event, fn, context) {
458
+ return super.on(event, fn, context);
459
+ }
460
+ };
461
+ function getMemoryText(element) {
462
+ let temp = getMemoryContainer(element);
463
+ return __spreadProps(__spreadValues({}, temp), {
464
+ className: "CanvasText",
465
+ anchor: { x: element.anchor.x, y: element.anchor.y },
466
+ text: element.text,
467
+ resolution: element.resolution,
468
+ style: getTextStyle(element.style),
469
+ roundPixels: element.roundPixels,
470
+ onEvents: element.onEvents
471
+ });
472
+ }
473
+ function setMemoryText(element, memory) {
474
+ setMemoryContainer(element, memory);
475
+ if (memory.anchor) {
476
+ if (typeof memory.anchor === "number") {
477
+ element.anchor.set(memory.anchor, memory.anchor);
478
+ } else {
479
+ element.anchor.set(memory.anchor.x, memory.anchor.y);
480
+ }
481
+ }
482
+ memory.text && (element.text = memory.text);
483
+ memory.resolution && (element.resolution = memory.resolution);
484
+ memory.style && (element.style = memory.style);
485
+ memory.roundPixels && (element.roundPixels = memory.roundPixels);
486
+ for (let event in memory.onEvents) {
487
+ let className = memory.onEvents[event];
488
+ let instance = getEventTypeByClassName(className);
489
+ if (instance) {
490
+ element.onEvent(event, instance);
491
+ }
492
+ }
493
+ }
494
+
495
+ // src/decorators/CanvasElementDecorator.ts
496
+ var registeredCanvasElement = {};
497
+ function getCanvasElementInstanceByClassName(canvasName) {
498
+ try {
499
+ let eventType = registeredCanvasElement[canvasName];
500
+ if (!eventType) {
501
+ if (canvasName === "CanvasContainer") {
502
+ eventType = CanvasContainer;
503
+ } else if (canvasName === "CanvasImage") {
504
+ eventType = CanvasImage;
505
+ } else if (canvasName === "CanvasSprite") {
506
+ eventType = CanvasSprite;
507
+ } else if (canvasName === "CanvasText") {
508
+ eventType = CanvasText;
509
+ }
510
+ }
511
+ if (!eventType) {
512
+ console.error(`[Pixi'VN] CanvasElement ${canvasName} not found`);
513
+ return;
514
+ }
515
+ let canvasElement = new eventType();
516
+ return canvasElement;
517
+ } catch (e) {
518
+ console.error(`[Pixi'VN] Error while getting CanvasElement ${canvasName}`, e);
519
+ return;
520
+ }
521
+ }
522
+
523
+ // src/decorators/CharacterDecorator.ts
524
+ var registeredCharacters = {};
525
+ function saveCharacter(character) {
526
+ if (Array.isArray(character)) {
527
+ character.forEach((c) => saveCharacter(c));
528
+ return;
529
+ }
530
+ if (registeredCharacters[character.id]) {
531
+ console.info(`[Pixi'VN] Character id ${character.id} already exists, it will be overwritten`);
532
+ }
533
+ registeredCharacters[character.id] = character;
534
+ }
535
+
536
+ // src/decorators/TickerDecorator.ts
537
+ var registeredTickers = {};
538
+ function tickerDecorator(name) {
539
+ return function(target) {
540
+ if (!name) {
541
+ name = target.name;
542
+ }
543
+ if (registeredTickers[name]) {
544
+ console.info(`[Pixi'VN] Ticker ${name} already exists, it will be overwritten`);
545
+ }
546
+ registeredTickers[name] = target;
547
+ };
548
+ }
549
+ function geTickerInstanceByClassName(tickerName, args, duration, priority) {
550
+ try {
551
+ let ticker = registeredTickers[tickerName];
552
+ if (!ticker) {
553
+ console.error(`[Pixi'VN] Ticker ${tickerName} not found`);
554
+ return;
555
+ }
556
+ return new ticker(args, duration, priority);
557
+ } catch (e) {
558
+ console.error(`[Pixi'VN] Error while getting Ticker ${tickerName}`, e);
559
+ return;
560
+ }
561
+ }
562
+
563
+ // src/classes/ticker/TickerBase.ts
564
+ var TickerBase = class {
565
+ /**
566
+ * @param args The arguments that you want to pass to the ticker.
567
+ * @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
568
+ * @param priority The priority of the ticker. @default UPDATE_PRIORITY.NORMAL
569
+ */
570
+ constructor(args, duration, priority) {
571
+ this.args = args;
572
+ this.duration = duration;
573
+ this.priority = priority;
574
+ }
575
+ /**
576
+ * The method that will be called every frame.
577
+ * This method should be overridden and you can use GameWindowManager.addCanvasElement() to get the canvas element of the canvas, and edit them.
578
+ * @param _ticker The ticker that is calling this method
579
+ * @param _args The arguments that you passed when you added the ticker
580
+ * @param _tags The tags of the canvas elements that are connected to this ticker
581
+ * @param _tickerId The id of the ticker. You can use this to get the ticker from the {@link GameWindowManager.currentTickers}
582
+ */
583
+ fn(_ticker, _args, _tags, _tickerId) {
584
+ throw new Error("[Pixi'VN] The method TickerBase.fn() must be overridden");
585
+ }
586
+ };
587
+
588
+ // src/classes/ticker/FadeAlphaTicker.ts
589
+ var FadeAlphaTicker = class extends TickerBase {
590
+ fn(ticker, args, tags, tickerId) {
591
+ let type = args.type === void 0 ? "hide" : args.type;
592
+ let duration = args.duration === void 0 ? 1 : args.duration;
593
+ let speed = 1 / (duration * 60);
594
+ let limit = args.limit === void 0 ? type === "hide" ? 0 : 1 : args.limit;
595
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
596
+ if (typeof tagToRemoveAfter2 === "string") {
597
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
598
+ }
599
+ if (type === "hide" && limit < 0) {
600
+ limit = 0;
601
+ }
602
+ if (type === "show" && limit > 1) {
603
+ limit = 1;
604
+ }
605
+ tags.filter((tag) => {
606
+ var _a;
607
+ let element = GameWindowManager.getCanvasElement(tag);
608
+ if (args.startOnlyIfHaveTexture) {
609
+ if (element && element instanceof pixi_js.Sprite && ((_a = element.texture) == null ? void 0 : _a.label) == "EMPTY") {
610
+ return false;
611
+ }
612
+ }
613
+ return true;
614
+ }).forEach((tag) => {
615
+ let element = GameWindowManager.getCanvasElement(tag);
616
+ if (element && element instanceof pixi_js.Container) {
617
+ if (type === "show" && element.alpha < limit) {
618
+ element.alpha += speed * ticker.deltaTime;
619
+ } else if (type === "hide" && element.alpha > limit) {
620
+ element.alpha -= speed * ticker.deltaTime;
621
+ }
622
+ if (type === "show" && element.alpha >= limit) {
623
+ element.alpha = limit;
624
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
625
+ } else if (type === "hide" && element.alpha <= limit) {
626
+ element.alpha = limit;
627
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
628
+ }
629
+ }
630
+ });
631
+ }
632
+ };
633
+ FadeAlphaTicker = __decorateClass([
634
+ tickerDecorator()
635
+ ], FadeAlphaTicker);
636
+
637
+ // src/functions/TickerUtility.ts
638
+ function updateTickerProgression(args, propertyName, progression) {
639
+ if (args[propertyName] === void 0 || !progression || args[propertyName] === progression.limit) {
640
+ return;
641
+ }
642
+ if (typeof args[propertyName] === "number") {
643
+ if (progression.type === "linear") {
644
+ args[propertyName] = getLinearProgression(args[propertyName], progression);
645
+ } else if (progression.type === "exponential") {
646
+ args[propertyName] = getExponentialProgression(args[propertyName], progression);
647
+ }
648
+ } 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") {
649
+ if (progression.type === "linear") {
650
+ args[propertyName].x = getLinearProgression(args[propertyName].x, progression);
651
+ args[propertyName].y = getLinearProgression(args[propertyName].y, progression);
652
+ } else if (progression.type === "exponential") {
653
+ args[propertyName].x = getExponentialProgression(args[propertyName].x, progression);
654
+ args[propertyName].y = getExponentialProgression(args[propertyName].y, progression);
655
+ }
656
+ }
657
+ }
658
+ function getLinearProgression(number, progression) {
659
+ if (progression.limit !== void 0) {
660
+ if (number > progression.limit && progression.amt > 0) {
661
+ return progression.limit;
662
+ } else if (number < progression.limit && progression.amt < 0) {
663
+ return progression.limit;
664
+ }
665
+ }
666
+ return number + progression.amt / 60;
667
+ }
668
+ function getExponentialProgression(number, progression) {
669
+ if (progression.limit !== void 0) {
670
+ if (number > progression.limit && progression.percentage > 0) {
671
+ return progression.limit;
672
+ } else if (number < progression.limit && progression.percentage < 0) {
673
+ return progression.limit;
674
+ }
675
+ }
676
+ return number + number * progression.percentage;
677
+ }
678
+
679
+ // src/classes/ticker/MoveTicker.ts
680
+ var MoveTicker = class extends TickerBase {
681
+ fn(ticker, args, tags, tickerId) {
682
+ let xSpeed = 1;
683
+ let ySpeed = 1;
684
+ if (args.speed) {
685
+ if (typeof args.speed === "number") {
686
+ xSpeed = args.speed;
687
+ ySpeed = args.speed;
688
+ } else {
689
+ xSpeed = args.speed.x;
690
+ ySpeed = args.speed.y;
691
+ }
692
+ }
693
+ xSpeed /= 60;
694
+ ySpeed /= 60;
695
+ let destination = args.destination;
696
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
697
+ if (typeof tagToRemoveAfter2 === "string") {
698
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
699
+ }
700
+ tags.filter((tag) => {
701
+ var _a;
702
+ let element = GameWindowManager.getCanvasElement(tag);
703
+ if (args.startOnlyIfHaveTexture) {
704
+ if (element && element instanceof pixi_js.Sprite && ((_a = element.texture) == null ? void 0 : _a.label) == "EMPTY") {
705
+ return false;
706
+ }
707
+ }
708
+ return true;
709
+ }).forEach((tag) => {
710
+ let element = GameWindowManager.getCanvasElement(tag);
711
+ if (element && element instanceof pixi_js.Container) {
712
+ let xDistance = destination.x - element.x > 0 ? 1 : -1;
713
+ if (xDistance != 0) {
714
+ element.x += xDistance * xSpeed * ticker.deltaTime;
715
+ let newDistance = destination.x - element.x;
716
+ if (xDistance < 0 && newDistance > 0 || xDistance > 0 && newDistance < 0) {
717
+ element.x = destination.x;
718
+ }
719
+ }
720
+ let yDistance = destination.y - element.y > 0 ? 1 : -1;
721
+ if (yDistance != 0) {
722
+ element.y += yDistance * ySpeed * ticker.deltaTime;
723
+ let newDistance = destination.y - element.y;
724
+ if (yDistance < 0 && newDistance > 0 || yDistance > 0 && newDistance < 0) {
725
+ element.y = destination.y;
726
+ }
727
+ }
728
+ if (element.x == destination.x && element.y == destination.y) {
729
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
730
+ }
731
+ }
732
+ });
733
+ if (args.speedProgression)
734
+ updateTickerProgression(args, "speed", args.speedProgression);
735
+ }
736
+ };
737
+ MoveTicker = __decorateClass([
738
+ tickerDecorator()
739
+ ], MoveTicker);
740
+ var RotateTicker = class extends TickerBase {
741
+ fn(ticker, args, tags, tickerId) {
742
+ let speed = (args.speed === void 0 ? 1 : args.speed) / 60;
743
+ let clockwise = args.clockwise === void 0 ? true : args.clockwise;
744
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
745
+ if (typeof tagToRemoveAfter2 === "string") {
746
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
747
+ }
748
+ tags.filter((tag) => {
749
+ var _a;
750
+ let element = GameWindowManager.getCanvasElement(tag);
751
+ if (args.startOnlyIfHaveTexture) {
752
+ if (element && element instanceof pixi_js.Sprite && ((_a = element.texture) == null ? void 0 : _a.label) == "EMPTY") {
753
+ return false;
754
+ }
755
+ }
756
+ return true;
757
+ }).forEach((tag) => {
758
+ let element = GameWindowManager.getCanvasElement(tag);
759
+ if (element && element instanceof pixi_js.Container) {
760
+ if (clockwise)
761
+ element.rotation += speed * ticker.deltaTime;
762
+ else
763
+ element.rotation -= speed * ticker.deltaTime;
764
+ if (speed < 1e-5 && !(args.speedProgression && args.speedProgression.type == "linear" && args.speedProgression.amt != 0)) {
765
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
766
+ }
767
+ }
768
+ });
769
+ if (args.speedProgression)
770
+ updateTickerProgression(args, "speed", args.speedProgression);
771
+ }
772
+ };
773
+ RotateTicker = __decorateClass([
774
+ tickerDecorator()
775
+ ], RotateTicker);
776
+ var ZoomTicker = class extends TickerBase {
777
+ fn(ticker, args, tags, tickerId) {
778
+ let xSpeed = 0.1;
779
+ let ySpeed = 0.1;
780
+ if (args.speed) {
781
+ if (typeof args.speed === "number") {
782
+ xSpeed = args.speed;
783
+ ySpeed = args.speed;
784
+ } else {
785
+ xSpeed = args.speed.x;
786
+ ySpeed = args.speed.y;
787
+ }
788
+ }
789
+ xSpeed /= 60;
790
+ ySpeed /= 60;
791
+ let tagToRemoveAfter2 = args.tagToRemoveAfter || [];
792
+ if (typeof tagToRemoveAfter2 === "string") {
793
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
794
+ }
795
+ let type = args.type || "zoom";
796
+ let xLimit = Infinity;
797
+ let yLimit = Infinity;
798
+ if (args.limit) {
799
+ if (typeof args.limit === "number") {
800
+ xLimit = args.limit;
801
+ yLimit = args.limit;
802
+ } else {
803
+ xLimit = args.limit.x;
804
+ yLimit = args.limit.y;
805
+ }
806
+ }
807
+ tags.filter((tag) => {
808
+ var _a;
809
+ let element = GameWindowManager.getCanvasElement(tag);
810
+ if (args.startOnlyIfHaveTexture) {
811
+ if (element && element instanceof pixi_js.Sprite && ((_a = element.texture) == null ? void 0 : _a.label) == "EMPTY") {
812
+ return false;
813
+ }
814
+ }
815
+ return true;
816
+ }).forEach((tag) => {
817
+ let element = GameWindowManager.getCanvasElement(tag);
818
+ if (element && element instanceof pixi_js.Container) {
819
+ if (type === "zoom" && (element.scale.x < xLimit || element.scale.y < yLimit)) {
820
+ element.scale.x += xSpeed * ticker.deltaTime;
821
+ element.scale.y += ySpeed * ticker.deltaTime;
822
+ } else if (type === "unzoom" && (element.scale.x > xLimit || element.scale.y > yLimit)) {
823
+ element.scale.x -= xSpeed * ticker.deltaTime;
824
+ element.scale.y -= ySpeed * ticker.deltaTime;
825
+ }
826
+ if (type === "zoom") {
827
+ if (element.scale.x > xLimit) {
828
+ element.scale.x = xLimit;
829
+ }
830
+ if (element.scale.y > yLimit) {
831
+ element.scale.y = yLimit;
832
+ }
833
+ if (element.scale.x >= xLimit && element.scale.y >= yLimit) {
834
+ element.scale.x = xLimit;
835
+ element.scale.y = yLimit;
836
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
837
+ }
838
+ } else if (type === "unzoom") {
839
+ if (element.scale.x < xLimit) {
840
+ element.scale.x = xLimit;
841
+ }
842
+ if (element.scale.y < yLimit) {
843
+ element.scale.y = yLimit;
844
+ }
845
+ if (element.scale.x <= xLimit && element.scale.y <= yLimit) {
846
+ element.scale.x = xLimit;
847
+ element.scale.y = yLimit;
848
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
849
+ }
850
+ }
851
+ if (xSpeed < 1e-5 && ySpeed < 1e-5 && !(args.speedProgression && args.speedProgression.type == "linear" && args.speedProgression.amt != 0)) {
852
+ GameWindowManager.onEndOfTicker(tag, this, tagToRemoveAfter2, tickerId);
853
+ }
854
+ }
855
+ });
856
+ if (args.speedProgression)
857
+ updateTickerProgression(args, "speed", args.speedProgression);
858
+ }
859
+ };
860
+ ZoomTicker = __decorateClass([
861
+ tickerDecorator()
862
+ ], ZoomTicker);
863
+
864
+ // src/constants.ts
865
+ var Repeat = "repeat";
866
+
867
+ // src/functions/ExportUtility.ts
868
+ function createExportableElement(element) {
869
+ try {
870
+ let elementString = JSON.stringify(element);
871
+ return JSON.parse(elementString);
872
+ } catch (e) {
873
+ console.error("[Pixi'VN] Error creating exportable element", e);
874
+ throw new Error("[Pixi'VN] Error creating exportable element");
875
+ }
876
+ }
877
+
878
+ // src/managers/StorageManager.ts
879
+ var _GameStorageManager = class _GameStorageManager {
880
+ constructor() {
881
+ }
882
+ static get keysSystem() {
883
+ return {
884
+ CURRENT_DIALOGUE_MEMORY_KEY: "___current_dialogue_memory___",
885
+ LAST_DIALOGUE_ADDED_IN_STEP_MEMORY_KEY: "___last_dialogue_added_in_step_memory___",
886
+ CURRENT_MENU_OPTIONS_MEMORY_KEY: "___current_menu_options_memory___",
887
+ LAST_MENU_OPTIONS_ADDED_IN_STEP_MEMORY_KEY: "___last_menu_options_added_in_step_memory___",
888
+ CHARACTER_CATEGORY_KEY: "___character___",
889
+ FLAGS_CATEGORY_KEY: "___flags___"
890
+ };
891
+ }
892
+ /**
893
+ * Set a variable in the storage
894
+ * @param key The key of the variable
895
+ * @param value The value of the variable. If undefined, the variable will be removed
896
+ * @returns
897
+ */
898
+ static setVariable(key, value) {
899
+ key = key.toLowerCase();
900
+ if (value === void 0 || value === null) {
901
+ if (_GameStorageManager.storage.hasOwnProperty(key)) {
902
+ delete _GameStorageManager.storage[key];
903
+ }
904
+ return;
905
+ }
906
+ _GameStorageManager.storage[key] = value;
907
+ }
908
+ /**
909
+ * Get a variable from the storage
910
+ * @param key The key of the variable
911
+ * @returns The value of the variable. If the variable does not exist, it will return undefined
912
+ */
913
+ static getVariable(key) {
914
+ key = key.toLowerCase();
915
+ if (_GameStorageManager.storage.hasOwnProperty(key)) {
916
+ return _GameStorageManager.storage[key];
917
+ }
918
+ return void 0;
919
+ }
920
+ /**
921
+ * Remove a variable from the storage
922
+ * @param key The key of the variable
923
+ * @returns
924
+ */
925
+ static removeVariable(key) {
926
+ key = key.toLowerCase();
927
+ if (_GameStorageManager.storage.hasOwnProperty(key)) {
928
+ delete _GameStorageManager.storage[key];
929
+ }
930
+ }
931
+ /**
932
+ * Clear the storage and the oidsUsed
933
+ * @returns
934
+ */
935
+ static clear() {
936
+ _GameStorageManager.storage = {};
937
+ }
938
+ static exportJson() {
939
+ return JSON.stringify(this.export());
940
+ }
941
+ static export() {
942
+ return createExportableElement(_GameStorageManager.storage);
943
+ }
944
+ static importJson(dataString) {
945
+ _GameStorageManager.import(JSON.parse(dataString));
946
+ }
947
+ static import(data) {
948
+ _GameStorageManager.clear();
949
+ try {
950
+ if (data) {
951
+ _GameStorageManager.storage = data;
952
+ } else {
953
+ console.warn("[Pixi'VN] No storage data found");
954
+ }
955
+ } catch (e) {
956
+ console.error("[Pixi'VN] Error importing data", e);
957
+ }
958
+ }
959
+ };
960
+ _GameStorageManager.storage = {};
961
+ var GameStorageManager = _GameStorageManager;
962
+
963
+ // src/functions/EasterEgg.ts
964
+ function asciiArtLog() {
965
+ console.info(`
966
+ ____ _ _ ___ ___ _
967
+ | _ \\(_)_ _(_| ) \\ / / \\ | |
968
+ | |_) | \\ \\/ / |/ \\ \\ / /| \\| |
969
+ | __/| |> <| | \\ V / | |\\ |
970
+ |_| |_/_/\\_\\_| \\_/ |_| \\_|
971
+ `);
972
+ }
973
+
974
+ // src/types/ticker/TagToRemoveAfterType.ts
975
+ var tagToRemoveAfter = "tagToRemoveAfter";
976
+
977
+ // src/managers/WindowManager.ts
978
+ var _GameWindowManager = class _GameWindowManager {
979
+ constructor() {
980
+ }
981
+ /**
982
+ * The PIXI Application instance.
983
+ * It not recommended to use this property directly.
984
+ */
985
+ static get app() {
986
+ if (!_GameWindowManager._app) {
987
+ throw new Error("[Pixi'VN] GameWindowManager.app is undefined");
988
+ }
989
+ return _GameWindowManager._app;
990
+ }
991
+ /**
992
+ * If the manager is initialized.
993
+ */
994
+ static get isInitialized() {
995
+ return _GameWindowManager._isInitialized;
996
+ }
997
+ static get screen() {
998
+ return _GameWindowManager.app.screen;
999
+ }
1000
+ /**
1001
+ * Initialize the PIXI Application and the interface div.
1002
+ * This method should be called before any other method.
1003
+ * @param element The html element where I will put the canvas. Example: document.body
1004
+ * @param width The width of the canvas
1005
+ * @param height The height of the canvas
1006
+ * @param options The options of PIXI Application
1007
+ * @example
1008
+ * ```typescript
1009
+ * const body = document.body
1010
+ * if (!body) {
1011
+ * throw new Error('body element not found')
1012
+ * }
1013
+ * await GameWindowManager.initialize(body, 1920, 1080, {
1014
+ * backgroundColor: "#303030"
1015
+ * })
1016
+ * ```
1017
+ */
1018
+ static initialize(element, width, height, options) {
1019
+ return __async(this, null, function* () {
1020
+ _GameWindowManager.canvasWidth = width;
1021
+ _GameWindowManager.canvasHeight = height;
1022
+ _GameWindowManager._app = new pixi_js.Application();
1023
+ return _GameWindowManager.app.init(__spreadValues({
1024
+ resolution: window.devicePixelRatio || 1,
1025
+ autoDensity: true,
1026
+ width,
1027
+ height
1028
+ }, options)).then(() => {
1029
+ _GameWindowManager._isInitialized = true;
1030
+ this.addCanvasIntoElement(element);
1031
+ window.addEventListener("resize", _GameWindowManager.resize);
1032
+ _GameWindowManager.resize();
1033
+ asciiArtLog();
1034
+ });
1035
+ });
1036
+ }
1037
+ /**
1038
+ * Add the canvas into a html element.
1039
+ * @param element it is the html element where I will put the canvas. Example: document.body
1040
+ */
1041
+ static addCanvasIntoElement(element) {
1042
+ if (_GameWindowManager.isInitialized) {
1043
+ element.appendChild(_GameWindowManager.app.canvas);
1044
+ } else {
1045
+ console.error("[Pixi'VN] GameWindowManager is not initialized");
1046
+ }
1047
+ }
1048
+ /**
1049
+ * Initialize the interface div and add it into a html element.
1050
+ * @param element it is the html element where I will put the interface div. Example: document.getElementById('root')
1051
+ * @example
1052
+ * ```tsx
1053
+ * const root = document.getElementById('root')
1054
+ * if (!root) {
1055
+ * throw new Error('root element not found')
1056
+ * }
1057
+ * GameWindowManager.initializeHTMLLayout(root)
1058
+ * const reactRoot = createRoot(GameWindowManager.htmlLayout)
1059
+ * reactRoot.render(
1060
+ * <App />
1061
+ * )
1062
+ * ```
1063
+ */
1064
+ static initializeHTMLLayout(element) {
1065
+ let div = document.createElement("div");
1066
+ div.style.position = "absolute";
1067
+ div.style.pointerEvents = "none";
1068
+ element.appendChild(div);
1069
+ _GameWindowManager.htmlLayout = div;
1070
+ _GameWindowManager.resize();
1071
+ }
1072
+ /* Resize Metods */
1073
+ /**
1074
+ * This method returns the scale of the screen.
1075
+ */
1076
+ static get screenScale() {
1077
+ let screenWidth = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
1078
+ let screenHeight = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
1079
+ return Math.min(screenWidth / _GameWindowManager.canvasWidth, screenHeight / _GameWindowManager.canvasHeight);
1080
+ }
1081
+ /**
1082
+ * This method returns the width of the screen enlarged by the scale.
1083
+ */
1084
+ static get screenWidth() {
1085
+ return Math.floor(_GameWindowManager.screenScale * _GameWindowManager.canvasWidth);
1086
+ }
1087
+ /**
1088
+ * This method returns the height of the screen enlarged by the scale.
1089
+ */
1090
+ static get screenHeight() {
1091
+ return Math.floor(_GameWindowManager.screenScale * _GameWindowManager.canvasHeight);
1092
+ }
1093
+ /**
1094
+ * This method returns the horizontal margin of the screen.
1095
+ */
1096
+ static get horizontalMargin() {
1097
+ let screenWidth = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
1098
+ return (screenWidth - _GameWindowManager.screenWidth) / 2;
1099
+ }
1100
+ /**
1101
+ * This method returns the vertical margin of the screen.
1102
+ */
1103
+ static get verticalMargin() {
1104
+ let screenHeight = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
1105
+ return (screenHeight - _GameWindowManager.screenHeight) / 2;
1106
+ }
1107
+ /**
1108
+ * This method is called when the screen is resized.
1109
+ */
1110
+ static resize() {
1111
+ if (_GameWindowManager.isInitialized) {
1112
+ let style = _GameWindowManager.app.canvas.style;
1113
+ style.width = `${_GameWindowManager.screenWidth}px`;
1114
+ style.height = `${_GameWindowManager.screenHeight}px`;
1115
+ style.marginLeft = `${_GameWindowManager.horizontalMargin}px`;
1116
+ style.marginRight = `${_GameWindowManager.horizontalMargin}px`;
1117
+ style.marginTop = `${_GameWindowManager.verticalMargin}px`;
1118
+ style.marginBottom = `${_GameWindowManager.verticalMargin}px`;
1119
+ }
1120
+ if (_GameWindowManager.htmlLayout) {
1121
+ _GameWindowManager.htmlLayout.style.width = `${_GameWindowManager.screenWidth}px`;
1122
+ _GameWindowManager.htmlLayout.style.height = `${_GameWindowManager.screenHeight}px`;
1123
+ _GameWindowManager.htmlLayout.style.marginLeft = `${_GameWindowManager.horizontalMargin}px`;
1124
+ _GameWindowManager.htmlLayout.style.marginRight = `${_GameWindowManager.horizontalMargin}px`;
1125
+ _GameWindowManager.htmlLayout.style.marginTop = `${_GameWindowManager.verticalMargin}px`;
1126
+ _GameWindowManager.htmlLayout.style.marginBottom = `${_GameWindowManager.verticalMargin}px`;
1127
+ }
1128
+ }
1129
+ /* Edit Canvas Elements Methods */
1130
+ /**
1131
+ * This is a dictionary that contains all Canvas Elements of Canvas, currently.
1132
+ */
1133
+ static get currentCanvasElements() {
1134
+ return _GameWindowManager._children;
1135
+ }
1136
+ /**
1137
+ * Add a canvas element to the canvas.
1138
+ * If there is a canvas element with the same tag, it will be removed.
1139
+ * @param tag The tag of the canvas element.
1140
+ * @param canvasElement The canvas elements to be added.
1141
+ * @example
1142
+ * ```typescript
1143
+ * const texture = await Assets.load('https://pixijs.com/assets/bunny.png');
1144
+ * const sprite = CanvasSprite.from(texture);
1145
+ * GameWindowManager.addCanvasElement("bunny", sprite);
1146
+ * ```
1147
+ */
1148
+ static addCanvasElement(tag, canvasElement) {
1149
+ if (_GameWindowManager._children[tag]) {
1150
+ _GameWindowManager.removeCanvasElement(tag);
1151
+ }
1152
+ _GameWindowManager.app.stage.addChild(canvasElement);
1153
+ _GameWindowManager._children[tag] = canvasElement;
1154
+ _GameWindowManager.childrenTagsOrder.push(tag);
1155
+ }
1156
+ /**
1157
+ * Remove a canvas element from the canvas.
1158
+ * And remove all tickers that are not connected to any canvas element.
1159
+ * @param tags The tag of the canvas element to be removed.
1160
+ * @returns
1161
+ * @example
1162
+ * ```typescript
1163
+ * GameWindowManager.removeCanvasElement("bunny");
1164
+ * ```
1165
+ */
1166
+ static removeCanvasElement(tags) {
1167
+ if (typeof tags === "string") {
1168
+ tags = [tags];
1169
+ }
1170
+ tags.forEach((tag) => {
1171
+ if (_GameWindowManager._children[tag]) {
1172
+ _GameWindowManager.app.stage.removeChild(_GameWindowManager._children[tag]);
1173
+ delete _GameWindowManager._children[tag];
1174
+ _GameWindowManager.removeTickerByCanvasElement(tag);
1175
+ }
1176
+ });
1177
+ _GameWindowManager.childrenTagsOrder = _GameWindowManager.childrenTagsOrder.filter((t) => !tags.includes(t));
1178
+ }
1179
+ /**
1180
+ * Get a canvas element by the tag.
1181
+ * @param tag The tag of the canvas element.
1182
+ * @returns The canvas element.
1183
+ * @example
1184
+ * ```typescript
1185
+ * const sprite = GameWindowManager.getCanvasElement<CanvasSprite>("bunny");
1186
+ * ```
1187
+ */
1188
+ static getCanvasElement(tag) {
1189
+ return _GameWindowManager._children[tag];
1190
+ }
1191
+ /**
1192
+ * Check if a DisplayObject is on the canvas.
1193
+ * @param pixiElement The DisplayObject to be checked.
1194
+ * @returns If the DisplayObject is on the canvas.
1195
+ */
1196
+ static canvasElementIsOnCanvas(pixiElement) {
1197
+ return _GameWindowManager.app.stage.children.includes(pixiElement);
1198
+ }
1199
+ /**
1200
+ * Remove all canvas elements from the canvas.
1201
+ * And remove all tickers that are not connected to any canvas element.
1202
+ */
1203
+ static removeCanvasElements() {
1204
+ _GameWindowManager.app.stage.removeChildren();
1205
+ _GameWindowManager._children = {};
1206
+ _GameWindowManager.childrenTagsOrder = [];
1207
+ _GameWindowManager.removeAllTickers();
1208
+ }
1209
+ /**
1210
+ * Edit the tag of a canvas element.
1211
+ * @param oldTag The old tag of the canvas element.
1212
+ * @param newTag The new tag of the canvas element.
1213
+ */
1214
+ static editCanvasElementTag(oldTag, newTag) {
1215
+ if (_GameWindowManager._children[oldTag]) {
1216
+ _GameWindowManager._children[newTag] = _GameWindowManager._children[oldTag];
1217
+ delete _GameWindowManager._children[oldTag];
1218
+ }
1219
+ if (_GameWindowManager._currentTickersSteps[oldTag]) {
1220
+ _GameWindowManager._currentTickersSteps[newTag] = _GameWindowManager._currentTickersSteps[oldTag];
1221
+ delete _GameWindowManager._currentTickersSteps[oldTag];
1222
+ }
1223
+ for (let id in _GameWindowManager._currentTickers) {
1224
+ let ticker = _GameWindowManager._currentTickers[id];
1225
+ if (ticker.canvasElementTags.includes(oldTag)) {
1226
+ ticker.canvasElementTags = ticker.canvasElementTags.map((t) => t === oldTag ? newTag : t);
1227
+ if (ticker.args.hasOwnProperty(tagToRemoveAfter)) {
1228
+ let tagToRemoveAfter2 = ticker.args.tagToRemoveAfter;
1229
+ if (typeof tagToRemoveAfter2 === "string") {
1230
+ tagToRemoveAfter2 = [tagToRemoveAfter2];
1231
+ }
1232
+ if (Array.isArray(tagToRemoveAfter2)) {
1233
+ ticker.args.tagToRemoveAfter = tagToRemoveAfter2.map((t) => t === oldTag ? newTag : t);
1234
+ }
1235
+ }
1236
+ }
1237
+ }
1238
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1239
+ let TickerTimeout = _GameWindowManager._currentTickersTimeouts[timeout];
1240
+ if (TickerTimeout.tags.includes(oldTag)) {
1241
+ TickerTimeout.tags = TickerTimeout.tags.map((t) => t === oldTag ? newTag : t);
1242
+ }
1243
+ }
1244
+ }
1245
+ /** Edit Tickers Methods */
1246
+ /**
1247
+ * Currently tickers that are running.
1248
+ */
1249
+ static get currentTickers() {
1250
+ return _GameWindowManager._currentTickers;
1251
+ }
1252
+ static get currentTickersList() {
1253
+ return Object.values(_GameWindowManager._currentTickers);
1254
+ }
1255
+ static get currentTickersWithoutCreatedBySteps() {
1256
+ return Object.fromEntries(Object.entries(_GameWindowManager._currentTickers).filter(([_, ticker]) => !ticker.createdByTicketStepsId));
1257
+ }
1258
+ /**
1259
+ * The steps of the tickers
1260
+ */
1261
+ static get currentTickersSteps() {
1262
+ return _GameWindowManager._currentTickersSteps;
1263
+ }
1264
+ static generateTickerId(tickerData) {
1265
+ try {
1266
+ return sha1__default.default(JSON.stringify(tickerData)).toString() + "_" + Math.random().toString(36).substring(7);
1267
+ } catch (e) {
1268
+ throw new Error(`[Pixi'VN] Error to generate ticker id: ${e}`);
1269
+ }
1270
+ }
1271
+ /**
1272
+ * Run a ticker. You can run multiple addTicker with the same tag and different tickerClasses.
1273
+ * If you run a ticker with the same tag and tickerClass, the old ticker will be removed.
1274
+ * If already exists a sequence of tickers with the same tag, it will be removed.
1275
+ * @param canvasEslementTag The tag of the canvas element that will use the ticker.
1276
+ * @param ticker The ticker class to be run.
1277
+ * @param args The arguments to be used in the ticker.
1278
+ * @param duration The time to be used in the ticker. This number is in seconds. If it is undefined, the ticker will run forever.
1279
+ * @param priority The priority to be used in the ticker.
1280
+ * @returns
1281
+ * @example
1282
+ * ```typescript
1283
+ * GameWindowManager.addTicker("alien", new RotateTicker({ speed: 0.2 }))
1284
+ * ```
1285
+ */
1286
+ static addTicker(canvasElementTag, ticker) {
1287
+ let tickerName = ticker.constructor.name;
1288
+ if (typeof canvasElementTag === "string") {
1289
+ canvasElementTag = [canvasElementTag];
1290
+ }
1291
+ if (!geTickerInstanceByClassName(tickerName, ticker.args, ticker.duration, ticker.priority)) {
1292
+ console.error(`[Pixi'VN] Ticker ${tickerName} not found`);
1293
+ return;
1294
+ }
1295
+ let tickerHistory = {
1296
+ fn: () => {
1297
+ },
1298
+ className: tickerName,
1299
+ args: createExportableElement(ticker.args),
1300
+ canvasElementTags: canvasElementTag,
1301
+ priority: ticker.priority,
1302
+ duration: ticker.duration
1303
+ };
1304
+ let id = _GameWindowManager.generateTickerId(tickerHistory);
1305
+ _GameWindowManager.pushTicker(id, tickerHistory, ticker);
1306
+ if (ticker.duration) {
1307
+ let timeout = setTimeout(() => {
1308
+ _GameWindowManager.removeTickerTimeoutInfo(timeout);
1309
+ let tickerTimeoutInfo = _GameWindowManager._currentTickersTimeouts[timeout.toString()];
1310
+ if (tickerTimeoutInfo) {
1311
+ _GameWindowManager.removeTicker(id);
1312
+ }
1313
+ }, ticker.duration * 1e3);
1314
+ _GameWindowManager.addTickerTimeoutInfo(canvasElementTag, tickerName, timeout.toString(), true);
1315
+ }
1316
+ }
1317
+ static pushTicker(id, tickerData, ticker) {
1318
+ _GameWindowManager.removeAssociationBetweenTickerCanvasElement(tickerData.canvasElementTags, tickerData);
1319
+ _GameWindowManager._currentTickers[id] = tickerData;
1320
+ tickerData.fn = (t) => {
1321
+ let data = _GameWindowManager._currentTickers[id];
1322
+ if (data) {
1323
+ ticker == null ? void 0 : ticker.fn(t, data.args, data.canvasElementTags, id);
1324
+ }
1325
+ };
1326
+ _GameWindowManager.app.ticker.add(tickerData.fn, void 0, tickerData.priority);
1327
+ }
1328
+ /**
1329
+ * Run a sequence of tickers. If exists a ticker steps with the same tag, it will be removed.
1330
+ * @param tag The tag of canvas element that will use the tickers.
1331
+ * @param steps The steps of the tickers.
1332
+ * @param currentStepNumber The current step number. It is used to continue the sequence of tickers.
1333
+ * @returns
1334
+ * @example
1335
+ * ```typescript
1336
+ * GameWindowManager.addTickersSteps("alien", [
1337
+ * new RotateTicker({ speed: 0.1, clockwise: true }, 2), // 2 seconds
1338
+ * Pause(1), // 1 second
1339
+ * new RotateTicker({ speed: 0.2, clockwise: false }, 2),
1340
+ * Repeat,
1341
+ * ])
1342
+ * ```
1343
+ */
1344
+ static addTickersSteps(tag, steps, currentStepNumber = 0) {
1345
+ if (steps.length == 0) {
1346
+ console.warn("[Pixi'VN] The steps of the tickers is empty");
1347
+ return;
1348
+ }
1349
+ _GameWindowManager.removeTickerStepByCanvasElement(tag);
1350
+ _GameWindowManager._currentTickersSteps[tag] = {
1351
+ currentStepNumber,
1352
+ steps: steps.map((step) => {
1353
+ if (step === Repeat) {
1354
+ return step;
1355
+ }
1356
+ if (step.hasOwnProperty("type") && step.type === "pause") {
1357
+ return step;
1358
+ }
1359
+ let tickerName = step.constructor.name;
1360
+ return {
1361
+ ticker: tickerName,
1362
+ args: createExportableElement(step.args),
1363
+ duration: step.duration
1364
+ };
1365
+ })
1366
+ };
1367
+ _GameWindowManager.runTickersSteps(tag);
1368
+ }
1369
+ static restoneTickersSteps(data) {
1370
+ for (let tag in data) {
1371
+ let steps = data[tag];
1372
+ _GameWindowManager._currentTickersSteps[tag] = steps;
1373
+ _GameWindowManager.runTickersSteps(tag);
1374
+ }
1375
+ }
1376
+ static runTickersSteps(tag) {
1377
+ let step = _GameWindowManager._currentTickersSteps[tag].steps[_GameWindowManager._currentTickersSteps[tag].currentStepNumber];
1378
+ if (step === Repeat) {
1379
+ step = _GameWindowManager._currentTickersSteps[tag].steps[0];
1380
+ _GameWindowManager._currentTickersSteps[tag].currentStepNumber = 0;
1381
+ if (step === Repeat) {
1382
+ console.error("[Pixi'VN] TikersSteps has a RepeatType in the first step");
1383
+ return;
1384
+ }
1385
+ }
1386
+ if (step.hasOwnProperty("type") && step.type === "pause") {
1387
+ let timeout = setTimeout(() => {
1388
+ let tickerTimeoutInfo = _GameWindowManager._currentTickersTimeouts[timeout.toString()];
1389
+ if (tickerTimeoutInfo) {
1390
+ tickerTimeoutInfo.tags.forEach((tag2) => {
1391
+ _GameWindowManager.nextTickerStep(tag2);
1392
+ });
1393
+ }
1394
+ _GameWindowManager.removeTickerTimeoutInfo(timeout);
1395
+ }, step.duration * 1e3);
1396
+ _GameWindowManager.addTickerTimeoutInfo(tag, "steps", timeout.toString(), false);
1397
+ return;
1398
+ }
1399
+ let ticker = geTickerInstanceByClassName(step.ticker, step.args, step.duration, step.priority);
1400
+ if (!ticker) {
1401
+ console.error(`[Pixi'VN] Ticker ${step.ticker} not found`);
1402
+ return;
1403
+ }
1404
+ let tickerName = ticker.constructor.name;
1405
+ let tickerHistory = {
1406
+ fn: () => {
1407
+ },
1408
+ className: tickerName,
1409
+ args: createExportableElement(ticker.args),
1410
+ canvasElementTags: [tag],
1411
+ priority: ticker.priority,
1412
+ duration: ticker.duration,
1413
+ createdByTicketStepsId: tag
1414
+ };
1415
+ let id = _GameWindowManager.generateTickerId(tickerHistory);
1416
+ _GameWindowManager.pushTicker(id, tickerHistory, ticker);
1417
+ if (ticker.duration) {
1418
+ let timeout = setTimeout(() => {
1419
+ let tickerTimeoutInfo = _GameWindowManager._currentTickersTimeouts[timeout.toString()];
1420
+ if (tickerTimeoutInfo) {
1421
+ _GameWindowManager.removeTicker(id);
1422
+ tickerTimeoutInfo.tags.forEach((tag2) => {
1423
+ _GameWindowManager.nextTickerStep(tag2);
1424
+ });
1425
+ }
1426
+ _GameWindowManager.removeTickerTimeoutInfo(timeout);
1427
+ }, ticker.duration * 1e3);
1428
+ _GameWindowManager.addTickerTimeoutInfo(tag, tickerName, timeout.toString(), false);
1429
+ }
1430
+ }
1431
+ static nextTickerStep(tag) {
1432
+ if (_GameWindowManager._currentTickersSteps[tag]) {
1433
+ let steps = _GameWindowManager._currentTickersSteps[tag];
1434
+ if (steps.currentStepNumber + 1 < steps.steps.length) {
1435
+ steps.currentStepNumber++;
1436
+ _GameWindowManager._currentTickersSteps[tag] = steps;
1437
+ _GameWindowManager.runTickersSteps(tag);
1438
+ } else {
1439
+ _GameWindowManager.removeTickerStepByCanvasElement(tag);
1440
+ }
1441
+ }
1442
+ }
1443
+ static onEndOfTicker(canvasElementTags, ticker, canvasElementTagsToDelete, tickerId) {
1444
+ let tickerData = _GameWindowManager._currentTickers[tickerId];
1445
+ _GameWindowManager.removeAssociationBetweenTickerCanvasElement(canvasElementTags, ticker);
1446
+ _GameWindowManager.removeCanvasElement(canvasElementTagsToDelete);
1447
+ if (tickerData) {
1448
+ _GameWindowManager.removeTicker(tickerId);
1449
+ if (tickerData.duration == void 0 && tickerData.createdByTicketStepsId) {
1450
+ _GameWindowManager.nextTickerStep(tickerData.createdByTicketStepsId);
1451
+ }
1452
+ }
1453
+ }
1454
+ /**
1455
+ * Remove a connection between a canvas element and a ticker.
1456
+ * And remove the ticker if there is no canvas element connected to it.
1457
+ * @param tags The tag of the canvas element that will use the ticker.
1458
+ * @param ticker The ticker class to be removed.
1459
+ * @example
1460
+ * ```typescript
1461
+ * GameWindowManager.removeAssociationBetweenTickerCanvasElement("alien", RotateTicker)
1462
+ * ```
1463
+ */
1464
+ static removeAssociationBetweenTickerCanvasElement(tags, ticker) {
1465
+ let tickerName;
1466
+ if (typeof ticker === "string") {
1467
+ tickerName = ticker;
1468
+ } else if (ticker instanceof TickerBase) {
1469
+ tickerName = ticker.constructor.name;
1470
+ } else {
1471
+ tickerName = ticker.name;
1472
+ }
1473
+ if (typeof tags === "string") {
1474
+ tags = [tags];
1475
+ }
1476
+ for (let id in _GameWindowManager._currentTickers) {
1477
+ let ticker2 = _GameWindowManager._currentTickers[id];
1478
+ if (ticker2.className === tickerName) {
1479
+ _GameWindowManager._currentTickers[id].canvasElementTags = ticker2.canvasElementTags.filter((e) => !tags.includes(e));
1480
+ }
1481
+ }
1482
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1483
+ let TickerTimeout = _GameWindowManager._currentTickersTimeouts[timeout];
1484
+ if (TickerTimeout.ticker === tickerName && TickerTimeout.canBeDeletedBeforeEnd) {
1485
+ _GameWindowManager._currentTickersTimeouts[timeout].tags = TickerTimeout.tags.filter((t) => !tags.includes(t));
1486
+ }
1487
+ }
1488
+ _GameWindowManager.removeTickersWithoutAssociatedCanvasElement();
1489
+ }
1490
+ /**
1491
+ * Remove all tickers that are not connected to any existing canvas element.
1492
+ */
1493
+ static removeTickersWithoutAssociatedCanvasElement() {
1494
+ for (let id in _GameWindowManager._currentTickers) {
1495
+ let ticker = _GameWindowManager._currentTickers[id];
1496
+ ticker.canvasElementTags = ticker.canvasElementTags.filter((e) => _GameWindowManager._children[e]);
1497
+ if (ticker.canvasElementTags.length === 0) {
1498
+ _GameWindowManager.removeTicker(id);
1499
+ }
1500
+ }
1501
+ for (let tag in _GameWindowManager._currentTickersSteps) {
1502
+ if (_GameWindowManager._children[tag] === void 0) {
1503
+ delete _GameWindowManager._currentTickersSteps[tag];
1504
+ }
1505
+ }
1506
+ Object.entries(_GameWindowManager._currentTickersTimeouts).forEach(([timeout, { tags }]) => {
1507
+ if (tags.length === 0) {
1508
+ _GameWindowManager.removeTickerTimeout(timeout);
1509
+ }
1510
+ });
1511
+ }
1512
+ static addTickerTimeoutInfo(tags, ticker, timeout, canBeDeletedBeforeEnd) {
1513
+ if (typeof tags === "string") {
1514
+ tags = [tags];
1515
+ }
1516
+ _GameWindowManager._currentTickersTimeouts[timeout] = {
1517
+ tags,
1518
+ ticker,
1519
+ canBeDeletedBeforeEnd
1520
+ };
1521
+ }
1522
+ static removeTickerTimeoutInfo(timeout) {
1523
+ if (typeof timeout !== "string") {
1524
+ timeout = timeout.toString();
1525
+ }
1526
+ if (_GameWindowManager._currentTickersTimeouts[timeout]) {
1527
+ delete _GameWindowManager._currentTickersTimeouts[timeout];
1528
+ }
1529
+ }
1530
+ static removeTickerTimeout(timeout) {
1531
+ if (typeof timeout !== "string") {
1532
+ timeout = timeout.toString();
1533
+ }
1534
+ clearTimeout(Number(timeout));
1535
+ _GameWindowManager.removeTickerTimeoutInfo(timeout);
1536
+ }
1537
+ static removeTickerTimeoutsByTag(tag, checkCanBeDeletedBeforeEnd) {
1538
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1539
+ let tagsWithoutTagToRemove = _GameWindowManager._currentTickersTimeouts[timeout].tags.filter((t) => t !== tag);
1540
+ if (tagsWithoutTagToRemove.length === 0) {
1541
+ let canBeDeletedBeforeEnd = _GameWindowManager._currentTickersTimeouts[timeout].canBeDeletedBeforeEnd;
1542
+ if (!checkCanBeDeletedBeforeEnd || canBeDeletedBeforeEnd) {
1543
+ _GameWindowManager.removeTickerTimeout(timeout);
1544
+ }
1545
+ } else {
1546
+ _GameWindowManager._currentTickersTimeouts[timeout].tags = tagsWithoutTagToRemove;
1547
+ }
1548
+ }
1549
+ }
1550
+ /**
1551
+ * Remove all tickers from the canvas.
1552
+ */
1553
+ static removeAllTickers() {
1554
+ _GameWindowManager._currentTickersSteps = {};
1555
+ Object.keys(_GameWindowManager._currentTickers).forEach((id) => {
1556
+ _GameWindowManager.removeTicker(id);
1557
+ });
1558
+ _GameWindowManager._currentTickers = {};
1559
+ for (let timeout in _GameWindowManager._currentTickersTimeouts) {
1560
+ _GameWindowManager.removeTickerTimeout(timeout);
1561
+ }
1562
+ }
1563
+ /**
1564
+ * Remove all tickers from a canvas element.
1565
+ * @param tag The tag of the canvas element that will use the ticker.
1566
+ */
1567
+ static removeTickerByCanvasElement(tag) {
1568
+ if (typeof tag === "string") {
1569
+ tag = [tag];
1570
+ }
1571
+ tag.forEach((tag2) => {
1572
+ for (let id in _GameWindowManager._currentTickers) {
1573
+ let ticker = _GameWindowManager._currentTickers[id];
1574
+ if (ticker.canvasElementTags.includes(tag2)) {
1575
+ _GameWindowManager.removeTicker(id);
1576
+ }
1577
+ }
1578
+ if (_GameWindowManager._currentTickersSteps[tag2]) {
1579
+ delete _GameWindowManager._currentTickersSteps[tag2];
1580
+ }
1581
+ _GameWindowManager.removeTickerTimeoutsByTag(tag2, false);
1582
+ delete _GameWindowManager._currentTickersSteps[tag2];
1583
+ });
1584
+ }
1585
+ static removeTickerStepByCanvasElement(tag) {
1586
+ if (_GameWindowManager._currentTickersSteps[tag]) {
1587
+ delete _GameWindowManager._currentTickersSteps[tag];
1588
+ }
1589
+ for (let id in _GameWindowManager._currentTickers) {
1590
+ let ticker = _GameWindowManager._currentTickers[id];
1591
+ if (ticker.createdByTicketStepsId === tag) {
1592
+ _GameWindowManager.removeTicker(id);
1593
+ }
1594
+ }
1595
+ }
1596
+ static removeTicker(tickerId) {
1597
+ let ticker = _GameWindowManager._currentTickers[tickerId];
1598
+ if (ticker) {
1599
+ if (ticker.args.hasOwnProperty(tagToRemoveAfter)) {
1600
+ let tagToRemoveAfter2 = ticker.args.tagToRemoveAfter;
1601
+ _GameWindowManager.removeCanvasElement(tagToRemoveAfter2);
1602
+ }
1603
+ _GameWindowManager.app.ticker.remove(ticker.fn);
1604
+ delete _GameWindowManager._currentTickers[tickerId];
1605
+ }
1606
+ }
1607
+ /**
1608
+ * Clear the canvas and the tickers.
1609
+ */
1610
+ static clear() {
1611
+ _GameWindowManager.removeCanvasElements();
1612
+ }
1613
+ /* Export and Import Methods */
1614
+ /**
1615
+ * Export the canvas and the tickers to a JSON string.
1616
+ * @returns The JSON string.
1617
+ */
1618
+ static exportJson() {
1619
+ return JSON.stringify(this.export());
1620
+ }
1621
+ /**
1622
+ * Export the canvas and the tickers to an object.
1623
+ * @returns The object.
1624
+ */
1625
+ static export() {
1626
+ let currentElements = {};
1627
+ for (let tag in _GameWindowManager._children) {
1628
+ currentElements[tag] = exportCanvasElement(_GameWindowManager._children[tag]);
1629
+ }
1630
+ return {
1631
+ currentTickers: createExportableElement(_GameWindowManager.currentTickersWithoutCreatedBySteps),
1632
+ currentTickersSteps: createExportableElement(_GameWindowManager._currentTickersSteps),
1633
+ currentElements: createExportableElement(currentElements),
1634
+ childrenTagsOrder: createExportableElement(_GameWindowManager.childrenTagsOrder)
1635
+ };
1636
+ }
1637
+ /**
1638
+ * Import the canvas and the tickers from a JSON string.
1639
+ * @param dataString The JSON string.
1640
+ */
1641
+ static importJson(dataString) {
1642
+ _GameWindowManager.import(JSON.parse(dataString));
1643
+ }
1644
+ /**
1645
+ * Import the canvas and the tickers from an object.
1646
+ * @param data The object.
1647
+ */
1648
+ static import(data) {
1649
+ _GameWindowManager.clear();
1650
+ try {
1651
+ if (data.hasOwnProperty("childrenTagsOrder") && data.hasOwnProperty("currentElements")) {
1652
+ let currentElements = data["currentElements"];
1653
+ let childrenTagsOrder = data["childrenTagsOrder"];
1654
+ childrenTagsOrder.forEach((tag) => {
1655
+ if (currentElements[tag]) {
1656
+ let element = importCanvasElement(currentElements[tag]);
1657
+ _GameWindowManager.addCanvasElement(tag, element);
1658
+ _GameWindowManager.childrenTagsOrder.push(tag);
1659
+ }
1660
+ });
1661
+ } else {
1662
+ console.error("[Pixi'VN] The data does not have the properties childrenTagsOrder and currentElements");
1663
+ return;
1664
+ }
1665
+ if (data.hasOwnProperty("currentTickers")) {
1666
+ let currentTickers = data["currentTickers"];
1667
+ for (let id in currentTickers) {
1668
+ let t = currentTickers[id];
1669
+ let tags = t.canvasElementTags;
1670
+ let ticker = geTickerInstanceByClassName(t.className, t.args, t.duration, t.priority);
1671
+ if (ticker) {
1672
+ _GameWindowManager.addTicker(tags, ticker);
1673
+ } else {
1674
+ console.error(`[Pixi'VN] Ticker ${t.className} not found`);
1675
+ }
1676
+ }
1677
+ }
1678
+ if (data.hasOwnProperty("currentTickersSteps")) {
1679
+ let currentTickersSteps = data["currentTickersSteps"];
1680
+ _GameWindowManager.restoneTickersSteps(currentTickersSteps);
1681
+ }
1682
+ } catch (e) {
1683
+ console.error("[Pixi'VN] Error importing data", e);
1684
+ }
1685
+ }
1686
+ };
1687
+ _GameWindowManager._app = void 0;
1688
+ _GameWindowManager._isInitialized = false;
1689
+ _GameWindowManager._children = {};
1690
+ /**
1691
+ * The order of the children tags.
1692
+ */
1693
+ _GameWindowManager.childrenTagsOrder = [];
1694
+ _GameWindowManager._currentTickers = {};
1695
+ _GameWindowManager._currentTickersSteps = {};
1696
+ _GameWindowManager._currentTickersTimeouts = {};
1697
+ var GameWindowManager = _GameWindowManager;
1698
+
1699
+ // src/classes/StoredClassModel.ts
1700
+ var StoredClassModel = class {
1701
+ /**
1702
+ * @param categoryId The id of the category. For example if you are storing a character class, you can use "characters" as categoryId. so all instances of the character class will be stored in the "characters" category.
1703
+ * @param id The id of instance of the class. This id must be unique for the category.
1704
+ */
1705
+ constructor(categoryId, id) {
1706
+ this.categoryId = categoryId;
1707
+ this._id = id;
1708
+ }
1709
+ /**
1710
+ * Is id of the stored class. is unique for this class.
1711
+ */
1712
+ get id() {
1713
+ return this._id;
1714
+ }
1715
+ /**
1716
+ * Update a property in the storage.
1717
+ * @param propertyName The name of the property to set.
1718
+ * @param value The value to set. If is undefined, the property will be removed from the storage.
1719
+ */
1720
+ setStorageProperty(propertyName, value) {
1721
+ let storage = GameStorageManager.getVariable(this.categoryId);
1722
+ if (!storage) {
1723
+ storage = {};
1724
+ }
1725
+ if (!storage.hasOwnProperty(this.id)) {
1726
+ storage[this.id] = {};
1727
+ }
1728
+ if (value === void 0 || value === null) {
1729
+ if (storage[this.id].hasOwnProperty(propertyName)) {
1730
+ delete storage[this.id][propertyName];
1731
+ }
1732
+ } else {
1733
+ storage[this.id] = __spreadProps(__spreadValues({}, storage[this.id]), { [propertyName]: value });
1734
+ }
1735
+ if (Object.keys(storage[this.id]).length === 0) {
1736
+ delete storage[this.id];
1737
+ }
1738
+ GameStorageManager.setVariable(this.categoryId, storage);
1739
+ }
1740
+ /**
1741
+ * Get a property from the storage.
1742
+ * @param propertyName The name of the property to get.
1743
+ * @returns The value of the property. If the property is not found, returns undefined.
1744
+ */
1745
+ getStorageProperty(propertyName) {
1746
+ let storage = GameStorageManager.getVariable(this.categoryId);
1747
+ if (storage && storage.hasOwnProperty(this.id) && storage[this.id].hasOwnProperty(propertyName)) {
1748
+ return storage[this.id][propertyName];
1749
+ }
1750
+ return void 0;
1751
+ }
1752
+ };
1753
+
1754
+ // src/classes/CharacterBaseModel.ts
1755
+ var CharacterBaseModel2 = class extends StoredClassModel {
1756
+ /**
1757
+ * @param id The id of the character.
1758
+ * @param props The properties of the character.
1759
+ */
1760
+ constructor(id, props) {
1761
+ super(GameStorageManager.keysSystem.CHARACTER_CATEGORY_KEY, id);
1762
+ this.defaultName = "";
1763
+ this.defaultName = props.name;
1764
+ this.defaultSurname = props.surname;
1765
+ this.defaultAge = props.age;
1766
+ this._icon = props.icon;
1767
+ this._color = props.color;
1768
+ }
1769
+ /***
1770
+ * The name of the character.
1771
+ * If you set undefined, it will return the default name.
1772
+ */
1773
+ get name() {
1774
+ return this.getStorageProperty("name") || this.defaultName;
1775
+ }
1776
+ set name(value) {
1777
+ this.setStorageProperty("name", value);
1778
+ }
1779
+ /**
1780
+ * The surname of the character.
1781
+ * If you set undefined, it will return the default surname.
1782
+ */
1783
+ get surname() {
1784
+ return this.getStorageProperty("surname") || this.defaultSurname;
1785
+ }
1786
+ set surname(value) {
1787
+ this.setStorageProperty("surname", value);
1788
+ }
1789
+ /**
1790
+ * The age of the character.
1791
+ * If you set undefined, it will return the default age.
1792
+ */
1793
+ get age() {
1794
+ return this.getStorageProperty("age") || this.defaultAge;
1795
+ }
1796
+ set age(value) {
1797
+ this.setStorageProperty("age", value);
1798
+ }
1799
+ /**
1800
+ * The icon of the character.
1801
+ */
1802
+ get icon() {
1803
+ return this._icon;
1804
+ }
1805
+ /**
1806
+ * The color of the character.
1807
+ */
1808
+ get color() {
1809
+ return this._color;
1810
+ }
1811
+ };
1812
+
1813
+ // src/labels/TestConstant.ts
1814
+ var juliette = new CharacterBaseModel2("___pixivn_juliette___", {
1815
+ name: "Juliette",
1816
+ age: 25,
1817
+ icon: "https://firebasestorage.googleapis.com/v0/b/pixi-vn.appspot.com/o/public%2Fcharacters%2Fjuliette-square.webp?alt=media&token=5856ae7b-d99e-4563-86ec-cbc48cc9c6b4",
1818
+ color: "#ac0086"
1819
+ });
1820
+ saveCharacter(juliette);
1821
+ var eggHeadImage = "https://pixijs.com/assets/eggHead.png";
1822
+ var eggHeadName = `<span style="color:purple">Egg Head</span>`;
1823
+ var flowerTopImage = "https://pixijs.com/assets/flowerTop.png";
1824
+ var flowerTopName = `<span style="color:green">Flower Top</span>`;
1825
+ var helmlokImage = "https://pixijs.com/assets/helmlok.png";
1826
+ var helmlokName = `<span style="color:blue">Helmlok</span>`;
1827
+ var skullyImage = "https://pixijs.com/assets/skully.png";
1828
+ var skullyName = `<span style="color:red">Skully</span>`;
1829
+
1830
+ exports.eggHeadImage = eggHeadImage;
1831
+ exports.eggHeadName = eggHeadName;
1832
+ exports.flowerTopImage = flowerTopImage;
1833
+ exports.flowerTopName = flowerTopName;
1834
+ exports.helmlokImage = helmlokImage;
1835
+ exports.helmlokName = helmlokName;
1836
+ exports.juliette = juliette;
1837
+ exports.skullyImage = skullyImage;
1838
+ exports.skullyName = skullyName;
1839
+ //# sourceMappingURL=out.js.map
1840
+ //# sourceMappingURL=TestConstant.js.map