@drincs/pixi-vn 0.9.7 → 0.9.9

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 (219) hide show
  1. package/dist/{ContainerChild-B5yD0BI8.d.ts → ContainerChild-AjuVp3wW.d.ts} +4 -1
  2. package/dist/{ContainerChild-WzyxEjAc.d.cts → ContainerChild-BUFxM6Ya.d.cts} +4 -1
  3. package/dist/WebGLRenderer-CWVLYTYY.js +9 -0
  4. package/dist/WebGPURenderer-46NKQGBG.js +10 -0
  5. package/dist/{browserAll-2HD5EH7K.js → browserAll-S4EPEXZD.js} +5 -5
  6. package/dist/{chunk-PP5T5HEO.js → chunk-52ZSR3AN.js} +1 -1
  7. package/dist/{chunk-5VX2VTDZ.js → chunk-BJGKFUMU.js} +81 -27
  8. package/dist/{chunk-SAUNZQHZ.js → chunk-D753T42C.js} +1 -1
  9. package/dist/{chunk-ODIEVSQX.js → chunk-F74VVSHO.js} +3 -3
  10. package/dist/{chunk-6GJXIPNB.js → chunk-GEY6RTYO.js} +1 -1
  11. package/dist/{chunk-CAWOWL3P.js → chunk-IG7HSAEJ.js} +75 -34
  12. package/dist/{chunk-PP3SBC3C.js → chunk-KAHX5SKO.js} +18 -15
  13. package/dist/{chunk-WNOARCWH.js → chunk-LZNY6NEZ.js} +2 -2
  14. package/dist/{chunk-Z3NBKYVU.js → chunk-MQPMJVDR.js} +10 -9
  15. package/dist/{chunk-Y3WNBACN.js → chunk-R4J2U4HN.js} +2 -2
  16. package/dist/{chunk-NB4Q3GFK.js → chunk-RGKEAZTY.js} +256 -70
  17. package/dist/{chunk-73ID6GAW.js → chunk-UWBWDBB3.js} +2 -2
  18. package/dist/{chunk-TOG67Z7Q.js → chunk-V7WJOX65.js} +2 -2
  19. package/dist/{chunk-WS3FY4Q6.js → chunk-X55ALTH7.js} +2 -2
  20. package/dist/{chunk-5JREOVCG.js → chunk-XGGTEP7V.js} +1 -1
  21. package/dist/classes/CharacterBaseModel.cjs +413 -258
  22. package/dist/classes/CharacterBaseModel.js +16 -17
  23. package/dist/classes/CharacterStoredClass.cjs +413 -258
  24. package/dist/classes/CharacterStoredClass.js +16 -17
  25. package/dist/classes/ChoiceMenuOption.cjs +341 -188
  26. package/dist/classes/ChoiceMenuOption.js +16 -17
  27. package/dist/classes/Sound.cjs +413 -258
  28. package/dist/classes/Sound.js +16 -17
  29. package/dist/classes/StoredClassModel.cjs +413 -258
  30. package/dist/classes/StoredClassModel.js +16 -17
  31. package/dist/classes/canvas/AdditionalPositions.cjs +39329 -963
  32. package/dist/classes/canvas/AdditionalPositions.d.cts +3 -1
  33. package/dist/classes/canvas/AdditionalPositions.d.ts +3 -1
  34. package/dist/classes/canvas/AdditionalPositions.js +41 -10
  35. package/dist/classes/canvas/AnchorExtension.cjs +92 -48
  36. package/dist/classes/canvas/AnchorExtension.js +8 -8
  37. package/dist/classes/canvas/CanvasBaseItem.cjs +92 -48
  38. package/dist/classes/canvas/CanvasBaseItem.d.cts +1 -1
  39. package/dist/classes/canvas/CanvasBaseItem.d.ts +1 -1
  40. package/dist/classes/canvas/CanvasBaseItem.js +9 -9
  41. package/dist/classes/canvas/Container.cjs +405 -252
  42. package/dist/classes/canvas/Container.d.cts +1 -1
  43. package/dist/classes/canvas/Container.d.ts +1 -1
  44. package/dist/classes/canvas/Container.js +16 -17
  45. package/dist/classes/canvas/ImageContainer.cjs +341 -186
  46. package/dist/classes/canvas/ImageContainer.d.cts +1 -1
  47. package/dist/classes/canvas/ImageContainer.d.ts +1 -1
  48. package/dist/classes/canvas/ImageContainer.js +16 -17
  49. package/dist/classes/canvas/ImageSprite.cjs +3049 -2894
  50. package/dist/classes/canvas/ImageSprite.d.cts +1 -1
  51. package/dist/classes/canvas/ImageSprite.d.ts +1 -1
  52. package/dist/classes/canvas/ImageSprite.js +16 -17
  53. package/dist/classes/canvas/Sprite.cjs +413 -262
  54. package/dist/classes/canvas/Sprite.d.cts +1 -1
  55. package/dist/classes/canvas/Sprite.d.ts +1 -1
  56. package/dist/classes/canvas/Sprite.js +16 -17
  57. package/dist/classes/canvas/Text.cjs +335 -182
  58. package/dist/classes/canvas/Text.d.cts +1 -1
  59. package/dist/classes/canvas/Text.d.ts +1 -1
  60. package/dist/classes/canvas/Text.js +16 -17
  61. package/dist/classes/canvas/VideoSprite.cjs +3046 -2889
  62. package/dist/classes/canvas/VideoSprite.d.cts +4 -2
  63. package/dist/classes/canvas/VideoSprite.d.ts +4 -2
  64. package/dist/classes/canvas/VideoSprite.js +16 -17
  65. package/dist/classes/index.cjs +415 -262
  66. package/dist/classes/index.d.cts +1 -1
  67. package/dist/classes/index.d.ts +1 -1
  68. package/dist/classes/index.js +17 -18
  69. package/dist/classes/ticker/FadeAlphaTicker.cjs +341 -188
  70. package/dist/classes/ticker/FadeAlphaTicker.js +16 -17
  71. package/dist/classes/ticker/MoveTicker.cjs +3572 -3421
  72. package/dist/classes/ticker/MoveTicker.js +16 -17
  73. package/dist/classes/ticker/RotateTicker.cjs +341 -188
  74. package/dist/classes/ticker/RotateTicker.js +16 -17
  75. package/dist/classes/ticker/TickerBase.cjs +413 -258
  76. package/dist/classes/ticker/TickerBase.js +16 -17
  77. package/dist/classes/ticker/ZoomTicker.cjs +341 -188
  78. package/dist/classes/ticker/ZoomTicker.js +16 -17
  79. package/dist/classes/ticker/index.cjs +413 -262
  80. package/dist/classes/ticker/index.js +16 -17
  81. package/dist/constants.cjs +93 -49
  82. package/dist/constants.d.cts +1 -1
  83. package/dist/constants.d.ts +1 -1
  84. package/dist/constants.js +10 -10
  85. package/dist/decorators/canvas-element-decorator.cjs +405 -252
  86. package/dist/decorators/canvas-element-decorator.d.cts +1 -1
  87. package/dist/decorators/canvas-element-decorator.d.ts +1 -1
  88. package/dist/decorators/canvas-element-decorator.js +16 -17
  89. package/dist/decorators/event-decorator.d.cts +1 -1
  90. package/dist/decorators/event-decorator.d.ts +1 -1
  91. package/dist/decorators/index.cjs +341 -188
  92. package/dist/decorators/index.d.cts +1 -1
  93. package/dist/decorators/index.d.ts +1 -1
  94. package/dist/decorators/index.js +16 -17
  95. package/dist/decorators/label-decorator.cjs +413 -260
  96. package/dist/decorators/label-decorator.js +16 -17
  97. package/dist/functions/canvas/canvas-effect.cjs +410 -257
  98. package/dist/functions/canvas/canvas-effect.js +16 -17
  99. package/dist/functions/canvas/canvas-memory-utility.cjs +405 -252
  100. package/dist/functions/canvas/canvas-memory-utility.d.cts +1 -1
  101. package/dist/functions/canvas/canvas-memory-utility.d.ts +1 -1
  102. package/dist/functions/canvas/canvas-memory-utility.js +16 -17
  103. package/dist/functions/canvas/canvas-transition.cjs +413 -260
  104. package/dist/functions/canvas/canvas-transition.d.cts +1 -1
  105. package/dist/functions/canvas/canvas-transition.d.ts +1 -1
  106. package/dist/functions/canvas/canvas-transition.js +16 -17
  107. package/dist/functions/canvas/canvas-utility.cjs +413 -258
  108. package/dist/functions/canvas/canvas-utility.js +16 -17
  109. package/dist/functions/canvas/image-container-utility.cjs +416 -262
  110. package/dist/functions/canvas/image-container-utility.d.cts +5 -3
  111. package/dist/functions/canvas/image-container-utility.d.ts +5 -3
  112. package/dist/functions/canvas/image-container-utility.js +16 -17
  113. package/dist/functions/canvas/image-utility.cjs +413 -260
  114. package/dist/functions/canvas/image-utility.d.cts +5 -3
  115. package/dist/functions/canvas/image-utility.d.ts +5 -3
  116. package/dist/functions/canvas/image-utility.js +16 -17
  117. package/dist/functions/canvas/video-utility.cjs +4701 -4536
  118. package/dist/functions/canvas/video-utility.d.cts +5 -3
  119. package/dist/functions/canvas/video-utility.d.ts +5 -3
  120. package/dist/functions/canvas/video-utility.js +16 -17
  121. package/dist/functions/dialogue-utility.cjs +413 -258
  122. package/dist/functions/dialogue-utility.js +16 -17
  123. package/dist/functions/flags-utility.cjs +413 -258
  124. package/dist/functions/flags-utility.js +16 -17
  125. package/dist/functions/game-utility.cjs +413 -258
  126. package/dist/functions/game-utility.js +16 -17
  127. package/dist/functions/index.cjs +426 -266
  128. package/dist/functions/index.d.cts +1 -1
  129. package/dist/functions/index.d.ts +1 -1
  130. package/dist/functions/index.js +16 -17
  131. package/dist/functions/saves-utility.cjs +413 -258
  132. package/dist/functions/saves-utility.d.cts +1 -1
  133. package/dist/functions/saves-utility.d.ts +1 -1
  134. package/dist/functions/saves-utility.js +16 -17
  135. package/dist/functions/sound-utility.cjs +92 -48
  136. package/dist/functions/sound-utility.js +10 -10
  137. package/dist/functions/texture-utility.cjs +335 -182
  138. package/dist/functions/texture-utility.d.cts +1 -1
  139. package/dist/functions/texture-utility.d.ts +1 -1
  140. package/dist/functions/texture-utility.js +16 -17
  141. package/dist/index.cjs +300 -138
  142. package/dist/index.d.cts +1 -1
  143. package/dist/index.d.ts +1 -1
  144. package/dist/index.js +20 -21
  145. package/dist/interface/HistoryStep.d.cts +1 -1
  146. package/dist/interface/HistoryStep.d.ts +1 -1
  147. package/dist/interface/SaveData.d.cts +1 -1
  148. package/dist/interface/SaveData.d.ts +1 -1
  149. package/dist/interface/canvas/canvas-memory.d.cts +1 -1
  150. package/dist/interface/canvas/canvas-memory.d.ts +1 -1
  151. package/dist/interface/canvas/canvas-options.d.cts +1 -1
  152. package/dist/interface/canvas/canvas-options.d.ts +1 -1
  153. package/dist/interface/export/ExportedCanvas.d.cts +1 -1
  154. package/dist/interface/export/ExportedCanvas.d.ts +1 -1
  155. package/dist/interface/export/ExportedStep.d.cts +1 -1
  156. package/dist/interface/export/ExportedStep.d.ts +1 -1
  157. package/dist/interface/index.d.cts +1 -1
  158. package/dist/interface/index.d.ts +1 -1
  159. package/dist/labels/BaseCanvasElementTestLabel.cjs +413 -260
  160. package/dist/labels/BaseCanvasElementTestLabel.js +16 -17
  161. package/dist/labels/CanvasEventsTestLabel.cjs +413 -260
  162. package/dist/labels/CanvasEventsTestLabel.d.cts +1 -1
  163. package/dist/labels/CanvasEventsTestLabel.d.ts +1 -1
  164. package/dist/labels/CanvasEventsTestLabel.js +16 -17
  165. package/dist/labels/CustomTickerCanvasElementTestLabel.cjs +284 -131
  166. package/dist/labels/CustomTickerCanvasElementTestLabel.js +16 -17
  167. package/dist/labels/ImagesAnimationsTestLabel.cjs +413 -260
  168. package/dist/labels/ImagesAnimationsTestLabel.js +16 -17
  169. package/dist/labels/InputTestLabel.cjs +341 -188
  170. package/dist/labels/InputTestLabel.js +16 -17
  171. package/dist/labels/MarkdownTest.cjs +341 -188
  172. package/dist/labels/MarkdownTest.js +16 -17
  173. package/dist/labels/SoundTestLabel.cjs +341 -188
  174. package/dist/labels/SoundTestLabel.js +16 -17
  175. package/dist/labels/StartLabel.cjs +413 -260
  176. package/dist/labels/StartLabel.js +16 -17
  177. package/dist/labels/StepLabelTest.cjs +341 -188
  178. package/dist/labels/StepLabelTest.js +16 -17
  179. package/dist/labels/VideoTestLabel.cjs +341 -188
  180. package/dist/labels/VideoTestLabel.js +16 -17
  181. package/dist/labels/index.cjs +413 -260
  182. package/dist/labels/index.js +16 -17
  183. package/dist/{lib-6FCVILMQ.js → lib-EBGYUC35.js} +8 -8
  184. package/dist/managers/CanvasManager.cjs +413 -258
  185. package/dist/managers/CanvasManager.d.cts +1 -1
  186. package/dist/managers/CanvasManager.d.ts +1 -1
  187. package/dist/managers/CanvasManager.js +16 -17
  188. package/dist/managers/CanvasManagerStatic.cjs +176 -77
  189. package/dist/managers/CanvasManagerStatic.d.cts +1 -1
  190. package/dist/managers/CanvasManagerStatic.d.ts +1 -1
  191. package/dist/managers/CanvasManagerStatic.js +9 -9
  192. package/dist/managers/NarrationManager.cjs +413 -258
  193. package/dist/managers/NarrationManager.d.cts +2 -1
  194. package/dist/managers/NarrationManager.d.ts +2 -1
  195. package/dist/managers/NarrationManager.js +16 -17
  196. package/dist/managers/NarrationManagerStatic.cjs +413 -258
  197. package/dist/managers/NarrationManagerStatic.d.cts +1 -1
  198. package/dist/managers/NarrationManagerStatic.d.ts +1 -1
  199. package/dist/managers/NarrationManagerStatic.js +16 -17
  200. package/dist/managers/SoundManager.cjs +413 -258
  201. package/dist/managers/SoundManager.js +16 -17
  202. package/dist/managers/StorageManager.cjs +413 -258
  203. package/dist/managers/StorageManager.js +16 -17
  204. package/dist/managers/index.cjs +413 -258
  205. package/dist/managers/index.d.cts +1 -1
  206. package/dist/managers/index.d.ts +1 -1
  207. package/dist/managers/index.js +16 -17
  208. package/dist/types/ContainerChild.d.cts +1 -1
  209. package/dist/types/ContainerChild.d.ts +1 -1
  210. package/dist/types/index.d.cts +1 -1
  211. package/dist/types/index.d.ts +1 -1
  212. package/dist/types/ticker/MoveTickerProps.d.cts +8 -0
  213. package/dist/types/ticker/MoveTickerProps.d.ts +8 -0
  214. package/dist/webworkerAll-XFBJBJMM.js +5 -0
  215. package/package.json +1 -1
  216. package/dist/WebGLRenderer-U57ZOBH6.js +0 -9
  217. package/dist/WebGPURenderer-EYIZ7IXV.js +0 -10
  218. package/dist/chunk-IRUKNG2Y.js +0 -130
  219. package/dist/webworkerAll-GSRT3S6X.js +0 -5
