bard-legends-framework 0.9.5 → 0.9.7

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 (239) hide show
  1. package/dist/_interfaces/index.d.ts +2 -2
  2. package/dist/_interfaces/index.js +2 -3
  3. package/dist/game-entities/attachable/attachable.d.ts +6 -6
  4. package/dist/game-entities/attachable/attachable.js +28 -30
  5. package/dist/game-entities/attachable/attachable.spec.js +129 -128
  6. package/dist/game-entities/attachable/attachable.store.d.ts +5 -5
  7. package/dist/game-entities/attachable/attachable.store.js +34 -32
  8. package/dist/game-entities/attachable/attachable.test.js +132 -131
  9. package/dist/game-entities/attachable/destroyable.d.ts +13 -13
  10. package/dist/game-entities/attachable/destroyable.js +64 -69
  11. package/dist/game-entities/attachable/helpers/decorate-actions-lib.d.ts +15 -15
  12. package/dist/game-entities/attachable/helpers/decorate-actions-lib.js +125 -116
  13. package/dist/game-entities/attachable/helpers/referance-variable.d.ts +15 -15
  14. package/dist/game-entities/attachable/helpers/referance-variable.js +47 -48
  15. package/dist/game-entities/attachable/interfaces.d.ts +6 -6
  16. package/dist/game-entities/attachable/interfaces.js +2 -3
  17. package/dist/game-entities/base/helpers/decorate-actions-lib.js +0 -1
  18. package/dist/game-entities/controller/controller.js +0 -1
  19. package/dist/game-entities/controller/controller.spec.js +128 -125
  20. package/dist/game-entities/entity/entity.spec.js +263 -293
  21. package/dist/game-entities/entity/helpers/view-creation.helper.d.ts +7 -7
  22. package/dist/game-entities/entity/helpers/view-creation.helper.js +48 -48
  23. package/dist/game-entities/scene/scene.spec.js +219 -223
  24. package/dist/game-entities/service/service.js +0 -4
  25. package/dist/game-entities/service/service.spec.js +265 -237
  26. package/dist/game-entities/service/service.test.js +4 -2
  27. package/dist/game-entities/update-loop.d.ts +18 -18
  28. package/dist/game-entities/update-loop.js +46 -28
  29. package/dist/game-entities/view/view.js +1 -1
  30. package/dist/game-entities/view/view.spec.js +490 -506
  31. package/dist/game-entities/view/view.test.js +1 -1
  32. package/dist/lib/animator/animations.d.ts +13 -13
  33. package/dist/lib/animator/animations.js +43 -40
  34. package/dist/lib/animator/animator.d.ts +41 -41
  35. package/dist/lib/animator/animator.js +194 -197
  36. package/dist/lib/animator/animator.spec.js +699 -612
  37. package/dist/lib/animator/index.js +24 -19
  38. package/dist/lib/libraries/animator/animations.d.ts +13 -13
  39. package/dist/lib/libraries/animator/animations.js +43 -40
  40. package/dist/lib/libraries/animator/animator.d.ts +41 -41
  41. package/dist/lib/libraries/animator/animator.js +194 -197
  42. package/dist/lib/libraries/animator/animator.spec.js +699 -612
  43. package/dist/lib/libraries/animator/index.js +24 -19
  44. package/dist/lib/libraries/path-finder/path-finder.d.ts +2 -2
  45. package/dist/lib/libraries/path-finder/path-finder.js +19 -20
  46. package/dist/lib/path-finder/path-finder.d.ts +2 -2
  47. package/dist/lib/path-finder/path-finder.js +19 -20
  48. package/dist/lib/services/keyboard/keyboard.d.ts +4 -4
  49. package/dist/lib/services/keyboard/keyboard.js +39 -31
  50. package/dist/lib/services/mouse/mouse.service.d.ts +8 -8
  51. package/dist/lib/services/mouse/mouse.service.js +65 -53
  52. package/dist/lib/services/mouse/mouser-target-focus.service.d.ts +11 -11
  53. package/dist/lib/services/mouse/mouser-target-focus.service.js +83 -81
  54. package/dist/lib/update-loop.d.ts +10 -10
  55. package/dist/lib/update-loop.js +35 -27
  56. package/dist/physics/entitity-types/immovable-physics-entity.d.ts +6 -6
  57. package/dist/physics/entitity-types/immovable-physics-entity.js +23 -24
  58. package/dist/physics/entitity-types/movable-entity.d.ts +6 -6
  59. package/dist/physics/entitity-types/movable-entity.js +21 -22
  60. package/dist/physics/entitity-types/movable-physics-entity.d.ts +14 -14
  61. package/dist/physics/entitity-types/movable-physics-entity.js +83 -88
  62. package/dist/physics/entitity-types/physics-entity.d.ts +23 -23
  63. package/dist/physics/entitity-types/physics-entity.js +97 -88
  64. package/dist/physics/helpers/closest-available-space.helper.d.ts +16 -16
  65. package/dist/physics/helpers/closest-available-space.helper.js +98 -96
  66. package/dist/physics/helpers/closest-available-space.helper.spec.js +115 -68
  67. package/dist/physics/helpers/p2js.helper.d.ts +3 -3
  68. package/dist/physics/helpers/p2js.helper.js +21 -22
  69. package/dist/physics/helpers/shape-factory.d.ts +9 -4
  70. package/dist/physics/helpers/shape-factory.js +99 -75
  71. package/dist/physics/libs/p2js.helper.js +1 -1
  72. package/dist/physics/libs/position-to-grid-position-converter.d.ts +3 -3
  73. package/dist/physics/libs/position-to-grid-position-converter.js +15 -13
  74. package/dist/physics/module//360/237/223/220services/availability-grid.service.d.ts +10 -5
  75. package/dist/physics/module//360/237/223/220services/availability-grid.service.js +77 -57
  76. package/dist/physics/module//360/237/223/220services/border.service.d.ts +2 -2
  77. package/dist/physics/module//360/237/223/220services/border.service.js +57 -37
  78. package/dist/physics/module//360/237/223/220services/collision/physics-body-group.service.js +1 -1
  79. package/dist/physics/module//360/237/223/220services/collisions.service.d.ts +7 -7
  80. package/dist/physics/module//360/237/223/220services/collisions.service.js +110 -98
  81. package/dist/physics/module//360/237/223/220services/debug-visuals.service.d.ts +28 -6
  82. package/dist/physics/module//360/237/223/220services/debug-visuals.service.js +121 -89
  83. package/dist/physics/module//360/237/223/220services/eliptic-explosion.service.d.ts +15 -7
  84. package/dist/physics/module//360/237/223/220services/eliptic-explosion.service.js +117 -93
  85. package/dist/physics/module//360/237/223/220services/explosion.service.d.ts +14 -7
  86. package/dist/physics/module//360/237/223/220services/explosion.service.js +102 -77
  87. package/dist/physics/module//360/237/223/220services/explosions/eliptic-explosion.service.d.ts +15 -7
  88. package/dist/physics/module//360/237/223/220services/explosions/eliptic-explosion.service.js +117 -93
  89. package/dist/physics/module//360/237/223/220services/explosions/explosion.service.d.ts +14 -7
  90. package/dist/physics/module//360/237/223/220services/explosions/explosion.service.js +102 -77
  91. package/dist/physics/module//360/237/223/220services/explosions/helpers/ray-cast-hit-converter.d.ts +3 -3
  92. package/dist/physics/module//360/237/223/220services/explosions/helpers/ray-cast-hit-converter.js +71 -67
  93. package/dist/physics/module//360/237/223/220services/helpers/ray-cast-hit-converter.d.ts +3 -3
  94. package/dist/physics/module//360/237/223/220services/helpers/ray-cast-hit-converter.js +71 -67
  95. package/dist/physics/module//360/237/223/220services/impact/eliptic-explosion.service.js +1 -1
  96. package/dist/physics/module//360/237/223/220services/materials.service.d.ts +16 -11
  97. package/dist/physics/module//360/237/223/220services/materials.service.js +118 -108
  98. package/dist/physics/module//360/237/223/220services/path-finder.service.d.ts +19 -8
  99. package/dist/physics/module//360/237/223/220services/path-finder.service.js +121 -82
  100. package/dist/physics/module//360/237/223/220services/physics-world.service.d.ts +30 -15
  101. package/dist/physics/module//360/237/223/220services/physics-world.service.js +122 -100
  102. package/dist/physics/module//360/237/223/220services/ray-casting.service.d.ts +3 -3
  103. package/dist/physics/module//360/237/223/220services/ray-casting.service.js +87 -86
  104. package/dist/physics/module//360/237/223/220services/shape-creation.service.d.ts +9 -4
  105. package/dist/physics/module//360/237/223/220services/shape-creation.service.js +113 -84
  106. package/dist/physics/module//360/237/223/220services/test-visuals/test-visuals.service.js +2 -1
  107. package/dist/physics/module//360/237/247/212entities/data-structures/availability-grid-cache.d.ts +8 -8
  108. package/dist/physics/module//360/237/247/212entities/data-structures/availability-grid-cache.js +32 -33
  109. package/dist/physics/physics-world.d.ts +50 -34
  110. package/dist/physics/physics-world.js +142 -133
  111. package/dist/physics/sub-elements/available-spaces/helpers/availability-grid.helper.d.ts +3 -3
  112. package/dist/physics/sub-elements/available-spaces/helpers/availability-grid.helper.js +15 -13
  113. package/dist/physics/sub-elements/available-spaces/physics-availability-grid.d.ts +9 -9
  114. package/dist/physics/sub-elements/available-spaces/physics-availability-grid.js +82 -77
  115. package/dist/physics/sub-elements/available-spaces/physics-available-spaces.d.ts +18 -14
  116. package/dist/physics/sub-elements/available-spaces/physics-available-spaces.js +91 -79
  117. package/dist/physics/sub-elements/collisions/contact-equation-orginiser.d.ts +11 -11
  118. package/dist/physics/sub-elements/collisions/contact-equation-orginiser.js +84 -76
  119. package/dist/physics/sub-elements/collisions/physics-collision.d.ts +7 -7
  120. package/dist/physics/sub-elements/collisions/physics-collision.js +43 -44
  121. package/dist/physics/sub-elements/elements/physics-body-groups.d.ts +11 -11
  122. package/dist/physics/sub-elements/elements/physics-body-groups.js +54 -54
  123. package/dist/physics/sub-elements/elements/physics-materials.d.ts +15 -10
  124. package/dist/physics/sub-elements/elements/physics-materials.js +101 -100
  125. package/dist/physics/sub-elements/elements/physics-world-borders.d.ts +3 -3
  126. package/dist/physics/sub-elements/elements/physics-world-borders.js +69 -45
  127. package/dist/physics/sub-elements/physics-body-groups.d.ts +8 -8
  128. package/dist/physics/sub-elements/physics-body-groups.js +41 -42
  129. package/dist/physics/sub-elements/physics-collision.d.ts +16 -16
  130. package/dist/physics/sub-elements/physics-collision.js +141 -121
  131. package/dist/physics/sub-elements/physics-materials.d.ts +15 -10
  132. package/dist/physics/sub-elements/physics-materials.js +101 -100
  133. package/dist/physics/sub-elements/physics-world-borders.d.ts +2 -2
  134. package/dist/physics/sub-elements/physics-world-borders.js +25 -26
  135. package/dist/physics/sub-elements/raycasting/physics-body-explosion-hit.d.ts +15 -11
  136. package/dist/physics/sub-elements/raycasting/physics-body-explosion-hit.js +59 -59
  137. package/dist/physics/sub-elements/raycasting/physics-explosion.d.ts +13 -6
  138. package/dist/physics/sub-elements/raycasting/physics-explosion.js +108 -73
  139. package/dist/physics/sub-elements/raycasting/ray-cast.d.ts +19 -19
  140. package/dist/physics/sub-elements/raycasting/ray-cast.js +93 -98
  141. package/dist/pixi/display-object/components/filters.d.ts +18 -18
  142. package/dist/pixi/display-object/components/filters.js +106 -81
  143. package/dist/pixi/display-object/components/glow-effect.d.ts +8 -8
  144. package/dist/pixi/display-object/components/glow-effect.js +33 -36
  145. package/dist/pixi/display-object/components/glow-filter.d.ts +8 -8
  146. package/dist/pixi/display-object/components/glow-filter.js +33 -36
  147. package/dist/pixi/display-object/container-attributes.js +1 -1
  148. package/dist/pixi/display-object/display-object-attributes.d.ts +41 -41
  149. package/dist/pixi/display-object/display-object-attributes.js +148 -150
  150. package/dist/pixi/display-object/display-object.d.ts +17 -17
  151. package/dist/pixi/display-object/display-object.js +79 -75
  152. package/dist/pixi/display-object/filters/base-filters/alpha-primer-color.filter.d.ts +9 -4
  153. package/dist/pixi/display-object/filters/base-filters/alpha-primer-color.filter.js +89 -77
  154. package/dist/pixi/display-object/filters/base-filters/blur.filter.js +30 -30
  155. package/dist/pixi/display-object/filters/base-filters/contrast-filter.d.ts +9 -4
  156. package/dist/pixi/display-object/filters/base-filters/contrast-filter.js +62 -53
  157. package/dist/pixi/display-object/filters/base-filters/expand-with-alpha-color.d.ts +10 -5
  158. package/dist/pixi/display-object/filters/base-filters/expand-with-alpha-color.js +93 -81
  159. package/dist/pixi/display-object/filters/base-filters/expand-with-color-gradient.d.ts +12 -7
  160. package/dist/pixi/display-object/filters/base-filters/expand-with-color-gradient.js +120 -109
  161. package/dist/pixi/display-object/filters/base-filters/expand-with-color.d.ts +10 -5
  162. package/dist/pixi/display-object/filters/base-filters/expand-with-color.filter.js +32 -32
  163. package/dist/pixi/display-object/filters/base-filters/expand-with-color.js +92 -85
  164. package/dist/pixi/display-object/filters/templates/checking-neighbors.template.js +28 -28
  165. package/dist/pixi/display-object/filters/templates/plane.template.js +20 -20
  166. package/dist/pixi/display-object/filters.js +20 -4
  167. package/dist/pixi/display-object/objects/components/filters.d.ts +18 -18
  168. package/dist/pixi/display-object/objects/components/filters.js +106 -81
  169. package/dist/pixi/display-object/objects/container.d.ts +2 -2
  170. package/dist/pixi/display-object/objects/container.js +39 -30
  171. package/dist/pixi/display-object/objects/graphics.d.ts +28 -28
  172. package/dist/pixi/display-object/objects/graphics.js +218 -202
  173. package/dist/pixi/display-object/objects/helpers/filters.d.ts +25 -25
  174. package/dist/pixi/display-object/objects/helpers/filters.js +150 -124
  175. package/dist/pixi/display-object/objects/helpers/glow-sprite-generator.d.ts +7 -7
  176. package/dist/pixi/display-object/objects/helpers/glow-sprite-generator.js +114 -95
  177. package/dist/pixi/display-object/objects/premade-objects/sprite-with-glowing-shapes.d.ts +5 -5
  178. package/dist/pixi/display-object/objects/premade-objects/sprite-with-glowing-shapes.js +81 -57
  179. package/dist/pixi/display-object/objects/sprite.d.ts +43 -43
  180. package/dist/pixi/display-object/objects/sprite.js +248 -233
  181. package/dist/pixi/display-object/objects/text/helpers/process-steps/1-data-in-converter/rich-text-data-in-converter.js +1 -1
  182. package/dist/pixi/display-object/objects/text/helpers/process-steps/1-data-in-converter/rich-text-data-in-converter.test.js +9 -9
  183. package/dist/pixi/display-object/objects/text/helpers/rich-text-to-plane-text.d.ts +1 -1
  184. package/dist/pixi/display-object/objects/text.d.ts +25 -25
  185. package/dist/pixi/display-object/objects/text.js +111 -102
  186. package/dist/pixi/display-object/premade-objects/sprite-with-glowing-shapes.d.ts +13 -9
  187. package/dist/pixi/display-object/premade-objects/sprite-with-glowing-shapes.js +96 -67
  188. package/dist/pixi/game.d.ts +1 -1
  189. package/dist/pixi/game.js +2 -2
  190. package/dist/pixi/helpers/glow-sprite-generator.d.ts +6 -6
  191. package/dist/pixi/helpers/glow-sprite-generator.js +99 -84
  192. package/dist/pixi/helpers/pixi-container.helper.d.ts +1 -1
  193. package/dist/pixi/helpers/pixi-container.helper.js +10 -8
  194. package/dist/pixi/helpers/screen-position-to-stage.helper.d.ts +1 -1
  195. package/dist/pixi/helpers/screen-position-to-stage.helper.js +12 -12
  196. package/dist/pixi/helpers/screen-position-to-stage.helper.test.js +174 -79
  197. package/dist/pixi/modules/CAMERA/index.d.ts +1 -1
  198. package/dist/pixi/modules/CAMERA/index.js +3 -3
  199. package/dist/services/keyboard/keyboard.d.ts +4 -4
  200. package/dist/services/keyboard/keyboard.js +39 -31
  201. package/dist/services/mouse/mouse.service.d.ts +8 -8
  202. package/dist/services/mouse/mouse.service.js +65 -53
  203. package/dist/services/mouse/mouser-target-focus.service.d.ts +11 -11
  204. package/dist/services/mouse/mouser-target-focus.service.js +83 -81
  205. package/dist/utilities/libraries/animator/animating-content/state-animation.d.ts +29 -26
  206. package/dist/utilities/libraries/animator/animating-content/state-animation.js +159 -165
  207. package/dist/utilities/libraries/animator/animating-content/state-animation.test.js +386 -375
  208. package/dist/utilities/libraries/animator/animator.spec.js +765 -656
  209. package/dist/utilities/libraries/binary-heap/binary-heap.d.ts +11 -11
  210. package/dist/utilities/libraries/binary-heap/binary-heap.js +79 -81
  211. package/dist/utilities/libraries/data-structures/binary-heap/binary-heap.d.ts +11 -11
  212. package/dist/utilities/libraries/data-structures/binary-heap/binary-heap.js +79 -81
  213. package/dist/utilities/libraries/data-structures/grid/grid.d.ts +35 -31
  214. package/dist/utilities/libraries/data-structures/grid/grid.js +128 -117
  215. package/dist/utilities/libraries/data-structures/grid/grid.spec.js +176 -138
  216. package/dist/utilities/libraries/data-structures/grid/grid.test.js +218 -141
  217. package/dist/utilities/libraries/data-structures/grid/position-to-grid-position-converter.d.ts +3 -3
  218. package/dist/utilities/libraries/data-structures/grid/position-to-grid-position-converter.js +15 -13
  219. package/dist/utilities/libraries/data-structures/queue/queue.d.ts +21 -21
  220. package/dist/utilities/libraries/data-structures/queue/queue.js +63 -66
  221. package/dist/utilities/libraries/data-structures/queue/queue.test.js +54 -55
  222. package/dist/utilities/libraries/grid-algorithms/closest-available-space/closest-available-space.helper.spec.js +122 -68
  223. package/dist/utilities/libraries/grid-algorithms/path-finder/path-finder.spec.js +140 -135
  224. package/dist/utilities/libraries/grid-algorithms/vector-field-path-finder/vector-field-path-finder.spec.js +293 -229
  225. package/dist/utilities/libraries/path-finder/path-finder.d.ts +7 -7
  226. package/dist/utilities/libraries/path-finder/path-finder.js +113 -109
  227. package/dist/utilities/libraries/path-finder/path-finder.spec.js +131 -106
  228. package/dist/utilities/services/keyboard/keyboard.d.ts +4 -4
  229. package/dist/utilities/services/keyboard/keyboard.js +42 -34
  230. package/dist/utilities/services/mouse/helpers/mouse-position.helper.d.ts +1 -1
  231. package/dist/utilities/services/mouse/helpers/mouse-position.helper.js +12 -12
  232. package/dist/utilities/services/mouse/helpers/mouse-position.helper.test.js +168 -73
  233. package/dist/utilities/services/mouse/mouse-target-focus.service.d.ts +15 -15
  234. package/dist/utilities/services/mouse/mouse-target-focus.service.js +79 -76
  235. package/dist/utilities/services/mouse/mouse.service.d.ts +9 -9
  236. package/dist/utilities/services/mouse/mouse.service.js +86 -72
  237. package/dist/utilities/services/mouse/mouser-target-focus.service.d.ts +11 -11
  238. package/dist/utilities/services/mouse/mouser-target-focus.service.js +83 -81
  239. package/package.json +6 -12
