@drincs/pixi-vn 0.6.4 → 0.6.6

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 (266) hide show
  1. package/README.md +56 -7
  2. package/dist/classes/CharacterBaseModel.js +99 -90
  3. package/dist/classes/CharacterBaseModel.js.map +1 -1
  4. package/dist/classes/CharacterBaseModel.mjs +99 -90
  5. package/dist/classes/CharacterBaseModel.mjs.map +1 -1
  6. package/dist/classes/ChoiceMenuOption.d.mts +71 -8
  7. package/dist/classes/ChoiceMenuOption.d.ts +71 -8
  8. package/dist/classes/ChoiceMenuOption.js +160 -77
  9. package/dist/classes/ChoiceMenuOption.js.map +1 -1
  10. package/dist/classes/ChoiceMenuOption.mjs +160 -77
  11. package/dist/classes/ChoiceMenuOption.mjs.map +1 -1
  12. package/dist/classes/CloseLabel.d.mts +3 -1
  13. package/dist/classes/CloseLabel.d.ts +3 -1
  14. package/dist/classes/CloseLabel.js +77 -32
  15. package/dist/classes/CloseLabel.js.map +1 -1
  16. package/dist/classes/CloseLabel.mjs +77 -32
  17. package/dist/classes/CloseLabel.mjs.map +1 -1
  18. package/dist/classes/Label.d.mts +6 -33
  19. package/dist/classes/Label.d.ts +6 -33
  20. package/dist/classes/Label.js +74 -31
  21. package/dist/classes/Label.js.map +1 -1
  22. package/dist/classes/Label.mjs +74 -31
  23. package/dist/classes/Label.mjs.map +1 -1
  24. package/dist/classes/LabelAbstract.d.mts +50 -0
  25. package/dist/classes/LabelAbstract.d.ts +50 -0
  26. package/dist/classes/LabelAbstract.js +100 -0
  27. package/dist/classes/LabelAbstract.js.map +1 -0
  28. package/dist/classes/LabelAbstract.mjs +98 -0
  29. package/dist/classes/LabelAbstract.mjs.map +1 -0
  30. package/dist/classes/LabelJson.d.mts +30 -0
  31. package/dist/classes/LabelJson.d.ts +30 -0
  32. package/dist/classes/LabelJson.js +2766 -0
  33. package/dist/classes/LabelJson.js.map +1 -0
  34. package/dist/classes/LabelJson.mjs +2760 -0
  35. package/dist/classes/LabelJson.mjs.map +1 -0
  36. package/dist/classes/StoredClassModel.js +42 -33
  37. package/dist/classes/StoredClassModel.js.map +1 -1
  38. package/dist/classes/StoredClassModel.mjs +42 -33
  39. package/dist/classes/StoredClassModel.mjs.map +1 -1
  40. package/dist/classes/canvas/CanvasContainer.js +2 -2
  41. package/dist/classes/canvas/CanvasContainer.js.map +1 -1
  42. package/dist/classes/canvas/CanvasContainer.mjs +2 -2
  43. package/dist/classes/canvas/CanvasContainer.mjs.map +1 -1
  44. package/dist/classes/canvas/CanvasImage.js +2 -2
  45. package/dist/classes/canvas/CanvasImage.js.map +1 -1
  46. package/dist/classes/canvas/CanvasImage.mjs +2 -2
  47. package/dist/classes/canvas/CanvasImage.mjs.map +1 -1
  48. package/dist/classes/canvas/CanvasSprite.js +2 -2
  49. package/dist/classes/canvas/CanvasSprite.js.map +1 -1
  50. package/dist/classes/canvas/CanvasSprite.mjs +2 -2
  51. package/dist/classes/canvas/CanvasSprite.mjs.map +1 -1
  52. package/dist/classes/canvas/CanvasText.js +2 -2
  53. package/dist/classes/canvas/CanvasText.js.map +1 -1
  54. package/dist/classes/canvas/CanvasText.mjs +2 -2
  55. package/dist/classes/canvas/CanvasText.mjs.map +1 -1
  56. package/dist/classes/canvas/index.js +2 -2
  57. package/dist/classes/canvas/index.js.map +1 -1
  58. package/dist/classes/canvas/index.mjs +2 -2
  59. package/dist/classes/canvas/index.mjs.map +1 -1
  60. package/dist/classes/index.d.mts +6 -1
  61. package/dist/classes/index.d.ts +6 -1
  62. package/dist/classes/index.js +945 -78
  63. package/dist/classes/index.js.map +1 -1
  64. package/dist/classes/index.mjs +945 -79
  65. package/dist/classes/index.mjs.map +1 -1
  66. package/dist/classes/ticker/FadeAlphaTicker.js +42 -33
  67. package/dist/classes/ticker/FadeAlphaTicker.js.map +1 -1
  68. package/dist/classes/ticker/FadeAlphaTicker.mjs +42 -33
  69. package/dist/classes/ticker/FadeAlphaTicker.mjs.map +1 -1
  70. package/dist/classes/ticker/MoveTicker.d.mts +1 -0
  71. package/dist/classes/ticker/MoveTicker.d.ts +1 -0
  72. package/dist/classes/ticker/MoveTicker.js +42 -33
  73. package/dist/classes/ticker/MoveTicker.js.map +1 -1
  74. package/dist/classes/ticker/MoveTicker.mjs +42 -33
  75. package/dist/classes/ticker/MoveTicker.mjs.map +1 -1
  76. package/dist/classes/ticker/RotateTicker.d.mts +1 -0
  77. package/dist/classes/ticker/RotateTicker.d.ts +1 -0
  78. package/dist/classes/ticker/RotateTicker.js +42 -33
  79. package/dist/classes/ticker/RotateTicker.js.map +1 -1
  80. package/dist/classes/ticker/RotateTicker.mjs +42 -33
  81. package/dist/classes/ticker/RotateTicker.mjs.map +1 -1
  82. package/dist/classes/ticker/ZoomTicker.d.mts +1 -0
  83. package/dist/classes/ticker/ZoomTicker.d.ts +1 -0
  84. package/dist/classes/ticker/ZoomTicker.js +42 -33
  85. package/dist/classes/ticker/ZoomTicker.js.map +1 -1
  86. package/dist/classes/ticker/ZoomTicker.mjs +42 -33
  87. package/dist/classes/ticker/ZoomTicker.mjs.map +1 -1
  88. package/dist/classes/ticker/index.js +42 -33
  89. package/dist/classes/ticker/index.js.map +1 -1
  90. package/dist/classes/ticker/index.mjs +42 -33
  91. package/dist/classes/ticker/index.mjs.map +1 -1
  92. package/dist/constants.d.mts +1 -1
  93. package/dist/constants.d.ts +1 -1
  94. package/dist/constants.js +1 -1
  95. package/dist/constants.js.map +1 -1
  96. package/dist/constants.mjs +1 -1
  97. package/dist/constants.mjs.map +1 -1
  98. package/dist/decorators/CanvasElementDecorator.js +2 -2
  99. package/dist/decorators/CanvasElementDecorator.js.map +1 -1
  100. package/dist/decorators/CanvasElementDecorator.mjs +2 -2
  101. package/dist/decorators/CanvasElementDecorator.mjs.map +1 -1
  102. package/dist/decorators/LabelDecorator.d.mts +19 -5
  103. package/dist/decorators/LabelDecorator.d.ts +19 -5
  104. package/dist/decorators/LabelDecorator.js +102 -65
  105. package/dist/decorators/LabelDecorator.js.map +1 -1
  106. package/dist/decorators/LabelDecorator.mjs +102 -66
  107. package/dist/decorators/LabelDecorator.mjs.map +1 -1
  108. package/dist/decorators/index.d.mts +10 -2
  109. package/dist/decorators/index.d.ts +10 -2
  110. package/dist/decorators/index.js +98 -65
  111. package/dist/decorators/index.js.map +1 -1
  112. package/dist/decorators/index.mjs +98 -65
  113. package/dist/decorators/index.mjs.map +1 -1
  114. package/dist/functions/CanvasUtility.js +2 -2
  115. package/dist/functions/CanvasUtility.js.map +1 -1
  116. package/dist/functions/CanvasUtility.mjs +2 -2
  117. package/dist/functions/CanvasUtility.mjs.map +1 -1
  118. package/dist/functions/DialogueUtility.d.mts +10 -8
  119. package/dist/functions/DialogueUtility.d.ts +10 -8
  120. package/dist/functions/DialogueUtility.js +268 -131
  121. package/dist/functions/DialogueUtility.js.map +1 -1
  122. package/dist/functions/DialogueUtility.mjs +268 -131
  123. package/dist/functions/DialogueUtility.mjs.map +1 -1
  124. package/dist/functions/FlagsUtility.js +42 -33
  125. package/dist/functions/FlagsUtility.js.map +1 -1
  126. package/dist/functions/FlagsUtility.mjs +42 -33
  127. package/dist/functions/FlagsUtility.mjs.map +1 -1
  128. package/dist/functions/GameUtility.js +42 -33
  129. package/dist/functions/GameUtility.js.map +1 -1
  130. package/dist/functions/GameUtility.mjs +42 -33
  131. package/dist/functions/GameUtility.mjs.map +1 -1
  132. package/dist/functions/ImageUtility.js +45 -36
  133. package/dist/functions/ImageUtility.js.map +1 -1
  134. package/dist/functions/ImageUtility.mjs +45 -36
  135. package/dist/functions/ImageUtility.mjs.map +1 -1
  136. package/dist/functions/Importer.d.mts +24 -0
  137. package/dist/functions/Importer.d.ts +24 -0
  138. package/dist/functions/Importer.js +2804 -0
  139. package/dist/functions/Importer.js.map +1 -0
  140. package/dist/functions/Importer.mjs +2798 -0
  141. package/dist/functions/Importer.mjs.map +1 -0
  142. package/dist/functions/SavesUtility.d.mts +5 -3
  143. package/dist/functions/SavesUtility.d.ts +5 -3
  144. package/dist/functions/SavesUtility.js +310 -145
  145. package/dist/functions/SavesUtility.js.map +1 -1
  146. package/dist/functions/SavesUtility.mjs +310 -145
  147. package/dist/functions/SavesUtility.mjs.map +1 -1
  148. package/dist/functions/TickerUtility.d.mts +2 -1
  149. package/dist/functions/TickerUtility.d.ts +2 -1
  150. package/dist/functions/TickerUtility.js +19 -15
  151. package/dist/functions/TickerUtility.js.map +1 -1
  152. package/dist/functions/TickerUtility.mjs +19 -15
  153. package/dist/functions/TickerUtility.mjs.map +1 -1
  154. package/dist/functions/index.d.mts +7 -2
  155. package/dist/functions/index.d.ts +7 -2
  156. package/dist/functions/index.js +364 -140
  157. package/dist/functions/index.js.map +1 -1
  158. package/dist/functions/index.mjs +364 -141
  159. package/dist/functions/index.mjs.map +1 -1
  160. package/dist/index.d.mts +6 -0
  161. package/dist/index.d.ts +6 -0
  162. package/dist/index.js +453 -219
  163. package/dist/index.js.map +1 -1
  164. package/dist/index.mjs +453 -221
  165. package/dist/index.mjs.map +1 -1
  166. package/dist/interface/IHistoryStep.d.mts +3 -1
  167. package/dist/interface/IHistoryStep.d.ts +3 -1
  168. package/dist/interface/ISaveData.d.mts +3 -1
  169. package/dist/interface/ISaveData.d.ts +3 -1
  170. package/dist/interface/LabelProps.d.mts +38 -0
  171. package/dist/interface/LabelProps.d.ts +38 -0
  172. package/dist/interface/LabelProps.js +4 -0
  173. package/dist/interface/LabelProps.js.map +1 -0
  174. package/dist/interface/LabelProps.mjs +3 -0
  175. package/dist/interface/LabelProps.mjs.map +1 -0
  176. package/dist/interface/export/ExportedStep.d.mts +3 -1
  177. package/dist/interface/export/ExportedStep.d.ts +3 -1
  178. package/dist/interface/export/index.d.mts +3 -1
  179. package/dist/interface/export/index.d.ts +3 -1
  180. package/dist/interface/index.d.mts +3 -1
  181. package/dist/interface/index.d.ts +3 -1
  182. package/dist/labels/BaseCanvasElementTestLabel.d.mts +3 -1
  183. package/dist/labels/BaseCanvasElementTestLabel.d.ts +3 -1
  184. package/dist/labels/BaseCanvasElementTestLabel.js +303 -136
  185. package/dist/labels/BaseCanvasElementTestLabel.js.map +1 -1
  186. package/dist/labels/BaseCanvasElementTestLabel.mjs +304 -137
  187. package/dist/labels/BaseCanvasElementTestLabel.mjs.map +1 -1
  188. package/dist/labels/CanvasEventsTestLabel.d.mts +4 -5
  189. package/dist/labels/CanvasEventsTestLabel.d.ts +4 -5
  190. package/dist/labels/CanvasEventsTestLabel.js +313 -148
  191. package/dist/labels/CanvasEventsTestLabel.js.map +1 -1
  192. package/dist/labels/CanvasEventsTestLabel.mjs +314 -149
  193. package/dist/labels/CanvasEventsTestLabel.mjs.map +1 -1
  194. package/dist/labels/CustomTickerCanvasElementTestLabel.d.mts +3 -1
  195. package/dist/labels/CustomTickerCanvasElementTestLabel.d.ts +3 -1
  196. package/dist/labels/CustomTickerCanvasElementTestLabel.js +294 -133
  197. package/dist/labels/CustomTickerCanvasElementTestLabel.js.map +1 -1
  198. package/dist/labels/CustomTickerCanvasElementTestLabel.mjs +295 -134
  199. package/dist/labels/CustomTickerCanvasElementTestLabel.mjs.map +1 -1
  200. package/dist/labels/ImagesAnimationsTestLabel.d.mts +3 -1
  201. package/dist/labels/ImagesAnimationsTestLabel.d.ts +3 -1
  202. package/dist/labels/ImagesAnimationsTestLabel.js +298 -181
  203. package/dist/labels/ImagesAnimationsTestLabel.js.map +1 -1
  204. package/dist/labels/ImagesAnimationsTestLabel.mjs +299 -182
  205. package/dist/labels/ImagesAnimationsTestLabel.mjs.map +1 -1
  206. package/dist/labels/MarkdownTest.d.mts +3 -1
  207. package/dist/labels/MarkdownTest.d.ts +3 -1
  208. package/dist/labels/MarkdownTest.js +294 -133
  209. package/dist/labels/MarkdownTest.js.map +1 -1
  210. package/dist/labels/MarkdownTest.mjs +294 -133
  211. package/dist/labels/MarkdownTest.mjs.map +1 -1
  212. package/dist/labels/StartLabel.d.mts +3 -1
  213. package/dist/labels/StartLabel.d.ts +3 -1
  214. package/dist/labels/StartLabel.js +360 -213
  215. package/dist/labels/StartLabel.js.map +1 -1
  216. package/dist/labels/StartLabel.mjs +361 -214
  217. package/dist/labels/StartLabel.mjs.map +1 -1
  218. package/dist/labels/StepLabelTest.d.mts +11 -0
  219. package/dist/labels/StepLabelTest.d.ts +11 -0
  220. package/dist/labels/StepLabelTest.js +2861 -0
  221. package/dist/labels/StepLabelTest.js.map +1 -0
  222. package/dist/labels/StepLabelTest.mjs +2855 -0
  223. package/dist/labels/StepLabelTest.mjs.map +1 -0
  224. package/dist/labels/TestConstant.js +43 -34
  225. package/dist/labels/TestConstant.js.map +1 -1
  226. package/dist/labels/TestConstant.mjs +43 -34
  227. package/dist/labels/TestConstant.mjs.map +1 -1
  228. package/dist/labels/index.d.mts +3 -1
  229. package/dist/labels/index.d.ts +3 -1
  230. package/dist/labels/index.js +360 -213
  231. package/dist/labels/index.js.map +1 -1
  232. package/dist/labels/index.mjs +361 -214
  233. package/dist/labels/index.mjs.map +1 -1
  234. package/dist/managers/StepManager.d.mts +10 -7
  235. package/dist/managers/StepManager.d.ts +10 -7
  236. package/dist/managers/StepManager.js +300 -139
  237. package/dist/managers/StepManager.js.map +1 -1
  238. package/dist/managers/StepManager.mjs +300 -139
  239. package/dist/managers/StepManager.mjs.map +1 -1
  240. package/dist/managers/WindowManager.js +2 -2
  241. package/dist/managers/WindowManager.js.map +1 -1
  242. package/dist/managers/WindowManager.mjs +2 -2
  243. package/dist/managers/WindowManager.mjs.map +1 -1
  244. package/dist/managers/index.d.mts +7 -5
  245. package/dist/managers/index.d.ts +7 -5
  246. package/dist/managers/index.js +300 -139
  247. package/dist/managers/index.js.map +1 -1
  248. package/dist/managers/index.mjs +300 -139
  249. package/dist/managers/index.mjs.map +1 -1
  250. package/dist/types/ChoiceMenuOptionsType.d.mts +3 -1
  251. package/dist/types/ChoiceMenuOptionsType.d.ts +3 -1
  252. package/dist/types/LabelJsonType.d.mts +22 -0
  253. package/dist/types/LabelJsonType.d.ts +22 -0
  254. package/dist/types/LabelJsonType.js +4 -0
  255. package/dist/types/LabelJsonType.js.map +1 -0
  256. package/dist/types/LabelJsonType.mjs +3 -0
  257. package/dist/types/LabelJsonType.mjs.map +1 -0
  258. package/dist/types/StepLabelJsonType.d.mts +30 -0
  259. package/dist/types/StepLabelJsonType.d.ts +30 -0
  260. package/dist/types/StepLabelJsonType.js +4 -0
  261. package/dist/types/StepLabelJsonType.js.map +1 -0
  262. package/dist/types/StepLabelJsonType.mjs +3 -0
  263. package/dist/types/StepLabelJsonType.mjs.map +1 -0
  264. package/dist/types/index.d.mts +4 -0
  265. package/dist/types/index.d.ts +4 -0
  266. package/package.json +7 -6
