bard-legends-framework 0.9.6 → 0.10.0

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 (241) 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.d.ts +4 -1
  21. package/dist/game-entities/entity/entity.js +5 -5
  22. package/dist/game-entities/entity/entity.spec.js +263 -293
  23. package/dist/game-entities/entity/helpers/view-creation.helper.d.ts +7 -7
  24. package/dist/game-entities/entity/helpers/view-creation.helper.js +48 -48
  25. package/dist/game-entities/scene/scene.spec.js +219 -223
  26. package/dist/game-entities/service/service.js +0 -4
  27. package/dist/game-entities/service/service.spec.js +265 -237
  28. package/dist/game-entities/service/service.test.js +4 -2
  29. package/dist/game-entities/update-loop.d.ts +18 -18
  30. package/dist/game-entities/update-loop.js +46 -28
  31. package/dist/game-entities/view/view.spec.js +490 -506
  32. package/dist/game-entities/view/view.test.js +1 -1
  33. package/dist/lib/animator/animations.d.ts +13 -13
  34. package/dist/lib/animator/animations.js +43 -40
  35. package/dist/lib/animator/animator.d.ts +41 -41
  36. package/dist/lib/animator/animator.js +194 -197
  37. package/dist/lib/animator/animator.spec.js +699 -612
  38. package/dist/lib/animator/index.js +24 -19
  39. package/dist/lib/libraries/animator/animations.d.ts +13 -13
  40. package/dist/lib/libraries/animator/animations.js +43 -40
  41. package/dist/lib/libraries/animator/animator.d.ts +41 -41
  42. package/dist/lib/libraries/animator/animator.js +194 -197
  43. package/dist/lib/libraries/animator/animator.spec.js +699 -612
  44. package/dist/lib/libraries/animator/index.js +24 -19
  45. package/dist/lib/libraries/path-finder/path-finder.d.ts +2 -2
  46. package/dist/lib/libraries/path-finder/path-finder.js +19 -20
  47. package/dist/lib/path-finder/path-finder.d.ts +2 -2
  48. package/dist/lib/path-finder/path-finder.js +19 -20
  49. package/dist/lib/services/keyboard/keyboard.d.ts +4 -4
  50. package/dist/lib/services/keyboard/keyboard.js +39 -31
  51. package/dist/lib/services/mouse/mouse.service.d.ts +8 -8
  52. package/dist/lib/services/mouse/mouse.service.js +65 -53
  53. package/dist/lib/services/mouse/mouser-target-focus.service.d.ts +11 -11
  54. package/dist/lib/services/mouse/mouser-target-focus.service.js +83 -81
  55. package/dist/lib/update-loop.d.ts +10 -10
  56. package/dist/lib/update-loop.js +35 -27
  57. package/dist/physics/entitity-types/immovable-physics-entity.d.ts +6 -6
  58. package/dist/physics/entitity-types/immovable-physics-entity.js +23 -24
  59. package/dist/physics/entitity-types/movable-entity.d.ts +6 -6
  60. package/dist/physics/entitity-types/movable-entity.js +21 -22
  61. package/dist/physics/entitity-types/movable-physics-entity.d.ts +14 -14
  62. package/dist/physics/entitity-types/movable-physics-entity.js +83 -88
  63. package/dist/physics/entitity-types/physics-entity.d.ts +23 -23
  64. package/dist/physics/entitity-types/physics-entity.js +97 -88
  65. package/dist/physics/helpers/closest-available-space.helper.d.ts +16 -16
  66. package/dist/physics/helpers/closest-available-space.helper.js +98 -96
  67. package/dist/physics/helpers/closest-available-space.helper.spec.js +115 -68
  68. package/dist/physics/helpers/p2js.helper.d.ts +3 -3
  69. package/dist/physics/helpers/p2js.helper.js +21 -22
  70. package/dist/physics/helpers/shape-factory.d.ts +9 -4
  71. package/dist/physics/helpers/shape-factory.js +99 -75
  72. package/dist/physics/libs/p2js.helper.js +1 -1
  73. package/dist/physics/libs/position-to-grid-position-converter.d.ts +3 -3
  74. package/dist/physics/libs/position-to-grid-position-converter.js +15 -13
  75. package/dist/physics/module//360/237/223/220services/availability-grid.service.d.ts +10 -5
  76. package/dist/physics/module//360/237/223/220services/availability-grid.service.js +77 -57
  77. package/dist/physics/module//360/237/223/220services/border.service.d.ts +2 -2
  78. package/dist/physics/module//360/237/223/220services/border.service.js +57 -37
  79. package/dist/physics/module//360/237/223/220services/collision/physics-body-group.service.js +1 -1
  80. package/dist/physics/module//360/237/223/220services/collisions.service.d.ts +7 -7
  81. package/dist/physics/module//360/237/223/220services/collisions.service.js +110 -98
  82. package/dist/physics/module//360/237/223/220services/debug-visuals.service.d.ts +28 -6
  83. package/dist/physics/module//360/237/223/220services/debug-visuals.service.js +121 -89
  84. package/dist/physics/module//360/237/223/220services/eliptic-explosion.service.d.ts +15 -7
  85. package/dist/physics/module//360/237/223/220services/eliptic-explosion.service.js +117 -93
  86. package/dist/physics/module//360/237/223/220services/explosion.service.d.ts +14 -7
  87. package/dist/physics/module//360/237/223/220services/explosion.service.js +102 -77
  88. package/dist/physics/module//360/237/223/220services/explosions/eliptic-explosion.service.d.ts +15 -7
  89. package/dist/physics/module//360/237/223/220services/explosions/eliptic-explosion.service.js +117 -93
  90. package/dist/physics/module//360/237/223/220services/explosions/explosion.service.d.ts +14 -7
  91. package/dist/physics/module//360/237/223/220services/explosions/explosion.service.js +102 -77
  92. package/dist/physics/module//360/237/223/220services/explosions/helpers/ray-cast-hit-converter.d.ts +3 -3
  93. package/dist/physics/module//360/237/223/220services/explosions/helpers/ray-cast-hit-converter.js +71 -67
  94. package/dist/physics/module//360/237/223/220services/helpers/ray-cast-hit-converter.d.ts +3 -3
  95. package/dist/physics/module//360/237/223/220services/helpers/ray-cast-hit-converter.js +71 -67
  96. package/dist/physics/module//360/237/223/220services/impact/eliptic-explosion.service.js +1 -1
  97. package/dist/physics/module//360/237/223/220services/materials.service.d.ts +16 -11
  98. package/dist/physics/module//360/237/223/220services/materials.service.js +118 -108
  99. package/dist/physics/module//360/237/223/220services/path-finder.service.d.ts +19 -8
  100. package/dist/physics/module//360/237/223/220services/path-finder.service.js +121 -82
  101. package/dist/physics/module//360/237/223/220services/physics-world.service.d.ts +30 -15
  102. package/dist/physics/module//360/237/223/220services/physics-world.service.js +122 -100
  103. package/dist/physics/module//360/237/223/220services/ray-casting.service.d.ts +3 -3
  104. package/dist/physics/module//360/237/223/220services/ray-casting.service.js +87 -86
  105. package/dist/physics/module//360/237/223/220services/shape-creation.service.d.ts +9 -4
  106. package/dist/physics/module//360/237/223/220services/shape-creation.service.js +113 -84
  107. package/dist/physics/module//360/237/223/220services/test-visuals/test-visuals.service.js +2 -1
  108. package/dist/physics/module//360/237/247/212entities/data-structures/availability-grid-cache.d.ts +8 -8
  109. package/dist/physics/module//360/237/247/212entities/data-structures/availability-grid-cache.js +32 -33
  110. package/dist/physics/physics-world.d.ts +50 -34
  111. package/dist/physics/physics-world.js +142 -133
  112. package/dist/physics/sub-elements/available-spaces/helpers/availability-grid.helper.d.ts +3 -3
  113. package/dist/physics/sub-elements/available-spaces/helpers/availability-grid.helper.js +15 -13
  114. package/dist/physics/sub-elements/available-spaces/physics-availability-grid.d.ts +9 -9
  115. package/dist/physics/sub-elements/available-spaces/physics-availability-grid.js +82 -77
  116. package/dist/physics/sub-elements/available-spaces/physics-available-spaces.d.ts +18 -14
  117. package/dist/physics/sub-elements/available-spaces/physics-available-spaces.js +91 -79
  118. package/dist/physics/sub-elements/collisions/contact-equation-orginiser.d.ts +11 -11
  119. package/dist/physics/sub-elements/collisions/contact-equation-orginiser.js +84 -76
  120. package/dist/physics/sub-elements/collisions/physics-collision.d.ts +7 -7
  121. package/dist/physics/sub-elements/collisions/physics-collision.js +43 -44
  122. package/dist/physics/sub-elements/elements/physics-body-groups.d.ts +11 -11
  123. package/dist/physics/sub-elements/elements/physics-body-groups.js +54 -54
  124. package/dist/physics/sub-elements/elements/physics-materials.d.ts +15 -10
  125. package/dist/physics/sub-elements/elements/physics-materials.js +101 -100
  126. package/dist/physics/sub-elements/elements/physics-world-borders.d.ts +3 -3
  127. package/dist/physics/sub-elements/elements/physics-world-borders.js +69 -45
  128. package/dist/physics/sub-elements/physics-body-groups.d.ts +8 -8
  129. package/dist/physics/sub-elements/physics-body-groups.js +41 -42
  130. package/dist/physics/sub-elements/physics-collision.d.ts +16 -16
  131. package/dist/physics/sub-elements/physics-collision.js +141 -121
  132. package/dist/physics/sub-elements/physics-materials.d.ts +15 -10
  133. package/dist/physics/sub-elements/physics-materials.js +101 -100
  134. package/dist/physics/sub-elements/physics-world-borders.d.ts +2 -2
  135. package/dist/physics/sub-elements/physics-world-borders.js +25 -26
  136. package/dist/physics/sub-elements/raycasting/physics-body-explosion-hit.d.ts +15 -11
  137. package/dist/physics/sub-elements/raycasting/physics-body-explosion-hit.js +59 -59
  138. package/dist/physics/sub-elements/raycasting/physics-explosion.d.ts +13 -6
  139. package/dist/physics/sub-elements/raycasting/physics-explosion.js +108 -73
  140. package/dist/physics/sub-elements/raycasting/ray-cast.d.ts +19 -19
  141. package/dist/physics/sub-elements/raycasting/ray-cast.js +93 -98
  142. package/dist/pixi/display-object/components/filters.d.ts +18 -18
  143. package/dist/pixi/display-object/components/filters.js +106 -81
  144. package/dist/pixi/display-object/components/glow-effect.d.ts +8 -8
  145. package/dist/pixi/display-object/components/glow-effect.js +33 -36
  146. package/dist/pixi/display-object/components/glow-filter.d.ts +8 -8
  147. package/dist/pixi/display-object/components/glow-filter.js +33 -36
  148. package/dist/pixi/display-object/container-attributes.js +1 -1
  149. package/dist/pixi/display-object/display-object-attributes.d.ts +41 -41
  150. package/dist/pixi/display-object/display-object-attributes.js +148 -150
  151. package/dist/pixi/display-object/display-object.d.ts +17 -17
  152. package/dist/pixi/display-object/display-object.js +79 -75
  153. package/dist/pixi/display-object/filters/base-filters/alpha-primer-color.filter.d.ts +9 -4
  154. package/dist/pixi/display-object/filters/base-filters/alpha-primer-color.filter.js +89 -77
  155. package/dist/pixi/display-object/filters/base-filters/blur.filter.js +30 -30
  156. package/dist/pixi/display-object/filters/base-filters/contrast-filter.d.ts +9 -4
  157. package/dist/pixi/display-object/filters/base-filters/contrast-filter.js +62 -53
  158. package/dist/pixi/display-object/filters/base-filters/expand-with-alpha-color.d.ts +10 -5
  159. package/dist/pixi/display-object/filters/base-filters/expand-with-alpha-color.js +93 -81
  160. package/dist/pixi/display-object/filters/base-filters/expand-with-color-gradient.d.ts +12 -7
  161. package/dist/pixi/display-object/filters/base-filters/expand-with-color-gradient.js +120 -109
  162. package/dist/pixi/display-object/filters/base-filters/expand-with-color.d.ts +10 -5
  163. package/dist/pixi/display-object/filters/base-filters/expand-with-color.filter.js +32 -32
  164. package/dist/pixi/display-object/filters/base-filters/expand-with-color.js +92 -85
  165. package/dist/pixi/display-object/filters/templates/checking-neighbors.template.js +28 -28
  166. package/dist/pixi/display-object/filters/templates/plane.template.js +20 -20
  167. package/dist/pixi/display-object/filters.js +20 -4
  168. package/dist/pixi/display-object/objects/components/filters.d.ts +18 -18
  169. package/dist/pixi/display-object/objects/components/filters.js +106 -81
  170. package/dist/pixi/display-object/objects/container.d.ts +2 -2
  171. package/dist/pixi/display-object/objects/container.js +39 -30
  172. package/dist/pixi/display-object/objects/graphics.d.ts +28 -28
  173. package/dist/pixi/display-object/objects/graphics.js +218 -202
  174. package/dist/pixi/display-object/objects/helpers/filters.d.ts +25 -25
  175. package/dist/pixi/display-object/objects/helpers/filters.js +150 -124
  176. package/dist/pixi/display-object/objects/helpers/glow-sprite-generator.d.ts +7 -7
  177. package/dist/pixi/display-object/objects/helpers/glow-sprite-generator.js +114 -95
  178. package/dist/pixi/display-object/objects/premade-objects/sprite-with-glowing-shapes.d.ts +5 -5
  179. package/dist/pixi/display-object/objects/premade-objects/sprite-with-glowing-shapes.js +81 -57
  180. package/dist/pixi/display-object/objects/sprite.d.ts +43 -43
  181. package/dist/pixi/display-object/objects/sprite.js +248 -233
  182. package/dist/pixi/display-object/objects/text/helpers/process-steps/1-data-in-converter/rich-text-data-in-converter.js +1 -1
  183. package/dist/pixi/display-object/objects/text/helpers/process-steps/1-data-in-converter/rich-text-data-in-converter.test.js +9 -9
  184. package/dist/pixi/display-object/objects/text/helpers/rich-text-to-plane-text.d.ts +1 -1
  185. package/dist/pixi/display-object/objects/text.d.ts +25 -25
  186. package/dist/pixi/display-object/objects/text.js +111 -102
  187. package/dist/pixi/display-object/premade-objects/sprite-with-glowing-shapes.d.ts +13 -9
  188. package/dist/pixi/display-object/premade-objects/sprite-with-glowing-shapes.js +96 -67
  189. package/dist/pixi/game.d.ts +1 -1
  190. package/dist/pixi/game.js +2 -2
  191. package/dist/pixi/helpers/glow-sprite-generator.d.ts +6 -6
  192. package/dist/pixi/helpers/glow-sprite-generator.js +99 -84
  193. package/dist/pixi/helpers/pixi-container.helper.d.ts +1 -1
  194. package/dist/pixi/helpers/pixi-container.helper.js +10 -8
  195. package/dist/pixi/helpers/screen-position-to-stage.helper.d.ts +1 -1
  196. package/dist/pixi/helpers/screen-position-to-stage.helper.js +12 -12
  197. package/dist/pixi/helpers/screen-position-to-stage.helper.test.js +174 -79
  198. package/dist/pixi/modules/CAMERA/index.d.ts +1 -1
  199. package/dist/pixi/modules/CAMERA/index.js +3 -3
  200. package/dist/pixi/modules/CAMERA//360/237/247/212entities/camera.entity.js +1 -1
  201. package/dist/services/keyboard/keyboard.d.ts +4 -4
  202. package/dist/services/keyboard/keyboard.js +39 -31
  203. package/dist/services/mouse/mouse.service.d.ts +8 -8
  204. package/dist/services/mouse/mouse.service.js +65 -53
  205. package/dist/services/mouse/mouser-target-focus.service.d.ts +11 -11
  206. package/dist/services/mouse/mouser-target-focus.service.js +83 -81
  207. package/dist/utilities/libraries/animator/animating-content/state-animation.d.ts +29 -26
  208. package/dist/utilities/libraries/animator/animating-content/state-animation.js +159 -165
  209. package/dist/utilities/libraries/animator/animating-content/state-animation.test.js +386 -375
  210. package/dist/utilities/libraries/animator/animator.spec.js +765 -656
  211. package/dist/utilities/libraries/binary-heap/binary-heap.d.ts +11 -11
  212. package/dist/utilities/libraries/binary-heap/binary-heap.js +79 -81
  213. package/dist/utilities/libraries/data-structures/binary-heap/binary-heap.d.ts +11 -11
  214. package/dist/utilities/libraries/data-structures/binary-heap/binary-heap.js +79 -81
  215. package/dist/utilities/libraries/data-structures/grid/grid.d.ts +35 -31
  216. package/dist/utilities/libraries/data-structures/grid/grid.js +128 -117
  217. package/dist/utilities/libraries/data-structures/grid/grid.spec.js +176 -138
  218. package/dist/utilities/libraries/data-structures/grid/grid.test.js +218 -141
  219. package/dist/utilities/libraries/data-structures/grid/position-to-grid-position-converter.d.ts +3 -3
  220. package/dist/utilities/libraries/data-structures/grid/position-to-grid-position-converter.js +15 -13
  221. package/dist/utilities/libraries/data-structures/queue/queue.d.ts +21 -21
  222. package/dist/utilities/libraries/data-structures/queue/queue.js +63 -66
  223. package/dist/utilities/libraries/data-structures/queue/queue.test.js +54 -55
  224. package/dist/utilities/libraries/grid-algorithms/closest-available-space/closest-available-space.helper.spec.js +122 -68
  225. package/dist/utilities/libraries/grid-algorithms/path-finder/path-finder.spec.js +140 -135
  226. package/dist/utilities/libraries/grid-algorithms/vector-field-path-finder/vector-field-path-finder.spec.js +293 -229
  227. package/dist/utilities/libraries/path-finder/path-finder.d.ts +7 -7
  228. package/dist/utilities/libraries/path-finder/path-finder.js +113 -109
  229. package/dist/utilities/libraries/path-finder/path-finder.spec.js +131 -106
  230. package/dist/utilities/services/keyboard/keyboard.d.ts +4 -4
  231. package/dist/utilities/services/keyboard/keyboard.js +42 -34
  232. package/dist/utilities/services/mouse/helpers/mouse-position.helper.d.ts +1 -1
  233. package/dist/utilities/services/mouse/helpers/mouse-position.helper.js +12 -12
  234. package/dist/utilities/services/mouse/helpers/mouse-position.helper.test.js +168 -73
  235. package/dist/utilities/services/mouse/mouse-target-focus.service.d.ts +15 -15
  236. package/dist/utilities/services/mouse/mouse-target-focus.service.js +79 -76
  237. package/dist/utilities/services/mouse/mouse.service.d.ts +9 -9
  238. package/dist/utilities/services/mouse/mouse.service.js +86 -72
  239. package/dist/utilities/services/mouse/mouser-target-focus.service.d.ts +11 -11
  240. package/dist/utilities/services/mouse/mouser-target-focus.service.js +83 -81
  241. package/package.json +8 -13
@@ -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