@@ -1,514 +1,498 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
1
+ var __createBinding =
2
+ (this && this.__createBinding) ||
3
+ (Object.create
4
+ ? (o, m, k, k2) => {
5
+ if (k2 === undefined) k2 = k;
6
+ var desc = Object.getOwnPropertyDescriptor(m, k);
7
+ if (!desc || ('get' in desc ? !m.__esModule : desc.writable || desc.configurable)) {
8
+ desc = { enumerable: true, get: () => m[k] };
9
+ }
10
+ Object.defineProperty(o, k2, desc);
11
+ }
12
+ : (o, m, k, k2) => {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ });
16
+ var __setModuleDefault =
17
+ (this && this.__setModuleDefault) ||
18
+ (Object.create
19
+ ? (o, v) => {
20
+ Object.defineProperty(o, 'default', { enumerable: true, value: v });
21
+ }
22
+ : (o, v) => {
23
+ o['default'] = v;
24
+ });
25
+ var __decorate =
26
+ (this && this.__decorate) ||
27
+ ((decorators, target, key, desc) => {
28
+ var c = arguments.length,
29
+ r = c < 3 ? target : desc === null ? (desc = Object.getOwnPropertyDescriptor(target, key)) : desc,
30
+ d;
31
+ if (typeof Reflect === 'object' && typeof Reflect.decorate === 'function')
32
+ r = Reflect.decorate(decorators, target, key, desc);
33
+ else
34
+ for (var i = decorators.length - 1; i >= 0; i--)
35
+ if ((d = decorators[i])) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
36
  return c > 3 && r && Object.defineProperty(target, key, r), r;
23
- };
24
- var __importStar = (this && this.__importStar) || function (mod) {
37
+ });
38
+ var __importStar =
39
+ (this && this.__importStar) ||
40
+ (mod => {
25
41
  if (mod && mod.__esModule) return mod;
26
42
  var result = {};
27
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
43
+ if (mod != null) for (var k in mod) if (k !== 'default' && Object.hasOwn(mod, k)) __createBinding(result, mod, k);
28
44
  __setModuleDefault(result, mod);
29
45
  return result;
30
- };
31
- var __metadata = (this && this.__metadata) || function (k, v) {
32
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
33
- };
34
- Object.defineProperty(exports, "__esModule", { value: true });
35
- const vitest_1 = require("vitest");
36
- const helpers_lib_1 = require("helpers-lib");
37
- const actions_lib_1 = require("actions-lib");
38
- const ActionsLib = __importStar(require("actions-lib"));
39
- const entity_1 = require("../entity/entity");
40
- const view_1 = require("./view");
41
- const update_loop_1 = require("../update-loop");
42
- const scene_1 = require("../scene/scene");
43
- const decorate_actions_lib_1 = require("../attachable/helpers/decorate-actions-lib");
46
+ });
47
+ var __metadata =
48
+ (this && this.__metadata) ||
49
+ ((k, v) => {
50
+ if (typeof Reflect === 'object' && typeof Reflect.metadata === 'function') return Reflect.metadata(k, v);
51
+ });
52
+ Object.defineProperty(exports, '__esModule', { value: true });
53
+ const vitest_1 = require('vitest');
54
+ const helpers_lib_1 = require('helpers-lib');
55
+ const actions_lib_1 = require('actions-lib');
56
+ const ActionsLib = __importStar(require('actions-lib'));
57
+ const entity_1 = require('../entity/entity');
58
+ const view_1 = require('./view');
59
+ const update_loop_1 = require('../update-loop');
60
+ const scene_1 = require('../scene/scene');
61
+ const decorate_actions_lib_1 = require('../attachable/helpers/decorate-actions-lib');
44
62
  decorate_actions_lib_1.ActionsLibDecorator.decorate(ActionsLib);