@@ -2504,22 +2504,25 @@ var init_Rectangle = __esm({
2504
2504
  * @param x - The X coordinate of the point to test
2505
2505
  * @param y - The Y coordinate of the point to test
2506
2506
  * @param strokeWidth - The width of the line to check
2507
+ * @param alignment - The alignment of the stroke, 0.5 by default
2507
2508
  * @returns Whether the x/y coordinates are within this rectangle
2508
2509
  */
2509
- strokeContains(x2, y2, strokeWidth) {
2510
+ strokeContains(x2, y2, strokeWidth, alignment = 0.5) {
2510
2511
  const { width, height } = this;
2511
2512
  if (width <= 0 || height <= 0)
2512
2513
  return false;
2513
2514
  const _x = this.x;
2514
2515
  const _y = this.y;
2515
- const outerLeft = _x - strokeWidth / 2;
2516
- const outerRight = _x + width + strokeWidth / 2;
2517
- const outerTop = _y - strokeWidth / 2;
2518
- const outerBottom = _y + height + strokeWidth / 2;
2519
- const innerLeft = _x + strokeWidth / 2;
2520
- const innerRight = _x + width - strokeWidth / 2;
2521
- const innerTop = _y + strokeWidth / 2;
2522
- const innerBottom = _y + height - strokeWidth / 2;
2516
+ const strokeWidthOuter = strokeWidth * (1 - alignment);
2517
+ const strokeWidthInner = strokeWidth - strokeWidthOuter;
2518
+ const outerLeft = _x - strokeWidthOuter;
2519
+ const outerRight = _x + width + strokeWidthOuter;
2520
+ const outerTop = _y - strokeWidthOuter;
2521
+ const outerBottom = _y + height + strokeWidthOuter;
2522
+ const innerLeft = _x + strokeWidthInner;
2523
+ const innerRight = _x + width - strokeWidthInner;
2524
+ const innerTop = _y + strokeWidthInner;
2525
+ const innerBottom = _y + height - strokeWidthInner;
2523
2526
  return x2 >= outerLeft && x2 <= outerRight && y2 >= outerTop && y2 <= outerBottom && !(x2 > innerLeft && x2 < innerRight && y2 > innerTop && y2 < innerBottom);
2524
2527
  }
2525
2528
  /**
@@ -3653,24 +3656,22 @@ var init_toLocalGlobalMixin = __esm({
3653
3656
  });
3654
3657
 
3655
3658
  // node_modules/pixi.js/lib/rendering/renderers/shared/instructions/InstructionSet.mjs
3656
- var _tick, InstructionSet;
3659
+ var InstructionSet;
3657
3660
  var init_InstructionSet = __esm({
3658
3661
  "node_modules/pixi.js/lib/rendering/renderers/shared/instructions/InstructionSet.mjs"() {
3659
3662
  "use strict";
3660
3663
  init_uid();
3661
- _tick = 0;
3662
3664
  InstructionSet = class {
3663
3665
  constructor() {
3664
3666
  this.uid = uid("instructionSet");
3665
3667
  this.instructions = [];
3666
3668
  this.instructionSize = 0;
3667
3669
  this.renderables = [];
3668
- this.tick = 0;
3670
+ this.gcTick = 0;
3669
3671
  }
3670
3672
  /** reset the instruction set so it can be reused set size back to 0 */
3671
3673
  reset() {
3672
3674
  this.instructionSize = 0;
3673
- this.tick = _tick++;
3674
3675
  }
3675
3676
  /**
3676
3677
  * Add an instruction to the set
@@ -4843,6 +4844,7 @@ var init_RenderGroup = __esm({
4843
4844
  this.worldAlpha = 1;
4844
4845
  this.childrenToUpdate = /* @__PURE__ */ Object.create(null);
4845
4846
  this.updateTick = 0;
4847
+ this.gcTick = 0;
4846
4848
  this.childrenRenderablesToUpdate = { list: [], index: 0 };
4847
4849
  this.structureDidChange = true;
4848
4850
  this.instructionSet = new InstructionSet();
@@ -4858,7 +4860,9 @@ var init_RenderGroup = __esm({
4858
4860
  root.didChange = true;
4859
4861
  const children = root.children;
4860
4862
  for (let i3 = 0; i3 < children.length; i3++) {
4861
- this.addChild(children[i3]);
4863
+ const child = children[i3];
4864
+ child._updateFlags = 15;
4865
+ this.addChild(child);
4862
4866
  }
4863
4867
  }
4864
4868
  enableCacheAsTexture(options = {}) {
@@ -10793,8 +10797,7 @@ var init_ViewContainer = __esm({
10793
10797
  this.canBundle = true;
10794
10798
  this.allowChildren = false;
10795
10799
  this._roundPixels = 0;
10796
- this._lastUsed = 0;
10797
- this._lastInstructionTick = -1;
10800
+ this._lastUsed = -1;
10798
10801
  this._bounds = new Bounds(0, 1, 0, 0);
10799
10802
  this._boundsDirty = true;
10800
10803
  }
@@ -18125,17 +18128,18 @@ var init_Circle = __esm({
18125
18128
  * @param x - The X coordinate of the point to test
18126
18129
  * @param y - The Y coordinate of the point to test
18127
18130
  * @param width - The width of the line to check
18131
+ * @param alignment - The alignment of the stroke, 0.5 by default
18128
18132
  * @returns Whether the x/y coordinates are within this Circle
18129
18133
  */
18130
- strokeContains(x2, y2, width) {
18134
+ strokeContains(x2, y2, width, alignment = 0.5) {
18131
18135
  if (this.radius === 0)
18132
18136
  return false;
18133
18137
  const dx = this.x - x2;
18134
18138
  const dy = this.y - y2;
18135
- const r2 = this.radius;
18136
- const w2 = width / 2;
18139
+ const radius = this.radius;
18140
+ const outerWidth = (1 - alignment) * width;
18137
18141
  const distance = Math.sqrt(dx * dx + dy * dy);
18138
- return distance < r2 + w2 && distance > r2 - w2;
18142
+ return distance <= radius + outerWidth && distance > radius - (width - outerWidth);
18139
18143
  }
18140
18144
  /**
18141
18145
  * Returns the framing rectangle of the circle as a Rectangle object
@@ -18224,23 +18228,25 @@ var init_Ellipse = __esm({
18224
18228
  * Checks whether the x and y coordinates given are contained within this ellipse including stroke
18225
18229
  * @param x - The X coordinate of the point to test
18226
18230
  * @param y - The Y coordinate of the point to test
18227
- * @param width
18231
+ * @param strokeWidth - The width of the line to check
18232
+ * @param alignment - The alignment of the stroke
18228
18233
  * @returns Whether the x/y coords are within this ellipse
18229
18234
  */
18230
- strokeContains(x2, y2, width) {
18235
+ strokeContains(x2, y2, strokeWidth, alignment = 0.5) {
18231
18236
  const { halfWidth, halfHeight } = this;
18232
18237
  if (halfWidth <= 0 || halfHeight <= 0) {
18233
18238
  return false;
18234
18239
  }
18235
- const halfStrokeWidth = width / 2;
18236
- const innerA = halfWidth - halfStrokeWidth;
18237
- const innerB = halfHeight - halfStrokeWidth;
18238
- const outerA = halfWidth + halfStrokeWidth;
18239
- const outerB = halfHeight + halfStrokeWidth;
18240
+ const strokeOuterWidth = strokeWidth * (1 - alignment);
18241
+ const strokeInnerWidth = strokeWidth - strokeOuterWidth;
18242
+ const innerHorizontal = halfWidth - strokeInnerWidth;
18243
+ const innerVertical = halfHeight - strokeInnerWidth;
18244
+ const outerHorizontal = halfWidth + strokeOuterWidth;
18245
+ const outerVertical = halfHeight + strokeOuterWidth;
18240
18246
  const normalizedX = x2 - this.x;
18241
18247
  const normalizedY = y2 - this.y;
18242
- const innerEllipse = normalizedX * normalizedX / (innerA * innerA) + normalizedY * normalizedY / (innerB * innerB);
18243
- const outerEllipse = normalizedX * normalizedX / (outerA * outerA) + normalizedY * normalizedY / (outerB * outerB);
18248
+ const innerEllipse = normalizedX * normalizedX / (innerHorizontal * innerHorizontal) + normalizedY * normalizedY / (innerVertical * innerVertical);
18249
+ const outerEllipse = normalizedX * normalizedX / (outerHorizontal * outerHorizontal) + normalizedY * normalizedY / (outerVertical * outerVertical);
18244
18250
  return innerEllipse > 1 && outerEllipse <= 1;
18245
18251
  }
18246
18252
  /**
@@ -18382,11 +18388,13 @@ var init_Polygon = __esm({
18382
18388
  * @param x - The X coordinate of the point to test
18383
18389
  * @param y - The Y coordinate of the point to test
18384
18390
  * @param strokeWidth - The width of the line to check
18391
+ * @param alignment - The alignment of the stroke, 0.5 by default
18385
18392
  * @returns Whether the x/y coordinates are within this polygon
18386
18393
  */
18387
- strokeContains(x2, y2, strokeWidth) {
18388
- const halfStrokeWidth = strokeWidth / 2;
18389
- const halfStrokeWidthSqrd = halfStrokeWidth * halfStrokeWidth;
18394
+ strokeContains(x2, y2, strokeWidth, alignment = 0.5) {
18395
+ const strokeWidthSquared = strokeWidth * strokeWidth;
18396
+ const rightWidthSquared = strokeWidthSquared * (1 - alignment);
18397
+ const leftWidthSquared = strokeWidthSquared - rightWidthSquared;
18390
18398
  const { points } = this;
18391
18399
  const iterationLength = points.length - (this.closePath ? 0 : 2);
18392
18400
  for (let i3 = 0; i3 < iterationLength; i3 += 2) {
@@ -18394,8 +18402,9 @@ var init_Polygon = __esm({
18394
18402
  const y1 = points[i3 + 1];
18395
18403
  const x22 = points[(i3 + 2) % points.length];
18396
18404
  const y22 = points[(i3 + 3) % points.length];
18397
- const distanceSqrd = squaredDistanceToLineSegment(x2, y2, x1, y1, x22, y22);
18398
- if (distanceSqrd <= halfStrokeWidthSqrd) {
18405
+ const distanceSquared = squaredDistanceToLineSegment(x2, y2, x1, y1, x22, y22);
18406
+ const sign = Math.sign((x22 - x1) * (y2 - y1) - (y22 - y1) * (x2 - x1));
18407
+ if (distanceSquared <= (sign < 0 ? leftWidthSquared : rightWidthSquared)) {
18399
18408
  return true;
18400
18409
  }
18401
18410
  }
@@ -18487,11 +18496,11 @@ var init_RoundedRectangle = __esm({
18487
18496
  "node_modules/pixi.js/lib/maths/shapes/RoundedRectangle.mjs"() {
18488
18497
  "use strict";
18489
18498
  init_Rectangle();
18490
- isCornerWithinStroke = (pX, pY, cornerX, cornerY, radius, halfStrokeWidth) => {
18499
+ isCornerWithinStroke = (pX, pY, cornerX, cornerY, radius, strokeWidthInner, strokeWidthOuter) => {
18491
18500
  const dx = pX - cornerX;
18492
18501
  const dy = pY - cornerY;
18493
18502
  const distance = Math.sqrt(dx * dx + dy * dy);
18494
- return distance >= radius - halfStrokeWidth && distance <= radius + halfStrokeWidth;
18503
+ return distance >= radius - strokeWidthInner && distance <= radius + strokeWidthOuter;
18495
18504
  };
18496
18505
  RoundedRectangle = class _RoundedRectangle {
18497
18506
  /**
@@ -18593,26 +18602,60 @@ var init_RoundedRectangle = __esm({
18593
18602
  * @param pX - The X coordinate of the point to test
18594
18603
  * @param pY - The Y coordinate of the point to test
18595
18604
  * @param strokeWidth - The width of the line to check
18605
+ * @param alignment - The alignment of the stroke, 0.5 by default
18596
18606
  * @returns Whether the x/y coordinates are within this rectangle
18597
18607
  */
18598
- strokeContains(pX, pY, strokeWidth) {
18608
+ strokeContains(pX, pY, strokeWidth, alignment = 0.5) {
18599
18609
  const { x: x2, y: y2, width, height, radius } = this;
18600
- const halfStrokeWidth = strokeWidth / 2;
18610
+ const strokeWidthOuter = strokeWidth * (1 - alignment);
18611
+ const strokeWidthInner = strokeWidth - strokeWidthOuter;
18601
18612
  const innerX = x2 + radius;
18602
18613
  const innerY = y2 + radius;
18603
18614
  const innerWidth = width - radius * 2;
18604
18615
  const innerHeight = height - radius * 2;
18605
18616
  const rightBound = x2 + width;
18606
18617
  const bottomBound = y2 + height;
18607
- if ((pX >= x2 - halfStrokeWidth && pX <= x2 + halfStrokeWidth || pX >= rightBound - halfStrokeWidth && pX <= rightBound + halfStrokeWidth) && pY >= innerY && pY <= innerY + innerHeight) {
18618
+ if ((pX >= x2 - strokeWidthOuter && pX <= x2 + strokeWidthInner || pX >= rightBound - strokeWidthInner && pX <= rightBound + strokeWidthOuter) && pY >= innerY && pY <= innerY + innerHeight) {
18608
18619
  return true;
18609
18620
  }
18610
- if ((pY >= y2 - halfStrokeWidth && pY <= y2 + halfStrokeWidth || pY >= bottomBound - halfStrokeWidth && pY <= bottomBound + halfStrokeWidth) && pX >= innerX && pX <= innerX + innerWidth) {
18621
+ if ((pY >= y2 - strokeWidthOuter && pY <= y2 + strokeWidthInner || pY >= bottomBound - strokeWidthInner && pY <= bottomBound + strokeWidthOuter) && pX >= innerX && pX <= innerX + innerWidth) {
18611
18622
  return true;
18612
18623
  }
18613
18624
  return (
18614
18625
  // Top-left
18615
- pX < innerX && pY < innerY && isCornerWithinStroke(pX, pY, innerX, innerY, radius, halfStrokeWidth) || pX > rightBound - radius && pY < innerY && isCornerWithinStroke(pX, pY, rightBound - radius, innerY, radius, halfStrokeWidth) || pX > rightBound - radius && pY > bottomBound - radius && isCornerWithinStroke(pX, pY, rightBound - radius, bottomBound - radius, radius, halfStrokeWidth) || pX < innerX && pY > bottomBound - radius && isCornerWithinStroke(pX, pY, innerX, bottomBound - radius, radius, halfStrokeWidth)
18626
+ pX < innerX && pY < innerY && isCornerWithinStroke(
18627
+ pX,
18628
+ pY,
18629
+ innerX,
18630
+ innerY,
18631
+ radius,
18632
+ strokeWidthInner,
18633
+ strokeWidthOuter
18634
+ ) || pX > rightBound - radius && pY < innerY && isCornerWithinStroke(
18635
+ pX,
18636
+ pY,
18637
+ rightBound - radius,
18638
+ innerY,
18639
+ radius,
18640
+ strokeWidthInner,
18641
+ strokeWidthOuter
18642
+ ) || pX > rightBound - radius && pY > bottomBound - radius && isCornerWithinStroke(
18643
+ pX,
18644
+ pY,
18645
+ rightBound - radius,
18646
+ bottomBound - radius,
18647
+ radius,
18648
+ strokeWidthInner,
18649
+ strokeWidthOuter
18650
+ ) || pX < innerX && pY > bottomBound - radius && isCornerWithinStroke(
18651
+ pX,
18652
+ pY,
18653
+ innerX,
18654
+ bottomBound - radius,
18655
+ radius,
18656
+ strokeWidthInner,
18657
+ strokeWidthOuter
18658
+ )
18616
18659
  );
18617
18660
  }
18618
18661
  toString() {
@@ -19446,7 +19489,7 @@ var init_ShapePath = __esm({
19446
19489
  const delta = Math.PI * 2 / sides;
19447
19490
  const polygon = [];
19448
19491
  for (let i3 = 0; i3 < sides; i3++) {
19449
- const angle = i3 * delta + startAngle;
19492
+ const angle = startAngle - i3 * delta;
19450
19493
  polygon.push(
19451
19494
  x2 + radius * Math.cos(angle),
19452
19495
  y2 + radius * Math.sin(angle)
@@ -21146,13 +21189,13 @@ var init_GraphicsContext = __esm({
21146
21189
  if (action === "stroke") {
21147
21190
  const data = instruction.data;
21148
21191
  const alignment = data.style.alignment;
21149
- const padding = data.style.width * (1 - alignment);
21192
+ const outerPadding = data.style.width * (1 - alignment);
21150
21193
  const _bounds = data.path.bounds;
21151
21194
  bounds.addFrame(
21152
- _bounds.minX - padding,
21153
- _bounds.minY - padding,
21154
- _bounds.maxX + padding,
21155
- _bounds.maxY + padding
21195
+ _bounds.minX - outerPadding,
21196
+ _bounds.minY - outerPadding,
21197
+ _bounds.maxX + outerPadding,
21198
+ _bounds.maxY + outerPadding
21156
21199
  );
21157
21200
  }
21158
21201
  }
@@ -21185,7 +21228,8 @@ var init_GraphicsContext = __esm({
21185
21228
  if (instruction.action === "fill") {
21186
21229
  hasHit = shape.contains(transformedPoint.x, transformedPoint.y);
21187
21230
  } else {
21188
- hasHit = shape.strokeContains(transformedPoint.x, transformedPoint.y, style.width);
21231
+ const strokeStyle = style;
21232
+ hasHit = shape.strokeContains(transformedPoint.x, transformedPoint.y, strokeStyle.width, strokeStyle.alignment);
21189
21233
  }
21190
21234
  const holes = data.hole;
21191
21235
  if (holes) {
@@ -29041,7 +29085,7 @@ function collectAllRenderablesSimple(container, instructionSet, renderer) {
29041
29085
  renderPipes3.blendMode.setBlendMode(renderable, container.groupBlendMode, instructionSet);
29042
29086
  const rp = renderPipes3;
29043
29087
  rp[renderable.renderPipeId].addRenderable(renderable, instructionSet);
29044
- renderableGC.addRenderable(renderable, instructionSet);
29088
+ renderableGC.addRenderable(renderable);
29045
29089
  renderable.didViewUpdate = false;
29046
29090
  }
29047
29091
  if (!container.renderGroup) {
@@ -29068,7 +29112,7 @@ function collectAllRenderablesAdvanced(container, instructionSet, renderer, isRo
29068
29112
  renderPipes3.blendMode.setBlendMode(renderable, renderable.groupBlendMode, instructionSet);
29069
29113
  const pipe = renderPipes3[renderPipeId];
29070
29114
  pipe.addRenderable(renderable, instructionSet);
29071
- renderableGC.addRenderable(renderable, instructionSet);
29115
+ renderableGC.addRenderable(renderable);
29072
29116
  renderable.didViewUpdate = false;
29073
29117
  }
29074
29118
  const children = container.children;
@@ -29467,7 +29511,7 @@ var init_const8 = __esm({
29467
29511
  "use strict";
29468
29512
  init_eventemitter3();
29469
29513
  DATA_URI = /^\s*data:(?:([\w-]+)\/([\w+.-]+))?(?:;charset=([\w-]+))?(?:;(base64))?,(.*)/i;
29470
- VERSION = "8.6.4";
29514
+ VERSION = "8.6.6";
29471
29515
  }
29472
29516
  });
29473
29517
 
@@ -30900,29 +30944,46 @@ var init_clean = __esm({
30900
30944
  });
30901
30945
 
30902
30946
  // node_modules/pixi.js/lib/rendering/renderers/shared/texture/RenderableGCSystem.mjs
30903
- var _RenderableGCSystem, RenderableGCSystem;
30947
+ var renderableGCTick, _RenderableGCSystem, RenderableGCSystem;
30904
30948
  var init_RenderableGCSystem = __esm({
30905
30949
  "node_modules/pixi.js/lib/rendering/renderers/shared/texture/RenderableGCSystem.mjs"() {
30906
30950
  "use strict";
30907
30951
  init_Extensions();
30908
30952
  init_clean();
30953
+ renderableGCTick = 0;
30909
30954
  _RenderableGCSystem = class _RenderableGCSystem2 {
30910
- /** @param renderer - The renderer this System works for. */
30955
+ /**
30956
+ * Creates a new RenderableGCSystem instance.
30957
+ * @param renderer - The renderer this garbage collection system works for
30958
+ */
30911
30959
  constructor(renderer) {
30912
30960
  this._managedRenderables = [];
30913
30961
  this._managedHashes = [];
30914
30962
  this._managedArrays = [];
30915
30963
  this._renderer = renderer;
30916
30964
  }
30965
+ /**
30966
+ * Initializes the garbage collection system with the provided options.
30967
+ * @param options - Configuration options for the renderer
30968
+ */
30917
30969
  init(options) {
30918
30970
  options = { ..._RenderableGCSystem2.defaultOptions, ...options };
30919
30971
  this.maxUnusedTime = options.renderableGCMaxUnusedTime;
30920
30972
  this._frequency = options.renderableGCFrequency;
30921
30973
  this.enabled = options.renderableGCActive;
30922
30974
  }
30975
+ /**
30976
+ * Gets whether the garbage collection system is currently enabled.
30977
+ * @returns True if GC is enabled, false otherwise
30978
+ */
30923
30979
  get enabled() {
30924
30980
  return !!this._handler;
30925
30981
  }
30982
+ /**
30983
+ * Enables or disables the garbage collection system.
30984
+ * When enabled, schedules periodic cleanup of resources.
30985
+ * When disabled, cancels all scheduled cleanups.
30986
+ */
30926
30987
  set enabled(value) {
30927
30988
  if (this.enabled === value)
30928
30989
  return;
@@ -30954,28 +31015,53 @@ var init_RenderableGCSystem = __esm({
30954
31015
  this._renderer.scheduler.cancel(this._arrayHandler);
30955
31016
  }
30956
31017
  }
31018
+ /**
31019
+ * Adds a hash table to be managed by the garbage collector.
31020
+ * @param context - The object containing the hash table
31021
+ * @param hash - The property name of the hash table
31022
+ */
30957
31023
  addManagedHash(context2, hash) {
30958
31024
  this._managedHashes.push({ context: context2, hash });
30959
31025
  }
31026
+ /**
31027
+ * Adds an array to be managed by the garbage collector.
31028
+ * @param context - The object containing the array
31029
+ * @param hash - The property name of the array
31030
+ */
30960
31031
  addManagedArray(context2, hash) {
30961
31032
  this._managedArrays.push({ context: context2, hash });
30962
31033
  }
30963
- prerender() {
31034
+ /**
31035
+ * Updates the GC timestamp and tracking before rendering.
31036
+ * @param options - The render options
31037
+ * @param options.container - The container to render
31038
+ */
31039
+ prerender({
31040
+ container
31041
+ }) {
30964
31042
  this._now = performance.now();
31043
+ container.renderGroup.gcTick = renderableGCTick++;
31044
+ this._updateInstructionGCTick(container.renderGroup, container.renderGroup.gcTick);
30965
31045
  }
30966
- addRenderable(renderable, instructionSet) {
31046
+ /**
31047
+ * Starts tracking a renderable for garbage collection.
31048
+ * @param renderable - The renderable to track
31049
+ */
31050
+ addRenderable(renderable) {
30967
31051
  if (!this.enabled)
30968
31052
  return;
30969
- renderable._lastUsed = this._now;
30970
- if (renderable._lastInstructionTick === -1) {
31053
+ if (renderable._lastUsed === -1) {
30971
31054
  this._managedRenderables.push(renderable);
30972
31055
  renderable.once("destroyed", this._removeRenderable, this);
30973
31056
  }
30974
- renderable._lastInstructionTick = instructionSet.tick;
31057
+ renderable._lastUsed = this._now;
30975
31058
  }
30976
- /** Runs the scheduled garbage collection */
31059
+ /**
31060
+ * Performs garbage collection by cleaning up unused renderables.
31061
+ * Removes renderables that haven't been used for longer than maxUnusedTime.
31062
+ */
30977
31063
  run() {
30978
- const now = performance.now();
31064
+ const now = this._now;
30979
31065
  const managedRenderables = this._managedRenderables;
30980
31066
  const renderPipes3 = this._renderer.renderPipes;
30981
31067
  let offset = 0;
@@ -30986,13 +31072,18 @@ var init_RenderableGCSystem = __esm({
30986
31072
  continue;
30987
31073
  }
30988
31074
  const renderGroup = renderable.renderGroup ?? renderable.parentRenderGroup;
30989
- const currentIndex = renderGroup?.instructionSet?.tick ?? -1;
30990
- if (renderable._lastInstructionTick !== currentIndex && now - renderable._lastUsed > this.maxUnusedTime) {
31075
+ const currentTick = renderGroup?.instructionSet?.gcTick ?? -1;
31076
+ if ((renderGroup?.gcTick ?? 0) === currentTick) {
31077
+ renderable._lastUsed = now;
31078
+ }
31079
+ if (now - renderable._lastUsed > this.maxUnusedTime) {
30991
31080
  if (!renderable.destroyed) {
30992
31081
  const rp = renderPipes3;
31082
+ if (renderGroup)
31083
+ renderGroup.structureDidChange = true;
30993
31084
  rp[renderable.renderPipeId].destroyRenderable(renderable);
30994
31085
  }
30995
- renderable._lastInstructionTick = -1;
31086
+ renderable._lastUsed = -1;
30996
31087
  offset++;
30997
31088
  renderable.off("destroyed", this._removeRenderable, this);
30998
31089
  } else {
@@ -31001,6 +31092,7 @@ var init_RenderableGCSystem = __esm({
31001
31092
  }
31002
31093
  managedRenderables.length -= offset;
31003
31094
  }
31095
+ /** Cleans up the garbage collection system. Disables GC and removes all tracked resources. */
31004
31096
  destroy() {
31005
31097
  this.enabled = false;
31006
31098
  this._renderer = null;
@@ -31008,6 +31100,10 @@ var init_RenderableGCSystem = __esm({
31008
31100
  this._managedHashes.length = 0;
31009
31101
  this._managedArrays.length = 0;
31010
31102
  }
31103
+ /**
31104
+ * Removes a renderable from being tracked when it's destroyed.
31105
+ * @param renderable - The renderable to stop tracking
31106
+ */
31011
31107
  _removeRenderable(renderable) {
31012
31108
  const index = this._managedRenderables.indexOf(renderable);
31013
31109
  if (index >= 0) {
@@ -31015,6 +31111,17 @@ var init_RenderableGCSystem = __esm({
31015
31111
  this._managedRenderables[index] = null;
31016
31112
  }
31017
31113
  }
31114
+ /**
31115
+ * Updates the GC tick counter for a render group and its children.
31116
+ * @param renderGroup - The render group to update
31117
+ * @param gcTick - The new tick value
31118
+ */
31119
+ _updateInstructionGCTick(renderGroup, gcTick) {
31120
+ renderGroup.instructionSet.gcTick = gcTick;
31121
+ for (const child of renderGroup.renderGroupChildren) {
31122
+ this._updateInstructionGCTick(child, gcTick);
31123
+ }
31124
+ }
31018
31125
  };
31019
31126
  _RenderableGCSystem.extension = {
31020
31127
  type: [
@@ -31025,20 +31132,11 @@ var init_RenderableGCSystem = __esm({
31025
31132
  priority: 0
31026
31133
  };
31027
31134
  _RenderableGCSystem.defaultOptions = {
31028
- /**
31029
- * If set to true, this will enable the garbage collector on the GPU.
31030
- * @default true
31031
- */
31135
+ /** Enable/disable the garbage collector */
31032
31136
  renderableGCActive: true,
31033
- /**
31034
- * The maximum idle frames before a texture is destroyed by garbage collection.
31035
- * @default 60 * 60
31036
- */
31137
+ /** Time in ms before an unused resource is collected (default 1 minute) */
31037
31138
  renderableGCMaxUnusedTime: 6e4,
31038
- /**
31039
- * Frames between two garbage collections.
31040
- * @default 600
31041
- */
31139
+ /** How often to run garbage collection in ms (default 30 seconds) */
31042
31140
  renderableGCFrequency: 3e4
31043
31141
  };
31044
31142
  RenderableGCSystem = _RenderableGCSystem;
@@ -39533,7 +39631,7 @@ var init_loadWebFont = __esm({
39533
39631
  },
39534
39632
  unload(font) {
39535
39633
  (Array.isArray(font) ? font : [font]).forEach((t2) => {
39536
- Cache.remove(t2.family);
39634
+ Cache.remove(`${t2.family}-and-url`);
39537
39635
  DOMAdapter.get().getFontFaceSet().delete(t2);
39538
39636
  });
39539
39637
  }
@@ -49240,9 +49338,10 @@ var init_Triangle = __esm({
49240
49338
  * @param pointX - The X coordinate of the point to test
49241
49339
  * @param pointY - The Y coordinate of the point to test
49242
49340
  * @param strokeWidth - The width of the line to check
49341
+ * @param _alignment - The alignment of the stroke
49243
49342
  * @returns Whether the x/y coordinates are within this triangle
49244
49343
  */
49245
- strokeContains(pointX, pointY, strokeWidth) {
49344
+ strokeContains(pointX, pointY, strokeWidth, _alignment = 0.5) {
49246
49345
  const halfStrokeWidth = strokeWidth / 2;
49247
49346
  const halfStrokeWidthSquared = halfStrokeWidth * halfStrokeWidth;
49248
49347
  const { x: x2, x2: x22, x3, y: y2, y2: y22, y3 } = this;
@@ -57723,7 +57822,7 @@ extensions.add(soundAsset);
57723
57822
  var sound = setInstance(new SoundLibrary());
57724
57823
 
57725
57824
  // package.json
57726
- var version = "0.9.7";
57825
+ var version = "0.9.9";
57727
57826
 
57728
57827
  // src/constants.ts
57729
57828
  var Repeat = "repeat";
@@ -57855,6 +57954,79 @@ var CANVAS_VIDEO_ID = "Video";
57855
57954
  // src/classes/canvas/ImageSprite.ts
57856
57955
  init_lib();
57857
57956
 
57957
+ // src/functions/texture-utility.ts
57958
+ init_lib();
57959
+ async function getTexture(textureAlias) {
57960
+ if (textureAlias === "EMPTY") {
57961
+ return;
57962
+ }
57963
+ if (!textureAlias) {
57964
+ console.error("[Pixi\u2019VN] Texture not found", textureAlias);
57965
+ return;
57966
+ }
57967
+ if (Assets.cache.has(textureAlias)) {
57968
+ let texture = Assets.get(textureAlias);
57969
+ if (texture) {
57970
+ return texture;
57971
+ }
57972
+ }
57973
+ return Assets.load(textureAlias).then((texture) => {
57974
+ if (!texture) {
57975
+ console.error("[Pixi\u2019VN] Texture not found", textureAlias);
57976
+ return;
57977
+ }
57978
+ if (!(texture instanceof Texture)) {
57979
+ console.error("[Pixi\u2019VN] File not is a file", textureAlias);
57980
+ return;
57981
+ }
57982
+ return texture;
57983
+ }).catch((e2) => {
57984
+ console.error("[Pixi\u2019VN] Error loading file", e2);
57985
+ return;
57986
+ });
57987
+ }
57988
+ function getFillGradientFillPattern(prop, propName) {
57989
+ if (!(prop instanceof Object)) {
57990
+ return prop;
57991
+ }
57992
+ console.warn(`[Pixi\u2019VN] Text.style.${propName} is a FillGradient or FillPattern, this is not supported yet.`, prop);
57993
+ return void 0;
57994
+ }
57995
+ function getTextStyle(style) {
57996
+ return {
57997
+ align: style.align,
57998
+ breakWords: style.breakWords,
57999
+ dropShadow: style.dropShadow,
58000
+ fill: getFillGradientFillPattern(style.stroke, "fill"),
58001
+ fontFamily: style.fontFamily,
58002
+ fontSize: style.fontSize,
58003
+ fontStyle: style.fontStyle,
58004
+ fontVariant: style.fontVariant,
58005
+ fontWeight: style.fontWeight,
58006
+ leading: style.leading,
58007
+ letterSpacing: style.letterSpacing,
58008
+ lineHeight: style.lineHeight,
58009
+ padding: style.padding,
58010
+ stroke: getFillGradientFillPattern(style.stroke, "stroke"),
58011
+ textBaseline: style.textBaseline,
58012
+ trim: style.trim,
58013
+ whiteSpace: style.whiteSpace,
58014
+ wordWrap: style.wordWrap,
58015
+ wordWrapWidth: style.wordWrapWidth
58016
+ };
58017
+ }
58018
+ function checkIfTextureNotIsEmpty(element) {
58019
+ if ((element instanceof ImageSprite || element instanceof ImageContainer) && element.haveEmptyTexture) {
58020
+ return false;
58021
+ } else if (element instanceof Sprite && element.texture?.label == "EMPTY") {
58022
+ return false;
58023
+ }
58024
+ return true;
58025
+ }
58026
+
58027
+ // src/classes/canvas/AdditionalPositions.ts
58028
+ init_lib();
58029
+
57858
58030
  // src/index.ts
57859
58031
  init_lib();
57860
58032
 
@@ -57880,7 +58052,7 @@ function getCanvasElementInstanceById(canvasId) {
57880
58052
  let eventType = registeredCanvasElement[canvasId];
57881
58053
  if (!eventType) {
57882
58054
  if (canvasId === CANVAS_CONTAINER_ID) {
57883
- eventType = Container2;
58055
+ eventType = Container3;
57884
58056
  } else if (canvasId === CANVAS_VIDEO_ID) {
57885
58057
  eventType = VideoSprite;
57886
58058
  } else if (canvasId === CANVAS_IMAGE_ID) {
@@ -58019,76 +58191,6 @@ function geTickerInstanceById(tickerId, args, duration, priority) {
58019
58191
  }
58020
58192
  }
58021
58193
 
58022
- // src/functions/texture-utility.ts
58023
- init_lib();
58024
- async function getTexture(textureAlias) {
58025
- if (textureAlias === "EMPTY") {
58026
- return;
58027
- }
58028
- if (!textureAlias) {
58029
- console.error("[Pixi\u2019VN] Texture not found", textureAlias);
58030
- return;
58031
- }
58032
- if (Assets.cache.has(textureAlias)) {
58033
- let texture = Assets.get(textureAlias);
58034
- if (texture) {
58035
- return texture;
58036
- }
58037
- }
58038
- return Assets.load(textureAlias).then((texture) => {
58039
- if (!texture) {
58040
- console.error("[Pixi\u2019VN] Texture not found", textureAlias);
58041
- return;
58042
- }
58043
- if (!(texture instanceof Texture)) {
58044
- console.error("[Pixi\u2019VN] File not is a file", textureAlias);
58045
- return;
58046
- }
58047
- return texture;
58048
- }).catch((e2) => {
58049
- console.error("[Pixi\u2019VN] Error loading file", e2);
58050
- return;
58051
- });
58052
- }
58053
- function getFillGradientFillPattern(prop, propName) {
58054
- if (!(prop instanceof Object)) {
58055
- return prop;
58056
- }
58057
- console.warn(`[Pixi\u2019VN] Text.style.${propName} is a FillGradient or FillPattern, this is not supported yet.`, prop);
58058
- return void 0;
58059
- }
58060
- function getTextStyle(style) {
58061
- return {
58062
- align: style.align,
58063
- breakWords: style.breakWords,
58064
- dropShadow: style.dropShadow,
58065
- fill: getFillGradientFillPattern(style.stroke, "fill"),
58066
- fontFamily: style.fontFamily,
58067
- fontSize: style.fontSize,
58068
- fontStyle: style.fontStyle,
58069
- fontVariant: style.fontVariant,
58070
- fontWeight: style.fontWeight,
58071
- leading: style.leading,
58072
- letterSpacing: style.letterSpacing,
58073
- lineHeight: style.lineHeight,
58074
- padding: style.padding,
58075
- stroke: getFillGradientFillPattern(style.stroke, "stroke"),
58076
- textBaseline: style.textBaseline,
58077
- trim: style.trim,
58078
- whiteSpace: style.whiteSpace,
58079
- wordWrap: style.wordWrap,
58080
- wordWrapWidth: style.wordWrapWidth
58081
- };
58082
- }
58083
- function checkIfTextureNotIsEmpty(element) {
58084
- if ((element instanceof ImageSprite || element instanceof ImageContainer) && element.haveEmptyTexture) {
58085
- return false;
58086
- } else if (element instanceof Sprite && element.texture?.label == "EMPTY") {
58087
- return false;
58088
- }
58089
- return true;
58090
- }
58091
-
58092
58194
  // src/classes/ticker/FadeAlphaTicker.ts
58093
58195
  var FadeAlphaTicker = class extends TickerBase {
58094
58196
  fn(ticker, args, aliases, tickerId) {
@@ -58210,6 +58312,24 @@ function getExponentialProgression(number, progression, valueConvert) {
58210
58312
  }
58211
58313
 
58212
58314
  // src/classes/ticker/MoveTicker.ts
58315
+ function calculateDestination(args, element) {
58316
+ let destination = createExportableElement(args.destination);
58317
+ if (destination.type === "align") {
58318
+ let anchorx = void 0;
58319
+ let anchory = void 0;
58320
+ if (element instanceof Sprite) {
58321
+ anchorx = element.anchor.x;
58322
+ anchory = element.anchor.y;
58323
+ }
58324
+ destination.x = calculateAlign("width", destination.x, element.width, element.pivot.x, anchorx);
58325
+ destination.y = calculateAlign("height", destination.y, element.height, element.pivot.y, anchory);
58326
+ }
58327
+ if (destination.type === "percentage") {
58328
+ destination.x = calculatePercentagePosition("width", destination.x);
58329
+ destination.y = calculatePercentagePosition("height", destination.y);
58330
+ }
58331
+ return destination;
58332
+ }
58213
58333
  var MoveTicker = class extends TickerBase {
58214
58334
  fn(ticker, args, aliases, tickerId) {
58215
58335
  let xSpeed = 10;
@@ -58223,7 +58343,6 @@ var MoveTicker = class extends TickerBase {
58223
58343
  ySpeed = this.speedConvert(args.speed.y);
58224
58344
  }
58225
58345
  }
58226
- let destination = args.destination;
58227
58346
  let aliasToRemoveAfter2 = args.aliasToRemoveAfter || [];
58228
58347
  if (typeof aliasToRemoveAfter2 === "string") {
58229
58348
  aliasToRemoveAfter2 = [aliasToRemoveAfter2];
@@ -58246,6 +58365,7 @@ var MoveTicker = class extends TickerBase {
58246
58365
  }).forEach((alias) => {
58247
58366
  let element = canvas.find(alias);
58248
58367
  if (element && element instanceof Container) {
58368
+ let destination = calculateDestination(args, element);
58249
58369
  let xDistance = destination.x - element.x > 0 ? 1 : -1;
58250
58370
  if (xDistance != 0) {
58251
58371
  element.x += xDistance * xSpeed * ticker.deltaTime;
@@ -58277,7 +58397,7 @@ var MoveTicker = class extends TickerBase {
58277
58397
  alias.forEach((alias2) => {
58278
58398
  let element = canvas.find(alias2);
58279
58399
  if (element) {
58280
- let destination = args.destination;
58400
+ let destination = calculateDestination(args, element);
58281
58401
  element.x = destination.x;
58282
58402
  element.y = destination.y;
58283
58403
  if (args.isPushInOut && element.children.length > 0) {
@@ -58565,55 +58685,6 @@ async function shakeEffect(alias, props = {}, priority) {
58565
58685
  // src/classes/canvas/ImageContainer.ts
58566
58686
  init_lib();
58567
58687
 
58568
- // src/classes/canvas/AdditionalPositions.ts
58569
- init_lib();
58570
- function analizePositionsExtensionProps(props) {
58571
- if (!props) {
58572
- return props;
58573
- }
58574
- if (typeof props.align !== "number") {
58575
- if (props.xAlign != void 0) {
58576
- if (props.align === void 0) {
58577
- props.align = { x: props.xAlign };
58578
- delete props.xAlign;
58579
- } else {
58580
- props.align.x = props.xAlign;
58581
- delete props.xAlign;
58582
- }
58583
- }
58584
- if (props.yAlign != void 0) {
58585
- if (props.align === void 0) {
58586
- props.align = { y: props.yAlign };
58587
- delete props.yAlign;
58588
- } else {
58589
- props.align.y = props.yAlign;
58590
- delete props.yAlign;
58591
- }
58592
- }
58593
- }
58594
- if (typeof props.percentagePosition !== "number") {
58595
- if (props.xPercentagePosition != void 0) {
58596
- if (props.percentagePosition === void 0) {
58597
- props.percentagePosition = { x: props.xPercentagePosition };
58598
- delete props.xPercentagePosition;
58599
- } else {
58600
- props.percentagePosition.x = props.xPercentagePosition;
58601
- delete props.xPercentagePosition;
58602
- }
58603
- }
58604
- if (props.yPercentagePosition != void 0) {
58605
- if (props.percentagePosition === void 0) {
58606
- props.percentagePosition = { y: props.yPercentagePosition };
58607
- delete props.yPercentagePosition;
58608
- } else {
58609
- props.percentagePosition.y = props.yPercentagePosition;
58610
- delete props.yPercentagePosition;
58611
- }
58612
- }
58613
- }
58614
- return props;
58615
- }
58616
-
58617
58688
  // src/classes/canvas/Container.ts
58618
58689
  init_lib();
58619
58690
 
@@ -58632,7 +58703,7 @@ async function importCanvasElement(memory) {
58632
58703
  }
58633
58704
 
58634
58705
  // src/classes/canvas/Container.ts
58635
- var Container2 = class extends Container {
58706
+ var Container3 = class extends Container {
58636
58707
  constructor(options) {
58637
58708
  super(options);
58638
58709
  this.pixivnId = this.constructor.prototype.pixivnId || CANVAS_CONTAINER_ID;
@@ -58737,7 +58808,7 @@ async function setMemoryContainer(element, memory, opstions) {
58737
58808
  }
58738
58809
 
58739
58810
  // src/classes/canvas/ImageContainer.ts
58740
- var ImageContainer = class extends Container2 {
58811
+ var ImageContainer = class extends Container3 {
58741
58812
  constructor(options, textureAliases = []) {
58742
58813
  super(options);
58743
58814
  options = analizePositionsExtensionProps(options);
@@ -58905,17 +58976,17 @@ var ImageContainer = class extends Container2 {
58905
58976
  reloadPosition() {
58906
58977
  if (this._align) {
58907
58978
  if (this._align.x !== void 0) {
58908
- super.x = this._align.x * (canvas.screen.width - this.width) + this.pivot.x;
58979
+ super.x = calculateAlign("width", this._align.x, this.width, this.pivot.x);
58909
58980
  }
58910
58981
  if (this._align.y !== void 0) {
58911
- super.y = this._align.y * (canvas.screen.height - this.height) + this.pivot.y;
58982
+ super.y = calculateAlign("height", this._align.y, this.height, this.pivot.y);
58912
58983
  }
58913
58984
  } else if (this._percentagePosition) {
58914
58985
  if (this._percentagePosition.x !== void 0) {
58915
- super.x = this._percentagePosition.x * canvas.screen.width;
58986
+ super.x = calculatePercentagePosition("width", this._percentagePosition.x);
58916
58987
  }
58917
58988
  if (this._percentagePosition.y !== void 0) {
58918
- super.y = this._percentagePosition.y * canvas.screen.height;
58989
+ super.y = calculatePercentagePosition("height", this._percentagePosition.y);
58919
58990
  }
58920
58991
  }
58921
58992
  }
@@ -58978,7 +59049,7 @@ function checkIfVideo(imageUrl) {
58978
59049
 
58979
59050
  // src/functions/canvas/image-utility.ts
58980
59051
  init_lib();
58981
- function addImage(alias, imageUrl) {
59052
+ function addImage(alias, imageUrl, options) {
58982
59053
  if (!imageUrl) {
58983
59054
  if (Assets.resolver.hasKey(alias)) {
58984
59055
  imageUrl = alias;
@@ -58986,8 +59057,7 @@ function addImage(alias, imageUrl) {
58986
59057
  throw new Error(`The image ${alias} does not exist in the cache.`);
58987
59058
  }
58988
59059
  }
58989
- let image = new ImageSprite();
58990
- image.textureAlias = imageUrl;
59060
+ let image = new ImageSprite(options, imageUrl);
58991
59061
  canvas.add(alias, image);
58992
59062
  return image;
58993
59063
  }
@@ -59010,15 +59080,23 @@ async function loadImage(canvasImages) {
59010
59080
  });
59011
59081
  });
59012
59082
  }
59013
- async function showImage(alias, imageUrl) {
59014
- let image = addImage(alias, imageUrl);
59083
+ async function showImage(alias, imageUrl, options) {
59084
+ if (!imageUrl) {
59085
+ if (Assets.resolver.hasKey(alias)) {
59086
+ imageUrl = alias;
59087
+ } else {
59088
+ throw new Error(`The image ${alias} does not exist in the cache.`);
59089
+ }
59090
+ }
59091
+ let image = new ImageSprite(options, imageUrl);
59015
59092
  await image.load();
59093
+ canvas.add(alias, image);
59016
59094
  return image;
59017
59095
  }
59018
59096
 
59019
59097
  // src/functions/canvas/video-utility.ts
59020
59098
  init_lib();
59021
- function addVideo(alias, videoUrl) {
59099
+ function addVideo(alias, videoUrl, options) {
59022
59100
  if (!videoUrl) {
59023
59101
  if (Assets.resolver.hasKey(alias)) {
59024
59102
  videoUrl = alias;
@@ -59026,8 +59104,7 @@ function addVideo(alias, videoUrl) {
59026
59104
  throw new Error(`The video ${alias} does not exist in the cache.`);
59027
59105
  }
59028
59106
  }
59029
- let video = new VideoSprite();
59030
- video.textureAlias = videoUrl;
59107
+ let video = new VideoSprite(options, videoUrl);
59031
59108
  canvas.add(alias, video);
59032
59109
  return video;
59033
59110
  }
@@ -59247,7 +59324,7 @@ async function zoomIn(alias, image, props = { direction: "right" }, priority) {
59247
59324
  if (canvas.find(alias)) {
59248
59325
  canvas.copyCanvasElementProperty(alias, canvasElement);
59249
59326
  }
59250
- let container = new Container2();
59327
+ let container = new Container3();
59251
59328
  container.addChild(canvasElement);
59252
59329
  container.height = canvas.canvasHeight;
59253
59330
  container.width = canvas.canvasWidth;
@@ -59304,7 +59381,7 @@ function zoomOut(alias, props = { direction: "right" }, priority) {
59304
59381
  return;
59305
59382
  }
59306
59383
  let zIndex = canvas.app.stage.getChildIndex(canvasElement);
59307
- let container = new Container2();
59384
+ let container = new Container3();
59308
59385
  container.addChild(canvasElement);
59309
59386
  container.height = canvas.canvasHeight;
59310
59387
  container.width = canvas.canvasWidth;
@@ -59368,7 +59445,7 @@ async function pushIn(alias, image, props = { direction: "right" }, priority) {
59368
59445
  canvas.editAlias(alias, oldCanvasAlias, { ignoreTickers: true });
59369
59446
  pushOut(oldCanvasAlias, props, priority);
59370
59447
  }
59371
- let container = new Container2();
59448
+ let container = new Container3();
59372
59449
  container.height = canvas.canvasHeight;
59373
59450
  container.width = canvas.canvasWidth;
59374
59451
  container.addChild(canvasElement);
@@ -59414,7 +59491,7 @@ function pushOut(alias, props = { direction: "right" }, priority) {
59414
59491
  console.warn("[Pixi\u2019VN] The canvas element is not found.");
59415
59492
  return;
59416
59493
  }
59417
- let container = new Container2();
59494
+ let container = new Container3();
59418
59495
  container.pivot.x = 0;
59419
59496
  container.pivot.y = 0;
59420
59497
  container.x = 0;
@@ -59449,8 +59526,8 @@ function pushOut(alias, props = { direction: "right" }, priority) {
59449
59526
  }
59450
59527
 
59451
59528
  // src/functions/canvas/image-container-utility.ts
59452
- function addImageCointainer(alias, imageUrls) {
59453
- let container = new ImageContainer(void 0, imageUrls);
59529
+ function addImageCointainer(alias, imageUrls, options) {
59530
+ let container = new ImageContainer(options, imageUrls);
59454
59531
  canvas.add(alias, container);
59455
59532
  return container;
59456
59533
  }
@@ -59527,7 +59604,7 @@ var baseCanvasElementTestLabel = newLabel(
59527
59604
  character: juliette,
59528
59605
  text: `Here's what's going to happen: I'm going to create ${number} bunnies (CanvasSprites) and put them in a Container.`
59529
59606
  };
59530
- const container = new Container2();
59607
+ const container = new Container3();
59531
59608
  canvas.add("container", container);
59532
59609
  const texture = await Assets.load(bunnyImage);
59533
59610
  for (let i3 = 0; i3 < number; i3++) {
@@ -60020,7 +60097,7 @@ var imagesMoveTest = newLabel("___pixi_vn_images_move_test___", [
60020
60097
  character: juliette,
60021
60098
  text: `Here's what's going to happen:
60022
60099
  - ${eggHeadName} will move to { x: 500, y: 100 } with a speed of 24.
60023
- - ${flowerTopName} will move to { x: 500, y: 300 } with a speed of 18.
60100
+ - ${flowerTopName} will move to { x: 0.5, y: 0.5, type: "align" } with a speed of 18.
60024
60101
  - ${helmlokName} will move to { x: 100, y: 500 } with a speed of 150 and a linear speed progression of -2 ( limit 10 ), and then move to { x: 1700, y: 500 } with a speed of 10 and a linear speed progression of 2 ( limit 150 ), and repeat.
60025
60102
  - ${skullyName} will move to { x: 500, y: 500 } with a speed of 40, wait for 0.5 seconds, and move to { x: 100, y: 100 } with a speed of 40.`
60026
60103
  };
@@ -60029,7 +60106,7 @@ var imagesMoveTest = newLabel("___pixi_vn_images_move_test___", [
60029
60106
  speed: 24
60030
60107
  }));
60031
60108
  canvas.addTicker("flowerTop", new MoveTicker({
60032
- destination: { x: 500, y: 300 },
60109
+ destination: { x: 0.5, y: 0.5, type: "align" },
60033
60110
  speed: 18
60034
60111
  }));
60035
60112
  canvas.addTickersSteps("helmlok", [
@@ -60626,6 +60703,68 @@ var pixivnTestStartLabel2 = newLabel(
60626
60703
  // src/types/CloseType.ts
60627
60704
  var Close = "close";
60628
60705
 
60706
+ // src/classes/canvas/AdditionalPositions.ts
60707
+ function analizePositionsExtensionProps(props) {
60708
+ if (!props) {
60709
+ return props;
60710
+ }
60711
+ if (typeof props.align !== "number") {
60712
+ if (props.xAlign != void 0) {
60713
+ if (props.align === void 0) {
60714
+ props.align = { x: props.xAlign };
60715
+ delete props.xAlign;
60716
+ } else {
60717
+ props.align.x = props.xAlign;
60718
+ delete props.xAlign;
60719
+ }
60720
+ }
60721
+ if (props.yAlign != void 0) {
60722
+ if (props.align === void 0) {
60723
+ props.align = { y: props.yAlign };
60724
+ delete props.yAlign;
60725
+ } else {
60726
+ props.align.y = props.yAlign;
60727
+ delete props.yAlign;
60728
+ }
60729
+ }
60730
+ }
60731
+ if (typeof props.percentagePosition !== "number") {
60732
+ if (props.xPercentagePosition != void 0) {
60733
+ if (props.percentagePosition === void 0) {
60734
+ props.percentagePosition = { x: props.xPercentagePosition };
60735
+ delete props.xPercentagePosition;
60736
+ } else {
60737
+ props.percentagePosition.x = props.xPercentagePosition;
60738
+ delete props.xPercentagePosition;
60739
+ }
60740
+ }
60741
+ if (props.yPercentagePosition != void 0) {
60742
+ if (props.percentagePosition === void 0) {
60743
+ props.percentagePosition = { y: props.yPercentagePosition };
60744
+ delete props.yPercentagePosition;
60745
+ } else {
60746
+ props.percentagePosition.y = props.yPercentagePosition;
60747
+ delete props.yPercentagePosition;
60748
+ }
60749
+ }
60750
+ }
60751
+ return props;
60752
+ }
60753
+ function calculateAlign(type, align, width, pivot, anchor = 0) {
60754
+ if (type === "width") {
60755
+ return align * (canvas.screen.width - width) + pivot + anchor * width;
60756
+ } else {
60757
+ return align * (canvas.screen.height - width) + pivot + anchor * width;
60758
+ }
60759
+ }
60760
+ function calculatePercentagePosition(type, percentage) {
60761
+ if (type === "width") {
60762
+ return percentage * canvas.screen.width;
60763
+ } else {
60764
+ return percentage * canvas.screen.height;
60765
+ }
60766
+ }
60767
+
60629
60768
  // src/classes/canvas/Sprite.ts
60630
60769
  init_lib();
60631
60770
  var Sprite2 = class _Sprite extends Sprite {
@@ -60727,27 +60866,30 @@ function getMemorySprite(element) {
60727
60866
  };
60728
60867
  }
60729
60868
  async function setMemorySprite(element, memory, options) {
60869
+ let ignoreTexture = options?.ignoreTexture || false;
60730
60870
  await setMemoryContainer(element, memory);
60731
- if ("textureImage" in memory && memory.textureImage && memory.textureImage.image) {
60732
- let texture = await getTexture(memory.textureImage.image);
60733
- if (texture) {
60734
- element.texture = texture;
60735
- }
60736
- }
60737
- if ("textureData" in memory) {
60738
- if (memory.textureData.alias) {
60739
- element.textureAlias = memory.textureData.alias;
60740
- }
60741
- if (memory.textureData.url !== "EMPTY") {
60742
- let textureUrl = memory.textureData.url;
60743
- if (memory.textureData.alias && Assets.resolver.hasKey(memory.textureData.alias)) {
60744
- textureUrl = memory.textureData.alias;
60745
- }
60746
- let texture = await getTexture(textureUrl);
60871
+ if (!ignoreTexture) {
60872
+ if ("textureImage" in memory && memory.textureImage && memory.textureImage.image) {
60873
+ let texture = await getTexture(memory.textureImage.image);
60747
60874
  if (texture) {
60748
60875
  element.texture = texture;
60749
60876
  }
60750
60877
  }
60878
+ if ("textureData" in memory) {
60879
+ if (memory.textureData.alias) {
60880
+ element.textureAlias = memory.textureData.alias;
60881
+ }
60882
+ if (memory.textureData.url !== "EMPTY") {
60883
+ let textureUrl = memory.textureData.url;
60884
+ if (memory.textureData.alias && Assets.resolver.hasKey(memory.textureData.alias)) {
60885
+ textureUrl = memory.textureData.alias;
60886
+ }
60887
+ let texture = await getTexture(textureUrl);
60888
+ if (texture) {
60889
+ element.texture = texture;
60890
+ }
60891
+ }
60892
+ }
60751
60893
  }
60752
60894
  let half = options?.half;
60753
60895
  if (half) {
@@ -60898,17 +61040,17 @@ var ImageSprite = class _ImageSprite extends Sprite2 {
60898
61040
  reloadPosition() {
60899
61041
  if (this._align) {
60900
61042
  if (this._align.x !== void 0) {
60901
- super.x = this._align.x * (canvas.screen.width - this.width) + this.pivot.x + this.anchor.x * this.width;
61043
+ super.x = calculateAlign("width", this._align.x, this.width, this.pivot.x, this.anchor.x);
60902
61044
  }
60903
61045
  if (this._align.y !== void 0) {
60904
- super.y = this._align.y * (canvas.screen.height - this.height) + this.pivot.y + this.anchor.y * this.height;
61046
+ super.y = calculateAlign("height", this._align.y, this.height, this.pivot.y, this.anchor.y);
60905
61047
  }
60906
61048
  } else if (this._percentagePosition) {
60907
61049
  if (this._percentagePosition.x !== void 0) {
60908
- super.x = this._percentagePosition.x * canvas.screen.width;
61050
+ super.x = calculatePercentagePosition("width", this._percentagePosition.x);
60909
61051
  }
60910
61052
  if (this._percentagePosition.y !== void 0) {
60911
- super.y = this._percentagePosition.y * canvas.screen.height;
61053
+ super.y = calculatePercentagePosition("height", this._percentagePosition.y);
60912
61054
  }
60913
61055
  }
60914
61056
  }
@@ -60937,17 +61079,21 @@ var ImageSprite = class _ImageSprite extends Sprite2 {
60937
61079
  super.y = value;
60938
61080
  }
60939
61081
  };
60940
- async function setMemoryImageSprite(element, memory) {
61082
+ async function setMemoryImageSprite(element, memory, options) {
61083
+ let ignoreTexture = options?.ignoreTexture || false;
60941
61084
  memory = analizePositionsExtensionProps(memory);
60942
61085
  return await setMemorySprite(element, memory, {
60943
61086
  half: async () => {
60944
61087
  "align" in memory && memory.align !== void 0 && (element.align = memory.align);
60945
61088
  "percentagePosition" in memory && memory.percentagePosition !== void 0 && (element.percentagePosition = memory.percentagePosition);
60946
- "imageLink" in memory && memory.imageLink !== void 0 && (element.textureAlias = memory.imageLink);
61089
+ if (!ignoreTexture) {
61090
+ "imageLink" in memory && memory.imageLink !== void 0 && (element.textureAlias = memory.imageLink);
61091
+ }
60947
61092
  if ("loadIsStarted" in memory && memory.loadIsStarted) {
60948
61093
  await element.load();
60949
61094
  }
60950
- }
61095
+ },
61096
+ ignoreTexture: options?.ignoreTexture
60951
61097
  });
60952
61098
  }
60953
61099
 
@@ -61058,8 +61204,8 @@ var VideoSprite = class _VideoSprite extends ImageSprite {
61058
61204
  }
61059
61205
  }
61060
61206
  };
61061
- async function setMemoryVideoSprite(element, memory) {
61062
- await setMemoryImageSprite(element, memory);
61207
+ async function setMemoryVideoSprite(element, memory, options) {
61208
+ await setMemoryImageSprite(element, memory, { ignoreTexture: options?.ignoreTexture });
61063
61209
  "loop" in memory && memory.loop !== void 0 && (element.loop = memory.loop);
61064
61210
  "currentTime" in memory && memory.currentTime !== void 0 && (element.currentTime = memory.currentTime);
61065
61211
  "paused" in memory && memory.paused !== void 0 && (element.paused = memory.paused);
@@ -61911,11 +62057,11 @@ var CanvasManager = class {
61911
62057
  "height" in oldAlias && delete oldAlias.height;
61912
62058
  "width" in oldAlias && delete oldAlias.width;
61913
62059
  if (newAlias instanceof VideoSprite) {
61914
- await setMemoryVideoSprite(newAlias, oldAlias);
62060
+ await setMemoryVideoSprite(newAlias, oldAlias, { ignoreTexture: true });
61915
62061
  } else if (newAlias instanceof ImageSprite) {
61916
- await setMemoryImageSprite(newAlias, oldAlias);
62062
+ await setMemoryImageSprite(newAlias, oldAlias, { ignoreTexture: true });
61917
62063
  } else if (newAlias instanceof Sprite2) {
61918
- await setMemorySprite(newAlias, oldAlias);
62064
+ await setMemorySprite(newAlias, oldAlias, { ignoreTexture: true });
61919
62065
  } else if (newAlias instanceof Text2) {
61920
62066
  await setMemoryText(newAlias, oldAlias);
61921
62067
  } else if (newAlias instanceof ImageContainer) {
@@ -63395,16 +63541,25 @@ var NarrationManager = class {
63395
63541
  return this.alreadyCurrentStepMadeChoicesObj?.find((choice) => choice.choiceIndex === index)?.madeTimes || 0;
63396
63542
  }
63397
63543
  /* Run Methods */
63544
+ getCanGoNext(options) {
63545
+ let showWarn = options?.showWarn || false;
63546
+ let choiceMenuOptions = this.choiceMenuOptions;
63547
+ if (choiceMenuOptions && choiceMenuOptions.length > 0) {
63548
+ showWarn && console.warn("[Pixi\u2019VN] The player must make a choice");
63549
+ return false;
63550
+ }
63551
+ if (this.isRequiredInput) {
63552
+ showWarn && console.warn("[Pixi\u2019VN] The player must enter a value");
63553
+ return false;
63554
+ }
63555
+ return true;
63556
+ }
63398
63557
  /**
63399
63558
  * Return if can go to the next step.
63400
63559
  * @returns True if can go to the next step.
63401
63560
  */
63402
63561
  get canGoNext() {
63403
- let options = this.choiceMenuOptions;
63404
- if (options && options.length > 0) {
63405
- return false;
63406
- }
63407
- return true;
63562
+ return this.getCanGoNext();
63408
63563
  }
63409
63564
  /**
63410
63565
  * Execute the next step and add it to the history.
@@ -63431,8 +63586,7 @@ var NarrationManager = class {
63431
63586
  * ```
63432
63587
  */
63433
63588
  async goNext(props, choiseMade) {
63434
- if (!this.canGoNext) {
63435
- console.warn("[Pixi\u2019VN] The player must make a choice");
63589
+ if (!this.getCanGoNext({ showWarn: true })) {
63436
63590
  return;
63437
63591
  }
63438
63592
  if (this.currentLabel && this.currentLabel.onStepEnd) {
@@ -63802,6 +63956,7 @@ var NarrationManager = class {
63802
63956
  let glueDialogue = storage.getVariable(storage.keysSystem.CURRENT_DIALOGUE_MEMORY_KEY);
63803
63957
  if (glueDialogue) {
63804
63958
  dialogue.text = `${glueDialogue.text}${dialogue.text}`;
63959
+ dialogue.character = dialogue.character || glueDialogue.character;
63805
63960
  }
63806
63961
  this.dialogGlue = false;
63807
63962
  }