@@ -490,8 +490,6 @@ function getMemoryContainer(element) {
490
490
  };
491
491
  }
492
492
  function setMemoryContainer(element, memory) {
493
- memory.width && (element.width = memory.width);
494
- memory.height && (element.height = memory.height);
495
493
  memory.isRenderGroup && (element.isRenderGroup = memory.isRenderGroup);
496
494
  memory.blendMode && (element.blendMode = memory.blendMode);
497
495
  memory.tint && (element.tint = memory.tint);
@@ -524,6 +522,8 @@ function setMemoryContainer(element, memory) {
524
522
  memory.interactive && (element.interactive = memory.interactive);
525
523
  memory.interactiveChildren && (element.interactiveChildren = memory.interactiveChildren);
526
524
  memory.hitArea && (element.hitArea = memory.hitArea);
525
+ memory.width && (element.width = memory.width);
526
+ memory.height && (element.height = memory.height);
527
527
  }
528
528
 
529
529
  exports.CANVAS_CONTAINER_ID = CANVAS_CONTAINER_ID;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/functions/TextureUtility.ts","../../../src/decorators/EventDecorator.ts","../../../src/classes/canvas/CanvasSprite.ts","../../../src/classes/canvas/CanvasImage.ts","../../../src/classes/canvas/CanvasText.ts","../../../src/decorators/CanvasElementDecorator.ts","../../../src/functions/CanvasUtility.ts","../../../src/classes/canvas/CanvasContainer.ts"],"names":["Assets","Texture","Sprite","Text","Container"],"mappings":"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","file":"CanvasContainer.js","sourcesContent":["import { Assets, ColorSource, FillGradient, FillPattern, StrokeStyle, TextStyle, TextStyleOptions, Texture } from 'pixi.js';\n\n/**\n * Get a texture from a url.\n * @param imageUrl is the url of the image.\n * @returns the texture of the image, or a text with the error.\n */\nexport async function getTexture(imageUrl: string): Promise<Texture | void> {\n if (Assets.cache.has(imageUrl)) {\n return Assets.get(imageUrl)\n }\n return Assets.load(imageUrl)\n .then((texture) => {\n if (!texture) {\n console.error(\"[Pixi'VN] Texture not found\", imageUrl)\n return\n }\n // if texture not is a Texture, then it is a TextureResource\n if (!(texture instanceof Texture)) {\n console.error(\"[Pixi'VN] File not is a image\", imageUrl)\n return\n }\n\n return texture\n })\n .catch((e) => {\n console.error(\"[Pixi'VN] Error loading image\", e)\n return\n })\n}\n\nfunction getFillGradientFillPattern(prop: ColorSource | FillGradient | FillPattern | StrokeStyle, propName: keyof TextStyle) {\n if (!(prop instanceof Object)) {\n return prop\n }\n // TODO: FillGradient and FillPattern are not supported yet\n console.warn(`[Pixi'VN] CanvasText.style.${propName} is a FillGradient or FillPattern, this is not supported yet.`, prop)\n return undefined\n}\n\nexport function getTextStyle(style: TextStyle): TextStyleOptions {\n return {\n align: style.align,\n breakWords: style.breakWords,\n dropShadow: style.dropShadow,\n fill: getFillGradientFillPattern(style.stroke, \"fill\"),\n fontFamily: style.fontFamily,\n fontSize: style.fontSize,\n fontStyle: style.fontStyle,\n fontVariant: style.fontVariant,\n fontWeight: style.fontWeight,\n leading: style.leading,\n letterSpacing: style.letterSpacing,\n lineHeight: style.lineHeight,\n padding: style.padding,\n stroke: getFillGradientFillPattern(style.stroke, \"stroke\"),\n textBaseline: style.textBaseline,\n trim: style.trim,\n whiteSpace: style.whiteSpace,\n wordWrap: style.wordWrap,\n wordWrapWidth: style.wordWrapWidth,\n }\n}\n","import { CanvasEvent } from \"../classes\"\nimport CanvasBase from \"../classes/canvas/CanvasBase\"\nimport { CanvasEventNamesType } from \"../types\"\nimport { EventIdType } from \"../types/EventIdType\"\n\n/**\n * Canvas Event Register\n */\nexport const registeredEvents: { [name: EventIdType]: typeof CanvasEvent<CanvasEventNamesType> } = {}\n/**\n * Is a decorator that register a event in the game.\n * Is a required decorator for use the event in the game.\n * Thanks to this decoration the game has the possibility of updating the events to the latest modification and saving the game.\n * @param name is th identifier of the event, by default is the name of the class\n * @returns \n */\nexport default function eventDecorator(name?: EventIdType) {\n return function (target: typeof CanvasEvent<any>) {\n if (!name) {\n name = target.name\n }\n if (registeredEvents[name]) {\n console.info(`[Pixi'VN] Event ${name} already exists, it will be overwritten`)\n }\n target.prototype.id = name\n registeredEvents[name] = target\n }\n}\n\n/**\n * Get an event by the id.\n * @param eventId The id of the event.\n * @returns The event type.\n */\nexport function getEventTypeById<T = typeof CanvasEvent<CanvasBase<any>>>(eventId: EventIdType): T | undefined {\n try {\n let eventType = registeredEvents[eventId]\n if (!eventType) {\n console.error(`[Pixi'VN] Event ${eventId} not found`)\n return\n }\n new eventType()\n return eventType as T\n }\n catch (e) {\n console.error(`[Pixi'VN] Error while getting Event ${eventId}`, e)\n return\n }\n}\n\n/**\n * Get an event instance by the id.\n * @param eventId The id of the event.\n * @returns The event instance.\n */\nexport function getEventInstanceById<T = CanvasEvent<CanvasBase<any>>>(eventId: EventIdType): T | undefined {\n try {\n let eventType = registeredEvents[eventId]\n if (!eventType) {\n console.error(`[Pixi'VN] Event ${eventId} not found`)\n return\n }\n let event = new eventType()\n return event as T\n }\n catch (e) {\n console.error(`[Pixi'VN] Error while getting Event ${eventId}`, e)\n return\n }\n}\n","import { ContainerChild, ContainerEvents, EventEmitter, Sprite, SpriteOptions, Texture, TextureSourceLike } from \"pixi.js\";\nimport { getEventInstanceById, getEventTypeById } from \"../../decorators/EventDecorator\";\nimport { getTextureMemory } from \"../../functions/CanvasUtility\";\nimport { getTexture } from \"../../functions/TextureUtility\";\nimport ICanvasBaseMemory from \"../../interface/canvas/ICanvasBaseMemory\";\nimport ICanvasSpriteMemory, { ICanvasSpriteBaseMemory } from \"../../interface/canvas/ICanvasSpriteMemory\";\nimport { CanvasEventNamesType } from \"../../types\";\nimport { EventIdType } from \"../../types/EventIdType\";\nimport CanvasEvent from \"../CanvasEvent\";\nimport CanvasBase from \"./CanvasBase\";\nimport { getMemoryContainer, setMemoryContainer } from \"./CanvasContainer\";\n\nexport const CANVAS_SPRITE_ID = \"CanvasSprite\"\n\n/**\n * This class is a extension of the [PIXI.Sprite class](https://pixijs.com/8.x/examples/sprite/basic), it has the same properties and methods,\n * but it has the ability to be saved and loaded by the Pixi'VN library.\n * @example\n * ```typescript\n * const texture = await Assets.load('https://pixijs.com/assets/bunny.png');\n * const sprite = CanvasSprite.from(texture);\n *\n * sprite.anchor.set(0.5);\n * sprite.x = GameWindowManager.screen.width / 2;\n * sprite.y = GameWindowManager.screen.height / 2;\n *\n * sprite.eventMode = 'static';\n * sprite.cursor = 'pointer';\n * sprite.onEvent('pointerdown', EventTest);\n *\n * GameWindowManager.addCanvasElement(\"bunny\", sprite);\n * ```\n */\nexport default class CanvasSprite<Memory extends SpriteOptions & ICanvasBaseMemory = ICanvasSpriteMemory> extends Sprite implements CanvasBase<Memory | ICanvasSpriteMemory> {\n constructor(options?: SpriteOptions | Texture) {\n super(options)\n this.pixivnId = this.constructor.prototype.pixivnId || CANVAS_SPRITE_ID\n }\n pixivnId: string = CANVAS_SPRITE_ID\n get memory(): Memory | ICanvasSpriteMemory {\n return getMemorySprite(this)\n }\n set memory(value: ICanvasSpriteMemory) {\n setMemorySprite(this, value)\n }\n private _onEvents: { [name: CanvasEventNamesType]: EventIdType } = {}\n get onEvents() {\n return this._onEvents\n }\n /**\n * is same function as on(), but it keeps in memory the children.\n * @param event The event type, e.g., 'click', 'mousedown', 'mouseup', 'pointerdown', etc.\n * @param eventClass The class that extends CanvasEvent.\n * @returns \n * @example\n * ```typescript\n * \\@eventDecorator()\n * export class EventTest extends CanvasEvent<CanvasSprite> {\n * override fn(event: CanvasEventNamesType, sprite: CanvasSprite): void {\n * if (event === 'pointerdown') {\n * sprite.scale.x *= 1.25;\n * sprite.scale.y *= 1.25;\n * }\n * }\n * }\n * ```\n * \n * ```typescript\n * let sprite = addImage(\"alien\", 'https://pixijs.com/assets/eggHead.png')\n * await sprite.load()\n *\n * sprite.eventMode = 'static';\n * sprite.cursor = 'pointer';\n * sprite.onEvent('pointerdown', EventTest);\n *\n * GameWindowManager.addCanvasElement(\"bunny\", sprite);\n * ```\n */\n onEvent<T extends CanvasEventNamesType, T2 extends typeof CanvasEvent<typeof this>>(event: T, eventClass: T2) {\n let id = eventClass.prototype.id\n let instance = getEventInstanceById(id)\n this._onEvents[event] = id\n if (instance) {\n super.on(event, () => {\n (instance as CanvasEvent<CanvasBase<any>>).fn(event, this)\n })\n }\n return this\n }\n /**\n * on() does not keep in memory the event class, use onEvent() instead\n * @deprecated\n * @private\n * @param event \n * @param fn \n * @param context \n */\n override on<T extends keyof ContainerEvents<ContainerChild> | keyof { [K: symbol]: any;[K: {} & string]: any; }>(event: T, fn: (...args: EventEmitter.ArgumentMap<ContainerEvents<ContainerChild> & { [K: symbol]: any;[K: {} & string]: any; }>[Extract<T, keyof ContainerEvents<ContainerChild> | keyof { [K: symbol]: any;[K: {} & string]: any; }>]) => void, context?: any): this {\n return super.on(event, fn, context)\n }\n static override from(source: Texture | TextureSourceLike, skipCache?: boolean): CanvasSprite<any> {\n let sprite = Sprite.from(source, skipCache)\n let mySprite = new CanvasSprite()\n mySprite.texture = sprite.texture\n return mySprite\n }\n}\n\nexport function getMemorySprite<T extends CanvasSprite<any>>(element: T | CanvasSprite<any>): ICanvasSpriteMemory {\n let temp = getMemoryContainer(element)\n return {\n ...temp,\n pixivnId: element.pixivnId,\n textureImage: getTextureMemory((element as any).texture),\n anchor: { x: element.anchor.x, y: element.anchor.y },\n roundPixels: element.roundPixels,\n onEvents: element.onEvents,\n }\n}\n\nexport function setMemorySprite<Memory extends ICanvasSpriteBaseMemory>(element: CanvasSprite<any>, memory: Memory) {\n setMemoryContainer(element, memory)\n getTexture(memory.textureImage.image).then((texture) => {\n if (texture) {\n element.texture = texture\n }\n })\n if (memory.anchor) {\n if (typeof memory.anchor === \"number\") {\n element.anchor.set(memory.anchor, memory.anchor)\n }\n else {\n element.anchor.set(memory.anchor.x, memory.anchor.y)\n }\n }\n memory.roundPixels && (element.roundPixels = memory.roundPixels)\n for (let event in memory.onEvents) {\n let id = memory.onEvents[event]\n let instance = getEventTypeById(id)\n if (instance) {\n element.onEvent(event, instance)\n }\n }\n}\n","import { Sprite, SpriteOptions, Texture, TextureSourceLike } from \"pixi.js\";\nimport { addImage, loadImage, showWithDissolveTransition } from \"../../functions\";\nimport { getTexture } from \"../../functions/TextureUtility\";\nimport ICanvasImageMemory from \"../../interface/canvas/ICanvasImageMemory\";\nimport CanvasSprite, { getMemorySprite, setMemorySprite } from \"./CanvasSprite\";\n\nexport const CANVAS_IMAGE_ID = \"CanvasImage\"\n\n/**\n * This class is a extension of the CanvasSprite class, it has the same properties and methods,\n * but it has some features that make texture management easier.\n * You need to use CanvasImage.load() to show the image in the canvas.\n * This class is used for functions like {@link addImage}, {@link loadImage} and {@link showWithDissolveTransition}.\n * @example\n * ```typescript\n * let alien = new CanvasImage({\n * anchor: { x: 0.5, y: 0.5 },\n * x: 100,\n * y: 100,\n * }, 'https://pixijs.com/assets/eggHead.png')\n * await alien.load()\n * GameWindowManager.addCanvasElement(\"alien\", alien)\n * ```\n * @example\n * ```typescript\n * let alien = addImage(\"alien\", 'https://pixijs.com/assets/eggHead.png')\n * alien.anchor.set(0.5);\n * alien.x = 100\n * alien.y = 100\n * await alien.load()\n * ```\n */\nexport default class CanvasImage extends CanvasSprite<ICanvasImageMemory> {\n pixivnId: string = CANVAS_IMAGE_ID\n constructor(options?: SpriteOptions | Texture | undefined, imageLink?: string) {\n super(options)\n if (imageLink) {\n this.imageLink = imageLink\n }\n }\n override get memory(): ICanvasImageMemory {\n return {\n ...getMemorySprite(this),\n pixivnId: this.pixivnId,\n imageLink: this.imageLink,\n }\n }\n override set memory(memory: ICanvasImageMemory) {\n setMemorySprite(this, memory)\n this.imageLink = memory.imageLink\n }\n imageLink: string = \"\"\n static override from(source: Texture | TextureSourceLike, skipCache?: boolean) {\n let sprite = Sprite.from(source, skipCache)\n let mySprite = new CanvasImage()\n mySprite.texture = sprite.texture\n return mySprite\n }\n /** \n * Load the image from the link and set the texture of the sprite.\n * @param image The link of the image. If it is not set, it will use the imageLink property.\n * @returns A promise that resolves when the image is loaded.\n */\n async load(image?: string) {\n if (!image) {\n image = this.imageLink\n }\n return getTexture(this.imageLink)\n .then((texture) => {\n if (texture) {\n this.texture = texture\n }\n })\n .catch((e) => {\n console.error(\"[Pixi'VN] Error into CanvasImage.load()\", e)\n })\n }\n}\n","import { ContainerChild, ContainerEvents, EventEmitter, Text, TextOptions } from \"pixi.js\";\nimport { getEventInstanceById, getEventTypeById } from \"../../decorators/EventDecorator\";\nimport { getTextStyle } from \"../../functions/TextureUtility\";\nimport ICanvasTextMemory from \"../../interface/canvas/ICanvasTextTextMemory\";\nimport { CanvasEventNamesType } from \"../../types\";\nimport { EventIdType } from \"../../types/EventIdType\";\nimport CanvasEvent from \"../CanvasEvent\";\nimport CanvasBase from \"./CanvasBase\";\nimport { getMemoryContainer, setMemoryContainer } from \"./CanvasContainer\";\n\nexport const CANVAS_TEXT_ID = \"CanvasText\"\n\n/**\n * This class is a extension of the [PIXI.Text class](https://pixijs.com/8.x/examples/text/pixi-text), it has the same properties and methods,\n * but it has the ability to be saved and loaded by the Pixi'VN library.\n * @example\n * ```typescript\n * const text = new CanvasText();\n * text.text = \"Hello World\"\n * GameWindowManager.addCanvasElement(\"text\", text);\n * ```\n */\nexport default class CanvasText extends Text implements CanvasBase<ICanvasTextMemory> {\n constructor(options?: TextOptions) {\n super(options)\n this.pixivnId = this.constructor.prototype.pixivnId || CANVAS_TEXT_ID\n }\n pixivnId: string = CANVAS_TEXT_ID\n get memory(): ICanvasTextMemory {\n return getMemoryText(this)\n }\n set memory(value: ICanvasTextMemory) {\n setMemoryText(this, value)\n }\n private _onEvents: { [name: CanvasEventNamesType]: EventIdType } = {}\n get onEvents() {\n return this._onEvents\n }\n /**\n * is same function as on(), but it keeps in memory the children.\n * @param event The event type, e.g., 'click', 'mousedown', 'mouseup', 'pointerdown', etc.\n * @param eventClass The class that extends CanvasEvent.\n * @returns \n * @example\n * ```typescript\n * \\@eventDecorator()\n * export class EventTest extends CanvasEvent<CanvasText> {\n * override fn(event: CanvasEventNamesType, text: CanvasText): void {\n * if (event === 'pointerdown') {\n * text.scale.x *= 1.25;\n * text.scale.y *= 1.25;\n * }\n * }\n * }\n * ```\n * \n * ```typescript\n * const text = new CanvasText();\n * text.text = \"Hello World\"\n *\n * text.eventMode = 'static';\n * text.cursor = 'pointer';\n * text.onEvent('pointerdown', EventTest);\n *\n * GameWindowManager.addCanvasElement(\"text\", text);\n * ```\n */\n onEvent<T extends CanvasEventNamesType, T2 extends typeof CanvasEvent<typeof this>>(event: T, eventClass: T2) {\n let id = eventClass.prototype.id\n let instance = getEventInstanceById(id)\n this._onEvents[event] = id\n if (instance) {\n super.on(event, () => {\n (instance as CanvasEvent<CanvasBase<any>>).fn(event, this)\n })\n }\n return this\n }\n /**\n * on() does not keep in memory the event class, use onEvent() instead\n * @deprecated\n * @private\n * @param event \n * @param fn \n * @param context \n */\n override on<T extends keyof ContainerEvents<ContainerChild> | keyof { [K: symbol]: any;[K: {} & string]: any; }>(event: T, fn: (...args: EventEmitter.ArgumentMap<ContainerEvents<ContainerChild> & { [K: symbol]: any;[K: {} & string]: any; }>[Extract<T, keyof ContainerEvents<ContainerChild> | keyof { [K: symbol]: any;[K: {} & string]: any; }>]) => void, context?: any): this {\n return super.on(event, fn, context)\n }\n}\n\nexport function getMemoryText<T extends CanvasText>(element: T | CanvasText): ICanvasTextMemory {\n let temp = getMemoryContainer(element)\n return {\n ...temp,\n pixivnId: element.pixivnId,\n anchor: { x: element.anchor.x, y: element.anchor.y },\n text: element.text,\n resolution: element.resolution,\n style: getTextStyle(element.style),\n roundPixels: element.roundPixels,\n onEvents: element.onEvents,\n }\n}\n\nexport function setMemoryText(element: CanvasText, memory: ICanvasTextMemory) {\n setMemoryContainer(element, memory)\n if (memory.anchor) {\n if (typeof memory.anchor === \"number\") {\n element.anchor.set(memory.anchor, memory.anchor)\n }\n else {\n element.anchor.set(memory.anchor.x, memory.anchor.y)\n }\n }\n memory.text && (element.text = memory.text)\n memory.resolution && (element.resolution = memory.resolution)\n memory.style && (element.style = memory.style)\n memory.roundPixels && (element.roundPixels = memory.roundPixels)\n for (let event in memory.onEvents) {\n let id = memory.onEvents[event]\n let instance = getEventTypeById(id)\n if (instance) {\n element.onEvent(event as CanvasEventNamesType, instance)\n }\n }\n}\n","import { CanvasContainer, CanvasImage, CanvasSprite, CanvasText } from \"../classes/canvas\"\nimport CanvasBase from \"../classes/canvas/CanvasBase\"\nimport { CANVAS_CONTAINER_ID } from \"../classes/canvas/CanvasContainer\"\nimport { CANVAS_IMAGE_ID } from \"../classes/canvas/CanvasImage\"\nimport { CANVAS_SPRITE_ID } from \"../classes/canvas/CanvasSprite\"\nimport { CANVAS_TEXT_ID } from \"../classes/canvas/CanvasText\"\nimport { CanvasElementTagType } from \"../types/CanvasElementTagType\"\n\nexport const registeredCanvasElement: { [name: CanvasElementTagType]: typeof CanvasBase<any> } = {}\n/**\n * Is a decorator that register a canvas element in the game.\n * @param name Name of the canvas element, by default it will use the class name. If the name is already registered, it will show a warning\n * @returns \n */\nexport default function canvasElementDecorator(name?: CanvasElementTagType) {\n return function (target: typeof CanvasBase<any>) {\n if (!name) {\n name = target.name\n }\n if (registeredCanvasElement[name]) {\n console.warn(`[Pixi'VN] CanvasElement ${name} already registered`)\n }\n target.prototype.pixivnId = name\n registeredCanvasElement[name] = target\n }\n}\n\nexport function getCanvasElementTypeById<T extends typeof CanvasBase<any>>(canvasId: CanvasElementTagType): T | undefined {\n try {\n let eventType = registeredCanvasElement[canvasId]\n if (!eventType) {\n console.error(`[Pixi'VN] CanvasElement ${canvasId} not found`)\n return\n }\n new eventType()\n return eventType as T\n }\n catch (e) {\n console.error(`[Pixi'VN] Error while getting CanvasElement ${canvasId}`, e)\n return\n }\n}\n\nexport function getCanvasElementInstanceById<T extends CanvasBase<any>>(canvasId: CanvasElementTagType): T | undefined {\n try {\n let eventType = registeredCanvasElement[canvasId]\n if (!eventType) {\n if (canvasId === CANVAS_CONTAINER_ID) {\n eventType = CanvasContainer\n }\n else if (canvasId === CANVAS_IMAGE_ID) {\n eventType = CanvasImage\n }\n else if (canvasId === CANVAS_SPRITE_ID) {\n eventType = CanvasSprite\n }\n else if (canvasId === CANVAS_TEXT_ID) {\n eventType = CanvasText\n }\n }\n\n if (!eventType) {\n console.error(`[Pixi'VN] CanvasElement ${canvasId} not found`)\n return\n }\n let canvasElement = new eventType()\n return canvasElement as T\n }\n catch (e) {\n console.error(`[Pixi'VN] Error while getting CanvasElement ${canvasId}`, e)\n return\n }\n}\n","import { Texture } from \"pixi.js\";\nimport { CanvasBase } from \"../classes/canvas\";\nimport { getCanvasElementInstanceById } from \"../decorators/CanvasElementDecorator\";\nimport { ICanvasBaseMemory, ITextureMemory } from \"../interface/canvas\";\n\n/**\n * Get the memory object of the PixiJS texture\n * @param texture PixiJS Texture object\n * @returns Memory object of the texture\n */\nexport function getTextureMemory(texture: Texture): ITextureMemory {\n let sourceTexture = texture.source\n let textureMemory: ITextureMemory = {\n image: sourceTexture.label\n }\n return textureMemory\n}\n\n/**\n * Export a Canvas element to a memory object\n * @param element Canvas element\n * @returns Memory object of the canvas\n */\nexport function exportCanvasElement<T extends CanvasBase<any>>(\n element: T,\n): ICanvasBaseMemory {\n return element.memory\n}\n\n/**\n * Import a Canvas element from a memory object\n * @param memory Memory object of the canvas\n * @returns Canvas element\n */\nexport function importCanvasElement<T extends CanvasBase<any>>(\n memory: ICanvasBaseMemory,\n): T {\n let element = getCanvasElementInstanceById<T>(memory.pixivnId)\n if (element) {\n element.memory = memory\n }\n else {\n throw new Error(\"[Pixi'VN] The element \" + memory.pixivnId + \" could not be created\")\n }\n\n return element\n}\n","import { Container, ContainerOptions } from \"pixi.js\";\nimport { exportCanvasElement, importCanvasElement } from \"../../functions/CanvasUtility\";\nimport ICanvasContainerMemory from \"../../interface/canvas/ICanvasContainerMemory\";\nimport CanvasBase from \"./CanvasBase\";\n\nexport const CANVAS_CONTAINER_ID = \"CanvasContainer\"\n\n/**\n * This class is a extension of the [PIXI.Container class](https://pixijs.com/8.x/examples/basic/container), it has the same properties and methods, \n * but it has the ability to be saved and loaded by the Pixi'VN library.\n * @example\n * ```typescript\n * const container = new CanvasContainer();\n * GameWindowManager.addCanvasElement(container);\n * const texture = await Assets.load('https://pixijs.com/assets/bunny.png');\n * for (let i = 0; i < 25; i++)\n * {\n * const bunny = new CanvasSprite(texture);\n * bunny.x = (i % 5) * 40;\n * bunny.y = Math.floor(i / 5) * 40;\n * container.addChild(bunny);\n * }\n * ```\n */\nexport default class CanvasContainer extends Container implements CanvasBase<ICanvasContainerMemory> {\n constructor(options?: ContainerOptions) {\n super(options)\n this.pixivnId = this.constructor.prototype.pixivnId || CANVAS_CONTAINER_ID\n }\n pixivnId: string = CANVAS_CONTAINER_ID\n get memory(): ICanvasContainerMemory {\n let memory = getMemoryContainer(this)\n this.children.forEach(child => {\n memory.elements.push(exportCanvasElement(child as CanvasBase<any>))\n })\n return memory\n }\n set memory(value: ICanvasContainerMemory) {\n setMemoryContainer(this, value)\n value.elements.forEach(child => {\n this.addChild(importCanvasElement(child))\n })\n }\n}\n\nexport function getMemoryContainer<T extends Container>(element: T): ICanvasContainerMemory {\n let className = \"CanvasContainer\"\n if (element.hasOwnProperty(\"pixivnId\")) {\n className = (element as any).pixivnId\n }\n return {\n pixivnId: className,\n elements: [],\n\n width: element.width,\n height: element.height,\n\n isRenderGroup: element.isRenderGroup,\n blendMode: element.blendMode,\n tint: element.tint,\n alpha: element.alpha,\n angle: element.angle,\n renderable: element.renderable,\n rotation: element.rotation,\n scale: { x: element.scale.x, y: element.scale.y },\n pivot: { x: element.pivot.x, y: element.pivot.y },\n position: { x: element.position.x, y: element.position.y },\n skew: { x: element.skew.x, y: element.skew.y },\n visible: element.visible,\n x: element.x,\n y: element.y,\n boundsArea: element.boundsArea,\n\n cursor: element.cursor,\n eventMode: element.eventMode,\n interactive: element.interactive,\n interactiveChildren: element.interactiveChildren,\n hitArea: element.hitArea\n }\n}\n\nexport function setMemoryContainer<T extends Container>(element: T | Container, memory: ContainerOptions) {\n memory.width && (element.width = memory.width)\n memory.height && (element.height = memory.height)\n\n memory.isRenderGroup && (element.isRenderGroup = memory.isRenderGroup)\n memory.blendMode && (element.blendMode = memory.blendMode)\n memory.tint && (element.tint = memory.tint)\n memory.alpha && (element.alpha = memory.alpha)\n memory.angle && (element.angle = memory.angle)\n memory.renderable && (element.renderable = memory.renderable)\n memory.rotation && (element.rotation = memory.rotation)\n if (memory.scale) {\n if (typeof memory.scale === \"number\") {\n element.scale.set(memory.scale, memory.scale)\n }\n else {\n element.scale.set(memory.scale.x, memory.scale.y)\n }\n }\n if (memory.pivot) {\n if (typeof memory.pivot === \"number\") {\n element.pivot.set(memory.pivot, memory.pivot)\n }\n else {\n element.pivot.set(memory.pivot.x, memory.pivot.y)\n }\n }\n memory.position && (element.position.set(memory.position.x, memory.position.y))\n memory.skew && (element.skew.set(memory.skew.x, memory.skew.y))\n memory.visible && (element.visible = memory.visible)\n memory.x && (element.x = memory.x)\n memory.y && (element.y = memory.y)\n memory.boundsArea && (element.boundsArea = memory.boundsArea)\n\n memory.cursor && (element.cursor = memory.cursor)\n memory.eventMode && (element.eventMode = memory.eventMode)\n memory.interactive && (element.interactive = memory.interactive)\n memory.interactiveChildren && (element.interactiveChildren = memory.interactiveChildren)\n memory.hitArea && (element.hitArea = memory.hitArea)\n}\n"]}
1
+ {"version":3,"sources":["../../../src/functions/TextureUtility.ts","../../../src/decorators/EventDecorator.ts","../../../src/classes/canvas/CanvasSprite.ts","../../../src/classes/canvas/CanvasImage.ts","../../../src/classes/canvas/CanvasText.ts","../../../src/decorators/CanvasElementDecorator.ts","../../../src/functions/CanvasUtility.ts","../../../src/classes/canvas/CanvasContainer.ts"],"names":["Assets","Texture","Sprite","Text","Container"],"mappings":"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","file":"CanvasContainer.js","sourcesContent":["import { Assets, ColorSource, FillGradient, FillPattern, StrokeStyle, TextStyle, TextStyleOptions, Texture } from 'pixi.js';\n\n/**\n * Get a texture from a url.\n * @param imageUrl is the url of the image.\n * @returns the texture of the image, or a text with the error.\n */\nexport async function getTexture(imageUrl: string): Promise<Texture | void> {\n if (Assets.cache.has(imageUrl)) {\n return Assets.get(imageUrl)\n }\n return Assets.load(imageUrl)\n .then((texture) => {\n if (!texture) {\n console.error(\"[Pixi'VN] Texture not found\", imageUrl)\n return\n }\n // if texture not is a Texture, then it is a TextureResource\n if (!(texture instanceof Texture)) {\n console.error(\"[Pixi'VN] File not is a image\", imageUrl)\n return\n }\n\n return texture\n })\n .catch((e) => {\n console.error(\"[Pixi'VN] Error loading image\", e)\n return\n })\n}\n\nfunction getFillGradientFillPattern(prop: ColorSource | FillGradient | FillPattern | StrokeStyle, propName: keyof TextStyle) {\n if (!(prop instanceof Object)) {\n return prop\n }\n // TODO: FillGradient and FillPattern are not supported yet\n console.warn(`[Pixi'VN] CanvasText.style.${propName} is a FillGradient or FillPattern, this is not supported yet.`, prop)\n return undefined\n}\n\nexport function getTextStyle(style: TextStyle): TextStyleOptions {\n return {\n align: style.align,\n breakWords: style.breakWords,\n dropShadow: style.dropShadow,\n fill: getFillGradientFillPattern(style.stroke, \"fill\"),\n fontFamily: style.fontFamily,\n fontSize: style.fontSize,\n fontStyle: style.fontStyle,\n fontVariant: style.fontVariant,\n fontWeight: style.fontWeight,\n leading: style.leading,\n letterSpacing: style.letterSpacing,\n lineHeight: style.lineHeight,\n padding: style.padding,\n stroke: getFillGradientFillPattern(style.stroke, \"stroke\"),\n textBaseline: style.textBaseline,\n trim: style.trim,\n whiteSpace: style.whiteSpace,\n wordWrap: style.wordWrap,\n wordWrapWidth: style.wordWrapWidth,\n }\n}\n","import { CanvasEvent } from \"../classes\"\nimport CanvasBase from \"../classes/canvas/CanvasBase\"\nimport { CanvasEventNamesType } from \"../types\"\nimport { EventIdType } from \"../types/EventIdType\"\n\n/**\n * Canvas Event Register\n */\nexport const registeredEvents: { [name: EventIdType]: typeof CanvasEvent<CanvasEventNamesType> } = {}\n/**\n * Is a decorator that register a event in the game.\n * Is a required decorator for use the event in the game.\n * Thanks to this decoration the game has the possibility of updating the events to the latest modification and saving the game.\n * @param name is th identifier of the event, by default is the name of the class\n * @returns \n */\nexport default function eventDecorator(name?: EventIdType) {\n return function (target: typeof CanvasEvent<any>) {\n if (!name) {\n name = target.name\n }\n if (registeredEvents[name]) {\n console.info(`[Pixi'VN] Event ${name} already exists, it will be overwritten`)\n }\n target.prototype.id = name\n registeredEvents[name] = target\n }\n}\n\n/**\n * Get an event by the id.\n * @param eventId The id of the event.\n * @returns The event type.\n */\nexport function getEventTypeById<T = typeof CanvasEvent<CanvasBase<any>>>(eventId: EventIdType): T | undefined {\n try {\n let eventType = registeredEvents[eventId]\n if (!eventType) {\n console.error(`[Pixi'VN] Event ${eventId} not found`)\n return\n }\n new eventType()\n return eventType as T\n }\n catch (e) {\n console.error(`[Pixi'VN] Error while getting Event ${eventId}`, e)\n return\n }\n}\n\n/**\n * Get an event instance by the id.\n * @param eventId The id of the event.\n * @returns The event instance.\n */\nexport function getEventInstanceById<T = CanvasEvent<CanvasBase<any>>>(eventId: EventIdType): T | undefined {\n try {\n let eventType = registeredEvents[eventId]\n if (!eventType) {\n console.error(`[Pixi'VN] Event ${eventId} not found`)\n return\n }\n let event = new eventType()\n return event as T\n }\n catch (e) {\n console.error(`[Pixi'VN] Error while getting Event ${eventId}`, e)\n return\n }\n}\n","import { ContainerChild, ContainerEvents, EventEmitter, Sprite, SpriteOptions, Texture, TextureSourceLike } from \"pixi.js\";\nimport { getEventInstanceById, getEventTypeById } from \"../../decorators/EventDecorator\";\nimport { getTextureMemory } from \"../../functions/CanvasUtility\";\nimport { getTexture } from \"../../functions/TextureUtility\";\nimport ICanvasBaseMemory from \"../../interface/canvas/ICanvasBaseMemory\";\nimport ICanvasSpriteMemory, { ICanvasSpriteBaseMemory } from \"../../interface/canvas/ICanvasSpriteMemory\";\nimport { CanvasEventNamesType } from \"../../types\";\nimport { EventIdType } from \"../../types/EventIdType\";\nimport CanvasEvent from \"../CanvasEvent\";\nimport CanvasBase from \"./CanvasBase\";\nimport { getMemoryContainer, setMemoryContainer } from \"./CanvasContainer\";\n\nexport const CANVAS_SPRITE_ID = \"CanvasSprite\"\n\n/**\n * This class is a extension of the [PIXI.Sprite class](https://pixijs.com/8.x/examples/sprite/basic), it has the same properties and methods,\n * but it has the ability to be saved and loaded by the Pixi'VN library.\n * @example\n * ```typescript\n * const texture = await Assets.load('https://pixijs.com/assets/bunny.png');\n * const sprite = CanvasSprite.from(texture);\n *\n * sprite.anchor.set(0.5);\n * sprite.x = GameWindowManager.screen.width / 2;\n * sprite.y = GameWindowManager.screen.height / 2;\n *\n * sprite.eventMode = 'static';\n * sprite.cursor = 'pointer';\n * sprite.onEvent('pointerdown', EventTest);\n *\n * GameWindowManager.addCanvasElement(\"bunny\", sprite);\n * ```\n */\nexport default class CanvasSprite<Memory extends SpriteOptions & ICanvasBaseMemory = ICanvasSpriteMemory> extends Sprite implements CanvasBase<Memory | ICanvasSpriteMemory> {\n constructor(options?: SpriteOptions | Texture) {\n super(options)\n this.pixivnId = this.constructor.prototype.pixivnId || CANVAS_SPRITE_ID\n }\n pixivnId: string = CANVAS_SPRITE_ID\n get memory(): Memory | ICanvasSpriteMemory {\n return getMemorySprite(this)\n }\n set memory(value: ICanvasSpriteMemory) {\n setMemorySprite(this, value)\n }\n private _onEvents: { [name: CanvasEventNamesType]: EventIdType } = {}\n get onEvents() {\n return this._onEvents\n }\n /**\n * is same function as on(), but it keeps in memory the children.\n * @param event The event type, e.g., 'click', 'mousedown', 'mouseup', 'pointerdown', etc.\n * @param eventClass The class that extends CanvasEvent.\n * @returns \n * @example\n * ```typescript\n * \\@eventDecorator()\n * export class EventTest extends CanvasEvent<CanvasSprite> {\n * override fn(event: CanvasEventNamesType, sprite: CanvasSprite): void {\n * if (event === 'pointerdown') {\n * sprite.scale.x *= 1.25;\n * sprite.scale.y *= 1.25;\n * }\n * }\n * }\n * ```\n * \n * ```typescript\n * let sprite = addImage(\"alien\", 'https://pixijs.com/assets/eggHead.png')\n * await sprite.load()\n *\n * sprite.eventMode = 'static';\n * sprite.cursor = 'pointer';\n * sprite.onEvent('pointerdown', EventTest);\n *\n * GameWindowManager.addCanvasElement(\"bunny\", sprite);\n * ```\n */\n onEvent<T extends CanvasEventNamesType, T2 extends typeof CanvasEvent<typeof this>>(event: T, eventClass: T2) {\n let id = eventClass.prototype.id\n let instance = getEventInstanceById(id)\n this._onEvents[event] = id\n if (instance) {\n super.on(event, () => {\n (instance as CanvasEvent<CanvasBase<any>>).fn(event, this)\n })\n }\n return this\n }\n /**\n * on() does not keep in memory the event class, use onEvent() instead\n * @deprecated\n * @private\n * @param event \n * @param fn \n * @param context \n */\n override on<T extends keyof ContainerEvents<ContainerChild> | keyof { [K: symbol]: any;[K: {} & string]: any; }>(event: T, fn: (...args: EventEmitter.ArgumentMap<ContainerEvents<ContainerChild> & { [K: symbol]: any;[K: {} & string]: any; }>[Extract<T, keyof ContainerEvents<ContainerChild> | keyof { [K: symbol]: any;[K: {} & string]: any; }>]) => void, context?: any): this {\n return super.on(event, fn, context)\n }\n static override from(source: Texture | TextureSourceLike, skipCache?: boolean): CanvasSprite<any> {\n let sprite = Sprite.from(source, skipCache)\n let mySprite = new CanvasSprite()\n mySprite.texture = sprite.texture\n return mySprite\n }\n}\n\nexport function getMemorySprite<T extends CanvasSprite<any>>(element: T | CanvasSprite<any>): ICanvasSpriteMemory {\n let temp = getMemoryContainer(element)\n return {\n ...temp,\n pixivnId: element.pixivnId,\n textureImage: getTextureMemory((element as any).texture),\n anchor: { x: element.anchor.x, y: element.anchor.y },\n roundPixels: element.roundPixels,\n onEvents: element.onEvents,\n }\n}\n\nexport function setMemorySprite<Memory extends ICanvasSpriteBaseMemory>(element: CanvasSprite<any>, memory: Memory) {\n setMemoryContainer(element, memory)\n getTexture(memory.textureImage.image).then((texture) => {\n if (texture) {\n element.texture = texture\n }\n })\n if (memory.anchor) {\n if (typeof memory.anchor === \"number\") {\n element.anchor.set(memory.anchor, memory.anchor)\n }\n else {\n element.anchor.set(memory.anchor.x, memory.anchor.y)\n }\n }\n memory.roundPixels && (element.roundPixels = memory.roundPixels)\n for (let event in memory.onEvents) {\n let id = memory.onEvents[event]\n let instance = getEventTypeById(id)\n if (instance) {\n element.onEvent(event, instance)\n }\n }\n}\n","import { Sprite, SpriteOptions, Texture, TextureSourceLike } from \"pixi.js\";\nimport { addImage, loadImage, showWithDissolveTransition } from \"../../functions\";\nimport { getTexture } from \"../../functions/TextureUtility\";\nimport ICanvasImageMemory from \"../../interface/canvas/ICanvasImageMemory\";\nimport CanvasSprite, { getMemorySprite, setMemorySprite } from \"./CanvasSprite\";\n\nexport const CANVAS_IMAGE_ID = \"CanvasImage\"\n\n/**\n * This class is a extension of the CanvasSprite class, it has the same properties and methods,\n * but it has some features that make texture management easier.\n * You need to use CanvasImage.load() to show the image in the canvas.\n * This class is used for functions like {@link addImage}, {@link loadImage} and {@link showWithDissolveTransition}.\n * @example\n * ```typescript\n * let alien = new CanvasImage({\n * anchor: { x: 0.5, y: 0.5 },\n * x: 100,\n * y: 100,\n * }, 'https://pixijs.com/assets/eggHead.png')\n * await alien.load()\n * GameWindowManager.addCanvasElement(\"alien\", alien)\n * ```\n * @example\n * ```typescript\n * let alien = addImage(\"alien\", 'https://pixijs.com/assets/eggHead.png')\n * alien.anchor.set(0.5);\n * alien.x = 100\n * alien.y = 100\n * await alien.load()\n * ```\n */\nexport default class CanvasImage extends CanvasSprite<ICanvasImageMemory> {\n pixivnId: string = CANVAS_IMAGE_ID\n constructor(options?: SpriteOptions | Texture | undefined, imageLink?: string) {\n super(options)\n if (imageLink) {\n this.imageLink = imageLink\n }\n }\n override get memory(): ICanvasImageMemory {\n return {\n ...getMemorySprite(this),\n pixivnId: this.pixivnId,\n imageLink: this.imageLink,\n }\n }\n override set memory(memory: ICanvasImageMemory) {\n setMemorySprite(this, memory)\n this.imageLink = memory.imageLink\n }\n imageLink: string = \"\"\n static override from(source: Texture | TextureSourceLike, skipCache?: boolean) {\n let sprite = Sprite.from(source, skipCache)\n let mySprite = new CanvasImage()\n mySprite.texture = sprite.texture\n return mySprite\n }\n /** \n * Load the image from the link and set the texture of the sprite.\n * @param image The link of the image. If it is not set, it will use the imageLink property.\n * @returns A promise that resolves when the image is loaded.\n */\n async load(image?: string) {\n if (!image) {\n image = this.imageLink\n }\n return getTexture(this.imageLink)\n .then((texture) => {\n if (texture) {\n this.texture = texture\n }\n })\n .catch((e) => {\n console.error(\"[Pixi'VN] Error into CanvasImage.load()\", e)\n })\n }\n}\n","import { ContainerChild, ContainerEvents, EventEmitter, Text, TextOptions } from \"pixi.js\";\nimport { getEventInstanceById, getEventTypeById } from \"../../decorators/EventDecorator\";\nimport { getTextStyle } from \"../../functions/TextureUtility\";\nimport ICanvasTextMemory from \"../../interface/canvas/ICanvasTextTextMemory\";\nimport { CanvasEventNamesType } from \"../../types\";\nimport { EventIdType } from \"../../types/EventIdType\";\nimport CanvasEvent from \"../CanvasEvent\";\nimport CanvasBase from \"./CanvasBase\";\nimport { getMemoryContainer, setMemoryContainer } from \"./CanvasContainer\";\n\nexport const CANVAS_TEXT_ID = \"CanvasText\"\n\n/**\n * This class is a extension of the [PIXI.Text class](https://pixijs.com/8.x/examples/text/pixi-text), it has the same properties and methods,\n * but it has the ability to be saved and loaded by the Pixi'VN library.\n * @example\n * ```typescript\n * const text = new CanvasText();\n * text.text = \"Hello World\"\n * GameWindowManager.addCanvasElement(\"text\", text);\n * ```\n */\nexport default class CanvasText extends Text implements CanvasBase<ICanvasTextMemory> {\n constructor(options?: TextOptions) {\n super(options)\n this.pixivnId = this.constructor.prototype.pixivnId || CANVAS_TEXT_ID\n }\n pixivnId: string = CANVAS_TEXT_ID\n get memory(): ICanvasTextMemory {\n return getMemoryText(this)\n }\n set memory(value: ICanvasTextMemory) {\n setMemoryText(this, value)\n }\n private _onEvents: { [name: CanvasEventNamesType]: EventIdType } = {}\n get onEvents() {\n return this._onEvents\n }\n /**\n * is same function as on(), but it keeps in memory the children.\n * @param event The event type, e.g., 'click', 'mousedown', 'mouseup', 'pointerdown', etc.\n * @param eventClass The class that extends CanvasEvent.\n * @returns \n * @example\n * ```typescript\n * \\@eventDecorator()\n * export class EventTest extends CanvasEvent<CanvasText> {\n * override fn(event: CanvasEventNamesType, text: CanvasText): void {\n * if (event === 'pointerdown') {\n * text.scale.x *= 1.25;\n * text.scale.y *= 1.25;\n * }\n * }\n * }\n * ```\n * \n * ```typescript\n * const text = new CanvasText();\n * text.text = \"Hello World\"\n *\n * text.eventMode = 'static';\n * text.cursor = 'pointer';\n * text.onEvent('pointerdown', EventTest);\n *\n * GameWindowManager.addCanvasElement(\"text\", text);\n * ```\n */\n onEvent<T extends CanvasEventNamesType, T2 extends typeof CanvasEvent<typeof this>>(event: T, eventClass: T2) {\n let id = eventClass.prototype.id\n let instance = getEventInstanceById(id)\n this._onEvents[event] = id\n if (instance) {\n super.on(event, () => {\n (instance as CanvasEvent<CanvasBase<any>>).fn(event, this)\n })\n }\n return this\n }\n /**\n * on() does not keep in memory the event class, use onEvent() instead\n * @deprecated\n * @private\n * @param event \n * @param fn \n * @param context \n */\n override on<T extends keyof ContainerEvents<ContainerChild> | keyof { [K: symbol]: any;[K: {} & string]: any; }>(event: T, fn: (...args: EventEmitter.ArgumentMap<ContainerEvents<ContainerChild> & { [K: symbol]: any;[K: {} & string]: any; }>[Extract<T, keyof ContainerEvents<ContainerChild> | keyof { [K: symbol]: any;[K: {} & string]: any; }>]) => void, context?: any): this {\n return super.on(event, fn, context)\n }\n}\n\nexport function getMemoryText<T extends CanvasText>(element: T | CanvasText): ICanvasTextMemory {\n let temp = getMemoryContainer(element)\n return {\n ...temp,\n pixivnId: element.pixivnId,\n anchor: { x: element.anchor.x, y: element.anchor.y },\n text: element.text,\n resolution: element.resolution,\n style: getTextStyle(element.style),\n roundPixels: element.roundPixels,\n onEvents: element.onEvents,\n }\n}\n\nexport function setMemoryText(element: CanvasText, memory: ICanvasTextMemory) {\n setMemoryContainer(element, memory)\n if (memory.anchor) {\n if (typeof memory.anchor === \"number\") {\n element.anchor.set(memory.anchor, memory.anchor)\n }\n else {\n element.anchor.set(memory.anchor.x, memory.anchor.y)\n }\n }\n memory.text && (element.text = memory.text)\n memory.resolution && (element.resolution = memory.resolution)\n memory.style && (element.style = memory.style)\n memory.roundPixels && (element.roundPixels = memory.roundPixels)\n for (let event in memory.onEvents) {\n let id = memory.onEvents[event]\n let instance = getEventTypeById(id)\n if (instance) {\n element.onEvent(event as CanvasEventNamesType, instance)\n }\n }\n}\n","import { CanvasContainer, CanvasImage, CanvasSprite, CanvasText } from \"../classes/canvas\"\nimport CanvasBase from \"../classes/canvas/CanvasBase\"\nimport { CANVAS_CONTAINER_ID } from \"../classes/canvas/CanvasContainer\"\nimport { CANVAS_IMAGE_ID } from \"../classes/canvas/CanvasImage\"\nimport { CANVAS_SPRITE_ID } from \"../classes/canvas/CanvasSprite\"\nimport { CANVAS_TEXT_ID } from \"../classes/canvas/CanvasText\"\nimport { CanvasElementTagType } from \"../types/CanvasElementTagType\"\n\nexport const registeredCanvasElement: { [name: CanvasElementTagType]: typeof CanvasBase<any> } = {}\n/**\n * Is a decorator that register a canvas element in the game.\n * @param name Name of the canvas element, by default it will use the class name. If the name is already registered, it will show a warning\n * @returns \n */\nexport default function canvasElementDecorator(name?: CanvasElementTagType) {\n return function (target: typeof CanvasBase<any>) {\n if (!name) {\n name = target.name\n }\n if (registeredCanvasElement[name]) {\n console.warn(`[Pixi'VN] CanvasElement ${name} already registered`)\n }\n target.prototype.pixivnId = name\n registeredCanvasElement[name] = target\n }\n}\n\nexport function getCanvasElementTypeById<T extends typeof CanvasBase<any>>(canvasId: CanvasElementTagType): T | undefined {\n try {\n let eventType = registeredCanvasElement[canvasId]\n if (!eventType) {\n console.error(`[Pixi'VN] CanvasElement ${canvasId} not found`)\n return\n }\n new eventType()\n return eventType as T\n }\n catch (e) {\n console.error(`[Pixi'VN] Error while getting CanvasElement ${canvasId}`, e)\n return\n }\n}\n\nexport function getCanvasElementInstanceById<T extends CanvasBase<any>>(canvasId: CanvasElementTagType): T | undefined {\n try {\n let eventType = registeredCanvasElement[canvasId]\n if (!eventType) {\n if (canvasId === CANVAS_CONTAINER_ID) {\n eventType = CanvasContainer\n }\n else if (canvasId === CANVAS_IMAGE_ID) {\n eventType = CanvasImage\n }\n else if (canvasId === CANVAS_SPRITE_ID) {\n eventType = CanvasSprite\n }\n else if (canvasId === CANVAS_TEXT_ID) {\n eventType = CanvasText\n }\n }\n\n if (!eventType) {\n console.error(`[Pixi'VN] CanvasElement ${canvasId} not found`)\n return\n }\n let canvasElement = new eventType()\n return canvasElement as T\n }\n catch (e) {\n console.error(`[Pixi'VN] Error while getting CanvasElement ${canvasId}`, e)\n return\n }\n}\n","import { Texture } from \"pixi.js\";\nimport { CanvasBase } from \"../classes/canvas\";\nimport { getCanvasElementInstanceById } from \"../decorators/CanvasElementDecorator\";\nimport { ICanvasBaseMemory, ITextureMemory } from \"../interface/canvas\";\n\n/**\n * Get the memory object of the PixiJS texture\n * @param texture PixiJS Texture object\n * @returns Memory object of the texture\n */\nexport function getTextureMemory(texture: Texture): ITextureMemory {\n let sourceTexture = texture.source\n let textureMemory: ITextureMemory = {\n image: sourceTexture.label\n }\n return textureMemory\n}\n\n/**\n * Export a Canvas element to a memory object\n * @param element Canvas element\n * @returns Memory object of the canvas\n */\nexport function exportCanvasElement<T extends CanvasBase<any>>(\n element: T,\n): ICanvasBaseMemory {\n return element.memory\n}\n\n/**\n * Import a Canvas element from a memory object\n * @param memory Memory object of the canvas\n * @returns Canvas element\n */\nexport function importCanvasElement<T extends CanvasBase<any>>(\n memory: ICanvasBaseMemory,\n): T {\n let element = getCanvasElementInstanceById<T>(memory.pixivnId)\n if (element) {\n element.memory = memory\n }\n else {\n throw new Error(\"[Pixi'VN] The element \" + memory.pixivnId + \" could not be created\")\n }\n\n return element\n}\n","import { Container, ContainerOptions } from \"pixi.js\";\nimport { exportCanvasElement, importCanvasElement } from \"../../functions/CanvasUtility\";\nimport ICanvasContainerMemory from \"../../interface/canvas/ICanvasContainerMemory\";\nimport CanvasBase from \"./CanvasBase\";\n\nexport const CANVAS_CONTAINER_ID = \"CanvasContainer\"\n\n/**\n * This class is a extension of the [PIXI.Container class](https://pixijs.com/8.x/examples/basic/container), it has the same properties and methods, \n * but it has the ability to be saved and loaded by the Pixi'VN library.\n * @example\n * ```typescript\n * const container = new CanvasContainer();\n * GameWindowManager.addCanvasElement(container);\n * const texture = await Assets.load('https://pixijs.com/assets/bunny.png');\n * for (let i = 0; i < 25; i++)\n * {\n * const bunny = new CanvasSprite(texture);\n * bunny.x = (i % 5) * 40;\n * bunny.y = Math.floor(i / 5) * 40;\n * container.addChild(bunny);\n * }\n * ```\n */\nexport default class CanvasContainer extends Container implements CanvasBase<ICanvasContainerMemory> {\n constructor(options?: ContainerOptions) {\n super(options)\n this.pixivnId = this.constructor.prototype.pixivnId || CANVAS_CONTAINER_ID\n }\n pixivnId: string = CANVAS_CONTAINER_ID\n get memory(): ICanvasContainerMemory {\n let memory = getMemoryContainer(this)\n this.children.forEach(child => {\n memory.elements.push(exportCanvasElement(child as CanvasBase<any>))\n })\n return memory\n }\n set memory(value: ICanvasContainerMemory) {\n setMemoryContainer(this, value)\n value.elements.forEach(child => {\n this.addChild(importCanvasElement(child))\n })\n }\n}\n\nexport function getMemoryContainer<T extends Container>(element: T): ICanvasContainerMemory {\n let className = \"CanvasContainer\"\n if (element.hasOwnProperty(\"pixivnId\")) {\n className = (element as any).pixivnId\n }\n return {\n pixivnId: className,\n elements: [],\n\n width: element.width,\n height: element.height,\n\n isRenderGroup: element.isRenderGroup,\n blendMode: element.blendMode,\n tint: element.tint,\n alpha: element.alpha,\n angle: element.angle,\n renderable: element.renderable,\n rotation: element.rotation,\n scale: { x: element.scale.x, y: element.scale.y },\n pivot: { x: element.pivot.x, y: element.pivot.y },\n position: { x: element.position.x, y: element.position.y },\n skew: { x: element.skew.x, y: element.skew.y },\n visible: element.visible,\n x: element.x,\n y: element.y,\n boundsArea: element.boundsArea,\n\n cursor: element.cursor,\n eventMode: element.eventMode,\n interactive: element.interactive,\n interactiveChildren: element.interactiveChildren,\n hitArea: element.hitArea\n }\n}\n\nexport function setMemoryContainer<T extends Container>(element: T | Container, memory: ContainerOptions) {\n memory.isRenderGroup && (element.isRenderGroup = memory.isRenderGroup)\n memory.blendMode && (element.blendMode = memory.blendMode)\n memory.tint && (element.tint = memory.tint)\n memory.alpha && (element.alpha = memory.alpha)\n memory.angle && (element.angle = memory.angle)\n memory.renderable && (element.renderable = memory.renderable)\n memory.rotation && (element.rotation = memory.rotation)\n if (memory.scale) {\n if (typeof memory.scale === \"number\") {\n element.scale.set(memory.scale, memory.scale)\n }\n else {\n element.scale.set(memory.scale.x, memory.scale.y)\n }\n }\n if (memory.pivot) {\n if (typeof memory.pivot === \"number\") {\n element.pivot.set(memory.pivot, memory.pivot)\n }\n else {\n element.pivot.set(memory.pivot.x, memory.pivot.y)\n }\n }\n memory.position && (element.position.set(memory.position.x, memory.position.y))\n memory.skew && (element.skew.set(memory.skew.x, memory.skew.y))\n memory.visible && (element.visible = memory.visible)\n memory.x && (element.x = memory.x)\n memory.y && (element.y = memory.y)\n memory.boundsArea && (element.boundsArea = memory.boundsArea)\n\n memory.cursor && (element.cursor = memory.cursor)\n memory.eventMode && (element.eventMode = memory.eventMode)\n memory.interactive && (element.interactive = memory.interactive)\n memory.interactiveChildren && (element.interactiveChildren = memory.interactiveChildren)\n memory.hitArea && (element.hitArea = memory.hitArea)\n\n // end\n // width and height must be set after the scale\n memory.width && (element.width = memory.width)\n memory.height && (element.height = memory.height)\n}\n"]}
@@ -486,8 +486,6 @@ function getMemoryContainer(element) {
486
486
  };
487
487
  }
488
488
  function setMemoryContainer(element, memory) {
489
- memory.width && (element.width = memory.width);
490
- memory.height && (element.height = memory.height);
491
489
  memory.isRenderGroup && (element.isRenderGroup = memory.isRenderGroup);
492
490
  memory.blendMode && (element.blendMode = memory.blendMode);
493
491
  memory.tint && (element.tint = memory.tint);
@@ -520,6 +518,8 @@ function setMemoryContainer(element, memory) {
520
518
  memory.interactive && (element.interactive = memory.interactive);
521
519
  memory.interactiveChildren && (element.interactiveChildren = memory.interactiveChildren);
522
520
  memory.hitArea && (element.hitArea = memory.hitArea);
521
+ memory.width && (element.width = memory.width);
522
+ memory.height && (element.height = memory.height);
523
523
  }
524
524
 
525
525
  export { CANVAS_CONTAINER_ID, CanvasContainer as default, getMemoryContainer, setMemoryContainer };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/functions/TextureUtility.ts","../../../src/decorators/EventDecorator.ts","../../../src/classes/canvas/CanvasSprite.ts","../../../src/classes/canvas/CanvasImage.ts","../../../src/classes/canvas/CanvasText.ts","../../../src/decorators/CanvasElementDecorator.ts","../../../src/functions/CanvasUtility.ts","../../../src/classes/canvas/CanvasContainer.ts"],"names":["Sprite","Container"],"mappings":"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","file":"CanvasContainer.mjs","sourcesContent":["import { Assets, ColorSource, FillGradient, FillPattern, StrokeStyle, TextStyle, TextStyleOptions, Texture } from 'pixi.js';\n\n/**\n * Get a texture from a url.\n * @param imageUrl is the url of the image.\n * @returns the texture of the image, or a text with the error.\n */\nexport async function getTexture(imageUrl: string): Promise<Texture | void> {\n if (Assets.cache.has(imageUrl)) {\n return Assets.get(imageUrl)\n }\n return Assets.load(imageUrl)\n .then((texture) => {\n if (!texture) {\n console.error(\"[Pixi'VN] Texture not found\", imageUrl)\n return\n }\n // if texture not is a Texture, then it is a TextureResource\n if (!(texture instanceof Texture)) {\n console.error(\"[Pixi'VN] File not is a image\", imageUrl)\n return\n }\n\n return texture\n })\n .catch((e) => {\n console.error(\"[Pixi'VN] Error loading image\", e)\n return\n })\n}\n\nfunction getFillGradientFillPattern(prop: ColorSource | FillGradient | FillPattern | StrokeStyle, propName: keyof TextStyle) {\n if (!(prop instanceof Object)) {\n return prop\n }\n // TODO: FillGradient and FillPattern are not supported yet\n console.warn(`[Pixi'VN] CanvasText.style.${propName} is a FillGradient or FillPattern, this is not supported yet.`, prop)\n return undefined\n}\n\nexport function getTextStyle(style: TextStyle): TextStyleOptions {\n return {\n align: style.align,\n breakWords: style.breakWords,\n dropShadow: style.dropShadow,\n fill: getFillGradientFillPattern(style.stroke, \"fill\"),\n fontFamily: style.fontFamily,\n fontSize: style.fontSize,\n fontStyle: style.fontStyle,\n fontVariant: style.fontVariant,\n fontWeight: style.fontWeight,\n leading: style.leading,\n letterSpacing: style.letterSpacing,\n lineHeight: style.lineHeight,\n padding: style.padding,\n stroke: getFillGradientFillPattern(style.stroke, \"stroke\"),\n textBaseline: style.textBaseline,\n trim: style.trim,\n whiteSpace: style.whiteSpace,\n wordWrap: style.wordWrap,\n wordWrapWidth: style.wordWrapWidth,\n }\n}\n","import { CanvasEvent } from \"../classes\"\nimport CanvasBase from \"../classes/canvas/CanvasBase\"\nimport { CanvasEventNamesType } from \"../types\"\nimport { EventIdType } from \"../types/EventIdType\"\n\n/**\n * Canvas Event Register\n */\nexport const registeredEvents: { [name: EventIdType]: typeof CanvasEvent<CanvasEventNamesType> } = {}\n/**\n * Is a decorator that register a event in the game.\n * Is a required decorator for use the event in the game.\n * Thanks to this decoration the game has the possibility of updating the events to the latest modification and saving the game.\n * @param name is th identifier of the event, by default is the name of the class\n * @returns \n */\nexport default function eventDecorator(name?: EventIdType) {\n return function (target: typeof CanvasEvent<any>) {\n if (!name) {\n name = target.name\n }\n if (registeredEvents[name]) {\n console.info(`[Pixi'VN] Event ${name} already exists, it will be overwritten`)\n }\n target.prototype.id = name\n registeredEvents[name] = target\n }\n}\n\n/**\n * Get an event by the id.\n * @param eventId The id of the event.\n * @returns The event type.\n */\nexport function getEventTypeById<T = typeof CanvasEvent<CanvasBase<any>>>(eventId: EventIdType): T | undefined {\n try {\n let eventType = registeredEvents[eventId]\n if (!eventType) {\n console.error(`[Pixi'VN] Event ${eventId} not found`)\n return\n }\n new eventType()\n return eventType as T\n }\n catch (e) {\n console.error(`[Pixi'VN] Error while getting Event ${eventId}`, e)\n return\n }\n}\n\n/**\n * Get an event instance by the id.\n * @param eventId The id of the event.\n * @returns The event instance.\n */\nexport function getEventInstanceById<T = CanvasEvent<CanvasBase<any>>>(eventId: EventIdType): T | undefined {\n try {\n let eventType = registeredEvents[eventId]\n if (!eventType) {\n console.error(`[Pixi'VN] Event ${eventId} not found`)\n return\n }\n let event = new eventType()\n return event as T\n }\n catch (e) {\n console.error(`[Pixi'VN] Error while getting Event ${eventId}`, e)\n return\n }\n}\n","import { ContainerChild, ContainerEvents, EventEmitter, Sprite, SpriteOptions, Texture, TextureSourceLike } from \"pixi.js\";\nimport { getEventInstanceById, getEventTypeById } from \"../../decorators/EventDecorator\";\nimport { getTextureMemory } from \"../../functions/CanvasUtility\";\nimport { getTexture } from \"../../functions/TextureUtility\";\nimport ICanvasBaseMemory from \"../../interface/canvas/ICanvasBaseMemory\";\nimport ICanvasSpriteMemory, { ICanvasSpriteBaseMemory } from \"../../interface/canvas/ICanvasSpriteMemory\";\nimport { CanvasEventNamesType } from \"../../types\";\nimport { EventIdType } from \"../../types/EventIdType\";\nimport CanvasEvent from \"../CanvasEvent\";\nimport CanvasBase from \"./CanvasBase\";\nimport { getMemoryContainer, setMemoryContainer } from \"./CanvasContainer\";\n\nexport const CANVAS_SPRITE_ID = \"CanvasSprite\"\n\n/**\n * This class is a extension of the [PIXI.Sprite class](https://pixijs.com/8.x/examples/sprite/basic), it has the same properties and methods,\n * but it has the ability to be saved and loaded by the Pixi'VN library.\n * @example\n * ```typescript\n * const texture = await Assets.load('https://pixijs.com/assets/bunny.png');\n * const sprite = CanvasSprite.from(texture);\n *\n * sprite.anchor.set(0.5);\n * sprite.x = GameWindowManager.screen.width / 2;\n * sprite.y = GameWindowManager.screen.height / 2;\n *\n * sprite.eventMode = 'static';\n * sprite.cursor = 'pointer';\n * sprite.onEvent('pointerdown', EventTest);\n *\n * GameWindowManager.addCanvasElement(\"bunny\", sprite);\n * ```\n */\nexport default class CanvasSprite<Memory extends SpriteOptions & ICanvasBaseMemory = ICanvasSpriteMemory> extends Sprite implements CanvasBase<Memory | ICanvasSpriteMemory> {\n constructor(options?: SpriteOptions | Texture) {\n super(options)\n this.pixivnId = this.constructor.prototype.pixivnId || CANVAS_SPRITE_ID\n }\n pixivnId: string = CANVAS_SPRITE_ID\n get memory(): Memory | ICanvasSpriteMemory {\n return getMemorySprite(this)\n }\n set memory(value: ICanvasSpriteMemory) {\n setMemorySprite(this, value)\n }\n private _onEvents: { [name: CanvasEventNamesType]: EventIdType } = {}\n get onEvents() {\n return this._onEvents\n }\n /**\n * is same function as on(), but it keeps in memory the children.\n * @param event The event type, e.g., 'click', 'mousedown', 'mouseup', 'pointerdown', etc.\n * @param eventClass The class that extends CanvasEvent.\n * @returns \n * @example\n * ```typescript\n * \\@eventDecorator()\n * export class EventTest extends CanvasEvent<CanvasSprite> {\n * override fn(event: CanvasEventNamesType, sprite: CanvasSprite): void {\n * if (event === 'pointerdown') {\n * sprite.scale.x *= 1.25;\n * sprite.scale.y *= 1.25;\n * }\n * }\n * }\n * ```\n * \n * ```typescript\n * let sprite = addImage(\"alien\", 'https://pixijs.com/assets/eggHead.png')\n * await sprite.load()\n *\n * sprite.eventMode = 'static';\n * sprite.cursor = 'pointer';\n * sprite.onEvent('pointerdown', EventTest);\n *\n * GameWindowManager.addCanvasElement(\"bunny\", sprite);\n * ```\n */\n onEvent<T extends CanvasEventNamesType, T2 extends typeof CanvasEvent<typeof this>>(event: T, eventClass: T2) {\n let id = eventClass.prototype.id\n let instance = getEventInstanceById(id)\n this._onEvents[event] = id\n if (instance) {\n super.on(event, () => {\n (instance as CanvasEvent<CanvasBase<any>>).fn(event, this)\n })\n }\n return this\n }\n /**\n * on() does not keep in memory the event class, use onEvent() instead\n * @deprecated\n * @private\n * @param event \n * @param fn \n * @param context \n */\n override on<T extends keyof ContainerEvents<ContainerChild> | keyof { [K: symbol]: any;[K: {} & string]: any; }>(event: T, fn: (...args: EventEmitter.ArgumentMap<ContainerEvents<ContainerChild> & { [K: symbol]: any;[K: {} & string]: any; }>[Extract<T, keyof ContainerEvents<ContainerChild> | keyof { [K: symbol]: any;[K: {} & string]: any; }>]) => void, context?: any): this {\n return super.on(event, fn, context)\n }\n static override from(source: Texture | TextureSourceLike, skipCache?: boolean): CanvasSprite<any> {\n let sprite = Sprite.from(source, skipCache)\n let mySprite = new CanvasSprite()\n mySprite.texture = sprite.texture\n return mySprite\n }\n}\n\nexport function getMemorySprite<T extends CanvasSprite<any>>(element: T | CanvasSprite<any>): ICanvasSpriteMemory {\n let temp = getMemoryContainer(element)\n return {\n ...temp,\n pixivnId: element.pixivnId,\n textureImage: getTextureMemory((element as any).texture),\n anchor: { x: element.anchor.x, y: element.anchor.y },\n roundPixels: element.roundPixels,\n onEvents: element.onEvents,\n }\n}\n\nexport function setMemorySprite<Memory extends ICanvasSpriteBaseMemory>(element: CanvasSprite<any>, memory: Memory) {\n setMemoryContainer(element, memory)\n getTexture(memory.textureImage.image).then((texture) => {\n if (texture) {\n element.texture = texture\n }\n })\n if (memory.anchor) {\n if (typeof memory.anchor === \"number\") {\n element.anchor.set(memory.anchor, memory.anchor)\n }\n else {\n element.anchor.set(memory.anchor.x, memory.anchor.y)\n }\n }\n memory.roundPixels && (element.roundPixels = memory.roundPixels)\n for (let event in memory.onEvents) {\n let id = memory.onEvents[event]\n let instance = getEventTypeById(id)\n if (instance) {\n element.onEvent(event, instance)\n }\n }\n}\n","import { Sprite, SpriteOptions, Texture, TextureSourceLike } from \"pixi.js\";\nimport { addImage, loadImage, showWithDissolveTransition } from \"../../functions\";\nimport { getTexture } from \"../../functions/TextureUtility\";\nimport ICanvasImageMemory from \"../../interface/canvas/ICanvasImageMemory\";\nimport CanvasSprite, { getMemorySprite, setMemorySprite } from \"./CanvasSprite\";\n\nexport const CANVAS_IMAGE_ID = \"CanvasImage\"\n\n/**\n * This class is a extension of the CanvasSprite class, it has the same properties and methods,\n * but it has some features that make texture management easier.\n * You need to use CanvasImage.load() to show the image in the canvas.\n * This class is used for functions like {@link addImage}, {@link loadImage} and {@link showWithDissolveTransition}.\n * @example\n * ```typescript\n * let alien = new CanvasImage({\n * anchor: { x: 0.5, y: 0.5 },\n * x: 100,\n * y: 100,\n * }, 'https://pixijs.com/assets/eggHead.png')\n * await alien.load()\n * GameWindowManager.addCanvasElement(\"alien\", alien)\n * ```\n * @example\n * ```typescript\n * let alien = addImage(\"alien\", 'https://pixijs.com/assets/eggHead.png')\n * alien.anchor.set(0.5);\n * alien.x = 100\n * alien.y = 100\n * await alien.load()\n * ```\n */\nexport default class CanvasImage extends CanvasSprite<ICanvasImageMemory> {\n pixivnId: string = CANVAS_IMAGE_ID\n constructor(options?: SpriteOptions | Texture | undefined, imageLink?: string) {\n super(options)\n if (imageLink) {\n this.imageLink = imageLink\n }\n }\n override get memory(): ICanvasImageMemory {\n return {\n ...getMemorySprite(this),\n pixivnId: this.pixivnId,\n imageLink: this.imageLink,\n }\n }\n override set memory(memory: ICanvasImageMemory) {\n setMemorySprite(this, memory)\n this.imageLink = memory.imageLink\n }\n imageLink: string = \"\"\n static override from(source: Texture | TextureSourceLike, skipCache?: boolean) {\n let sprite = Sprite.from(source, skipCache)\n let mySprite = new CanvasImage()\n mySprite.texture = sprite.texture\n return mySprite\n }\n /** \n * Load the image from the link and set the texture of the sprite.\n * @param image The link of the image. If it is not set, it will use the imageLink property.\n * @returns A promise that resolves when the image is loaded.\n */\n async load(image?: string) {\n if (!image) {\n image = this.imageLink\n }\n return getTexture(this.imageLink)\n .then((texture) => {\n if (texture) {\n this.texture = texture\n }\n })\n .catch((e) => {\n console.error(\"[Pixi'VN] Error into CanvasImage.load()\", e)\n })\n }\n}\n","import { ContainerChild, ContainerEvents, EventEmitter, Text, TextOptions } from \"pixi.js\";\nimport { getEventInstanceById, getEventTypeById } from \"../../decorators/EventDecorator\";\nimport { getTextStyle } from \"../../functions/TextureUtility\";\nimport ICanvasTextMemory from \"../../interface/canvas/ICanvasTextTextMemory\";\nimport { CanvasEventNamesType } from \"../../types\";\nimport { EventIdType } from \"../../types/EventIdType\";\nimport CanvasEvent from \"../CanvasEvent\";\nimport CanvasBase from \"./CanvasBase\";\nimport { getMemoryContainer, setMemoryContainer } from \"./CanvasContainer\";\n\nexport const CANVAS_TEXT_ID = \"CanvasText\"\n\n/**\n * This class is a extension of the [PIXI.Text class](https://pixijs.com/8.x/examples/text/pixi-text), it has the same properties and methods,\n * but it has the ability to be saved and loaded by the Pixi'VN library.\n * @example\n * ```typescript\n * const text = new CanvasText();\n * text.text = \"Hello World\"\n * GameWindowManager.addCanvasElement(\"text\", text);\n * ```\n */\nexport default class CanvasText extends Text implements CanvasBase<ICanvasTextMemory> {\n constructor(options?: TextOptions) {\n super(options)\n this.pixivnId = this.constructor.prototype.pixivnId || CANVAS_TEXT_ID\n }\n pixivnId: string = CANVAS_TEXT_ID\n get memory(): ICanvasTextMemory {\n return getMemoryText(this)\n }\n set memory(value: ICanvasTextMemory) {\n setMemoryText(this, value)\n }\n private _onEvents: { [name: CanvasEventNamesType]: EventIdType } = {}\n get onEvents() {\n return this._onEvents\n }\n /**\n * is same function as on(), but it keeps in memory the children.\n * @param event The event type, e.g., 'click', 'mousedown', 'mouseup', 'pointerdown', etc.\n * @param eventClass The class that extends CanvasEvent.\n * @returns \n * @example\n * ```typescript\n * \\@eventDecorator()\n * export class EventTest extends CanvasEvent<CanvasText> {\n * override fn(event: CanvasEventNamesType, text: CanvasText): void {\n * if (event === 'pointerdown') {\n * text.scale.x *= 1.25;\n * text.scale.y *= 1.25;\n * }\n * }\n * }\n * ```\n * \n * ```typescript\n * const text = new CanvasText();\n * text.text = \"Hello World\"\n *\n * text.eventMode = 'static';\n * text.cursor = 'pointer';\n * text.onEvent('pointerdown', EventTest);\n *\n * GameWindowManager.addCanvasElement(\"text\", text);\n * ```\n */\n onEvent<T extends CanvasEventNamesType, T2 extends typeof CanvasEvent<typeof this>>(event: T, eventClass: T2) {\n let id = eventClass.prototype.id\n let instance = getEventInstanceById(id)\n this._onEvents[event] = id\n if (instance) {\n super.on(event, () => {\n (instance as CanvasEvent<CanvasBase<any>>).fn(event, this)\n })\n }\n return this\n }\n /**\n * on() does not keep in memory the event class, use onEvent() instead\n * @deprecated\n * @private\n * @param event \n * @param fn \n * @param context \n */\n override on<T extends keyof ContainerEvents<ContainerChild> | keyof { [K: symbol]: any;[K: {} & string]: any; }>(event: T, fn: (...args: EventEmitter.ArgumentMap<ContainerEvents<ContainerChild> & { [K: symbol]: any;[K: {} & string]: any; }>[Extract<T, keyof ContainerEvents<ContainerChild> | keyof { [K: symbol]: any;[K: {} & string]: any; }>]) => void, context?: any): this {\n return super.on(event, fn, context)\n }\n}\n\nexport function getMemoryText<T extends CanvasText>(element: T | CanvasText): ICanvasTextMemory {\n let temp = getMemoryContainer(element)\n return {\n ...temp,\n pixivnId: element.pixivnId,\n anchor: { x: element.anchor.x, y: element.anchor.y },\n text: element.text,\n resolution: element.resolution,\n style: getTextStyle(element.style),\n roundPixels: element.roundPixels,\n onEvents: element.onEvents,\n }\n}\n\nexport function setMemoryText(element: CanvasText, memory: ICanvasTextMemory) {\n setMemoryContainer(element, memory)\n if (memory.anchor) {\n if (typeof memory.anchor === \"number\") {\n element.anchor.set(memory.anchor, memory.anchor)\n }\n else {\n element.anchor.set(memory.anchor.x, memory.anchor.y)\n }\n }\n memory.text && (element.text = memory.text)\n memory.resolution && (element.resolution = memory.resolution)\n memory.style && (element.style = memory.style)\n memory.roundPixels && (element.roundPixels = memory.roundPixels)\n for (let event in memory.onEvents) {\n let id = memory.onEvents[event]\n let instance = getEventTypeById(id)\n if (instance) {\n element.onEvent(event as CanvasEventNamesType, instance)\n }\n }\n}\n","import { CanvasContainer, CanvasImage, CanvasSprite, CanvasText } from \"../classes/canvas\"\nimport CanvasBase from \"../classes/canvas/CanvasBase\"\nimport { CANVAS_CONTAINER_ID } from \"../classes/canvas/CanvasContainer\"\nimport { CANVAS_IMAGE_ID } from \"../classes/canvas/CanvasImage\"\nimport { CANVAS_SPRITE_ID } from \"../classes/canvas/CanvasSprite\"\nimport { CANVAS_TEXT_ID } from \"../classes/canvas/CanvasText\"\nimport { CanvasElementTagType } from \"../types/CanvasElementTagType\"\n\nexport const registeredCanvasElement: { [name: CanvasElementTagType]: typeof CanvasBase<any> } = {}\n/**\n * Is a decorator that register a canvas element in the game.\n * @param name Name of the canvas element, by default it will use the class name. If the name is already registered, it will show a warning\n * @returns \n */\nexport default function canvasElementDecorator(name?: CanvasElementTagType) {\n return function (target: typeof CanvasBase<any>) {\n if (!name) {\n name = target.name\n }\n if (registeredCanvasElement[name]) {\n console.warn(`[Pixi'VN] CanvasElement ${name} already registered`)\n }\n target.prototype.pixivnId = name\n registeredCanvasElement[name] = target\n }\n}\n\nexport function getCanvasElementTypeById<T extends typeof CanvasBase<any>>(canvasId: CanvasElementTagType): T | undefined {\n try {\n let eventType = registeredCanvasElement[canvasId]\n if (!eventType) {\n console.error(`[Pixi'VN] CanvasElement ${canvasId} not found`)\n return\n }\n new eventType()\n return eventType as T\n }\n catch (e) {\n console.error(`[Pixi'VN] Error while getting CanvasElement ${canvasId}`, e)\n return\n }\n}\n\nexport function getCanvasElementInstanceById<T extends CanvasBase<any>>(canvasId: CanvasElementTagType): T | undefined {\n try {\n let eventType = registeredCanvasElement[canvasId]\n if (!eventType) {\n if (canvasId === CANVAS_CONTAINER_ID) {\n eventType = CanvasContainer\n }\n else if (canvasId === CANVAS_IMAGE_ID) {\n eventType = CanvasImage\n }\n else if (canvasId === CANVAS_SPRITE_ID) {\n eventType = CanvasSprite\n }\n else if (canvasId === CANVAS_TEXT_ID) {\n eventType = CanvasText\n }\n }\n\n if (!eventType) {\n console.error(`[Pixi'VN] CanvasElement ${canvasId} not found`)\n return\n }\n let canvasElement = new eventType()\n return canvasElement as T\n }\n catch (e) {\n console.error(`[Pixi'VN] Error while getting CanvasElement ${canvasId}`, e)\n return\n }\n}\n","import { Texture } from \"pixi.js\";\nimport { CanvasBase } from \"../classes/canvas\";\nimport { getCanvasElementInstanceById } from \"../decorators/CanvasElementDecorator\";\nimport { ICanvasBaseMemory, ITextureMemory } from \"../interface/canvas\";\n\n/**\n * Get the memory object of the PixiJS texture\n * @param texture PixiJS Texture object\n * @returns Memory object of the texture\n */\nexport function getTextureMemory(texture: Texture): ITextureMemory {\n let sourceTexture = texture.source\n let textureMemory: ITextureMemory = {\n image: sourceTexture.label\n }\n return textureMemory\n}\n\n/**\n * Export a Canvas element to a memory object\n * @param element Canvas element\n * @returns Memory object of the canvas\n */\nexport function exportCanvasElement<T extends CanvasBase<any>>(\n element: T,\n): ICanvasBaseMemory {\n return element.memory\n}\n\n/**\n * Import a Canvas element from a memory object\n * @param memory Memory object of the canvas\n * @returns Canvas element\n */\nexport function importCanvasElement<T extends CanvasBase<any>>(\n memory: ICanvasBaseMemory,\n): T {\n let element = getCanvasElementInstanceById<T>(memory.pixivnId)\n if (element) {\n element.memory = memory\n }\n else {\n throw new Error(\"[Pixi'VN] The element \" + memory.pixivnId + \" could not be created\")\n }\n\n return element\n}\n","import { Container, ContainerOptions } from \"pixi.js\";\nimport { exportCanvasElement, importCanvasElement } from \"../../functions/CanvasUtility\";\nimport ICanvasContainerMemory from \"../../interface/canvas/ICanvasContainerMemory\";\nimport CanvasBase from \"./CanvasBase\";\n\nexport const CANVAS_CONTAINER_ID = \"CanvasContainer\"\n\n/**\n * This class is a extension of the [PIXI.Container class](https://pixijs.com/8.x/examples/basic/container), it has the same properties and methods, \n * but it has the ability to be saved and loaded by the Pixi'VN library.\n * @example\n * ```typescript\n * const container = new CanvasContainer();\n * GameWindowManager.addCanvasElement(container);\n * const texture = await Assets.load('https://pixijs.com/assets/bunny.png');\n * for (let i = 0; i < 25; i++)\n * {\n * const bunny = new CanvasSprite(texture);\n * bunny.x = (i % 5) * 40;\n * bunny.y = Math.floor(i / 5) * 40;\n * container.addChild(bunny);\n * }\n * ```\n */\nexport default class CanvasContainer extends Container implements CanvasBase<ICanvasContainerMemory> {\n constructor(options?: ContainerOptions) {\n super(options)\n this.pixivnId = this.constructor.prototype.pixivnId || CANVAS_CONTAINER_ID\n }\n pixivnId: string = CANVAS_CONTAINER_ID\n get memory(): ICanvasContainerMemory {\n let memory = getMemoryContainer(this)\n this.children.forEach(child => {\n memory.elements.push(exportCanvasElement(child as CanvasBase<any>))\n })\n return memory\n }\n set memory(value: ICanvasContainerMemory) {\n setMemoryContainer(this, value)\n value.elements.forEach(child => {\n this.addChild(importCanvasElement(child))\n })\n }\n}\n\nexport function getMemoryContainer<T extends Container>(element: T): ICanvasContainerMemory {\n let className = \"CanvasContainer\"\n if (element.hasOwnProperty(\"pixivnId\")) {\n className = (element as any).pixivnId\n }\n return {\n pixivnId: className,\n elements: [],\n\n width: element.width,\n height: element.height,\n\n isRenderGroup: element.isRenderGroup,\n blendMode: element.blendMode,\n tint: element.tint,\n alpha: element.alpha,\n angle: element.angle,\n renderable: element.renderable,\n rotation: element.rotation,\n scale: { x: element.scale.x, y: element.scale.y },\n pivot: { x: element.pivot.x, y: element.pivot.y },\n position: { x: element.position.x, y: element.position.y },\n skew: { x: element.skew.x, y: element.skew.y },\n visible: element.visible,\n x: element.x,\n y: element.y,\n boundsArea: element.boundsArea,\n\n cursor: element.cursor,\n eventMode: element.eventMode,\n interactive: element.interactive,\n interactiveChildren: element.interactiveChildren,\n hitArea: element.hitArea\n }\n}\n\nexport function setMemoryContainer<T extends Container>(element: T | Container, memory: ContainerOptions) {\n memory.width && (element.width = memory.width)\n memory.height && (element.height = memory.height)\n\n memory.isRenderGroup && (element.isRenderGroup = memory.isRenderGroup)\n memory.blendMode && (element.blendMode = memory.blendMode)\n memory.tint && (element.tint = memory.tint)\n memory.alpha && (element.alpha = memory.alpha)\n memory.angle && (element.angle = memory.angle)\n memory.renderable && (element.renderable = memory.renderable)\n memory.rotation && (element.rotation = memory.rotation)\n if (memory.scale) {\n if (typeof memory.scale === \"number\") {\n element.scale.set(memory.scale, memory.scale)\n }\n else {\n element.scale.set(memory.scale.x, memory.scale.y)\n }\n }\n if (memory.pivot) {\n if (typeof memory.pivot === \"number\") {\n element.pivot.set(memory.pivot, memory.pivot)\n }\n else {\n element.pivot.set(memory.pivot.x, memory.pivot.y)\n }\n }\n memory.position && (element.position.set(memory.position.x, memory.position.y))\n memory.skew && (element.skew.set(memory.skew.x, memory.skew.y))\n memory.visible && (element.visible = memory.visible)\n memory.x && (element.x = memory.x)\n memory.y && (element.y = memory.y)\n memory.boundsArea && (element.boundsArea = memory.boundsArea)\n\n memory.cursor && (element.cursor = memory.cursor)\n memory.eventMode && (element.eventMode = memory.eventMode)\n memory.interactive && (element.interactive = memory.interactive)\n memory.interactiveChildren && (element.interactiveChildren = memory.interactiveChildren)\n memory.hitArea && (element.hitArea = memory.hitArea)\n}\n"]}
1
+ {"version":3,"sources":["../../../src/functions/TextureUtility.ts","../../../src/decorators/EventDecorator.ts","../../../src/classes/canvas/CanvasSprite.ts","../../../src/classes/canvas/CanvasImage.ts","../../../src/classes/canvas/CanvasText.ts","../../../src/decorators/CanvasElementDecorator.ts","../../../src/functions/CanvasUtility.ts","../../../src/classes/canvas/CanvasContainer.ts"],"names":["Sprite","Container"],"mappings":"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","file":"CanvasContainer.mjs","sourcesContent":["import { Assets, ColorSource, FillGradient, FillPattern, StrokeStyle, TextStyle, TextStyleOptions, Texture } from 'pixi.js';\n\n/**\n * Get a texture from a url.\n * @param imageUrl is the url of the image.\n * @returns the texture of the image, or a text with the error.\n */\nexport async function getTexture(imageUrl: string): Promise<Texture | void> {\n if (Assets.cache.has(imageUrl)) {\n return Assets.get(imageUrl)\n }\n return Assets.load(imageUrl)\n .then((texture) => {\n if (!texture) {\n console.error(\"[Pixi'VN] Texture not found\", imageUrl)\n return\n }\n // if texture not is a Texture, then it is a TextureResource\n if (!(texture instanceof Texture)) {\n console.error(\"[Pixi'VN] File not is a image\", imageUrl)\n return\n }\n\n return texture\n })\n .catch((e) => {\n console.error(\"[Pixi'VN] Error loading image\", e)\n return\n })\n}\n\nfunction getFillGradientFillPattern(prop: ColorSource | FillGradient | FillPattern | StrokeStyle, propName: keyof TextStyle) {\n if (!(prop instanceof Object)) {\n return prop\n }\n // TODO: FillGradient and FillPattern are not supported yet\n console.warn(`[Pixi'VN] CanvasText.style.${propName} is a FillGradient or FillPattern, this is not supported yet.`, prop)\n return undefined\n}\n\nexport function getTextStyle(style: TextStyle): TextStyleOptions {\n return {\n align: style.align,\n breakWords: style.breakWords,\n dropShadow: style.dropShadow,\n fill: getFillGradientFillPattern(style.stroke, \"fill\"),\n fontFamily: style.fontFamily,\n fontSize: style.fontSize,\n fontStyle: style.fontStyle,\n fontVariant: style.fontVariant,\n fontWeight: style.fontWeight,\n leading: style.leading,\n letterSpacing: style.letterSpacing,\n lineHeight: style.lineHeight,\n padding: style.padding,\n stroke: getFillGradientFillPattern(style.stroke, \"stroke\"),\n textBaseline: style.textBaseline,\n trim: style.trim,\n whiteSpace: style.whiteSpace,\n wordWrap: style.wordWrap,\n wordWrapWidth: style.wordWrapWidth,\n }\n}\n","import { CanvasEvent } from \"../classes\"\nimport CanvasBase from \"../classes/canvas/CanvasBase\"\nimport { CanvasEventNamesType } from \"../types\"\nimport { EventIdType } from \"../types/EventIdType\"\n\n/**\n * Canvas Event Register\n */\nexport const registeredEvents: { [name: EventIdType]: typeof CanvasEvent<CanvasEventNamesType> } = {}\n/**\n * Is a decorator that register a event in the game.\n * Is a required decorator for use the event in the game.\n * Thanks to this decoration the game has the possibility of updating the events to the latest modification and saving the game.\n * @param name is th identifier of the event, by default is the name of the class\n * @returns \n */\nexport default function eventDecorator(name?: EventIdType) {\n return function (target: typeof CanvasEvent<any>) {\n if (!name) {\n name = target.name\n }\n if (registeredEvents[name]) {\n console.info(`[Pixi'VN] Event ${name} already exists, it will be overwritten`)\n }\n target.prototype.id = name\n registeredEvents[name] = target\n }\n}\n\n/**\n * Get an event by the id.\n * @param eventId The id of the event.\n * @returns The event type.\n */\nexport function getEventTypeById<T = typeof CanvasEvent<CanvasBase<any>>>(eventId: EventIdType): T | undefined {\n try {\n let eventType = registeredEvents[eventId]\n if (!eventType) {\n console.error(`[Pixi'VN] Event ${eventId} not found`)\n return\n }\n new eventType()\n return eventType as T\n }\n catch (e) {\n console.error(`[Pixi'VN] Error while getting Event ${eventId}`, e)\n return\n }\n}\n\n/**\n * Get an event instance by the id.\n * @param eventId The id of the event.\n * @returns The event instance.\n */\nexport function getEventInstanceById<T = CanvasEvent<CanvasBase<any>>>(eventId: EventIdType): T | undefined {\n try {\n let eventType = registeredEvents[eventId]\n if (!eventType) {\n console.error(`[Pixi'VN] Event ${eventId} not found`)\n return\n }\n let event = new eventType()\n return event as T\n }\n catch (e) {\n console.error(`[Pixi'VN] Error while getting Event ${eventId}`, e)\n return\n }\n}\n","import { ContainerChild, ContainerEvents, EventEmitter, Sprite, SpriteOptions, Texture, TextureSourceLike } from \"pixi.js\";\nimport { getEventInstanceById, getEventTypeById } from \"../../decorators/EventDecorator\";\nimport { getTextureMemory } from \"../../functions/CanvasUtility\";\nimport { getTexture } from \"../../functions/TextureUtility\";\nimport ICanvasBaseMemory from \"../../interface/canvas/ICanvasBaseMemory\";\nimport ICanvasSpriteMemory, { ICanvasSpriteBaseMemory } from \"../../interface/canvas/ICanvasSpriteMemory\";\nimport { CanvasEventNamesType } from \"../../types\";\nimport { EventIdType } from \"../../types/EventIdType\";\nimport CanvasEvent from \"../CanvasEvent\";\nimport CanvasBase from \"./CanvasBase\";\nimport { getMemoryContainer, setMemoryContainer } from \"./CanvasContainer\";\n\nexport const CANVAS_SPRITE_ID = \"CanvasSprite\"\n\n/**\n * This class is a extension of the [PIXI.Sprite class](https://pixijs.com/8.x/examples/sprite/basic), it has the same properties and methods,\n * but it has the ability to be saved and loaded by the Pixi'VN library.\n * @example\n * ```typescript\n * const texture = await Assets.load('https://pixijs.com/assets/bunny.png');\n * const sprite = CanvasSprite.from(texture);\n *\n * sprite.anchor.set(0.5);\n * sprite.x = GameWindowManager.screen.width / 2;\n * sprite.y = GameWindowManager.screen.height / 2;\n *\n * sprite.eventMode = 'static';\n * sprite.cursor = 'pointer';\n * sprite.onEvent('pointerdown', EventTest);\n *\n * GameWindowManager.addCanvasElement(\"bunny\", sprite);\n * ```\n */\nexport default class CanvasSprite<Memory extends SpriteOptions & ICanvasBaseMemory = ICanvasSpriteMemory> extends Sprite implements CanvasBase<Memory | ICanvasSpriteMemory> {\n constructor(options?: SpriteOptions | Texture) {\n super(options)\n this.pixivnId = this.constructor.prototype.pixivnId || CANVAS_SPRITE_ID\n }\n pixivnId: string = CANVAS_SPRITE_ID\n get memory(): Memory | ICanvasSpriteMemory {\n return getMemorySprite(this)\n }\n set memory(value: ICanvasSpriteMemory) {\n setMemorySprite(this, value)\n }\n private _onEvents: { [name: CanvasEventNamesType]: EventIdType } = {}\n get onEvents() {\n return this._onEvents\n }\n /**\n * is same function as on(), but it keeps in memory the children.\n * @param event The event type, e.g., 'click', 'mousedown', 'mouseup', 'pointerdown', etc.\n * @param eventClass The class that extends CanvasEvent.\n * @returns \n * @example\n * ```typescript\n * \\@eventDecorator()\n * export class EventTest extends CanvasEvent<CanvasSprite> {\n * override fn(event: CanvasEventNamesType, sprite: CanvasSprite): void {\n * if (event === 'pointerdown') {\n * sprite.scale.x *= 1.25;\n * sprite.scale.y *= 1.25;\n * }\n * }\n * }\n * ```\n * \n * ```typescript\n * let sprite = addImage(\"alien\", 'https://pixijs.com/assets/eggHead.png')\n * await sprite.load()\n *\n * sprite.eventMode = 'static';\n * sprite.cursor = 'pointer';\n * sprite.onEvent('pointerdown', EventTest);\n *\n * GameWindowManager.addCanvasElement(\"bunny\", sprite);\n * ```\n */\n onEvent<T extends CanvasEventNamesType, T2 extends typeof CanvasEvent<typeof this>>(event: T, eventClass: T2) {\n let id = eventClass.prototype.id\n let instance = getEventInstanceById(id)\n this._onEvents[event] = id\n if (instance) {\n super.on(event, () => {\n (instance as CanvasEvent<CanvasBase<any>>).fn(event, this)\n })\n }\n return this\n }\n /**\n * on() does not keep in memory the event class, use onEvent() instead\n * @deprecated\n * @private\n * @param event \n * @param fn \n * @param context \n */\n override on<T extends keyof ContainerEvents<ContainerChild> | keyof { [K: symbol]: any;[K: {} & string]: any; }>(event: T, fn: (...args: EventEmitter.ArgumentMap<ContainerEvents<ContainerChild> & { [K: symbol]: any;[K: {} & string]: any; }>[Extract<T, keyof ContainerEvents<ContainerChild> | keyof { [K: symbol]: any;[K: {} & string]: any; }>]) => void, context?: any): this {\n return super.on(event, fn, context)\n }\n static override from(source: Texture | TextureSourceLike, skipCache?: boolean): CanvasSprite<any> {\n let sprite = Sprite.from(source, skipCache)\n let mySprite = new CanvasSprite()\n mySprite.texture = sprite.texture\n return mySprite\n }\n}\n\nexport function getMemorySprite<T extends CanvasSprite<any>>(element: T | CanvasSprite<any>): ICanvasSpriteMemory {\n let temp = getMemoryContainer(element)\n return {\n ...temp,\n pixivnId: element.pixivnId,\n textureImage: getTextureMemory((element as any).texture),\n anchor: { x: element.anchor.x, y: element.anchor.y },\n roundPixels: element.roundPixels,\n onEvents: element.onEvents,\n }\n}\n\nexport function setMemorySprite<Memory extends ICanvasSpriteBaseMemory>(element: CanvasSprite<any>, memory: Memory) {\n setMemoryContainer(element, memory)\n getTexture(memory.textureImage.image).then((texture) => {\n if (texture) {\n element.texture = texture\n }\n })\n if (memory.anchor) {\n if (typeof memory.anchor === \"number\") {\n element.anchor.set(memory.anchor, memory.anchor)\n }\n else {\n element.anchor.set(memory.anchor.x, memory.anchor.y)\n }\n }\n memory.roundPixels && (element.roundPixels = memory.roundPixels)\n for (let event in memory.onEvents) {\n let id = memory.onEvents[event]\n let instance = getEventTypeById(id)\n if (instance) {\n element.onEvent(event, instance)\n }\n }\n}\n","import { Sprite, SpriteOptions, Texture, TextureSourceLike } from \"pixi.js\";\nimport { addImage, loadImage, showWithDissolveTransition } from \"../../functions\";\nimport { getTexture } from \"../../functions/TextureUtility\";\nimport ICanvasImageMemory from \"../../interface/canvas/ICanvasImageMemory\";\nimport CanvasSprite, { getMemorySprite, setMemorySprite } from \"./CanvasSprite\";\n\nexport const CANVAS_IMAGE_ID = \"CanvasImage\"\n\n/**\n * This class is a extension of the CanvasSprite class, it has the same properties and methods,\n * but it has some features that make texture management easier.\n * You need to use CanvasImage.load() to show the image in the canvas.\n * This class is used for functions like {@link addImage}, {@link loadImage} and {@link showWithDissolveTransition}.\n * @example\n * ```typescript\n * let alien = new CanvasImage({\n * anchor: { x: 0.5, y: 0.5 },\n * x: 100,\n * y: 100,\n * }, 'https://pixijs.com/assets/eggHead.png')\n * await alien.load()\n * GameWindowManager.addCanvasElement(\"alien\", alien)\n * ```\n * @example\n * ```typescript\n * let alien = addImage(\"alien\", 'https://pixijs.com/assets/eggHead.png')\n * alien.anchor.set(0.5);\n * alien.x = 100\n * alien.y = 100\n * await alien.load()\n * ```\n */\nexport default class CanvasImage extends CanvasSprite<ICanvasImageMemory> {\n pixivnId: string = CANVAS_IMAGE_ID\n constructor(options?: SpriteOptions | Texture | undefined, imageLink?: string) {\n super(options)\n if (imageLink) {\n this.imageLink = imageLink\n }\n }\n override get memory(): ICanvasImageMemory {\n return {\n ...getMemorySprite(this),\n pixivnId: this.pixivnId,\n imageLink: this.imageLink,\n }\n }\n override set memory(memory: ICanvasImageMemory) {\n setMemorySprite(this, memory)\n this.imageLink = memory.imageLink\n }\n imageLink: string = \"\"\n static override from(source: Texture | TextureSourceLike, skipCache?: boolean) {\n let sprite = Sprite.from(source, skipCache)\n let mySprite = new CanvasImage()\n mySprite.texture = sprite.texture\n return mySprite\n }\n /** \n * Load the image from the link and set the texture of the sprite.\n * @param image The link of the image. If it is not set, it will use the imageLink property.\n * @returns A promise that resolves when the image is loaded.\n */\n async load(image?: string) {\n if (!image) {\n image = this.imageLink\n }\n return getTexture(this.imageLink)\n .then((texture) => {\n if (texture) {\n this.texture = texture\n }\n })\n .catch((e) => {\n console.error(\"[Pixi'VN] Error into CanvasImage.load()\", e)\n })\n }\n}\n","import { ContainerChild, ContainerEvents, EventEmitter, Text, TextOptions } from \"pixi.js\";\nimport { getEventInstanceById, getEventTypeById } from \"../../decorators/EventDecorator\";\nimport { getTextStyle } from \"../../functions/TextureUtility\";\nimport ICanvasTextMemory from \"../../interface/canvas/ICanvasTextTextMemory\";\nimport { CanvasEventNamesType } from \"../../types\";\nimport { EventIdType } from \"../../types/EventIdType\";\nimport CanvasEvent from \"../CanvasEvent\";\nimport CanvasBase from \"./CanvasBase\";\nimport { getMemoryContainer, setMemoryContainer } from \"./CanvasContainer\";\n\nexport const CANVAS_TEXT_ID = \"CanvasText\"\n\n/**\n * This class is a extension of the [PIXI.Text class](https://pixijs.com/8.x/examples/text/pixi-text), it has the same properties and methods,\n * but it has the ability to be saved and loaded by the Pixi'VN library.\n * @example\n * ```typescript\n * const text = new CanvasText();\n * text.text = \"Hello World\"\n * GameWindowManager.addCanvasElement(\"text\", text);\n * ```\n */\nexport default class CanvasText extends Text implements CanvasBase<ICanvasTextMemory> {\n constructor(options?: TextOptions) {\n super(options)\n this.pixivnId = this.constructor.prototype.pixivnId || CANVAS_TEXT_ID\n }\n pixivnId: string = CANVAS_TEXT_ID\n get memory(): ICanvasTextMemory {\n return getMemoryText(this)\n }\n set memory(value: ICanvasTextMemory) {\n setMemoryText(this, value)\n }\n private _onEvents: { [name: CanvasEventNamesType]: EventIdType } = {}\n get onEvents() {\n return this._onEvents\n }\n /**\n * is same function as on(), but it keeps in memory the children.\n * @param event The event type, e.g., 'click', 'mousedown', 'mouseup', 'pointerdown', etc.\n * @param eventClass The class that extends CanvasEvent.\n * @returns \n * @example\n * ```typescript\n * \\@eventDecorator()\n * export class EventTest extends CanvasEvent<CanvasText> {\n * override fn(event: CanvasEventNamesType, text: CanvasText): void {\n * if (event === 'pointerdown') {\n * text.scale.x *= 1.25;\n * text.scale.y *= 1.25;\n * }\n * }\n * }\n * ```\n * \n * ```typescript\n * const text = new CanvasText();\n * text.text = \"Hello World\"\n *\n * text.eventMode = 'static';\n * text.cursor = 'pointer';\n * text.onEvent('pointerdown', EventTest);\n *\n * GameWindowManager.addCanvasElement(\"text\", text);\n * ```\n */\n onEvent<T extends CanvasEventNamesType, T2 extends typeof CanvasEvent<typeof this>>(event: T, eventClass: T2) {\n let id = eventClass.prototype.id\n let instance = getEventInstanceById(id)\n this._onEvents[event] = id\n if (instance) {\n super.on(event, () => {\n (instance as CanvasEvent<CanvasBase<any>>).fn(event, this)\n })\n }\n return this\n }\n /**\n * on() does not keep in memory the event class, use onEvent() instead\n * @deprecated\n * @private\n * @param event \n * @param fn \n * @param context \n */\n override on<T extends keyof ContainerEvents<ContainerChild> | keyof { [K: symbol]: any;[K: {} & string]: any; }>(event: T, fn: (...args: EventEmitter.ArgumentMap<ContainerEvents<ContainerChild> & { [K: symbol]: any;[K: {} & string]: any; }>[Extract<T, keyof ContainerEvents<ContainerChild> | keyof { [K: symbol]: any;[K: {} & string]: any; }>]) => void, context?: any): this {\n return super.on(event, fn, context)\n }\n}\n\nexport function getMemoryText<T extends CanvasText>(element: T | CanvasText): ICanvasTextMemory {\n let temp = getMemoryContainer(element)\n return {\n ...temp,\n pixivnId: element.pixivnId,\n anchor: { x: element.anchor.x, y: element.anchor.y },\n text: element.text,\n resolution: element.resolution,\n style: getTextStyle(element.style),\n roundPixels: element.roundPixels,\n onEvents: element.onEvents,\n }\n}\n\nexport function setMemoryText(element: CanvasText, memory: ICanvasTextMemory) {\n setMemoryContainer(element, memory)\n if (memory.anchor) {\n if (typeof memory.anchor === \"number\") {\n element.anchor.set(memory.anchor, memory.anchor)\n }\n else {\n element.anchor.set(memory.anchor.x, memory.anchor.y)\n }\n }\n memory.text && (element.text = memory.text)\n memory.resolution && (element.resolution = memory.resolution)\n memory.style && (element.style = memory.style)\n memory.roundPixels && (element.roundPixels = memory.roundPixels)\n for (let event in memory.onEvents) {\n let id = memory.onEvents[event]\n let instance = getEventTypeById(id)\n if (instance) {\n element.onEvent(event as CanvasEventNamesType, instance)\n }\n }\n}\n","import { CanvasContainer, CanvasImage, CanvasSprite, CanvasText } from \"../classes/canvas\"\nimport CanvasBase from \"../classes/canvas/CanvasBase\"\nimport { CANVAS_CONTAINER_ID } from \"../classes/canvas/CanvasContainer\"\nimport { CANVAS_IMAGE_ID } from \"../classes/canvas/CanvasImage\"\nimport { CANVAS_SPRITE_ID } from \"../classes/canvas/CanvasSprite\"\nimport { CANVAS_TEXT_ID } from \"../classes/canvas/CanvasText\"\nimport { CanvasElementTagType } from \"../types/CanvasElementTagType\"\n\nexport const registeredCanvasElement: { [name: CanvasElementTagType]: typeof CanvasBase<any> } = {}\n/**\n * Is a decorator that register a canvas element in the game.\n * @param name Name of the canvas element, by default it will use the class name. If the name is already registered, it will show a warning\n * @returns \n */\nexport default function canvasElementDecorator(name?: CanvasElementTagType) {\n return function (target: typeof CanvasBase<any>) {\n if (!name) {\n name = target.name\n }\n if (registeredCanvasElement[name]) {\n console.warn(`[Pixi'VN] CanvasElement ${name} already registered`)\n }\n target.prototype.pixivnId = name\n registeredCanvasElement[name] = target\n }\n}\n\nexport function getCanvasElementTypeById<T extends typeof CanvasBase<any>>(canvasId: CanvasElementTagType): T | undefined {\n try {\n let eventType = registeredCanvasElement[canvasId]\n if (!eventType) {\n console.error(`[Pixi'VN] CanvasElement ${canvasId} not found`)\n return\n }\n new eventType()\n return eventType as T\n }\n catch (e) {\n console.error(`[Pixi'VN] Error while getting CanvasElement ${canvasId}`, e)\n return\n }\n}\n\nexport function getCanvasElementInstanceById<T extends CanvasBase<any>>(canvasId: CanvasElementTagType): T | undefined {\n try {\n let eventType = registeredCanvasElement[canvasId]\n if (!eventType) {\n if (canvasId === CANVAS_CONTAINER_ID) {\n eventType = CanvasContainer\n }\n else if (canvasId === CANVAS_IMAGE_ID) {\n eventType = CanvasImage\n }\n else if (canvasId === CANVAS_SPRITE_ID) {\n eventType = CanvasSprite\n }\n else if (canvasId === CANVAS_TEXT_ID) {\n eventType = CanvasText\n }\n }\n\n if (!eventType) {\n console.error(`[Pixi'VN] CanvasElement ${canvasId} not found`)\n return\n }\n let canvasElement = new eventType()\n return canvasElement as T\n }\n catch (e) {\n console.error(`[Pixi'VN] Error while getting CanvasElement ${canvasId}`, e)\n return\n }\n}\n","import { Texture } from \"pixi.js\";\nimport { CanvasBase } from \"../classes/canvas\";\nimport { getCanvasElementInstanceById } from \"../decorators/CanvasElementDecorator\";\nimport { ICanvasBaseMemory, ITextureMemory } from \"../interface/canvas\";\n\n/**\n * Get the memory object of the PixiJS texture\n * @param texture PixiJS Texture object\n * @returns Memory object of the texture\n */\nexport function getTextureMemory(texture: Texture): ITextureMemory {\n let sourceTexture = texture.source\n let textureMemory: ITextureMemory = {\n image: sourceTexture.label\n }\n return textureMemory\n}\n\n/**\n * Export a Canvas element to a memory object\n * @param element Canvas element\n * @returns Memory object of the canvas\n */\nexport function exportCanvasElement<T extends CanvasBase<any>>(\n element: T,\n): ICanvasBaseMemory {\n return element.memory\n}\n\n/**\n * Import a Canvas element from a memory object\n * @param memory Memory object of the canvas\n * @returns Canvas element\n */\nexport function importCanvasElement<T extends CanvasBase<any>>(\n memory: ICanvasBaseMemory,\n): T {\n let element = getCanvasElementInstanceById<T>(memory.pixivnId)\n if (element) {\n element.memory = memory\n }\n else {\n throw new Error(\"[Pixi'VN] The element \" + memory.pixivnId + \" could not be created\")\n }\n\n return element\n}\n","import { Container, ContainerOptions } from \"pixi.js\";\nimport { exportCanvasElement, importCanvasElement } from \"../../functions/CanvasUtility\";\nimport ICanvasContainerMemory from \"../../interface/canvas/ICanvasContainerMemory\";\nimport CanvasBase from \"./CanvasBase\";\n\nexport const CANVAS_CONTAINER_ID = \"CanvasContainer\"\n\n/**\n * This class is a extension of the [PIXI.Container class](https://pixijs.com/8.x/examples/basic/container), it has the same properties and methods, \n * but it has the ability to be saved and loaded by the Pixi'VN library.\n * @example\n * ```typescript\n * const container = new CanvasContainer();\n * GameWindowManager.addCanvasElement(container);\n * const texture = await Assets.load('https://pixijs.com/assets/bunny.png');\n * for (let i = 0; i < 25; i++)\n * {\n * const bunny = new CanvasSprite(texture);\n * bunny.x = (i % 5) * 40;\n * bunny.y = Math.floor(i / 5) * 40;\n * container.addChild(bunny);\n * }\n * ```\n */\nexport default class CanvasContainer extends Container implements CanvasBase<ICanvasContainerMemory> {\n constructor(options?: ContainerOptions) {\n super(options)\n this.pixivnId = this.constructor.prototype.pixivnId || CANVAS_CONTAINER_ID\n }\n pixivnId: string = CANVAS_CONTAINER_ID\n get memory(): ICanvasContainerMemory {\n let memory = getMemoryContainer(this)\n this.children.forEach(child => {\n memory.elements.push(exportCanvasElement(child as CanvasBase<any>))\n })\n return memory\n }\n set memory(value: ICanvasContainerMemory) {\n setMemoryContainer(this, value)\n value.elements.forEach(child => {\n this.addChild(importCanvasElement(child))\n })\n }\n}\n\nexport function getMemoryContainer<T extends Container>(element: T): ICanvasContainerMemory {\n let className = \"CanvasContainer\"\n if (element.hasOwnProperty(\"pixivnId\")) {\n className = (element as any).pixivnId\n }\n return {\n pixivnId: className,\n elements: [],\n\n width: element.width,\n height: element.height,\n\n isRenderGroup: element.isRenderGroup,\n blendMode: element.blendMode,\n tint: element.tint,\n alpha: element.alpha,\n angle: element.angle,\n renderable: element.renderable,\n rotation: element.rotation,\n scale: { x: element.scale.x, y: element.scale.y },\n pivot: { x: element.pivot.x, y: element.pivot.y },\n position: { x: element.position.x, y: element.position.y },\n skew: { x: element.skew.x, y: element.skew.y },\n visible: element.visible,\n x: element.x,\n y: element.y,\n boundsArea: element.boundsArea,\n\n cursor: element.cursor,\n eventMode: element.eventMode,\n interactive: element.interactive,\n interactiveChildren: element.interactiveChildren,\n hitArea: element.hitArea\n }\n}\n\nexport function setMemoryContainer<T extends Container>(element: T | Container, memory: ContainerOptions) {\n memory.isRenderGroup && (element.isRenderGroup = memory.isRenderGroup)\n memory.blendMode && (element.blendMode = memory.blendMode)\n memory.tint && (element.tint = memory.tint)\n memory.alpha && (element.alpha = memory.alpha)\n memory.angle && (element.angle = memory.angle)\n memory.renderable && (element.renderable = memory.renderable)\n memory.rotation && (element.rotation = memory.rotation)\n if (memory.scale) {\n if (typeof memory.scale === \"number\") {\n element.scale.set(memory.scale, memory.scale)\n }\n else {\n element.scale.set(memory.scale.x, memory.scale.y)\n }\n }\n if (memory.pivot) {\n if (typeof memory.pivot === \"number\") {\n element.pivot.set(memory.pivot, memory.pivot)\n }\n else {\n element.pivot.set(memory.pivot.x, memory.pivot.y)\n }\n }\n memory.position && (element.position.set(memory.position.x, memory.position.y))\n memory.skew && (element.skew.set(memory.skew.x, memory.skew.y))\n memory.visible && (element.visible = memory.visible)\n memory.x && (element.x = memory.x)\n memory.y && (element.y = memory.y)\n memory.boundsArea && (element.boundsArea = memory.boundsArea)\n\n memory.cursor && (element.cursor = memory.cursor)\n memory.eventMode && (element.eventMode = memory.eventMode)\n memory.interactive && (element.interactive = memory.interactive)\n memory.interactiveChildren && (element.interactiveChildren = memory.interactiveChildren)\n memory.hitArea && (element.hitArea = memory.hitArea)\n\n // end\n // width and height must be set after the scale\n memory.width && (element.width = memory.width)\n memory.height && (element.height = memory.height)\n}\n"]}
@@ -128,8 +128,6 @@ function getMemoryContainer(element) {
128
128
  };
129
129
  }
130
130
  function setMemoryContainer(element, memory) {
131
- memory.width && (element.width = memory.width);
132
- memory.height && (element.height = memory.height);
133
131
  memory.isRenderGroup && (element.isRenderGroup = memory.isRenderGroup);
134
132
  memory.blendMode && (element.blendMode = memory.blendMode);
135
133
  memory.tint && (element.tint = memory.tint);
@@ -162,6 +160,8 @@ function setMemoryContainer(element, memory) {
162
160
  memory.interactive && (element.interactive = memory.interactive);
163
161
  memory.interactiveChildren && (element.interactiveChildren = memory.interactiveChildren);
164
162
  memory.hitArea && (element.hitArea = memory.hitArea);
163
+ memory.width && (element.width = memory.width);
164
+ memory.height && (element.height = memory.height);
165
165
  }
166
166
 
167
167
  // src/functions/CanvasUtility.ts