45
63
  (0, vitest_1.describe)('VIEW', () => {
46
- (0, vitest_1.beforeEach)(() => {
47
- update_loop_1.UpdateCycle.hardResetAction.trigger();
48
- let SampleScene = class SampleScene extends scene_1.Scene {
49
- };
50
- SampleScene = __decorate([
51
- (0, scene_1.SceneDecorator)()
52
- ], SampleScene);
53
- SampleScene.open(undefined);
54
- });
55
- (0, vitest_1.test)('entity creation should create related view', () => {
56
- var SampleView_1;
57
- let Sample = class Sample extends entity_1.Entity {
58
- };
59
- Sample = __decorate([
60
- (0, entity_1.EntityDecorator)()
61
- ], Sample);
62
- let SampleView = class SampleView extends view_1.View {
63
- static { SampleView_1 = this; }
64
- constructor(entity) {
65
- super();
66
- SampleView_1.viewInstance = this;
67
- }
68
- };
69
- SampleView = SampleView_1 = __decorate([
70
- (0, view_1.ViewDecorator)({ entity: Sample }),
71
- __metadata("design:paramtypes", [Sample])
72
- ], SampleView);
73
- new Sample().attach(scene_1.Scene.activeScene);
74
- (0, vitest_1.expect)(SampleView.viewInstance).toBeDefined();
75
- });
76
- (0, vitest_1.test)('class names should be unique', () => {
77
- let Sample = class Sample extends entity_1.Entity {
78
- };
79
- Sample = __decorate([
80
- (0, entity_1.EntityDecorator)()
81
- ], Sample);
82
- (0, vitest_1.expect)(() => {
83
- {
84
- let SampleView = class SampleView extends view_1.View {
85
- };
86
- SampleView = __decorate([
87
- (0, view_1.ViewDecorator)({ entity: Sample })
88
- ], SampleView);
89
- }
90
- {
91
- let SampleView = class SampleView extends view_1.View {
92
- };
93
- SampleView = __decorate([
94
- (0, view_1.ViewDecorator)({ entity: Sample })
95
- ], SampleView);
96
- }
97
- }).toThrow();
98
- });
99
- (0, vitest_1.test)('entity creation should create related view once', () => {
100
- var SampleView_2;
101
- let Sample = class Sample extends entity_1.Entity {
102
- };
103
- Sample = __decorate([
104
- (0, entity_1.EntityDecorator)()
105
- ], Sample);
106
- let SampleView = class SampleView extends view_1.View {
107
- static { SampleView_2 = this; }
108
- static { this.viewCall = 0; }
109
- constructor(entity) {
110
- super();
111
- SampleView_2.viewCall++;
112
- }
113
- };
114
- SampleView = SampleView_2 = __decorate([
115
- (0, view_1.ViewDecorator)({ entity: Sample }),
116
- __metadata("design:paramtypes", [Sample])
117
- ], SampleView);
118
- new Sample().attach(scene_1.Scene.activeScene);
119
- (0, vitest_1.expect)(SampleView.viewCall).toEqual(1);
120
- });
121
- (0, vitest_1.test)('entities should not destroy each others views on destroy', () => {
122
- var SampleView_3;
123
- let BaseEntity = class BaseEntity extends entity_1.Entity {
124
- };
125
- BaseEntity = __decorate([
126
- (0, entity_1.EntityDecorator)()
127
- ], BaseEntity);
128
- let baseEntity = new BaseEntity().attach(scene_1.Scene.activeScene);
129
- let Sample = class Sample extends entity_1.Entity {
130
- };
131
- Sample = __decorate([
132
- (0, entity_1.EntityDecorator)()
133
- ], Sample);
134
- let SampleView = class SampleView extends view_1.View {
135
- static { SampleView_3 = this; }
136
- static { this.viewInstanceCount = 0; }
137
- constructor(entity) {
138
- super();
139
- SampleView_3.viewInstanceCount++;
140
- }
141
- destroy() {
142
- SampleView_3.viewInstanceCount--;
143
- }
144
- };
145
- SampleView = SampleView_3 = __decorate([
146
- (0, view_1.ViewDecorator)({ entity: Sample }),
147
- __metadata("design:paramtypes", [Sample])
148
- ], SampleView);
149
- let entity1 = new Sample().attach(baseEntity);
150
- let entity2 = new Sample().attach(baseEntity);
151
- (0, vitest_1.expect)(SampleView.viewInstanceCount).toEqual(2);
152
- entity1.destroy();
153
- update_loop_1.UpdateCycle.triggerUpdateTick(0); // Update cycle should take place to destroy functions to be called
154
- (0, vitest_1.expect)(SampleView.viewInstanceCount).toEqual(1);
155
- entity2.destroy();
156
- update_loop_1.UpdateCycle.triggerUpdateTick(0); // Update cycle should take place to destroy functions to be called
157
- (0, vitest_1.expect)(SampleView.viewInstanceCount).toEqual(0);
158
- });
159
- (0, vitest_1.test)('entity destruction should destroy related views', () => {
160
- let viewDestroyCount = 0;
161
- let Sample = class Sample extends entity_1.Entity {
162
- };
163
- Sample = __decorate([
164
- (0, entity_1.EntityDecorator)()
165
- ], Sample);
166
- let SampleView = class SampleView extends view_1.View {
167
- destroy() {
168
- viewDestroyCount++;
169
- }
170
- };
171
- SampleView = __decorate([
172
- (0, view_1.ViewDecorator)({ entity: Sample })
173
- ], SampleView);
174
- let entity = new Sample().attach(scene_1.Scene.activeScene);
175
- entity.destroy();
176
- update_loop_1.UpdateCycle.triggerUpdateTick(0); // Update cycle should take place to destroy functions to be called
177
- (0, vitest_1.expect)(viewDestroyCount).toEqual(1);
178
- });
179
- (0, vitest_1.test)('view destruction should destroy attached items', () => {
180
- let viewDestroyCount = 0;
181
- let Sample = class Sample extends entity_1.Entity {
182
- };
183
- Sample = __decorate([
184
- (0, entity_1.EntityDecorator)()
185
- ], Sample);
186
- let Sample2 = class Sample2 extends entity_1.Entity {
187
- destroy() {
188
- viewDestroyCount++;
189
- }
190
- };
191
- Sample2 = __decorate([
192
- (0, entity_1.EntityDecorator)()
193
- ], Sample2);
194
- let SampleView = class SampleView extends view_1.View {
195
- constructor(entity) {
196
- super();
197
- new Sample2().attach(this);
198
- }
199
- };
200
- SampleView = __decorate([
201
- (0, view_1.ViewDecorator)({ entity: Sample }),
202
- __metadata("design:paramtypes", [Sample])
203
- ], SampleView);
204
- let entity = new Sample().attach(scene_1.Scene.activeScene);
205
- entity.destroy();
206
- update_loop_1.UpdateCycle.triggerUpdateTick(0); // Update cycle should take place to destroy functions to be called
207
- (0, vitest_1.expect)(viewDestroyCount).toEqual(1);
208
- });
209
- (0, vitest_1.test)('triggering destroy() multiple times should not take effect multiply', () => {
210
- let viewDestroyCount = 0;
211
- let Sample = class Sample extends entity_1.Entity {
212
- };
213
- Sample = __decorate([
214
- (0, entity_1.EntityDecorator)()
215
- ], Sample);
216
- let SampleView = class SampleView extends view_1.View {
217
- destroy() {
218
- viewDestroyCount++;
219
- }
220
- };
221
- SampleView = __decorate([
222
- (0, view_1.ViewDecorator)({ entity: Sample })
223
- ], SampleView);
224
- let entity = new Sample().attach(scene_1.Scene.activeScene);
225
- entity.destroy();
226
- entity.destroy();
227
- update_loop_1.UpdateCycle.triggerUpdateTick(0); // Update cycle should take place to destroy functions to be called
228
- (0, vitest_1.expect)(viewDestroyCount).toEqual(1);
229
- });
230
- (0, vitest_1.test)('update tick should update view', async () => {
231
- let viewUpdateCount = 0;
232
- let Sample = class Sample extends entity_1.Entity {
233
- };
234
- Sample = __decorate([
235
- (0, entity_1.EntityDecorator)()
236
- ], Sample);
237
- let SampleView = class SampleView extends view_1.View {
238
- constructor(entity) {
239
- super();
240
- }
241
- update() {
242
- viewUpdateCount++;
243
- }
244
- };
245
- SampleView = __decorate([
246
- (0, view_1.ViewDecorator)({ entity: Sample }),
247
- __metadata("design:paramtypes", [Sample])
248
- ], SampleView);
249
- new Sample().attach(scene_1.Scene.activeScene);
250
- await (0, helpers_lib_1.Wait)(); // wait for async view init to be completed, so views can listen update ticks
251
- (0, vitest_1.expect)(viewUpdateCount).toEqual(0);
252
- update_loop_1.UpdateCycle.triggerUpdateTick(0);
253
- (0, vitest_1.expect)(viewUpdateCount).toEqual(1);
254
- update_loop_1.UpdateCycle.triggerUpdateTick(0);
255
- (0, vitest_1.expect)(viewUpdateCount).toEqual(2);
256
- });
257
- (0, vitest_1.test)('decorator should not effect static variables', () => {
258
- let BaseEntity = class BaseEntity extends entity_1.Entity {
259
- };
260
- BaseEntity = __decorate([
261
- (0, entity_1.EntityDecorator)()
262
- ], BaseEntity);
263
- let SampleView = class SampleView extends view_1.View {
264
- static { this.test = 'test'; }
265
- };
266
- SampleView = __decorate([
267
- (0, view_1.ViewDecorator)({ entity: BaseEntity })
268
- ], SampleView);
269
- (0, vitest_1.expect)(SampleView.test).toEqual('test');
270
- });
271
- (0, vitest_1.test)('should wait until creation and return the view object after', async () => {
272
- var SampleView_4;
273
- let BaseEntity = class BaseEntity extends entity_1.Entity {
274
- };
275
- BaseEntity = __decorate([
276
- (0, entity_1.EntityDecorator)()
277
- ], BaseEntity);
278
- let SampleView = class SampleView extends view_1.View {
279
- static { SampleView_4 = this; }
280
- constructor(entity) {
281
- super();
282
- SampleView_4.instance = this;
283
- }
284
- };
285
- SampleView = SampleView_4 = __decorate([
286
- (0, view_1.ViewDecorator)({ entity: BaseEntity }),
287
- __metadata("design:paramtypes", [BaseEntity])
288
- ], SampleView);
289
- let baseEntity = new BaseEntity().attach(scene_1.Scene.activeScene);
290
- let view = await SampleView.getInstanceOrFail(baseEntity.id);
291
- (0, vitest_1.expect)(SampleView.instance).toBeDefined();
292
- (0, vitest_1.expect)(SampleView.instance).toEqual(view);
293
- });
294
- (0, vitest_1.test)('should wait until creation and return the view object after in other views init', async () => {
295
- var SampleView1_1;
296
- let BaseEntity = class BaseEntity extends entity_1.Entity {
297
- };
298
- BaseEntity = __decorate([
299
- (0, entity_1.EntityDecorator)()
300
- ], BaseEntity);
301
- let SampleView2 = class SampleView2 extends view_1.View {
302
- constructor(entity) {
303
- super();
304
- this.entity = entity;
305
- }
306
- async init() {
307
- let view = await SampleView1.getInstanceOrFail(this.entity.id);
308
- (0, vitest_1.expect)(SampleView1.instance).toBeDefined();
309
- (0, vitest_1.expect)(SampleView1.instance).toEqual(view);
310
- }
311
- };
312
- SampleView2 = __decorate([
313
- (0, view_1.ViewDecorator)({ entity: BaseEntity }),
314
- __metadata("design:paramtypes", [BaseEntity])
315
- ], SampleView2);
316
- let SampleView1 = class SampleView1 extends view_1.View {
317
- static { SampleView1_1 = this; }
318
- constructor(entity) {
319
- super();
320
- SampleView1_1.instance = this;
321
- }
322
- async init() {
323
- await (0, helpers_lib_1.Wait)();
324
- }
325
- };
326
- SampleView1 = SampleView1_1 = __decorate([
327
- (0, view_1.ViewDecorator)({ entity: BaseEntity }),
328
- __metadata("design:paramtypes", [BaseEntity])
329
- ], SampleView1);
330
- new BaseEntity().attach(scene_1.Scene.activeScene);
331
- });
332
- (0, vitest_1.test)('should wait until creation and return the view object after, case entity get created before the view definition', async () => {
333
- var SampleView_5;
334
- let BaseEntity = class BaseEntity extends entity_1.Entity {
335
- };
336
- BaseEntity = __decorate([
337
- (0, entity_1.EntityDecorator)()
338
- ], BaseEntity);
339
- let baseEntity = new BaseEntity().attach(scene_1.Scene.activeScene);
340
- let SampleView = class SampleView extends view_1.View {
341
- static { SampleView_5 = this; }
342
- constructor(entity) {
343
- super();
344
- SampleView_5.instance = this;
345
- }
346
- };
347
- SampleView = SampleView_5 = __decorate([
348
- (0, view_1.ViewDecorator)({ entity: BaseEntity }),
349
- __metadata("design:paramtypes", [BaseEntity])
350
- ], SampleView);
351
- let view = await SampleView.getInstanceOrFail(baseEntity.id);
352
- (0, vitest_1.expect)(SampleView.instance).toBeDefined();
353
- (0, vitest_1.expect)(SampleView.instance).toEqual(view);
354
- });
355
- (0, vitest_1.test)('should wait until creation and return the view object after when there is an async init', async () => {
356
- var SampleView_6;
357
- let BaseEntity = class BaseEntity extends entity_1.Entity {
358
- };
359
- BaseEntity = __decorate([
360
- (0, entity_1.EntityDecorator)()
361
- ], BaseEntity);
362
- let SampleView = class SampleView extends view_1.View {
363
- static { SampleView_6 = this; }
364
- constructor(entity) {
365
- super();
366
- }
367
- async init() {
368
- await (0, helpers_lib_1.Wait)();
369
- SampleView_6.instance = this;
370
- }
371
- };
372
- SampleView = SampleView_6 = __decorate([
373
- (0, view_1.ViewDecorator)({ entity: BaseEntity }),
374
- __metadata("design:paramtypes", [BaseEntity])
375
- ], SampleView);
376
- let baseEntity = new BaseEntity().attach(scene_1.Scene.activeScene);
377
- let view = await SampleView.getInstanceOrFail(baseEntity.id);
378
- (0, vitest_1.expect)(SampleView.instance).toBeDefined();
379
- (0, vitest_1.expect)(SampleView.instance).toEqual(view);
380
- });
381
- (0, vitest_1.test)('should wait until creation and return the view object after when there is an async init, case entity get created before the view definition', async () => {
382
- var SampleView_7;
383
- let BaseEntity = class BaseEntity extends entity_1.Entity {
384
- };
385
- BaseEntity = __decorate([
386
- (0, entity_1.EntityDecorator)()
387
- ], BaseEntity);
388
- let baseEntity = new BaseEntity().attach(scene_1.Scene.activeScene);
389
- let SampleView = class SampleView extends view_1.View {
390
- static { SampleView_7 = this; }
391
- constructor(entity) {
392
- super();
393
- }
394
- async init() {
395
- await (0, helpers_lib_1.Wait)();
396
- SampleView_7.instance = this;
397
- }
398
- };
399
- SampleView = SampleView_7 = __decorate([
400
- (0, view_1.ViewDecorator)({ entity: BaseEntity }),
401
- __metadata("design:paramtypes", [BaseEntity])
402
- ], SampleView);
403
- let view = await SampleView.getInstanceOrFail(baseEntity.id);
404
- (0, vitest_1.expect)(SampleView.instance).toBeDefined();
405
- (0, vitest_1.expect)(SampleView.instance).toEqual(view);
406
- });
407
- (0, vitest_1.test)('should throw error if the entity id is belonging to another entity', async () => {
408
- var SampleView_8;
409
- let BaseEntity = class BaseEntity extends entity_1.Entity {
410
- };
411
- BaseEntity = __decorate([
412
- (0, entity_1.EntityDecorator)()
413
- ], BaseEntity);
414
- let baseEntity = new BaseEntity().attach(scene_1.Scene.activeScene);
415
- let SampleEntity = class SampleEntity extends entity_1.Entity {
416
- };
417
- SampleEntity = __decorate([
418
- (0, entity_1.EntityDecorator)()
419
- ], SampleEntity);
420
- let sampleEntity = new SampleEntity().attach(baseEntity);
421
- let SampleView = class SampleView extends view_1.View {
422
- static { SampleView_8 = this; }
423
- constructor(entity) {
424
- super();
425
- SampleView_8.instance = this;
426
- }
427
- };
428
- SampleView = SampleView_8 = __decorate([
429
- (0, view_1.ViewDecorator)({ entity: BaseEntity }),
430
- __metadata("design:paramtypes", [BaseEntity])
431
- ], SampleView);
432
- (0, vitest_1.expect)(async () => await SampleView.getInstanceOrFail(sampleEntity.id)).rejects.toThrow();
433
- });
434
- (0, vitest_1.test)('update tick should not update view until creation is complete', () => {
435
- var SampleView_9;
436
- let viewUpdateCount = 0;
437
- let Sample = class Sample extends entity_1.Entity {
438
- };
439
- Sample = __decorate([
440
- (0, entity_1.EntityDecorator)()
441
- ], Sample);
442
- let SampleView = class SampleView extends view_1.View {
443
- static { SampleView_9 = this; }
444
- constructor(entity) {
445
- super();
446
- SampleView_9.instance = this;
447
- }
448
- async init() {
449
- await (0, helpers_lib_1.Wait)();
450
- }
451
- update() {
452
- viewUpdateCount++;
453
- }
454
- };
455
- SampleView = SampleView_9 = __decorate([
456
- (0, view_1.ViewDecorator)({ entity: Sample }),
457
- __metadata("design:paramtypes", [Sample])
458
- ], SampleView);
459
- new Sample().attach(scene_1.Scene.activeScene);
460
- (0, vitest_1.expect)(viewUpdateCount).toEqual(0);
461
- update_loop_1.UpdateCycle.triggerUpdateTick(0);
462
- (0, vitest_1.expect)(viewUpdateCount).toEqual(0);
463
- SampleView.instance['creationIsDone']();
464
- update_loop_1.UpdateCycle.triggerUpdateTick(0);
465
- (0, vitest_1.expect)(viewUpdateCount).toEqual(1);
466
- });
467
- (0, vitest_1.test)('once entity is destroyed, it should not take effect until view completes its cycle', async () => {
468
- var Sample_1, SampleView_10;
469
- let sampleAction = new actions_lib_1.Action();
470
- let Sample = class Sample extends entity_1.Entity {
471
- static { Sample_1 = this; }
472
- static { this.triggered = false; }
473
- constructor() {
474
- super();
475
- sampleAction
476
- .subscribe(() => {
477
- Sample_1.triggered = true;
478
- entity.destroy();
479
- })
480
- .attach(this);
481
- }
482
- update() {
483
- sampleAction.trigger();
484
- }
485
- };
486
- Sample = Sample_1 = __decorate([
487
- (0, entity_1.EntityDecorator)(),
488
- __metadata("design:paramtypes", [])
489
- ], Sample);
490
- let SampleView = class SampleView extends view_1.View {
491
- static { SampleView_10 = this; }
492
- static { this.triggered = false; }
493
- constructor(entity) {
494
- super();
495
- }
496
- async init() {
497
- sampleAction
498
- .subscribe(() => {
499
- SampleView_10.triggered = true;
500
- })
501
- .attach(this);
502
- }
503
- };
504
- SampleView = SampleView_10 = __decorate([
505
- (0, view_1.ViewDecorator)({ entity: Sample }),
506
- __metadata("design:paramtypes", [Sample])
507
- ], SampleView);
508
- let entity = new Sample().attach(scene_1.Scene.activeScene);
509
- update_loop_1.UpdateCycle.triggerUpdateTick(0);
510
- (0, vitest_1.expect)(Sample.triggered).toEqual(true);
511
- (0, vitest_1.expect)(SampleView.triggered).toEqual(true);
512
- });
64
+ (0, vitest_1.beforeEach)(() => {
65
+ update_loop_1.UpdateCycle.hardResetAction.trigger();
66
+ let SampleScene = class SampleScene extends scene_1.Scene {};
67
+ SampleScene = __decorate([(0, scene_1.SceneDecorator)()], SampleScene);
68
+ SampleScene.open(undefined);
69
+ });
70
+ (0, vitest_1.test)('entity creation should create related view', () => {
71
+ var SampleView_1;
72
+ let Sample = class Sample extends entity_1.Entity {};
73
+ Sample = __decorate([(0, entity_1.EntityDecorator)()], Sample);
74
+ let SampleView = class SampleView extends view_1.View {
75
+ static {
76
+ SampleView_1 = SampleView;
77
+ }
78
+ constructor(entity) {
79
+ super();
80
+ SampleView_1.viewInstance = this;
81
+ }
82
+ };
83
+ SampleView = SampleView_1 = __decorate(
84
+ [(0, view_1.ViewDecorator)({ entity: Sample }), __metadata('design:paramtypes', [Sample])],
85
+ SampleView
86
+ );
87
+ new Sample().attach(scene_1.Scene.activeScene);
88
+ (0, vitest_1.expect)(SampleView.viewInstance).toBeDefined();
89
+ });
90
+ (0, vitest_1.test)('class names should be unique', () => {
91
+ let Sample = class Sample extends entity_1.Entity {};
92
+ Sample = __decorate([(0, entity_1.EntityDecorator)()], Sample);
93
+ (0, vitest_1.expect)(() => {
94
+ {
95
+ let SampleView = class SampleView extends view_1.View {};
96
+ SampleView = __decorate([(0, view_1.ViewDecorator)({ entity: Sample })], SampleView);
97
+ }
98
+ {
99
+ let SampleView = class SampleView extends view_1.View {};
100
+ SampleView = __decorate([(0, view_1.ViewDecorator)({ entity: Sample })], SampleView);
101
+ }
102
+ }).toThrow();
103
+ });
104
+ (0, vitest_1.test)('entity creation should create related view once', () => {
105
+ var SampleView_2;
106
+ let Sample = class Sample extends entity_1.Entity {};
107
+ Sample = __decorate([(0, entity_1.EntityDecorator)()], Sample);
108
+ let SampleView = class SampleView extends view_1.View {
109
+ static {
110
+ SampleView_2 = SampleView;
111
+ }
112
+ static {
113
+ SampleView.viewCall = 0;
114
+ }
115
+ constructor(entity) {
116
+ super();
117
+ SampleView_2.viewCall++;
118
+ }
119
+ };
120
+ SampleView = SampleView_2 = __decorate(
121
+ [(0, view_1.ViewDecorator)({ entity: Sample }), __metadata('design:paramtypes', [Sample])],
122
+ SampleView
123
+ );
124
+ new Sample().attach(scene_1.Scene.activeScene);
125
+ (0, vitest_1.expect)(SampleView.viewCall).toEqual(1);
126
+ });
127
+ (0, vitest_1.test)('entities should not destroy each others views on destroy', () => {
128
+ var SampleView_3;
129
+ let BaseEntity = class BaseEntity extends entity_1.Entity {};
130
+ BaseEntity = __decorate([(0, entity_1.EntityDecorator)()], BaseEntity);
131
+ const baseEntity = new BaseEntity().attach(scene_1.Scene.activeScene);
132
+ let Sample = class Sample extends entity_1.Entity {};
133
+ Sample = __decorate([(0, entity_1.EntityDecorator)()], Sample);
134
+ let SampleView = class SampleView extends view_1.View {
135
+ static {
136
+ SampleView_3 = SampleView;
137
+ }
138
+ static {
139
+ SampleView.viewInstanceCount = 0;
140
+ }
141
+ constructor(entity) {
142
+ super();
143
+ SampleView_3.viewInstanceCount++;
144
+ }
145
+ destroy() {
146
+ SampleView_3.viewInstanceCount--;
147
+ }
148
+ };
149
+ SampleView = SampleView_3 = __decorate(
150
+ [(0, view_1.ViewDecorator)({ entity: Sample }), __metadata('design:paramtypes', [Sample])],
151
+ SampleView
152
+ );
153
+ const entity1 = new Sample().attach(baseEntity);
154
+ const entity2 = new Sample().attach(baseEntity);
155
+ (0, vitest_1.expect)(SampleView.viewInstanceCount).toEqual(2);
156
+ entity1.destroy();
157
+ update_loop_1.UpdateCycle.triggerUpdateTick(0); // Update cycle should take place to destroy functions to be called
158
+ (0, vitest_1.expect)(SampleView.viewInstanceCount).toEqual(1);
159
+ entity2.destroy();
160
+ update_loop_1.UpdateCycle.triggerUpdateTick(0); // Update cycle should take place to destroy functions to be called
161
+ (0, vitest_1.expect)(SampleView.viewInstanceCount).toEqual(0);
162
+ });
163
+ (0, vitest_1.test)('entity destruction should destroy related views', () => {
164
+ let viewDestroyCount = 0;
165
+ let Sample = class Sample extends entity_1.Entity {};
166
+ Sample = __decorate([(0, entity_1.EntityDecorator)()], Sample);
167
+ let SampleView = class SampleView extends view_1.View {
168
+ destroy() {
169
+ viewDestroyCount++;
170
+ }
171
+ };
172
+ SampleView = __decorate([(0, view_1.ViewDecorator)({ entity: Sample })], SampleView);
173
+ const entity = new Sample().attach(scene_1.Scene.activeScene);
174
+ entity.destroy();
175
+ update_loop_1.UpdateCycle.triggerUpdateTick(0); // Update cycle should take place to destroy functions to be called
176
+ (0, vitest_1.expect)(viewDestroyCount).toEqual(1);
177
+ });
178
+ (0, vitest_1.test)('view destruction should destroy attached items', () => {
179
+ let viewDestroyCount = 0;
180
+ let Sample = class Sample extends entity_1.Entity {};
181
+ Sample = __decorate([(0, entity_1.EntityDecorator)()], Sample);
182
+ let Sample2 = class Sample2 extends entity_1.Entity {
183
+ destroy() {
184
+ viewDestroyCount++;
185
+ }
186
+ };
187
+ Sample2 = __decorate([(0, entity_1.EntityDecorator)()], Sample2);
188
+ let SampleView = class SampleView extends view_1.View {
189
+ constructor(entity) {
190
+ super();
191
+ new Sample2().attach(this);
192
+ }
193
+ };
194
+ SampleView = __decorate(
195
+ [(0, view_1.ViewDecorator)({ entity: Sample }), __metadata('design:paramtypes', [Sample])],
196
+ SampleView
197
+ );
198
+ const entity = new Sample().attach(scene_1.Scene.activeScene);
199
+ entity.destroy();
200
+ update_loop_1.UpdateCycle.triggerUpdateTick(0); // Update cycle should take place to destroy functions to be called
201
+ (0, vitest_1.expect)(viewDestroyCount).toEqual(1);
202
+ });
203
+ (0, vitest_1.test)('triggering destroy() multiple times should not take effect multiply', () => {
204
+ let viewDestroyCount = 0;
205
+ let Sample = class Sample extends entity_1.Entity {};
206
+ Sample = __decorate([(0, entity_1.EntityDecorator)()], Sample);
207
+ let SampleView = class SampleView extends view_1.View {
208
+ destroy() {
209
+ viewDestroyCount++;
210
+ }
211
+ };
212
+ SampleView = __decorate([(0, view_1.ViewDecorator)({ entity: Sample })], SampleView);
213
+ const entity = new Sample().attach(scene_1.Scene.activeScene);
214
+ entity.destroy();
215
+ entity.destroy();
216
+ update_loop_1.UpdateCycle.triggerUpdateTick(0); // Update cycle should take place to destroy functions to be called
217
+ (0, vitest_1.expect)(viewDestroyCount).toEqual(1);
218
+ });
219
+ (0, vitest_1.test)('update tick should update view', async () => {
220
+ let viewUpdateCount = 0;
221
+ let Sample = class Sample extends entity_1.Entity {};
222
+ Sample = __decorate([(0, entity_1.EntityDecorator)()], Sample);
223
+ let SampleView = class SampleView extends view_1.View {
224
+ constructor(entity) {
225
+ super();
226
+ }
227
+ update() {
228
+ viewUpdateCount++;
229
+ }
230
+ };
231
+ SampleView = __decorate(
232
+ [(0, view_1.ViewDecorator)({ entity: Sample }), __metadata('design:paramtypes', [Sample])],
233
+ SampleView
234
+ );
235
+ new Sample().attach(scene_1.Scene.activeScene);
236
+ await (0, helpers_lib_1.Wait)(); // wait for async view init to be completed, so views can listen update ticks
237
+ (0, vitest_1.expect)(viewUpdateCount).toEqual(0);
238
+ update_loop_1.UpdateCycle.triggerUpdateTick(0);
239
+ (0, vitest_1.expect)(viewUpdateCount).toEqual(1);
240
+ update_loop_1.UpdateCycle.triggerUpdateTick(0);
241
+ (0, vitest_1.expect)(viewUpdateCount).toEqual(2);
242
+ });
243
+ (0, vitest_1.test)('decorator should not effect static variables', () => {
244
+ let BaseEntity = class BaseEntity extends entity_1.Entity {};
245
+ BaseEntity = __decorate([(0, entity_1.EntityDecorator)()], BaseEntity);
246
+ let SampleView = class SampleView extends view_1.View {
247
+ static {
248
+ SampleView.test = 'test';
249
+ }
250
+ };
251
+ SampleView = __decorate([(0, view_1.ViewDecorator)({ entity: BaseEntity })], SampleView);
252
+ (0, vitest_1.expect)(SampleView.test).toEqual('test');
253
+ });
254
+ (0, vitest_1.test)('should wait until creation and return the view object after', async () => {
255
+ var SampleView_4;
256
+ let BaseEntity = class BaseEntity extends entity_1.Entity {};
257
+ BaseEntity = __decorate([(0, entity_1.EntityDecorator)()], BaseEntity);
258
+ let SampleView = class SampleView extends view_1.View {
259
+ static {
260
+ SampleView_4 = SampleView;
261
+ }
262
+ constructor(entity) {
263
+ super();
264
+ SampleView_4.instance = this;
265
+ }
266
+ };
267
+ SampleView = SampleView_4 = __decorate(
268
+ [(0, view_1.ViewDecorator)({ entity: BaseEntity }), __metadata('design:paramtypes', [BaseEntity])],
269
+ SampleView
270
+ );
271
+ const baseEntity = new BaseEntity().attach(scene_1.Scene.activeScene);
272
+ const view = await SampleView.getInstanceOrFail(baseEntity.id);
273
+ (0, vitest_1.expect)(SampleView.instance).toBeDefined();
274
+ (0, vitest_1.expect)(SampleView.instance).toEqual(view);
275
+ });
276
+ (0, vitest_1.test)('should wait until creation and return the view object after in other views init', async () => {
277
+ var SampleView1_1;
278
+ let BaseEntity = class BaseEntity extends entity_1.Entity {};
279
+ BaseEntity = __decorate([(0, entity_1.EntityDecorator)()], BaseEntity);
280
+ let SampleView2 = class SampleView2 extends view_1.View {
281
+ constructor(entity) {
282
+ super();
283
+ this.entity = entity;
284
+ }
285
+ async init() {
286
+ const view = await SampleView1.getInstanceOrFail(this.entity.id);
287
+ (0, vitest_1.expect)(SampleView1.instance).toBeDefined();
288
+ (0, vitest_1.expect)(SampleView1.instance).toEqual(view);
289
+ }
290
+ };
291
+ SampleView2 = __decorate(
292
+ [(0, view_1.ViewDecorator)({ entity: BaseEntity }), __metadata('design:paramtypes', [BaseEntity])],
293
+ SampleView2
294
+ );
295
+ let SampleView1 = class SampleView1 extends view_1.View {
296
+ static {
297
+ SampleView1_1 = SampleView1;
298
+ }
299
+ constructor(entity) {
300
+ super();
301
+ SampleView1_1.instance = this;
302
+ }
303
+ async init() {
304
+ await (0, helpers_lib_1.Wait)();
305
+ }
306
+ };
307
+ SampleView1 = SampleView1_1 = __decorate(
308
+ [(0, view_1.ViewDecorator)({ entity: BaseEntity }), __metadata('design:paramtypes', [BaseEntity])],
309
+ SampleView1
310
+ );
311
+ new BaseEntity().attach(scene_1.Scene.activeScene);
312
+ });
313
+ (0, vitest_1.test)(
314
+ 'should wait until creation and return the view object after, case entity get created before the view definition',
315
+ async () => {
316
+ var SampleView_5;
317
+ let BaseEntity = class BaseEntity extends entity_1.Entity {};
318
+ BaseEntity = __decorate([(0, entity_1.EntityDecorator)()], BaseEntity);
319
+ const baseEntity = new BaseEntity().attach(scene_1.Scene.activeScene);
320
+ let SampleView = class SampleView extends view_1.View {
321
+ static {
322
+ SampleView_5 = SampleView;
323
+ }
324
+ constructor(entity) {
325
+ super();
326
+ SampleView_5.instance = this;
327
+ }
328
+ };
329
+ SampleView = SampleView_5 = __decorate(
330
+ [(0, view_1.ViewDecorator)({ entity: BaseEntity }), __metadata('design:paramtypes', [BaseEntity])],
331
+ SampleView
332
+ );
333
+ const view = await SampleView.getInstanceOrFail(baseEntity.id);
334
+ (0, vitest_1.expect)(SampleView.instance).toBeDefined();
335
+ (0, vitest_1.expect)(SampleView.instance).toEqual(view);
336
+ }
337
+ );
338
+ (0, vitest_1.test)('should wait until creation and return the view object after when there is an async init', async () => {
339
+ var SampleView_6;
340
+ let BaseEntity = class BaseEntity extends entity_1.Entity {};
341
+ BaseEntity = __decorate([(0, entity_1.EntityDecorator)()], BaseEntity);
342
+ let SampleView = class SampleView extends view_1.View {
343
+ static {
344
+ SampleView_6 = SampleView;
345
+ }
346
+ constructor(entity) {
347
+ super();
348
+ }
349
+ async init() {
350
+ await (0, helpers_lib_1.Wait)();
351
+ SampleView_6.instance = this;
352
+ }
353
+ };
354
+ SampleView = SampleView_6 = __decorate(
355
+ [(0, view_1.ViewDecorator)({ entity: BaseEntity }), __metadata('design:paramtypes', [BaseEntity])],
356
+ SampleView
357
+ );
358
+ const baseEntity = new BaseEntity().attach(scene_1.Scene.activeScene);
359
+ const view = await SampleView.getInstanceOrFail(baseEntity.id);
360
+ (0, vitest_1.expect)(SampleView.instance).toBeDefined();
361
+ (0, vitest_1.expect)(SampleView.instance).toEqual(view);
362
+ });
363
+ (0, vitest_1.test)(
364
+ 'should wait until creation and return the view object after when there is an async init, case entity get created before the view definition',
365
+ async () => {
366
+ var SampleView_7;
367
+ let BaseEntity = class BaseEntity extends entity_1.Entity {};
368
+ BaseEntity = __decorate([(0, entity_1.EntityDecorator)()], BaseEntity);
369
+ const baseEntity = new BaseEntity().attach(scene_1.Scene.activeScene);
370
+ let SampleView = class SampleView extends view_1.View {
371
+ static {
372
+ SampleView_7 = SampleView;
373
+ }
374
+ constructor(entity) {
375
+ super();
376
+ }
377
+ async init() {
378
+ await (0, helpers_lib_1.Wait)();
379
+ SampleView_7.instance = this;
380
+ }
381
+ };
382
+ SampleView = SampleView_7 = __decorate(
383
+ [(0, view_1.ViewDecorator)({ entity: BaseEntity }), __metadata('design:paramtypes', [BaseEntity])],
384
+ SampleView
385
+ );
386
+ const view = await SampleView.getInstanceOrFail(baseEntity.id);
387
+ (0, vitest_1.expect)(SampleView.instance).toBeDefined();
388
+ (0, vitest_1.expect)(SampleView.instance).toEqual(view);
389
+ }
390
+ );
391
+ (0, vitest_1.test)('should throw error if the entity id is belonging to another entity', async () => {
392
+ var SampleView_8;
393
+ let BaseEntity = class BaseEntity extends entity_1.Entity {};
394
+ BaseEntity = __decorate([(0, entity_1.EntityDecorator)()], BaseEntity);
395
+ const baseEntity = new BaseEntity().attach(scene_1.Scene.activeScene);
396
+ let SampleEntity = class SampleEntity extends entity_1.Entity {};
397
+ SampleEntity = __decorate([(0, entity_1.EntityDecorator)()], SampleEntity);
398
+ const sampleEntity = new SampleEntity().attach(baseEntity);
399
+ let SampleView = class SampleView extends view_1.View {
400
+ static {
401
+ SampleView_8 = SampleView;
402
+ }
403
+ constructor(entity) {
404
+ super();
405
+ SampleView_8.instance = this;
406
+ }
407
+ };
408
+ SampleView = SampleView_8 = __decorate(
409
+ [(0, view_1.ViewDecorator)({ entity: BaseEntity }), __metadata('design:paramtypes', [BaseEntity])],
410
+ SampleView
411
+ );
412
+ (0, vitest_1.expect)(async () => await SampleView.getInstanceOrFail(sampleEntity.id)).rejects.toThrow();
413
+ });
414
+ (0, vitest_1.test)('update tick should not update view until creation is complete', () => {
415
+ var SampleView_9;
416
+ let viewUpdateCount = 0;
417
+ let Sample = class Sample extends entity_1.Entity {};
418
+ Sample = __decorate([(0, entity_1.EntityDecorator)()], Sample);
419
+ let SampleView = class SampleView extends view_1.View {
420
+ static {
421
+ SampleView_9 = SampleView;
422
+ }
423
+ constructor(entity) {
424
+ super();
425
+ SampleView_9.instance = this;
426
+ }
427
+ async init() {
428
+ await (0, helpers_lib_1.Wait)();
429
+ }
430
+ update() {
431
+ viewUpdateCount++;
432
+ }
433
+ };
434
+ SampleView = SampleView_9 = __decorate(
435
+ [(0, view_1.ViewDecorator)({ entity: Sample }), __metadata('design:paramtypes', [Sample])],
436
+ SampleView
437
+ );
438
+ new Sample().attach(scene_1.Scene.activeScene);
439
+ (0, vitest_1.expect)(viewUpdateCount).toEqual(0);
440
+ update_loop_1.UpdateCycle.triggerUpdateTick(0);
441
+ (0, vitest_1.expect)(viewUpdateCount).toEqual(0);
442
+ SampleView.instance['creationIsDone']();
443
+ update_loop_1.UpdateCycle.triggerUpdateTick(0);
444
+ (0, vitest_1.expect)(viewUpdateCount).toEqual(1);
445
+ });
446
+ (0, vitest_1.test)('once entity is destroyed, it should not take effect until view completes its cycle', async () => {
447
+ var Sample_1, SampleView_10;
448
+ const sampleAction = new actions_lib_1.Action();
449
+ let Sample = class Sample extends entity_1.Entity {
450
+ static {
451
+ Sample_1 = Sample;
452
+ }
453
+ static {
454
+ Sample.triggered = false;
455
+ }
456
+ constructor() {
457
+ super();
458
+ sampleAction
459
+ .subscribe(() => {
460
+ Sample_1.triggered = true;
461
+ entity.destroy();
462
+ })
463
+ .attach(this);
464
+ }
465
+ update() {
466
+ sampleAction.trigger();
467
+ }
468
+ };
469
+ Sample = Sample_1 = __decorate([(0, entity_1.EntityDecorator)(), __metadata('design:paramtypes', [])], Sample);
470
+ let SampleView = class SampleView extends view_1.View {
471
+ static {
472
+ SampleView_10 = SampleView;
473
+ }
474
+ static {
475
+ SampleView.triggered = false;
476
+ }
477
+ constructor(entity) {
478
+ super();
479
+ }
480
+ async init() {
481
+ sampleAction
482
+ .subscribe(() => {
483
+ SampleView_10.triggered = true;
484
+ })
485
+ .attach(this);
486
+ }
487
+ };
488
+ SampleView = SampleView_10 = __decorate(
489
+ [(0, view_1.ViewDecorator)({ entity: Sample }), __metadata('design:paramtypes', [Sample])],
490
+ SampleView
491
+ );
492
+ const entity = new Sample().attach(scene_1.Scene.activeScene);
493
+ update_loop_1.UpdateCycle.triggerUpdateTick(0);
494
+ (0, vitest_1.expect)(Sample.triggered).toEqual(true);
495
+ (0, vitest_1.expect)(SampleView.triggered).toEqual(true);
496
+ });
513
497
  });
514
- //# sourceMappingURL=view.spec.js.map
498
+ //# sourceMappingURL=view.spec.js.map