@hology/core 0.0.90 → 0.0.92

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 (412) hide show
  1. package/LICENSE.md +14 -14
  2. package/README.md +2 -2
  3. package/dist/config/project-config.d.ts +1 -0
  4. package/dist/config/project-config.d.ts.map +1 -0
  5. package/dist/config/project-config.js +1 -2
  6. package/dist/controllers/base-game-controller.d.ts +1 -0
  7. package/dist/controllers/base-game-controller.d.ts.map +1 -0
  8. package/dist/controllers/base-game-controller.js +1 -2
  9. package/dist/csm.d.ts +1 -0
  10. package/dist/csm.d.ts.map +1 -0
  11. package/dist/csm.js +1 -2
  12. package/dist/effects/particles/examples.d.ts +1 -0
  13. package/dist/effects/particles/examples.d.ts.map +1 -0
  14. package/dist/effects/particles/examples.js +1 -2
  15. package/dist/effects/particles/particle-system-config.d.ts +1 -0
  16. package/dist/effects/particles/particle-system-config.d.ts.map +1 -0
  17. package/dist/effects/particles/particle-system-config.js +1 -2
  18. package/dist/effects/vfx/behaviours.d.ts +3 -1
  19. package/dist/effects/vfx/behaviours.d.ts.map +1 -0
  20. package/dist/effects/vfx/behaviours.js +1 -2
  21. package/dist/effects/vfx/index.d.ts +1 -0
  22. package/dist/effects/vfx/index.d.ts.map +1 -0
  23. package/dist/effects/vfx/index.js +1 -2
  24. package/dist/effects/vfx/initializsers.d.ts +20 -39
  25. package/dist/effects/vfx/initializsers.d.ts.map +1 -0
  26. package/dist/effects/vfx/initializsers.js +1 -2
  27. package/dist/effects/vfx/rates.d.ts +5 -4
  28. package/dist/effects/vfx/rates.d.ts.map +1 -0
  29. package/dist/effects/vfx/rates.js +1 -2
  30. package/dist/effects/vfx/stretched-sprite.d.ts +1 -0
  31. package/dist/effects/vfx/stretched-sprite.d.ts.map +1 -0
  32. package/dist/effects/vfx/stretched-sprite.js +1 -2
  33. package/dist/effects/vfx/trail-renderer.d.ts +1 -0
  34. package/dist/effects/vfx/trail-renderer.d.ts.map +1 -0
  35. package/dist/effects/vfx/trail-renderer.js +1 -2
  36. package/dist/effects/vfx/vfx-actor.d.ts +2 -1
  37. package/dist/effects/vfx/vfx-actor.d.ts.map +1 -0
  38. package/dist/effects/vfx/vfx-actor.js +1 -2
  39. package/dist/effects/vfx/vfx-asset.d.ts +11 -0
  40. package/dist/effects/vfx/vfx-asset.d.ts.map +1 -0
  41. package/dist/effects/vfx/vfx-asset.js +1 -2
  42. package/dist/effects/vfx/vfx-defs.d.ts +11 -7
  43. package/dist/effects/vfx/vfx-defs.d.ts.map +1 -0
  44. package/dist/effects/vfx/vfx-defs.js +1 -2
  45. package/dist/effects/vfx/vfx-materializer.d.ts +9 -1
  46. package/dist/effects/vfx/vfx-materializer.d.ts.map +1 -0
  47. package/dist/effects/vfx/vfx-materializer.js +1 -2
  48. package/dist/effects/vfx/vfx-old-materializer.d.ts +2 -11
  49. package/dist/effects/vfx/vfx-old-materializer.d.ts.map +1 -0
  50. package/dist/effects/vfx/vfx-old-materializer.js +1 -2
  51. package/dist/effects/vfx/vfx-param.d.ts +1 -0
  52. package/dist/effects/vfx/vfx-param.d.ts.map +1 -0
  53. package/dist/effects/vfx/vfx-param.js +1 -2
  54. package/dist/effects/vfx/vfx-renderers.d.ts +2 -1
  55. package/dist/effects/vfx/vfx-renderers.d.ts.map +1 -0
  56. package/dist/effects/vfx/vfx-renderers.js +1 -2
  57. package/dist/effects/vfx/vfx-service.d.ts +1 -0
  58. package/dist/effects/vfx/vfx-service.d.ts.map +1 -0
  59. package/dist/effects/vfx/vfx-service.js +1 -2
  60. package/dist/effects/vfx/zones.d.ts +2 -1
  61. package/dist/effects/vfx/zones.d.ts.map +1 -0
  62. package/dist/effects/vfx/zones.js +1 -2
  63. package/dist/game-component/component-decorators.d.ts +1 -0
  64. package/dist/game-component/component-decorators.d.ts.map +1 -0
  65. package/dist/game-component/component-decorators.js +1 -2
  66. package/dist/game-component/game-component.d.ts +1 -0
  67. package/dist/game-component/game-component.d.ts.map +1 -0
  68. package/dist/game-component/game-component.js +1 -2
  69. package/dist/gameplay/actors/actor.d.ts +1 -0
  70. package/dist/gameplay/actors/actor.d.ts.map +1 -0
  71. package/dist/gameplay/actors/actor.js +1 -2
  72. package/dist/gameplay/actors/builtin/camera-actor.d.ts +1 -0
  73. package/dist/gameplay/actors/builtin/camera-actor.d.ts.map +1 -0
  74. package/dist/gameplay/actors/builtin/camera-actor.js +1 -2
  75. package/dist/gameplay/actors/builtin/components/character/character-animation.d.ts +1 -0
  76. package/dist/gameplay/actors/builtin/components/character/character-animation.d.ts.map +1 -0
  77. package/dist/gameplay/actors/builtin/components/character/character-animation.js +1 -2
  78. package/dist/gameplay/actors/builtin/components/character/character-movement copy.d.ts +1 -0
  79. package/dist/gameplay/actors/builtin/components/character/character-movement copy.d.ts.map +1 -0
  80. package/dist/gameplay/actors/builtin/components/character/character-movement copy.js +1 -2
  81. package/dist/gameplay/actors/builtin/components/character/character-movement.d.ts +1 -0
  82. package/dist/gameplay/actors/builtin/components/character/character-movement.d.ts.map +1 -0
  83. package/dist/gameplay/actors/builtin/components/character/character-movement.js +1 -2
  84. package/dist/gameplay/actors/builtin/components/character/modes.d.ts +1 -0
  85. package/dist/gameplay/actors/builtin/components/character/modes.d.ts.map +1 -0
  86. package/dist/gameplay/actors/builtin/components/character/modes.js +1 -2
  87. package/dist/gameplay/actors/builtin/components/mesh-component.d.ts +1 -0
  88. package/dist/gameplay/actors/builtin/components/mesh-component.d.ts.map +1 -0
  89. package/dist/gameplay/actors/builtin/components/mesh-component.js +1 -2
  90. package/dist/gameplay/actors/builtin/components/scene-component.d.ts +1 -0
  91. package/dist/gameplay/actors/builtin/components/scene-component.d.ts.map +1 -0
  92. package/dist/gameplay/actors/builtin/components/scene-component.js +1 -2
  93. package/dist/gameplay/actors/builtin/index.d.ts +1 -0
  94. package/dist/gameplay/actors/builtin/index.d.ts.map +1 -0
  95. package/dist/gameplay/actors/builtin/index.js +1 -2
  96. package/dist/gameplay/actors/builtin/navmesh-actor.d.ts +1 -0
  97. package/dist/gameplay/actors/builtin/navmesh-actor.d.ts.map +1 -0
  98. package/dist/gameplay/actors/builtin/navmesh-actor.js +1 -2
  99. package/dist/gameplay/actors/builtin/positional-audio-actor.d.ts +1 -0
  100. package/dist/gameplay/actors/builtin/positional-audio-actor.d.ts.map +1 -0
  101. package/dist/gameplay/actors/builtin/positional-audio-actor.js +1 -2
  102. package/dist/gameplay/actors/builtin/spawn-point.d.ts +1 -0
  103. package/dist/gameplay/actors/builtin/spawn-point.d.ts.map +1 -0
  104. package/dist/gameplay/actors/builtin/spawn-point.js +1 -2
  105. package/dist/gameplay/actors/builtin/trigger-volume.d.ts +1 -0
  106. package/dist/gameplay/actors/builtin/trigger-volume.d.ts.map +1 -0
  107. package/dist/gameplay/actors/builtin/trigger-volume.js +1 -2
  108. package/dist/gameplay/actors/camera/camera-component.d.ts +1 -0
  109. package/dist/gameplay/actors/camera/camera-component.d.ts.map +1 -0
  110. package/dist/gameplay/actors/camera/camera-component.js +1 -2
  111. package/dist/gameplay/actors/camera/third-person-camera-component.d.ts +1 -0
  112. package/dist/gameplay/actors/camera/third-person-camera-component.d.ts.map +1 -0
  113. package/dist/gameplay/actors/camera/third-person-camera-component.js +1 -2
  114. package/dist/gameplay/actors/component.d.ts +1 -0
  115. package/dist/gameplay/actors/component.d.ts.map +1 -0
  116. package/dist/gameplay/actors/component.js +1 -2
  117. package/dist/gameplay/actors/factory.d.ts +1 -0
  118. package/dist/gameplay/actors/factory.d.ts.map +1 -0
  119. package/dist/gameplay/actors/factory.js +1 -2
  120. package/dist/gameplay/actors/index.d.ts +1 -0
  121. package/dist/gameplay/actors/index.d.ts.map +1 -0
  122. package/dist/gameplay/actors/index.js +1 -2
  123. package/dist/gameplay/actors/internal/component-init.d.ts +1 -0
  124. package/dist/gameplay/actors/internal/component-init.d.ts.map +1 -0
  125. package/dist/gameplay/actors/internal/component-init.js +1 -2
  126. package/dist/gameplay/actors/internal/container-map.d.ts +1 -0
  127. package/dist/gameplay/actors/internal/container-map.d.ts.map +1 -0
  128. package/dist/gameplay/actors/internal/container-map.js +1 -2
  129. package/dist/gameplay/ai/behavior-tree/bt.d.ts +1 -0
  130. package/dist/gameplay/ai/behavior-tree/bt.d.ts.map +1 -0
  131. package/dist/gameplay/ai/behavior-tree/bt.js +1 -2
  132. package/dist/gameplay/ai/behavior-tree/move.d.ts +1 -0
  133. package/dist/gameplay/ai/behavior-tree/move.d.ts.map +1 -0
  134. package/dist/gameplay/ai/behavior-tree/move.js +1 -2
  135. package/dist/gameplay/ai/build-tile.d.ts +1 -0
  136. package/dist/gameplay/ai/build-tile.d.ts.map +1 -0
  137. package/dist/gameplay/ai/build-tile.js +1 -2
  138. package/dist/gameplay/ai/dynamic-tiled-navmesh.d.ts +1 -0
  139. package/dist/gameplay/ai/dynamic-tiled-navmesh.d.ts.map +1 -0
  140. package/dist/gameplay/ai/dynamic-tiled-navmesh.js +1 -2
  141. package/dist/gameplay/ai/dynamic-tiled-navmesh.worker.d.ts +1 -0
  142. package/dist/gameplay/ai/dynamic-tiled-navmesh.worker.d.ts.map +1 -0
  143. package/dist/gameplay/ai/dynamic-tiled-navmesh.worker.js +1 -2
  144. package/dist/gameplay/ai/index.d.ts +1 -0
  145. package/dist/gameplay/ai/index.d.ts.map +1 -0
  146. package/dist/gameplay/ai/index.js +1 -2
  147. package/dist/gameplay/ai/navigation.d.ts +1 -0
  148. package/dist/gameplay/ai/navigation.d.ts.map +1 -0
  149. package/dist/gameplay/ai/navigation.js +1 -2
  150. package/dist/gameplay/animation/anim-sm.d.ts +1 -0
  151. package/dist/gameplay/animation/anim-sm.d.ts.map +1 -0
  152. package/dist/gameplay/animation/anim-sm.js +1 -2
  153. package/dist/gameplay/animation/root-motion.d.ts +1 -0
  154. package/dist/gameplay/animation/root-motion.d.ts.map +1 -0
  155. package/dist/gameplay/animation/root-motion.js +1 -2
  156. package/dist/gameplay/env.d.ts +1 -0
  157. package/dist/gameplay/env.d.ts.map +1 -0
  158. package/dist/gameplay/env.js +1 -2
  159. package/dist/gameplay/index.d.ts +1 -0
  160. package/dist/gameplay/index.d.ts.map +1 -0
  161. package/dist/gameplay/index.js +1 -2
  162. package/dist/gameplay/initiate.d.ts +1 -0
  163. package/dist/gameplay/initiate.d.ts.map +1 -0
  164. package/dist/gameplay/initiate.js +1 -2
  165. package/dist/gameplay/inject.d.ts +1 -0
  166. package/dist/gameplay/inject.d.ts.map +1 -0
  167. package/dist/gameplay/inject.js +1 -2
  168. package/dist/gameplay/input/index.d.ts +1 -0
  169. package/dist/gameplay/input/index.d.ts.map +1 -0
  170. package/dist/gameplay/input/index.js +1 -2
  171. package/dist/gameplay/input/input-service.d.ts +1 -0
  172. package/dist/gameplay/input/input-service.d.ts.map +1 -0
  173. package/dist/gameplay/input/input-service.js +1 -2
  174. package/dist/gameplay/input/input.d.ts +1 -0
  175. package/dist/gameplay/input/input.d.ts.map +1 -0
  176. package/dist/gameplay/input/input.js +1 -2
  177. package/dist/gameplay/input/keybind.d.ts +1 -0
  178. package/dist/gameplay/input/keybind.d.ts.map +1 -0
  179. package/dist/gameplay/input/keybind.js +1 -2
  180. package/dist/gameplay/polyfill.d.ts +1 -0
  181. package/dist/gameplay/polyfill.d.ts.map +1 -0
  182. package/dist/gameplay/polyfill.js +1 -2
  183. package/dist/gameplay/services/asset-loader.d.ts +1 -0
  184. package/dist/gameplay/services/asset-loader.d.ts.map +1 -0
  185. package/dist/gameplay/services/asset-loader.js +1 -2
  186. package/dist/gameplay/services/physics/abstract-physics-system.d.ts +202 -0
  187. package/dist/gameplay/services/physics/abstract-physics-system.d.ts.map +1 -0
  188. package/dist/gameplay/services/physics/abstract-physics-system.js +4 -0
  189. package/dist/gameplay/services/physics/collision-contact.d.ts +1 -0
  190. package/dist/gameplay/services/physics/collision-contact.d.ts.map +1 -0
  191. package/dist/gameplay/services/physics/collision-contact.js +1 -2
  192. package/dist/gameplay/services/physics/physics-system.d.ts +283 -24
  193. package/dist/gameplay/services/physics/physics-system.d.ts.map +1 -0
  194. package/dist/gameplay/services/physics/physics-system.js +1 -2
  195. package/dist/gameplay/services/pointer-events.d.ts +1 -0
  196. package/dist/gameplay/services/pointer-events.d.ts.map +1 -0
  197. package/dist/gameplay/services/pointer-events.js +1 -2
  198. package/dist/gameplay/services/render.d.ts +1 -0
  199. package/dist/gameplay/services/render.d.ts.map +1 -0
  200. package/dist/gameplay/services/render.js +1 -2
  201. package/dist/gameplay/services/world.d.ts +1 -0
  202. package/dist/gameplay/services/world.d.ts.map +1 -0
  203. package/dist/gameplay/services/world.js +1 -2
  204. package/dist/index.d.ts +1 -0
  205. package/dist/index.d.ts.map +1 -0
  206. package/dist/index.js +1 -2
  207. package/dist/rendering/shader-override.d.ts +1 -0
  208. package/dist/rendering/shader-override.d.ts.map +1 -0
  209. package/dist/rendering/shader-override.js +1 -2
  210. package/dist/rendering.d.ts +1 -0
  211. package/dist/rendering.d.ts.map +1 -0
  212. package/dist/rendering.js +1 -2
  213. package/dist/scene/asset-resource-loader.d.ts +1 -0
  214. package/dist/scene/asset-resource-loader.d.ts.map +1 -0
  215. package/dist/scene/asset-resource-loader.js +1 -2
  216. package/dist/scene/assets-provider.d.ts +1 -0
  217. package/dist/scene/assets-provider.d.ts.map +1 -0
  218. package/dist/scene/assets-provider.js +1 -2
  219. package/dist/scene/bootstrap.d.ts +1 -0
  220. package/dist/scene/bootstrap.d.ts.map +1 -0
  221. package/dist/scene/bootstrap.js +1 -2
  222. package/dist/scene/collision/collision-shape-import.d.ts +1 -0
  223. package/dist/scene/collision/collision-shape-import.d.ts.map +1 -0
  224. package/dist/scene/collision/collision-shape-import.js +1 -2
  225. package/dist/scene/collision/collision-shape.d.ts +1 -0
  226. package/dist/scene/collision/collision-shape.d.ts.map +1 -0
  227. package/dist/scene/collision/collision-shape.js +1 -2
  228. package/dist/scene/landscape/landscape-manager.d.ts +1 -0
  229. package/dist/scene/landscape/landscape-manager.d.ts.map +1 -0
  230. package/dist/scene/landscape/landscape-manager.js +1 -2
  231. package/dist/scene/landscape/landscape.d.ts +1 -0
  232. package/dist/scene/landscape/landscape.d.ts.map +1 -0
  233. package/dist/scene/landscape/landscape.js +1 -2
  234. package/dist/scene/landscape/utils.d.ts +1 -0
  235. package/dist/scene/landscape/utils.d.ts.map +1 -0
  236. package/dist/scene/landscape/utils.js +1 -2
  237. package/dist/scene/materializer.d.ts +1 -0
  238. package/dist/scene/materializer.d.ts.map +1 -0
  239. package/dist/scene/materializer.js +1 -2
  240. package/dist/scene/materials/grass-foliage.d.ts +1 -0
  241. package/dist/scene/materials/grass-foliage.d.ts.map +1 -0
  242. package/dist/scene/materials/grass-foliage.js +1 -2
  243. package/dist/scene/materials/grass.d.ts +1 -0
  244. package/dist/scene/materials/grass.d.ts.map +1 -0
  245. package/dist/scene/materials/grass.js +1 -2
  246. package/dist/scene/materials/utils/material-painting.d.ts +1 -0
  247. package/dist/scene/materials/utils/material-painting.d.ts.map +1 -0
  248. package/dist/scene/materials/utils/material-painting.js +1 -2
  249. package/dist/scene/materials/utils/noise.glsl.d.ts +1 -0
  250. package/dist/scene/materials/utils/noise.glsl.d.ts.map +1 -0
  251. package/dist/scene/materials/utils/noise.glsl.js +1 -2
  252. package/dist/scene/materials/water.d.ts +1 -0
  253. package/dist/scene/materials/water.d.ts.map +1 -0
  254. package/dist/scene/materials/water.js +1 -2
  255. package/dist/scene/model.d.ts +1 -0
  256. package/dist/scene/model.d.ts.map +1 -0
  257. package/dist/scene/model.js +1 -2
  258. package/dist/scene/objects/ramp-geometry.d.ts +1 -0
  259. package/dist/scene/objects/ramp-geometry.d.ts.map +1 -0
  260. package/dist/scene/objects/ramp-geometry.js +1 -2
  261. package/dist/scene/objects/shapes.d.ts +2 -2
  262. package/dist/scene/objects/shapes.d.ts.map +1 -0
  263. package/dist/scene/objects/shapes.js +1 -2
  264. package/dist/scene/objects/stairs-geometry.d.ts +1 -0
  265. package/dist/scene/objects/stairs-geometry.d.ts.map +1 -0
  266. package/dist/scene/objects/stairs-geometry.js +1 -2
  267. package/dist/scene/runtime-asset-service.d.ts +1 -0
  268. package/dist/scene/runtime-asset-service.d.ts.map +1 -0
  269. package/dist/scene/runtime-asset-service.js +1 -2
  270. package/dist/scene/runtime-backend-service.d.ts +1 -0
  271. package/dist/scene/runtime-backend-service.d.ts.map +1 -0
  272. package/dist/scene/runtime-backend-service.js +1 -2
  273. package/dist/scene/runtime-bundled-backend-service.d.ts +1 -0
  274. package/dist/scene/runtime-bundled-backend-service.d.ts.map +1 -0
  275. package/dist/scene/runtime-bundled-backend-service.js +1 -2
  276. package/dist/scene/scene-data-service.d.ts +1 -0
  277. package/dist/scene/scene-data-service.d.ts.map +1 -0
  278. package/dist/scene/scene-data-service.js +1 -2
  279. package/dist/scene/sky.d.ts +1 -0
  280. package/dist/scene/sky.d.ts.map +1 -0
  281. package/dist/scene/sky.js +1 -2
  282. package/dist/scene/storage/storage.d.ts +1 -0
  283. package/dist/scene/storage/storage.d.ts.map +1 -0
  284. package/dist/scene/storage/storage.js +1 -2
  285. package/dist/shader/builtin/index.d.ts +1 -0
  286. package/dist/shader/builtin/index.d.ts.map +1 -0
  287. package/dist/shader/builtin/index.js +1 -2
  288. package/dist/shader/builtin/lambert-shader.d.ts +1 -0
  289. package/dist/shader/builtin/lambert-shader.d.ts.map +1 -0
  290. package/dist/shader/builtin/lambert-shader.js +1 -2
  291. package/dist/shader/builtin/landscape-composite-shader.d.ts +1 -0
  292. package/dist/shader/builtin/landscape-composite-shader.d.ts.map +1 -0
  293. package/dist/shader/builtin/landscape-composite-shader.js +1 -2
  294. package/dist/shader/builtin/landscape-shader.d.ts +1 -0
  295. package/dist/shader/builtin/landscape-shader.d.ts.map +1 -0
  296. package/dist/shader/builtin/landscape-shader.js +1 -2
  297. package/dist/shader/builtin/standard-shader.d.ts +1 -0
  298. package/dist/shader/builtin/standard-shader.d.ts.map +1 -0
  299. package/dist/shader/builtin/standard-shader.js +1 -2
  300. package/dist/shader/builtin/unlit-shader.d.ts +1 -0
  301. package/dist/shader/builtin/unlit-shader.d.ts.map +1 -0
  302. package/dist/shader/builtin/unlit-shader.js +1 -2
  303. package/dist/shader/index.d.ts +1 -0
  304. package/dist/shader/index.d.ts.map +1 -0
  305. package/dist/shader/index.js +1 -2
  306. package/dist/shader/parameter.d.ts +1 -0
  307. package/dist/shader/parameter.d.ts.map +1 -0
  308. package/dist/shader/parameter.js +1 -2
  309. package/dist/shader/shader.d.ts +1 -0
  310. package/dist/shader/shader.d.ts.map +1 -0
  311. package/dist/shader/shader.js +1 -2
  312. package/dist/shader-nodes/bulge.d.ts +1 -0
  313. package/dist/shader-nodes/bulge.d.ts.map +1 -0
  314. package/dist/shader-nodes/bulge.js +1 -2
  315. package/dist/shader-nodes/depth.d.ts +1 -0
  316. package/dist/shader-nodes/depth.d.ts.map +1 -0
  317. package/dist/shader-nodes/depth.js +1 -2
  318. package/dist/shader-nodes/effects.d.ts +1 -0
  319. package/dist/shader-nodes/effects.d.ts.map +1 -0
  320. package/dist/shader-nodes/effects.js +1 -2
  321. package/dist/shader-nodes/glsl-node.d.ts +2 -1
  322. package/dist/shader-nodes/glsl-node.d.ts.map +1 -0
  323. package/dist/shader-nodes/glsl-node.js +1 -2
  324. package/dist/shader-nodes/index.d.ts +2 -0
  325. package/dist/shader-nodes/index.d.ts.map +1 -0
  326. package/dist/shader-nodes/index.js +1 -2
  327. package/dist/shader-nodes/landscape.d.ts +1 -0
  328. package/dist/shader-nodes/landscape.d.ts.map +1 -0
  329. package/dist/shader-nodes/landscape.js +1 -2
  330. package/dist/shader-nodes/layers.d.ts +1 -0
  331. package/dist/shader-nodes/layers.d.ts.map +1 -0
  332. package/dist/shader-nodes/layers.js +1 -2
  333. package/dist/shader-nodes/math.d.ts +1 -0
  334. package/dist/shader-nodes/math.d.ts.map +1 -0
  335. package/dist/shader-nodes/math.js +1 -2
  336. package/dist/shader-nodes/particle.d.ts +3 -0
  337. package/dist/shader-nodes/particle.d.ts.map +1 -0
  338. package/dist/shader-nodes/particle.js +1 -2
  339. package/dist/shader-nodes/shapes.d.ts +1 -0
  340. package/dist/shader-nodes/shapes.d.ts.map +1 -0
  341. package/dist/shader-nodes/shapes.js +1 -2
  342. package/dist/shader-nodes/texture-sequence.d.ts +2 -1
  343. package/dist/shader-nodes/texture-sequence.d.ts.map +1 -0
  344. package/dist/shader-nodes/texture-sequence.js +1 -2
  345. package/dist/shader-nodes/time.d.ts +1 -0
  346. package/dist/shader-nodes/time.d.ts.map +1 -0
  347. package/dist/shader-nodes/time.js +1 -2
  348. package/dist/shader-nodes/voronoi.d.ts +1 -0
  349. package/dist/shader-nodes/voronoi.d.ts.map +1 -0
  350. package/dist/shader-nodes/voronoi.js +1 -2
  351. package/dist/test/injection.test.d.ts +1 -0
  352. package/dist/test/injection.test.d.ts.map +1 -0
  353. package/dist/test/injection.test.js +1 -2
  354. package/dist/utils/async.d.ts +1 -0
  355. package/dist/utils/async.d.ts.map +1 -0
  356. package/dist/utils/async.js +1 -2
  357. package/dist/utils/buffer.d.ts +1 -0
  358. package/dist/utils/buffer.d.ts.map +1 -0
  359. package/dist/utils/buffer.js +1 -2
  360. package/dist/utils/collections.d.ts +1 -0
  361. package/dist/utils/collections.d.ts.map +1 -0
  362. package/dist/utils/collections.js +1 -2
  363. package/dist/utils/files.d.ts +1 -0
  364. package/dist/utils/files.d.ts.map +1 -0
  365. package/dist/utils/files.js +1 -2
  366. package/dist/utils/materials.d.ts +1 -0
  367. package/dist/utils/materials.d.ts.map +1 -0
  368. package/dist/utils/materials.js +1 -2
  369. package/dist/utils/math.d.ts +1 -0
  370. package/dist/utils/math.d.ts.map +1 -0
  371. package/dist/utils/math.js +1 -2
  372. package/dist/utils/mesh.d.ts +1 -0
  373. package/dist/utils/mesh.d.ts.map +1 -0
  374. package/dist/utils/mesh.js +1 -2
  375. package/dist/utils/polyfill.d.ts +1 -0
  376. package/dist/utils/polyfill.d.ts.map +1 -0
  377. package/dist/utils/polyfill.js +1 -2
  378. package/dist/utils/three/depth-pass.d.ts +1 -0
  379. package/dist/utils/three/depth-pass.d.ts.map +1 -0
  380. package/dist/utils/three/depth-pass.js +1 -2
  381. package/dist/utils/three/gpu-stats-panel.d.ts +1 -0
  382. package/dist/utils/three/gpu-stats-panel.d.ts.map +1 -0
  383. package/dist/utils/three/gpu-stats-panel.js +1 -2
  384. package/dist/utils/three/line-sphere.d.ts +1 -0
  385. package/dist/utils/three/line-sphere.d.ts.map +1 -0
  386. package/dist/utils/three/line-sphere.js +1 -2
  387. package/dist/utils/three/outline-pass.d.ts +1 -0
  388. package/dist/utils/three/outline-pass.d.ts.map +1 -0
  389. package/dist/utils/three/outline-pass.js +1 -2
  390. package/dist/utils/three/positional-audio-helper.d.ts +1 -0
  391. package/dist/utils/three/positional-audio-helper.d.ts.map +1 -0
  392. package/dist/utils/three/positional-audio-helper.js +1 -2
  393. package/dist/utils/three/stats.d.ts +1 -0
  394. package/dist/utils/three/stats.d.ts.map +1 -0
  395. package/dist/utils/three/stats.js +1 -2
  396. package/dist/utils/three/transform-controls.d.ts +1 -0
  397. package/dist/utils/three/transform-controls.d.ts.map +1 -0
  398. package/dist/utils/three/transform-controls.js +1 -2
  399. package/dist/utils/three/traverse.d.ts +1 -0
  400. package/dist/utils/three/traverse.d.ts.map +1 -0
  401. package/dist/utils/three/traverse.js +1 -2
  402. package/dist/utils/type.d.ts +1 -0
  403. package/dist/utils/type.d.ts.map +1 -0
  404. package/dist/utils/type.js +1 -2
  405. package/dist/utils/uuid.d.ts +1 -0
  406. package/dist/utils/uuid.d.ts.map +1 -0
  407. package/dist/utils/uuid.js +1 -2
  408. package/dist/worker/index.d.ts +1 -0
  409. package/dist/worker/index.d.ts.map +1 -0
  410. package/dist/worker/index.js +1 -2
  411. package/package.json +122 -122
  412. package/tsconfig.tsbuildinfo +1 -1
@@ -31,3 +31,4 @@ export declare class DynamicTiledNavMesh {
31
31
  getTilesForBounds(bounds: THREE.Box3): [x: number, y: number][];
32
32
  destroy(): void;
33
33
  }
34
+ //# sourceMappingURL=dynamic-tiled-navmesh.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamic-tiled-navmesh.d.ts","sourceRoot":"","sources":["../../../src/gameplay/ai/dynamic-tiled-navmesh.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,OAAO,EAGP,YAAY,EAEZ,YAAY,EAGf,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAI9B,MAAM,MAAM,wBAAwB,GAAG;IACnC,aAAa,EAAE,KAAK,CAAC,IAAI,CAAA;IACzB,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;IACnC,QAAQ,EAAE,MAAM,CAAA;IAEhB,OAAO,EAAE,MAAM,CAAA;IAEf,OAAO,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,qBAAa,mBAAmB;IAC5B,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,SAAI;IAClB,eAAe,2DAAiE;IAEhF,aAAa,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY,CAAC,CAAA;IACrD,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAA;IAC/B,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAA;IAC/B,aAAa,EAAE,KAAK,CAAC,OAAO,CAAA;IAE5B,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,MAAM,CAAA;IAEX,YAAY,EAAE,YAAY,CAAA;IAE1B,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,CAAA;IAC5B,gBAAgB,SAAI;IAEpB,OAAO,CAAC,OAAO,CAAQ;gBAEX,KAAK,EAAE,wBAAwB;IAmD3C,OAAO,CAAC,QAAQ;IA+BhB,SAAS,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,YAAY,GAAE,OAAc;IAuE7H,aAAa,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW;IAU3D,uBAAuB,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO;IAOpD,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI;IAepC,OAAO;CAOV"}
@@ -1,5 +1,4 @@
1
- import{NavMesh as t,NavMeshParams as s,Raw as e,UnsignedCharArray as i,recastConfigDefaults as o,statusToReadableString as n}from"recast-navigation";import{buildConfig as r,buildTile as a}from"./build-tile.js";import{Subject as h}from"rxjs";import{hasWorkerBuilder as l,createWorker as d}from"../../worker/index.js";import{hasSharedArrayBufferSupport as u}from"../../utils/buffer.js";export class DynamicTiledNavMesh{constructor(e){this.navMeshVersion=0,this.onNavMeshUpdate=new h,this.workerRoundRobin=0;const i=e.navMeshBounds.min,n=e.navMeshBounds.max,a=[i.toArray(),n.toArray()],u=e.navMeshBounds.min;this.navMeshBoundsMin=i,this.navMeshBoundsMax=n,this.navMeshBounds=a,this.navMeshOrigin=u,this.cacheId=e.cacheId;const c={...o,...e.recastConfig};this.recastConfig=c;const M=new t,{tileWidth:f,tileHeight:v,tcs:m,maxPolysPerTile:g}=r({recastConfig:c,navMeshBounds:a});this.tileWidth=f,this.tileHeight=v,this.tcs=m;const w=s.create({orig:u,tileWidth:c.tileSize*c.cs,tileHeight:c.tileSize*c.ch,maxTiles:e.maxTiles,maxPolys:g});if(M.initTiled(w),this.navMesh=M,this.workers=[],l())for(let t=0;t<e.workers;t++){const t=d();t.onmessage=t=>{this.onResult(t)},this.workers.push(t)}}onResult(t){const{tileX:s,tileY:o,navMeshData:r}=t.data,a=new i;a.copy(r),this.navMesh.removeTile(this.navMesh.getTileRefAt(s,o,0));const h=this.navMesh.addTile(a,e.Module.DT_TILE_FREE_DATA,0);e.Detour.statusFailed(h.status)&&(console.error(e.Module.RC_LOG_WARNING,`Failed to add tile to nav mesh\n\ttx: ${s}, ty: ${o},status: ${n(h.status)} (${h.status})`),a.destroy()),this.navMeshVersion++,this.onNavMeshUpdate.next([this.navMeshVersion,[s,o]])}buildTile(t,s,[e,i],o=!0){const n=u&&t.buffer instanceof window.SharedArrayBuffer,r=n?t:new Float32Array(t),h=n?s:new Uint32Array(s),l={tileX:e,tileY:i,tileBoundsMin:[this.navMeshBoundsMin.x+e*this.tcs,this.navMeshBoundsMin.y,this.navMeshBoundsMin.z+i*this.tcs],tileBoundsMax:[this.navMeshBoundsMax.x+(e+1)*this.tcs,this.navMeshBoundsMax.y,this.navMeshBoundsMax.z+(i+1)*this.tcs],recastConfig:this.recastConfig,navMeshBounds:this.navMeshBounds,keepIntermediates:!1,positions:r,indices:h};if(this.workers.length>0){this.workerRoundRobin=++this.workerRoundRobin%this.workers.length;return this.workers[this.workerRoundRobin].postMessage(l,n?void 0:[r.buffer,h.buffer]),Promise.resolve()}return new Promise((t=>{requestIdleCallback((()=>{const s=this.cacheId+JSON.stringify({tileX:l.tileX,tileY:l.tileY});if(o){const e=localStorage.getItem(s);if(null!=e){const s=M(e);return this.onResult({data:{tileX:l.tileX,tileY:l.tileY,navMeshData:s}}),void t({})}}else localStorage.removeItem(s);const e=a(l);if(!e.success||!e.data)return;const i=e.data.toTypedArray();localStorage.setItem(s,c(i)),this.onResult({data:{tileX:l.tileX,tileY:l.tileY,navMeshData:i}}),t(e)}))}))}buildAllTiles(t,s){const{tileWidth:e,tileHeight:i}=this;for(let o=0;o<i;o++)for(let i=0;i<e;i++)this.buildTile(t,s,[i,o])}getTileForWorldPosition(t){return[Math.floor((t.x-this.navMeshBoundsMin.x)/this.tcs),Math.floor((t.z-this.navMeshBoundsMin.z)/this.tcs)]}getTilesForBounds(t){const s=this.getTileForWorldPosition(t.min),e=this.getTileForWorldPosition(t.max),i=[];for(let t=s[1];t<=e[1];t++)for(let o=s[0];o<=e[0];o++)i.push([o,t]);return i}destroy(){this.navMesh.destroy();for(const t of this.workers)t.terminate()}}const c=function(t){return btoa(String.fromCharCode(...t))},M=function(t){if(!t)return null;const s=atob(t),e=s.length,i=new Uint8Array(e);for(let t=0;t<e;t++)i[t]=s.charCodeAt(t);return i};
2
- /*
1
+ import{NavMesh as t,NavMeshParams as s,Raw as e,UnsignedCharArray as i,recastConfigDefaults as o,statusToReadableString as n}from"recast-navigation";import{buildConfig as r,buildTile as a}from"./build-tile.js";import{Subject as h}from"rxjs";import{hasWorkerBuilder as l,createWorker as d}from"../../worker/index.js";import{hasSharedArrayBufferSupport as u}from"../../utils/buffer.js";export class DynamicTiledNavMesh{constructor(e){this.navMeshVersion=0,this.onNavMeshUpdate=new h,this.workerRoundRobin=0;const i=e.navMeshBounds.min,n=e.navMeshBounds.max,a=[i.toArray(),n.toArray()],u=e.navMeshBounds.min;this.navMeshBoundsMin=i,this.navMeshBoundsMax=n,this.navMeshBounds=a,this.navMeshOrigin=u,this.cacheId=e.cacheId;const c={...o,...e.recastConfig};this.recastConfig=c;const M=new t,{tileWidth:f,tileHeight:v,tcs:m,maxPolysPerTile:g}=r({recastConfig:c,navMeshBounds:a});this.tileWidth=f,this.tileHeight=v,this.tcs=m;const w=s.create({orig:u,tileWidth:c.tileSize*c.cs,tileHeight:c.tileSize*c.ch,maxTiles:e.maxTiles,maxPolys:g});if(M.initTiled(w),this.navMesh=M,this.workers=[],l())for(let t=0;t<e.workers;t++){const t=d();t.onmessage=t=>{this.onResult(t)},this.workers.push(t)}}onResult(t){const{tileX:s,tileY:o,navMeshData:r}=t.data,a=new i;a.copy(r),this.navMesh.removeTile(this.navMesh.getTileRefAt(s,o,0));const h=this.navMesh.addTile(a,e.Module.DT_TILE_FREE_DATA,0);e.Detour.statusFailed(h.status)&&(console.error(e.Module.RC_LOG_WARNING,`Failed to add tile to nav mesh\n\ttx: ${s}, ty: ${o},status: ${n(h.status)} (${h.status})`),a.destroy()),this.navMeshVersion++,this.onNavMeshUpdate.next([this.navMeshVersion,[s,o]])}buildTile(t,s,[e,i],o=!0){const n=u&&t.buffer instanceof window.SharedArrayBuffer,r=n?t:new Float32Array(t),h=n?s:new Uint32Array(s),l={tileX:e,tileY:i,tileBoundsMin:[this.navMeshBoundsMin.x+e*this.tcs,this.navMeshBoundsMin.y,this.navMeshBoundsMin.z+i*this.tcs],tileBoundsMax:[this.navMeshBoundsMax.x+(e+1)*this.tcs,this.navMeshBoundsMax.y,this.navMeshBoundsMax.z+(i+1)*this.tcs],recastConfig:this.recastConfig,navMeshBounds:this.navMeshBounds,keepIntermediates:!1,positions:r,indices:h};if(this.workers.length>0){this.workerRoundRobin=++this.workerRoundRobin%this.workers.length;return this.workers[this.workerRoundRobin].postMessage(l,n?void 0:[r.buffer,h.buffer]),Promise.resolve()}return new Promise((t=>{requestIdleCallback((()=>{const s=this.cacheId+JSON.stringify({tileX:l.tileX,tileY:l.tileY});if(o){const e=localStorage.getItem(s);if(null!=e){const s=M(e);return this.onResult({data:{tileX:l.tileX,tileY:l.tileY,navMeshData:s}}),void t({})}}else localStorage.removeItem(s);const e=a(l);if(!e.success||!e.data)return;const i=e.data.toTypedArray();localStorage.setItem(s,c(i)),this.onResult({data:{tileX:l.tileX,tileY:l.tileY,navMeshData:i}}),t(e)}))}))}buildAllTiles(t,s){const{tileWidth:e,tileHeight:i}=this;for(let o=0;o<i;o++)for(let i=0;i<e;i++)this.buildTile(t,s,[i,o])}getTileForWorldPosition(t){return[Math.floor((t.x-this.navMeshBoundsMin.x)/this.tcs),Math.floor((t.z-this.navMeshBoundsMin.z)/this.tcs)]}getTilesForBounds(t){const s=this.getTileForWorldPosition(t.min),e=this.getTileForWorldPosition(t.max),i=[];for(let t=s[1];t<=e[1];t++)for(let o=s[0];o<=e[0];o++)i.push([o,t]);return i}destroy(){this.navMesh.destroy();for(const t of this.workers)t.terminate()}}const c=function(t){return btoa(String.fromCharCode(...t))},M=function(t){if(!t)return null;const s=atob(t),e=s.length,i=new Uint8Array(e);for(let t=0;t<e;t++)i[t]=s.charCodeAt(t);return i};/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -1 +1,2 @@
1
1
  export declare function setupNavMeshWorker(): void;
2
+ //# sourceMappingURL=dynamic-tiled-navmesh.worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamic-tiled-navmesh.worker.d.ts","sourceRoot":"","sources":["../../../src/gameplay/ai/dynamic-tiled-navmesh.worker.ts"],"names":[],"mappings":"AAOA,wBAAgB,kBAAkB,SAiBjC"}
@@ -1,5 +1,4 @@
1
- import{init as t}from"recast-navigation";import{buildTile as e}from"./build-tile.js";let s=!1;const a=[];export function setupNavMeshWorker(){t().then((()=>{s=!0;for(const t of a)o(t)})),self.onmessage=t=>{s?o(t.data):a.push(t.data)}}const o=t=>{const s=e(t);if(!s.success||!s.data)return;const a=s.data.toTypedArray();s.data.destroy(),self.postMessage({tileX:t.tileX,tileY:t.tileY,navMeshData:a},[a.buffer])};
2
- /*
1
+ import{init as t}from"recast-navigation";import{buildTile as e}from"./build-tile.js";let s=!1;const a=[];export function setupNavMeshWorker(){t().then((()=>{s=!0;for(const t of a)o(t)})),self.onmessage=t=>{s?o(t.data):a.push(t.data)}}const o=t=>{const s=e(t);if(!s.success||!s.data)return;const a=s.data.toTypedArray();s.data.destroy(),self.postMessage({tileX:t.tileX,tileY:t.tileY,navMeshData:a},[a.buffer])};/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -1,3 +1,4 @@
1
1
  export * from './navigation.js';
2
2
  export * from './behavior-tree/bt.js';
3
3
  export * from './behavior-tree/move.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/gameplay/ai/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA"}
@@ -1,5 +1,4 @@
1
- export*from"./navigation.js";export*from"./behavior-tree/bt.js";export*from"./behavior-tree/move.js";
2
- /*
1
+ export*from"./navigation.js";export*from"./behavior-tree/bt.js";export*from"./behavior-tree/move.js";/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -18,3 +18,4 @@ export declare class Navigation {
18
18
  */
19
19
  findClosestPoint(position: Vector3): Vector3 | null;
20
20
  }
21
+ //# sourceMappingURL=navigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../src/gameplay/ai/navigation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAIhC,qBACa,UAAU;IACrB,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,KAAK,CAAC,CAAc;IAC5B,OAAO,CAAC,KAAK,CAAgB;;IAwB7B,OAAO,CAAC,WAAW;IAMnB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,GAAG;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,OAAO,EAAE,CAAA;KAAC;IAoB3E;;;OAGG;IACH,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,GAAC,IAAI;CAYlD"}
@@ -1,5 +1,4 @@
1
- import{__decorate as t,__metadata as e}from"tslib";import{NavMeshQuery as s}from"recast-navigation";import{Vector3 as n}from"three";import{inject as r,Service as o,World as i}from"../";import h,{safeRecastInit as u}from"../actors/builtin/navmesh-actor";let a=class{constructor(){this.world=r(i),u().then((()=>{const t=this.world.actors.find((t=>t instanceof h));null!=t&&(this.navMeshActor=t,this.query=null),this.world.actorAdded.subscribe((t=>{t instanceof h&&(this.navMeshActor=t,this.query=null)})),this.world.actorRemoved.subscribe((t=>{t instanceof h&&t.id===this.navMeshActor?.id&&(this.navMeshActor=null,this.query=null)}))}))}ensureQuery(){null==this.query&&null!=this.navMeshActor&&null!=this.navMeshActor.navMesh&&(this.query=new s(this.navMeshActor.navMesh))}findPath(t,e){if(this.ensureQuery(),null==this.query)return d("NavMesh has not been generated yet"),l;const s=this.findClosestPoint(t);if(null==s)return d("Start point could not be found on NavMesh",t),l;const{success:r,error:o,path:i}=this.query.computePath(s,e);return r?{success:!0,path:i.map((t=>new n(t.x,t.y,t.z)))}:(d("Failed to generate path",o),l)}findClosestPoint(t){if(this.ensureQuery(),null==this.query)return d("NavMesh has not been generated yet"),null;const{success:e,point:s}=this.query.findClosestPoint(t);return e?new n(s.x,s.y,s.z):null}};a=t([o(),e("design:paramtypes",[])],a);export{a as Navigation};const l={success:!1,path:[]};let c=new Set;function d(t,...e){c.has(t)||(c.add(t),setTimeout((()=>c.delete(t)),2e3),console.warn(t,...e))}
2
- /*
1
+ import{__decorate as t,__metadata as e}from"tslib";import{NavMeshQuery as s}from"recast-navigation";import{Vector3 as n}from"three";import{inject as r,Service as o,World as i}from"../";import h,{safeRecastInit as u}from"../actors/builtin/navmesh-actor";let a=class{constructor(){this.world=r(i),u().then((()=>{const t=this.world.actors.find((t=>t instanceof h));null!=t&&(this.navMeshActor=t,this.query=null),this.world.actorAdded.subscribe((t=>{t instanceof h&&(this.navMeshActor=t,this.query=null)})),this.world.actorRemoved.subscribe((t=>{t instanceof h&&t.id===this.navMeshActor?.id&&(this.navMeshActor=null,this.query=null)}))}))}ensureQuery(){null==this.query&&null!=this.navMeshActor&&null!=this.navMeshActor.navMesh&&(this.query=new s(this.navMeshActor.navMesh))}findPath(t,e){if(this.ensureQuery(),null==this.query)return d("NavMesh has not been generated yet"),l;const s=this.findClosestPoint(t);if(null==s)return d("Start point could not be found on NavMesh",t),l;const{success:r,error:o,path:i}=this.query.computePath(s,e);return r?{success:!0,path:i.map((t=>new n(t.x,t.y,t.z)))}:(d("Failed to generate path",o),l)}findClosestPoint(t){if(this.ensureQuery(),null==this.query)return d("NavMesh has not been generated yet"),null;const{success:e,point:s}=this.query.findClosestPoint(t);return e?new n(s.x,s.y,s.z):null}};a=t([o(),e("design:paramtypes",[])],a);export{a as Navigation};const l={success:!1,path:[]};let c=new Set;function d(t,...e){c.has(t)||(c.add(t),setTimeout((()=>c.delete(t)),2e3),console.warn(t,...e))}/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -41,3 +41,4 @@ export declare class AnimationStateMachine {
41
41
  private _getNext;
42
42
  }
43
43
  export {};
44
+ //# sourceMappingURL=anim-sm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anim-sm.d.ts","sourceRoot":"","sources":["../../../src/gameplay/animation/anim-sm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAErC,KAAK,mBAAmB,GAAG,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAA;AAI3D,cAAM,UAAU;aACc,KAAK,EAAE,cAAc;aAAkB,SAAS,EAAE,mBAAmB;gBAArE,KAAK,EAAE,cAAc,EAAkB,SAAS,EAAE,mBAAmB;CAClG;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,uDAAuD;IACvD,IAAI,EAAE,OAAO,CAAA;CACd,CAAA;AAMD,qBAAa,cAAc;aAiBG,IAAI,CAAC,EAAE,aAAa;IAAS,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC;IAhBhG,SAAgB,IAAI,SAAU;IACvB,MAAM,EAAE,cAAc,CAAA;IAC7B,SAAgB,WAAW,EAAE,UAAU,EAAE,CAAK;IACvC,IAAI,EAAE,MAAM,CAAA;IAOnB;;;;;OAKG;gBACyB,IAAI,CAAC,EAAE,aAAa,EAAS,OAAO,GAAE,OAAO,CAAC,qBAAqB,CAAgC;IAI/H,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKzB,YAAY,IAAI,cAAc,EAAE;IAMhC,OAAO,IAAI,cAAc;IAMzB,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,mBAAmB;IAO/D,KAAK,CAAC,SAAS,EAAE,mBAAmB,EAAE,MAAM,GAAE,aAAoB,EAAE,SAAS,GAAE,aAAoB;IAOnG,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE,SAAS,GAAE,mBAAgC;IAIhF,qBAAqB,CAAC,KAAK,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE,mBAAmB;IAO5E,kBAAkB,CAAC,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,mBAAmB;CAIzE;AAED,qBAAa,qBAAqB;IAIpB,OAAO,CAAC,YAAY;IAHzB,OAAO,EAAE,cAAc,CAAA;IACvB,KAAK,SAAI;gBAEI,YAAY,EAAE,cAAc;IAIhD,IAAI,CAAC,SAAS,EAAE,MAAM;IAMtB,OAAO,CAAC,QAAQ;CAgCjB"}
@@ -1,5 +1,4 @@
1
- let t=0;class i{constructor(t,i){this.state=t,this.predicate=i}}const s={loop:!0};export class AnimationState{constructor(i,n=s){this.clip=i,this.options=n,this.uuid=t++,this.transitions=[],this.options={...s,...n}}named(t){return this.name=t,this}getAncestors(){return null!=this.parent?[this,...this.parent.getAncestors()]:[this]}getRoot(){return null!=this.parent?this.parent.getRoot():this}createChild(t,i){const s=new AnimationState(t);return s.parent=this,this.transitionsTo(s,i),s}split(t,i=null,s=null){return[this.createChild(i,t),this.createChild(s,e(t))]}transitionsTo(t,s=(()=>!0)){this.transitions.push(new i(t,s))}transitionsOnComplete(t,i){this.transitionsTo(t,(t=>!!i&&i(t)||t>=this.clip.duration-.5))}transitionsBetween(t,i){this.transitionsTo(t,i),t.transitionsTo(this,e(i))}}export class AnimationStateMachine{constructor(t){this.initialState=t,this.timer=0,this.current=t}step(t){return this.timer+=t,this._getNext()}_getNext(t=1){const i=n(this.current.getRoot(),this.timer,this.current);return i.uuid!==this.current.uuid&&(this.timer=0,this.current=i),--t>0?this._getNext(t):this.current}}function n(t,i,s){for(const e of t.transitions)if(e.predicate(i))return n(e.state,e.state.uuid===s.uuid?i:0,s);return null==t.clip?t.getAncestors().find((t=>null!=t.clip))??t:t}const e=t=>i=>!t(i);
2
- /*
1
+ let t=0;class i{constructor(t,i){this.state=t,this.predicate=i}}const s={loop:!0};export class AnimationState{constructor(i,n=s){this.clip=i,this.options=n,this.uuid=t++,this.transitions=[],this.options={...s,...n}}named(t){return this.name=t,this}getAncestors(){return null!=this.parent?[this,...this.parent.getAncestors()]:[this]}getRoot(){return null!=this.parent?this.parent.getRoot():this}createChild(t,i){const s=new AnimationState(t);return s.parent=this,this.transitionsTo(s,i),s}split(t,i=null,s=null){return[this.createChild(i,t),this.createChild(s,e(t))]}transitionsTo(t,s=()=>!0){this.transitions.push(new i(t,s))}transitionsOnComplete(t,i){this.transitionsTo(t,(t=>!!i&&i(t)||t>=this.clip.duration-.5))}transitionsBetween(t,i){this.transitionsTo(t,i),t.transitionsTo(this,e(i))}}export class AnimationStateMachine{constructor(t){this.initialState=t,this.timer=0,this.current=t}step(t){return this.timer+=t,this._getNext()}_getNext(t=1){const i=n(this.current.getRoot(),this.timer,this.current);return i.uuid!==this.current.uuid&&(this.timer=0,this.current=i),--t>0?this._getNext(t):this.current}}function n(t,i,s){for(const e of t.transitions)if(e.predicate(i))return n(e.state,e.state.uuid===s.uuid?i:0,s);return null==t.clip?t.getAncestors().find((t=>null!=t.clip))??t:t}const e=t=>i=>!t(i);/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -25,3 +25,4 @@ export declare class BoneLayer {
25
25
  boneMask: Bone[];
26
26
  }
27
27
  export {};
28
+ //# sourceMappingURL=root-motion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"root-motion.d.ts","sourceRoot":"","sources":["../../../src/gameplay/animation/root-motion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,IAAI,EAA4B,MAAM,OAAO,CAAA;AAiBzF,qBAAa,cAAe,SAAQ,aAAa;IACzC,WAAW,EAAE,mBAAmB,CAAA;IAGhC,YAAY,EAAE,MAAM,CAAI;IACxB,YAAY,UAAQ;IAC3B,OAAO,CAAC,QAAQ,CAAC,CAAM;IACvB,OAAO,CAAC,MAAM,CAAe;WAEf,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,YAAY,UAAQ,EAAE,QAAQ,CAAC,EAAE,IAAI,GAAG,cAAc;IAqBpG;;;;;;;;OAQG;WACW,oBAAoB,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM;IAS1E,KAAK,IAAI,IAAI;CAMd;AAGD,KAAK,WAAW,GAAG,MAAM,CAAA;AAEzB,qBAAa,SAAS;IACpB,IAAI,EAAE,WAAW,CAAU;IAC3B,KAAK,EAAE,MAAM,CAAI;IACjB,QAAQ,EAAE,IAAI,EAAE,CAAK;CACtB"}
@@ -1,5 +1,4 @@
1
- import{AnimationClip as o,Vector3 as t}from"three";export class RootMotionClip extends o{constructor(){super(...arguments),this.displacement=0,this.fixedInPlace=!1}static fromClip(o,e=!1,i){const n=new RootMotionClip(o.name,o.duration,o.tracks.slice(),o.blendMode);if(n.fixedInPlace=e,n.rootBone=i,n.source=o,n.uuid=o.uuid,n.motionTrack=null!=i?o.tracks.find((o=>o.name===`${i.name}.position`)):o.tracks.find((o=>o.name.endsWith(".position"))),n.motionTrack){n.tracks.splice(n.tracks.indexOf(n.motionTrack),1);const o=(new t).fromArray(n.motionTrack.values,0),e=(new t).fromArray(n.motionTrack.values,n.motionTrack.values.length-3);n.displacement=e.distanceTo(o)}else console.error("Could not find root motion track",o,i);return n}static fromClipWithDistance(o,t){const e=new RootMotionClip(o.name,o.duration,o.tracks.slice(),o.blendMode);return e.fixedInPlace=!0,e.source=o,e.uuid=o.uuid,e.displacement=t,e}clone(){const o=RootMotionClip.fromClip(this.source.clone(),this.fixedInPlace,this.rootBone);return o.displacement=this.displacement,o}}let e=53912381;export class BoneLayer{constructor(){this.uuid=e++,this.order=0,this.boneMask=[]}}
2
- /*
1
+ import{AnimationClip as o,Vector3 as t}from"three";export class RootMotionClip extends o{constructor(){super(...arguments),this.displacement=0,this.fixedInPlace=!1}static fromClip(o,e=!1,i){const n=new RootMotionClip(o.name,o.duration,o.tracks.slice(),o.blendMode);if(n.fixedInPlace=e,n.rootBone=i,n.source=o,n.uuid=o.uuid,n.motionTrack=null!=i?o.tracks.find((o=>o.name===`${i.name}.position`)):o.tracks.find((o=>o.name.endsWith(".position"))),n.motionTrack){n.tracks.splice(n.tracks.indexOf(n.motionTrack),1);const o=(new t).fromArray(n.motionTrack.values,0),e=(new t).fromArray(n.motionTrack.values,n.motionTrack.values.length-3);n.displacement=e.distanceTo(o)}else console.error("Could not find root motion track",o,i);return n}static fromClipWithDistance(o,t){const e=new RootMotionClip(o.name,o.duration,o.tracks.slice(),o.blendMode);return e.fixedInPlace=!0,e.source=o,e.uuid=o.uuid,e.displacement=t,e}clone(){const o=RootMotionClip.fromClip(this.source.clone(),this.fixedInPlace,this.rootBone);return o.displacement=this.displacement,o}}let e=53912381;export class BoneLayer{constructor(){this.uuid=e++,this.order=0,this.boneMask=[]}}/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -1,3 +1,4 @@
1
1
  export interface EngineEnvironment {
2
2
  inEditor: boolean;
3
3
  }
4
+ //# sourceMappingURL=env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/gameplay/env.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,CAAA;CAClB"}
@@ -1,5 +1,4 @@
1
- export{};
2
- /*
1
+ export{};/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -17,3 +17,4 @@ export { VisualEffect } from '../effects/vfx/vfx-param.js';
17
17
  export * from '../shader/parameter.js';
18
18
  export * from './ai/index.js';
19
19
  export * from '../effects/vfx';
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/gameplay/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAA;AACzB,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAA;AACjD,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,OAAO,EAAG,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACzG,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sCAAsC,CAAA;AAEpD,cAAc,wBAAwB,CAAA;AACtC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,8BAA8B,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC1D,cAAc,wBAAwB,CAAA;AACtC,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA"}
@@ -1,5 +1,4 @@
1
- import"reflect-metadata";export{Container as DIContainer}from"typedi";export*from"./initiate.js";export*from"./inject.js";export{Service,Inject}from"typedi";export{ActorFactory}from"./actors/factory.js";export{Actor,BaseActor}from"./actors/actor.js";export{Component,ActorComponent,attach,Attach}from"./actors/component.js";export*from"./services/world.js";export*from"./services/render.js";export*from"./services/physics/physics-system.js";export*from"./animation/anim-sm.js";export*from"./animation/root-motion.js";export*from"./services/asset-loader.js";export*from"./services/pointer-events.js";export{VisualEffect}from"../effects/vfx/vfx-param.js";export*from"../shader/parameter.js";export*from"./ai/index.js";export*from"../effects/vfx";
2
- /*
1
+ import"reflect-metadata";export{Container as DIContainer}from"typedi";export*from"./initiate.js";export*from"./inject.js";export{Service,Inject}from"typedi";export{ActorFactory}from"./actors/factory.js";export{Actor,BaseActor}from"./actors/actor.js";export{Component,ActorComponent,attach,Attach}from"./actors/component.js";export*from"./services/world.js";export*from"./services/render.js";export*from"./services/physics/physics-system.js";export*from"./animation/anim-sm.js";export*from"./animation/root-motion.js";export*from"./services/asset-loader.js";export*from"./services/pointer-events.js";export{VisualEffect}from"../effects/vfx/vfx-param.js";export*from"../shader/parameter.js";export*from"./ai/index.js";export*from"../effects/vfx";/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -63,3 +63,4 @@ export declare class HologyRuntime<T_Game = unknown> {
63
63
  shutdown(): void;
64
64
  }
65
65
  export {};
66
+ //# sourceMappingURL=initiate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initiate.d.ts","sourceRoot":"","sources":["../../src/gameplay/initiate.ts"],"names":[],"mappings":"AAAA,OAAkB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAEpE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAa3C,OAAO,EAAE,UAAU,EAAW,MAAM,MAAM,CAAA;AAK1C,KAAK,SAAS,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAA;AAGpC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,WAAW,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;KAAE,CAAA;IACvC,MAAM,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAA;IACrC,EAAE,CAAC,EAAE;QACH,OAAO,EAAE,OAAO,CAAA;KACjB,CAAC;IACF,SAAS,CAAC,EAAE,OAAO,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;QACtB,OAAO,EAAE;YACP,OAAO,CAAC,EAAE,OAAO,CAAA;YACjB,UAAU,CAAC,EAAE,OAAO,CAAA;SACrB,CAAA;KACF,CAAC,CAAA;CACH,CAAA;AAED,wBAAgB,YAAY,CAAC,MAAM,EACjC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,EAC5B,MAAM,EAAE,kBAAkB,GACzB,aAAa,CAAC,MAAM,CAAC,CAsIvB;AAGD,8BAAsB,YAAY;IAChC,OAAO,IAAI,IAAI,GAAC,OAAO,CAAC,IAAI,CAAC;IAC7B,UAAU,IAAI,IAAI,GAAC,OAAO,CAAC,IAAI,CAAC;CACjC;AAID,wBAAgB,iBAAiB,SAEhC;AAED;;;;;;GAMG;AAEH,0BAAkB,mBAAmB;IACnC,UAAU,IAAI;IACd,OAAO,IAAI;IACX,OAAO,KAAK;CACb;AAED,qBAAa,aAAa,CAAC,MAAM,GAAG,OAAO;IAYvC,OAAO,CAAC,iBAAiB;IAXpB,MAAM,EAAE,mBAAmB,CAAiC;IAC5D,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,UAAQ;IAClB,eAAe,EAAE,UAAU,CAAC,IAAI,CAAC,CAAsB;IAC9D,OAAO,CAAC,SAAS,CAA2B;IAC5C;;OAEG;IACH,SAAgB,KAAK,mBAA8D;gBAGzE,iBAAiB,EAAE,iBAAiB;IAE9C,QAAQ,IAAI,KAAK;IAIjB,UAAU,CAAC,CAAC,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC;IAI/C;;OAEG;IACH,QAAQ;CAuBT"}
@@ -1,5 +1,4 @@
1
- import e from"typedi";import{loadScene as t}from"../scene/bootstrap.js";import{ActorFactory as n}from"./actors/factory.js";import{World as s}from"./services/world.js";import{ViewController as o}from"./services/render.js";import{RenderingView as r}from"../rendering.js";import{PhysicsSystem as i}from"./services/physics/physics-system.js";import{MeshComponent as a}from"./actors/builtin/components/mesh-component.js";import{activeContainerInstance as c}from"./actors/internal/container-map.js";import{InputService as m}from"./input/index.js";import{RuntimeAssetsService as d}from"../scene/runtime-asset-service.js";import{AssetResourceLoader as l}from"../scene/asset-resource-loader.js";import{AssetLoader as h}from"./services/asset-loader.js";import{polyfillClient as p}from"./polyfill.js";import{Subject as u}from"rxjs";import{PointerEvents as f}from"./services/pointer-events.js";import{RuntimeBundledBackendService as w}from"../scene/runtime-bundled-backend-service.js";import{Scene as g}from"three";export function initiateGame(m,u){if(p(),0!=u.element.childNodes.length)return console.error("Can not initialize the game with a non-empty html element"),null;e.has(o);const j=e.of("default"),v=new HologyRuntime(j),S=new n(j,{inEditor:!1});var y;e.set(n,S),y=u.element,Object.assign(y.style,{position:"absolute",top:"0",left:"0",width:"100%",height:"100%",overflow:"hidden"});const I=new r(u.element,{enableXR:!0===u.xr?.enabled,maxPixelRatio:u.rendering?.maxPixelRatio});I.renderer.shadowMap.enabled=u.rendering?.shadows?.enabled??!0,I.renderer.shadowMap.autoUpdate=u.rendering?.shadows?.autoUpdate??!0,null!=u?.rendering?.resolutionScale&&(I.resolutionScale=u.rendering.resolutionScale),e.set(r,I);const x=new o(I);e.set(o,x);const b=e.get(s);e.set(s,b);const D=new w,R=new d(D),G=new l;G.setDataDir(u.dataDir);const H=Object.entries(u.shaders).map((([e,t])=>({name:e,type:t}))),P=new h(G,R,H);return e.set(h,P),(async()=>{const n=e.get(i);if(await n.start(),v.isShutdown)return;if(await D.preloadData(),v.isShutdown)return;const s=new g;b.scene=s;const{scene:o,actors:r}=await t(I,u.sceneName,u.dataDir,u.shaders,u.actors,S,D,R,G);b.scene=o;for(const e of s.children)b.scene.add(e);if(v.isShutdown)return void I.stop();e.import([a]);for(const e of r)b.addActor(e);n.addFromScene(o),I.loop((e=>{})),v.status=5,c.value=j,j.remove(m),j.set({id:m,type:m});const d=j.get(m);c.value=null,v.gameInstance=d,j.get(f).start(),d instanceof GameInstance&&d.onStart(),v._resolver(!0)})(),v}export class GameInstance{onStart(){}onShutdown(){}}export function createHologyScene(){}export class HologyRuntime{constructor(e){this.containerInstance=e,this.status=0,this.isShutdown=!1,this.shutdownStarted=new u,this.ready=new Promise((e=>{this._resolver=e}))}getWorld(){return this.containerInstance.get(s)}getService(e){return this.containerInstance.get(e)}shutdown(){this.isShutdown=!0,this.shutdownStarted.next(),this.gameInstance instanceof GameInstance&&this.gameInstance.onShutdown(),this.containerInstance.get(m).stop();const e=this.containerInstance.get(r);e?.stop();for(const e of this.getWorld().actors)this.getWorld().removeActor(e);this.containerInstance.get(i).stop(),this.containerInstance.get(f).stop(),this.containerInstance.reset()}}
2
- /*
1
+ import e from"typedi";import{loadScene as t}from"../scene/bootstrap.js";import{ActorFactory as n}from"./actors/factory.js";import{World as s}from"./services/world.js";import{ViewController as o}from"./services/render.js";import{RenderingView as r}from"../rendering.js";import{PhysicsSystem as i}from"./services/physics/physics-system.js";import{MeshComponent as a}from"./actors/builtin/components/mesh-component.js";import{activeContainerInstance as c}from"./actors/internal/container-map.js";import{InputService as m}from"./input/index.js";import{RuntimeAssetsService as d}from"../scene/runtime-asset-service.js";import{AssetResourceLoader as l}from"../scene/asset-resource-loader.js";import{AssetLoader as h}from"./services/asset-loader.js";import{polyfillClient as p}from"./polyfill.js";import{Subject as u}from"rxjs";import{PointerEvents as f}from"./services/pointer-events.js";import{RuntimeBundledBackendService as w}from"../scene/runtime-bundled-backend-service.js";import{Scene as g}from"three";export function initiateGame(m,u){if(p(),0!=u.element.childNodes.length)return console.error("Can not initialize the game with a non-empty html element"),null;e.has(o);const j=e.of("default"),v=new HologyRuntime(j),S=new n(j,{inEditor:!1});var y;e.set(n,S),y=u.element,Object.assign(y.style,{position:"absolute",top:"0",left:"0",width:"100%",height:"100%",overflow:"hidden"});const I=new r(u.element,{enableXR:!0===u.xr?.enabled,maxPixelRatio:u.rendering?.maxPixelRatio});I.renderer.shadowMap.enabled=u.rendering?.shadows?.enabled??!0,I.renderer.shadowMap.autoUpdate=u.rendering?.shadows?.autoUpdate??!0,null!=u?.rendering?.resolutionScale&&(I.resolutionScale=u.rendering.resolutionScale),e.set(r,I);const x=new o(I);e.set(o,x);const b=e.get(s);e.set(s,b);const D=new w,R=new d(D),G=new l;G.setDataDir(u.dataDir);const H=Object.entries(u.shaders).map((([e,t])=>({name:e,type:t}))),P=new h(G,R,H);return e.set(h,P),(async()=>{const n=e.get(i);if(await n.start(),v.isShutdown)return;if(await D.preloadData(),v.isShutdown)return;const s=new g;b.scene=s;const{scene:o,actors:r}=await t(I,u.sceneName,u.dataDir,u.shaders,u.actors,S,D,R,G);b.scene=o;for(const e of s.children)b.scene.add(e);if(v.isShutdown)return void I.stop();e.import([a]);for(const e of r)b.addActor(e);n.addFromScene(o),I.loop((e=>{})),v.status=5,c.value=j,j.remove(m),j.set({id:m,type:m});const d=j.get(m);c.value=null,v.gameInstance=d,j.get(f).start(),d instanceof GameInstance&&d.onStart(),v._resolver(!0)})(),v}export class GameInstance{onStart(){}onShutdown(){}}export function createHologyScene(){}export class HologyRuntime{constructor(e){this.containerInstance=e,this.status=0,this.isShutdown=!1,this.shutdownStarted=new u,this.ready=new Promise((e=>{this._resolver=e}))}getWorld(){return this.containerInstance.get(s)}getService(e){return this.containerInstance.get(e)}shutdown(){this.isShutdown=!0,this.shutdownStarted.next(),this.gameInstance instanceof GameInstance&&this.gameInstance.onShutdown(),this.containerInstance.get(m).stop();const e=this.containerInstance.get(r);e?.stop();for(const e of this.getWorld().actors)this.getWorld().removeActor(e);this.containerInstance.get(i).stop(),this.containerInstance.get(f).stop(),this.containerInstance.reset()}}/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -1,3 +1,4 @@
1
1
  import { Constructable, ContainerInstance } from 'typedi';
2
2
  export declare function inject<T>(type: Constructable<T>): T;
3
3
  export declare function withInjectionContext(containerInstance: ContainerInstance, fn: (diContainer: ContainerInstance) => void): void;
4
+ //# sourceMappingURL=inject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../../src/gameplay/inject.ts"],"names":[],"mappings":"AAAA,OAAkB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAGrE,wBAAgB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAanD;AAED,wBAAgB,oBAAoB,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC,WAAW,EAAE,iBAAiB,KAAK,IAAI,QAKtH"}
@@ -1,5 +1,4 @@
1
- import t from"typedi";import{activeContainerInstance as e}from"./actors/internal/container-map.js";export function inject(n){return e.value?.get(n)??t.get(n)}export function withInjectionContext(t,n){const o=e.value;e.value=t,n(t),e.value=o}
2
- /*
1
+ import t from"typedi";import{activeContainerInstance as e}from"./actors/internal/container-map.js";export function inject(n){return e.value?.get(n)??t.get(n)}export function withInjectionContext(t,n){const o=e.value;e.value=t,n(t),e.value=o}/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -1,3 +1,4 @@
1
1
  export * from './input-service.js';
2
2
  export * from './input.js';
3
3
  export * from './keybind.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/gameplay/input/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA"}
@@ -1,5 +1,4 @@
1
- export*from"./input-service.js";export*from"./input.js";export*from"./keybind.js";
2
- /*
1
+ export*from"./input-service.js";export*from"./input.js";export*from"./keybind.js";/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -35,3 +35,4 @@ export declare class InputService {
35
35
  removeWheelbind(name: ActionIdentifier): void;
36
36
  }
37
37
  export {};
38
+ //# sourceMappingURL=input-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-service.d.ts","sourceRoot":"","sources":["../../../src/gameplay/input/input-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE7D,KAAK,aAAa,GAAG,CAAC,MAAM,EAAE,OAAO,GAAC,MAAM,KAAK,IAAI,CAAA;AACrD,KAAK,aAAa,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,GAAG,CAAA;AAC3C,KAAK,cAAc,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK,GAAG,CAAA;AAC9C,KAAK,gBAAgB,GAAG,MAAM,GAAG,MAAM,CAAA;AAEvC,qBACa,YAAY;IAErB,OAAO,CAAC,MAAM,CAA6C;IAC3D,OAAO,CAAC,cAAc,CAA6C;IACnE,OAAO,CAAC,eAAe,CAA8C;IACrE,OAAO,CAAC,QAAQ,CAAyC;IACzD,OAAO,CAAC,UAAU,CAAyC;IAC3D,OAAO,CAAC,cAAc,CAAyC;IAC/D,OAAO,CAAC,UAAU,CAAyC;IAE3D,OAAO,CAAC,SAAS,CAchB;IAED,OAAO,CAAC,OAAO,CAcd;IAED,OAAO,CAAC,WAAW,CAkBlB;IAED,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,WAAW,CAsBlB;IAED,OAAO,CAAC,OAAO,CASd;IAGM,KAAK;IAWL,IAAI;IAUX;;OAEG;IACI,IAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,aAAa;IAIjD,UAAU,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,cAAc;IAIxD,SAAS,CAAC,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,aAAa;IAIzD,MAAM,CAAC,IAAI,EAAE,gBAAgB;IAM7B,UAAU,CAAC,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,OAAO;IAO/C,YAAY,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,SAAS;IAIrD,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,SAAS;IAIzD,YAAY,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,SAAS;IAIrD,aAAa,CAAC,IAAI,EAAE,gBAAgB;IAIpC,eAAe,CAAC,IAAI,EAAE,gBAAgB;IAItC,eAAe,CAAC,IAAI,EAAE,gBAAgB;CAIhD"}
@@ -1,5 +1,4 @@
1
- import{__decorate as e}from"tslib";import{Service as t}from"typedi";let s=class{constructor(){this.inputs=new Map,this.deltaCallbacks=new Map,this.toggleCallbacks=new Map,this.keybinds=new Map,this.mousebinds=new Map,this.touchmoveBinds=new Map,this.wheelbinds=new Map,this.onKeyDown=e=>{this.keybinds.forEach(((t,s)=>{for(const n of t)n.test(e)&&(this.inputs.has(s)?this.inputs.get(s)(!0):this.toggleCallbacks.has(s)?this.toggleCallbacks.get(s)(!0):console.warn("No input callback for registered for key bind "+n.display()))}))},this.onKeyUp=e=>{this.keybinds.forEach(((t,s)=>{for(const n of t)n.test(e)&&(this.inputs.has(s)?this.inputs.get(s)(!1):this.toggleCallbacks.has(s)?this.toggleCallbacks.get(s)(!1):console.warn("No input callback for registered for key bind "+n.display()))}))},this.onMouseMove=e=>{(null!=document.pointerLockElement||null!=document.mozPointerLockElement)&&this.mousebinds.forEach(((t,s)=>{const n=this.inputs.get(s)??this.deltaCallbacks.get(s);if(null!=n)switch(t.axis){case"x":n(e.movementX*t.multiplier);break;case"y":n(e.movementY*t.multiplier)}else console.warn("No input callback for registered for mouse bind "+t.axis)}))},this.onTouchMove=e=>{const t=e.touches[0];null!=t&&(null!=this.prevTouchEvent&&t.identifier===this.prevTouchEvent.identifier?(this.touchmoveBinds.forEach(((e,s)=>{const n=this.inputs.get(s)??this.deltaCallbacks.get(s);if(null!=n)switch(e.axis){case"x":n((t.clientX-this.prevTouchEvent.clientX)*e.multiplier);break;case"y":n((t.clientY-this.prevTouchEvent.clientY)*e.multiplier)}else console.warn("No input callback for registered for mouse bind "+e.axis)})),this.prevTouchEvent=t):this.prevTouchEvent=e.touches[0])},this.onWheel=e=>{this.wheelbinds.forEach(((t,s)=>{const n=this.inputs.get(s)??this.deltaCallbacks.get(s);null!=n?n(e.deltaY*t.multiplier):console.warn("No input callback for registered for wheel bind")}))}}start(){document.addEventListener("keydown",this.onKeyDown),document.addEventListener("mousedown",this.onKeyDown),document.addEventListener("mouseup",this.onKeyUp),document.addEventListener("keyup",this.onKeyUp),document.addEventListener("mousemove",this.onMouseMove),document.addEventListener("touchmove",this.onTouchMove),document.addEventListener("wheel",this.onWheel)}stop(){document.removeEventListener("keydown",this.onKeyDown),document.removeEventListener("mousedown",this.onKeyDown),document.removeEventListener("mouseup",this.onKeyUp),document.removeEventListener("keyup",this.onKeyUp),document.removeEventListener("mousemove",this.onMouseMove),document.removeEventListener("touchmove",this.onTouchMove),document.removeEventListener("wheel",this.onWheel)}bind(e,t){this.inputs.set(e,t)}bindToggle(e,t){this.toggleCallbacks.set(e,t)}bindDelta(e,t){this.deltaCallbacks.set(e,t)}unbind(e){this.inputs.delete(e),this.toggleCallbacks.delete(e),this.deltaCallbacks.delete(e)}setKeybind(e,t){this.keybinds.has(e)||this.keybinds.set(e,[]),this.keybinds.get(e).push(t)}setMousebind(e,t){this.mousebinds.set(e,t)}setTouchMoveBind(e,t){this.touchmoveBinds.set(e,t)}setWheelbind(e,t){this.wheelbinds.set(e,t)}removeKeybind(e){this.keybinds.delete(e)}removeMousebind(e){this.mousebinds.delete(e)}removeWheelbind(e){this.wheelbinds.delete(e)}};s=e([t()],s);export{s as InputService};
2
- /*
1
+ import{__decorate as e}from"tslib";import{Service as t}from"typedi";let s=class{constructor(){this.inputs=new Map,this.deltaCallbacks=new Map,this.toggleCallbacks=new Map,this.keybinds=new Map,this.mousebinds=new Map,this.touchmoveBinds=new Map,this.wheelbinds=new Map,this.onKeyDown=e=>{this.keybinds.forEach(((t,s)=>{for(const n of t)n.test(e)&&(this.inputs.has(s)?this.inputs.get(s)(!0):this.toggleCallbacks.has(s)?this.toggleCallbacks.get(s)(!0):console.warn("No input callback for registered for key bind "+n.display()))}))},this.onKeyUp=e=>{this.keybinds.forEach(((t,s)=>{for(const n of t)n.test(e)&&(this.inputs.has(s)?this.inputs.get(s)(!1):this.toggleCallbacks.has(s)?this.toggleCallbacks.get(s)(!1):console.warn("No input callback for registered for key bind "+n.display()))}))},this.onMouseMove=e=>{(null!=document.pointerLockElement||null!=document.mozPointerLockElement)&&this.mousebinds.forEach(((t,s)=>{const n=this.inputs.get(s)??this.deltaCallbacks.get(s);if(null!=n)switch(t.axis){case"x":n(e.movementX*t.multiplier);break;case"y":n(e.movementY*t.multiplier)}else console.warn("No input callback for registered for mouse bind "+t.axis)}))},this.onTouchMove=e=>{const t=e.touches[0];null!=t&&(null!=this.prevTouchEvent&&t.identifier===this.prevTouchEvent.identifier?(this.touchmoveBinds.forEach(((e,s)=>{const n=this.inputs.get(s)??this.deltaCallbacks.get(s);if(null!=n)switch(e.axis){case"x":n((t.clientX-this.prevTouchEvent.clientX)*e.multiplier);break;case"y":n((t.clientY-this.prevTouchEvent.clientY)*e.multiplier)}else console.warn("No input callback for registered for mouse bind "+e.axis)})),this.prevTouchEvent=t):this.prevTouchEvent=e.touches[0])},this.onWheel=e=>{this.wheelbinds.forEach(((t,s)=>{const n=this.inputs.get(s)??this.deltaCallbacks.get(s);null!=n?n(e.deltaY*t.multiplier):console.warn("No input callback for registered for wheel bind")}))}}start(){document.addEventListener("keydown",this.onKeyDown),document.addEventListener("mousedown",this.onKeyDown),document.addEventListener("mouseup",this.onKeyUp),document.addEventListener("keyup",this.onKeyUp),document.addEventListener("mousemove",this.onMouseMove),document.addEventListener("touchmove",this.onTouchMove),document.addEventListener("wheel",this.onWheel)}stop(){document.removeEventListener("keydown",this.onKeyDown),document.removeEventListener("mousedown",this.onKeyDown),document.removeEventListener("mouseup",this.onKeyUp),document.removeEventListener("keyup",this.onKeyUp),document.removeEventListener("mousemove",this.onMouseMove),document.removeEventListener("touchmove",this.onTouchMove),document.removeEventListener("wheel",this.onWheel)}bind(e,t){this.inputs.set(e,t)}bindToggle(e,t){this.toggleCallbacks.set(e,t)}bindDelta(e,t){this.deltaCallbacks.set(e,t)}unbind(e){this.inputs.delete(e),this.toggleCallbacks.delete(e),this.deltaCallbacks.delete(e)}setKeybind(e,t){this.keybinds.has(e)||this.keybinds.set(e,[]),this.keybinds.get(e).push(t)}setMousebind(e,t){this.mousebinds.set(e,t)}setTouchMoveBind(e,t){this.touchmoveBinds.set(e,t)}setWheelbind(e,t){this.wheelbinds.set(e,t)}removeKeybind(e){this.keybinds.delete(e)}removeMousebind(e){this.mousebinds.delete(e)}removeWheelbind(e){this.wheelbinds.delete(e)}};s=e([t()],s);export{s as InputService};/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -43,3 +43,4 @@ export declare class DecimalInput {
43
43
  readonly increment: (delta: number) => void;
44
44
  }
45
45
  export {};
46
+ //# sourceMappingURL=input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/gameplay/input/input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAW,MAAM,OAAO,CAAC;AAMhD,qBAAa,SAAS;IAClB,QAAQ,CAAC,MAAM,UAAgB;IAC/B,IAAI,UAAU,WAEb;IACD,IAAI,QAAQ,WAEX;IACD,SAAgB,eAAe,WAAY,OAAO,UAEjD;IACD,SAAgB,eAAe,WAAY,OAAO,UAEjD;IACD,SAAgB,eAAe,WAAY,OAAO,UAEjD;IACD,SAAgB,eAAe,WAAY,OAAO,UAEjD;CACJ;AAGD,KAAK,QAAQ,GAAG,MAAM,IAAI,CAAA;AAW1B,qBAAa,WAAW;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAE5D,SAAS,UAAQ;IACjB,SAAgB,MAAM,WAAY,OAAO,UAOxC;IACM,OAAO,CAAC,EAAE,EAAE,QAAQ;IAGpB,KAAK,CAAC,EAAE,EAAE,QAAQ;CAG5B;AAGD,qBAAa,aAAa;IACtB,QAAQ,CAAC,QAAQ,QAAc;IAC/B,SAAgB,OAAO,UAAW,MAAM,UAEvC;IACD,SAAgB,OAAO,UAAW,MAAM,UAEvC;IACD,SAAgB,OAAO,UAAW,MAAM,UAEvC;CACJ;AAED,qBAAa,uBAAwB,SAAQ,aAAa;IAGlD,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAPzB,QAAQ,CAAC,QAAQ,QAAc;gBAEV,IAAI,GAAE,MAAkB,EACxB,IAAI,GAAE,MAAiB,EACvB,IAAI,GAAE,MAAkB,EACxB,IAAI,GAAE,MAAiB,EACvB,IAAI,GAAE,MAAkB,EACxB,IAAI,GAAE,MAAiB;IAE5C,SAAgB,OAAO,UAAW,MAAM,UAEvC;IACD,SAAgB,OAAO,UAAW,MAAM,UAEvC;IACD,SAAgB,OAAO,UAAW,MAAM,UAEvC;CACJ;AAED,qBAAa,YAAY;IAEiB,OAAO,CAAC,GAAG,CAAC;IAAU,OAAO,CAAC,GAAG,CAAC;IADxE,KAAK,EAAE,MAAM,CAAA;gBACD,YAAY,GAAE,MAAU,EAAU,GAAG,CAAC,EAAE,MAAM,EAAU,GAAG,CAAC,EAAE,MAAM;IAGhF,SAAgB,SAAS,UAAW,MAAM,UAEzC;CACJ"}
@@ -1,5 +1,4 @@
1
- import{Euler as t,Vector2 as i}from"three";import{ArrayMap as s}from"../../utils/collections.js";import{clamp as o}from"../../utils/math.js";export class AxisInput{constructor(){this.vector=new i,this.togglePositiveY=t=>{this.vector.y=t?1:Math.min(this.vector.y,0)},this.toggleNegativeY=t=>{this.vector.y=t?-1:Math.max(this.vector.y,0)},this.togglePositiveX=t=>{this.vector.x=t?1:Math.min(this.vector.x,0)},this.toggleNegativeX=t=>{this.vector.x=t?-1:Math.max(this.vector.x,0)}}get horizontal(){return this.vector.x}get vertical(){return this.vector.y}}class h{constructor(){this.map=new s}emit(t){this.map.get(t).forEach((t=>t()))}add(t,i){this.map.push(t,i)}}export class ActionInput{constructor(){this.emitter=new h,this.activated=!1,this.toggle=t=>{t&&!this.activated?this.emitter.emit("start"):!t&&this.activated&&this.emitter.emit("end"),this.activated=t}}onStart(t){this.emitter.add("start",t)}onEnd(t){this.emitter.add("end",t)}}const e=2*Math.PI;export class RotationInput{constructor(){this.rotation=new t,this.rotateX=t=>{this.rotation.x=(this.rotation.x+t)%e},this.rotateY=t=>{this.rotation.y=(this.rotation.y+t)%e},this.rotateZ=t=>{this.rotation.z=(this.rotation.z+t)%e}}}export class RestrictedRotationInput extends RotationInput{constructor(i=-1/0,s=1/0,h=-1/0,e=1/0,r=-1/0,a=1/0){super(),this.minX=i,this.maxX=s,this.minY=h,this.maxY=e,this.minZ=r,this.maxZ=a,this.rotation=new t,this.rotateX=t=>{this.rotation.x=o(this.rotation.x+t,this.minX,this.maxX)},this.rotateY=t=>{this.rotation.y=o(this.rotation.y+t,this.minY,this.maxY)},this.rotateZ=t=>{this.rotation.z=o(this.rotation.z+t,this.minZ,this.maxZ)}}}export class DecimalInput{constructor(t=0,i,s){this.min=i,this.max=s,this.increment=t=>{this.value=o(this.value+t,this.min,this.max)},this.value=t}}
2
- /*
1
+ import{Euler as t,Vector2 as i}from"three";import{ArrayMap as s}from"../../utils/collections.js";import{clamp as o}from"../../utils/math.js";export class AxisInput{constructor(){this.vector=new i,this.togglePositiveY=t=>{this.vector.y=t?1:Math.min(this.vector.y,0)},this.toggleNegativeY=t=>{this.vector.y=t?-1:Math.max(this.vector.y,0)},this.togglePositiveX=t=>{this.vector.x=t?1:Math.min(this.vector.x,0)},this.toggleNegativeX=t=>{this.vector.x=t?-1:Math.max(this.vector.x,0)}}get horizontal(){return this.vector.x}get vertical(){return this.vector.y}}class h{constructor(){this.map=new s}emit(t){this.map.get(t).forEach((t=>t()))}add(t,i){this.map.push(t,i)}}export class ActionInput{constructor(){this.emitter=new h,this.activated=!1,this.toggle=t=>{t&&!this.activated?this.emitter.emit("start"):!t&&this.activated&&this.emitter.emit("end"),this.activated=t}}onStart(t){this.emitter.add("start",t)}onEnd(t){this.emitter.add("end",t)}}const e=2*Math.PI;export class RotationInput{constructor(){this.rotation=new t,this.rotateX=t=>{this.rotation.x=(this.rotation.x+t)%e},this.rotateY=t=>{this.rotation.y=(this.rotation.y+t)%e},this.rotateZ=t=>{this.rotation.z=(this.rotation.z+t)%e}}}export class RestrictedRotationInput extends RotationInput{constructor(i=-1/0,s=1/0,h=-1/0,e=1/0,r=-1/0,a=1/0){super(),this.minX=i,this.maxX=s,this.minY=h,this.maxY=e,this.minZ=r,this.maxZ=a,this.rotation=new t,this.rotateX=t=>{this.rotation.x=o(this.rotation.x+t,this.minX,this.maxX)},this.rotateY=t=>{this.rotation.y=o(this.rotation.y+t,this.minY,this.maxY)},this.rotateZ=t=>{this.rotation.z=o(this.rotation.z+t,this.minZ,this.maxZ)}}}export class DecimalInput{constructor(t=0,i,s){this.min=i,this.max=s,this.increment=t=>{this.value=o(this.value+t,this.min,this.max)},this.value=t}}/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -21,3 +21,4 @@ export declare class Wheelbind {
21
21
  constructor(sensitivity?: number, flipped?: boolean);
22
22
  get multiplier(): number;
23
23
  }
24
+ //# sourceMappingURL=keybind.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keybind.d.ts","sourceRoot":"","sources":["../../../src/gameplay/input/keybind.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,cAAc,GAAG,WAAW,GAAC,aAAa,GAAC,YAAY,CAAA;AACnE,MAAM,MAAM,SAAS,GAAG,OAAO,GAAC,OAAO,GAAC,QAAQ,GAAC,SAAS,GAAC,KAAK,GAAC,MAAM,GAAC,cAAc,GAAC,MAAM,CAAA;AAM7F,qBAAa,OAAO;IACG,GAAG,EAAE,SAAS;IAAS,KAAK,CAAC,EAAE,OAAO;IAAS,IAAI,CAAC,EAAE,OAAO;gBAA7D,GAAG,EAAE,SAAS,EAAS,KAAK,CAAC,EAAE,OAAO,EAAS,IAAI,CAAC,EAAE,OAAO;IAEzE,IAAI,CAAC,KAAK,EAAE,aAAa,GAAC,UAAU;IAWpC,OAAO;CAKf;AAGH,qBAAa,SAAS;IAEhB,QAAQ,CAAC,WAAW;IACpB,QAAQ,CAAC,OAAO;IAChB,QAAQ,CAAC,IAAI,EAAE,GAAG,GAAC,GAAG;gBAFb,WAAW,SAAI,EACf,OAAO,UAAQ,EACf,IAAI,GAAE,GAAG,GAAC,GAAS;IAG9B,IAAI,UAAU,WAGb;CACJ;AAGD,qBAAa,SAAS;IAElB,QAAQ,CAAC,WAAW;IACpB,QAAQ,CAAC,OAAO;gBADP,WAAW,SAAI,EACf,OAAO,UAAQ;IAG1B,IAAI,UAAU,WAEb;CACF"}
@@ -1,5 +1,4 @@
1
- const t=navigator.platform.toUpperCase().indexOf("MAC")>=0?"⌘":"Ctrl",i=["MouseLeft","MouseMiddle","MouseRight"];export class Keybind{constructor(t,i,s){this.key=t,this.shift=i,this.ctrl=s}test(t){const s=!(null!=this.shift&&"Shift"!==this.key&&this.shift!==t.shiftKey||null!=this.ctrl&&"Control"!==this.key&&this.ctrl!=t.ctrlKey);return"key"in t?t.key.toLowerCase()===this.key.toLowerCase()&&s:i[t.button]===this.key&&s}display(){return(this.shift?"⇧ + ":"")+(this.ctrl?t+" + ":"")+this.key}}export class Mousebind{constructor(t=1,i=!1,s="x"){this.sensitivity=t,this.flipped=i,this.axis=s}get multiplier(){return(this.flipped?-1:1)*this.sensitivity}}export class Wheelbind{constructor(t=1,i=!1){this.sensitivity=t,this.flipped=i}get multiplier(){return(this.flipped?-1:1)*this.sensitivity}}
2
- /*
1
+ const t=navigator.platform.toUpperCase().indexOf("MAC")>=0?"⌘":"Ctrl",i=["MouseLeft","MouseMiddle","MouseRight"];export class Keybind{constructor(t,i,s){this.key=t,this.shift=i,this.ctrl=s}test(t){const s=!(null!=this.shift&&"Shift"!==this.key&&this.shift!==t.shiftKey||null!=this.ctrl&&"Control"!==this.key&&this.ctrl!=t.ctrlKey);return"key"in t?t.key.toLowerCase()===this.key.toLowerCase()&&s:i[t.button]===this.key&&s}display(){return(this.shift?"⇧ + ":"")+(this.ctrl?t+" + ":"")+this.key}}export class Mousebind{constructor(t=1,i=!1,s="x"){this.sensitivity=t,this.flipped=i,this.axis=s}get multiplier(){return(this.flipped?-1:1)*this.sensitivity}}export class Wheelbind{constructor(t=1,i=!1){this.sensitivity=t,this.flipped=i}get multiplier(){return(this.flipped?-1:1)*this.sensitivity}}/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -1 +1,2 @@
1
1
  export declare function polyfillClient(): void;
2
+ //# sourceMappingURL=polyfill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polyfill.d.ts","sourceRoot":"","sources":["../../src/gameplay/polyfill.ts"],"names":[],"mappings":"AACA,wBAAgB,cAAc,SAqB7B"}
@@ -1,5 +1,4 @@
1
- export function polyfillClient(){window.requestIdleCallback=window.requestIdleCallback||function(n){const e=Date.now();return setTimeout((function(){n({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-e))}})}),1)},window.cancelIdleCallback=window.cancelIdleCallback||function(n){clearTimeout(n)}}
2
- /*
1
+ export function polyfillClient(){window.requestIdleCallback=window.requestIdleCallback||function(n){const e=Date.now();return setTimeout((function(){n({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-e))}})}),1)},window.cancelIdleCallback=window.cancelIdleCallback||function(n){clearTimeout(n)}}/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -44,3 +44,4 @@ export declare class AssetLoader {
44
44
  getMaterialByAssetId(id: AssetId): Promise<Material>;
45
45
  getAsset(id: AssetId): Promise<import("../../scene/model.js").Asset>;
46
46
  }
47
+ //# sourceMappingURL=asset-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset-loader.d.ts","sourceRoot":"","sources":["../../../src/gameplay/services/asset-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAkB,MAAM,sCAAsC,CAAC;AACvG,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAa,IAAI,EAA+C,MAAM,cAAc,CAAC;AAC5F,OAAO,EAAuC,QAAQ,EAA2C,MAAM,OAAO,CAAC;AAI/G,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,qBACa,WAAW;IAgBpB,SAAS,CAAC,mBAAmB,EAAE,mBAAmB;IAClD,SAAS,CAAC,YAAY,EAAE,cAAc;IAC/B,OAAO,EAAE,UAAU,EAAE;IAjB9B,SAAS,CAAC,OAAO,SAAK;IACtB,SAAS,CAAC,SAAS,SAAK;IAExB,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,SAAS,CAAuC;IACxD,OAAO,CAAC,SAAS,CAAsC;IACvD,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,UAAU,CAAsC;IAExD,OAAO,CAAC,aAAa,CAAyC;IAC9D,OAAO,CAAC,WAAW,CAAuC;gBAG9C,mBAAmB,EAAE,mBAAmB,EACxC,YAAY,EAAE,cAAc,EAC/B,OAAO,EAAE,UAAU,EAAE;IAG9B;;;OAGG;IACH,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAIxC,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAKhD,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAQnD,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAQpE;;OAEG;IACU,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;IAgBtE;;OAEG;IACU,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9C,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAUtD,iBAAiB,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IAQnD,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;IAQ3D,mBAAmB,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;IAQxD,oBAAoB,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IASpD,QAAQ,CAAC,EAAE,EAAE,OAAO;CAKlC"}
@@ -1,5 +1,4 @@
1
- import{__decorate as e,__metadata as t}from"tslib";import{AssetResourceLoader as s}from"../../scene/asset-resource-loader.js";import{FBXLoader as r,GLTFLoader as a,MTLLoader as o,OBJLoader as i,TGALoader as n}from"three-stdlib";import{AudioLoader as d,LoadingManager as h,TextureLoader as l}from"three";import{pathJoin as u}from"../../utils/files.js";import{Service as c}from"typedi";import{materialFromAsset as g}from"../../scene/materializer.js";import{KTX2Loader as w}from"three/examples/jsm/Addons.js";let f=class{constructor(e,t,s){this.assetResourceLoader=e,this.assetService=t,this.shaders=s,this.baseUrl="",this.urlSuffix="",this.loadingManager=new h,this.glbLoader=new a(this.loadingManager),this.fbxLoader=new r(this.loadingManager),this.objLoader=new i(this.loadingManager),this.mtlLoader=new o(this.loadingManager),this.tgaLoader=new n(this.loadingManager),this.ktx2Loader=new w(this.loadingManager),this.textureLoader=new l(this.loadingManager),this.audioLoader=new d(this.loadingManager)}resolvePath(e){return u(this.baseUrl,e)+this.urlSuffix}getAudioAtPath(e){const t=this.resolvePath(e);return this.audioLoader.loadAsync(t)}async getAudioByAssetId(e){const t=await this.assetService.getAsset(e);if(null==t)throw new Error(`No audio could be found with asset id ${e}`);return this.assetResourceLoader.getAudio(t)}async getAudioByAssetName(e){const t=await this.assetService.getAsset(e);if(null==t)throw new Error(`No audio could be found with asset name ${e}`);return this.assetResourceLoader.getAudio(t)}async getModelAtPath(e){const t=this.resolvePath(e);switch(e.split(".").pop().toLowerCase()){case"glb":case"gltf":return(await this.glbLoader.loadAsync(t)).scene;case"fbx":return this.fbxLoader.loadAsync(t);case"obj":return this.objLoader.loadAsync(t);default:throw new Error(`File suffix is not supperted in file ${e}`)}}async getGltfAtPath(e){const t=this.resolvePath(e);return this.glbLoader.loadAsync(t)}async getModelByAssetName(e){const t=(await this.assetService.getAssets()).find((t=>t.name===e));if(null==t)throw new Error(`No model could be found with asset name ${e}`);return this.assetResourceLoader.getMesh(t)}async getModelByAssetId(e){const t=await this.assetService.getAsset(e);if(null==t)throw new Error(`No model could be found with asset id ${e}`);return this.assetResourceLoader.getMesh(t)}async getTextureByAssetName(e){const t=(await this.assetService.getAssets()).find((t=>t.name===e));if(null==t)throw new Error(`No texture could be found with asset name ${e}`);return this.assetResourceLoader.getTexture(t)}async getTextureByAssetId(e){const t=await this.assetService.getAsset(e);if(null==t)throw new Error(`No texture could be found with asset id ${e}`);return this.assetResourceLoader.getTexture(t)}async getMaterialByAssetId(e){const t=await this.assetService.getAsset(e);if(null==t)throw new Error(`No material could be found with asset id ${e}`);return g(t,null,this.assetService,this.assetResourceLoader,this.shaders,!1)}async getAsset(e){return this.assetService.getAsset(e)}};f=e([c(),t("design:paramtypes",[s,Object,Array])],f);export{f as AssetLoader};
2
- /*
1
+ import{__decorate as e,__metadata as t}from"tslib";import{AssetResourceLoader as s}from"../../scene/asset-resource-loader.js";import{FBXLoader as r,GLTFLoader as a,MTLLoader as o,OBJLoader as i,TGALoader as n}from"three-stdlib";import{AudioLoader as d,LoadingManager as h,TextureLoader as l}from"three";import{pathJoin as u}from"../../utils/files.js";import{Service as c}from"typedi";import{materialFromAsset as g}from"../../scene/materializer.js";import{KTX2Loader as w}from"three/examples/jsm/Addons.js";let f=class{constructor(e,t,s){this.assetResourceLoader=e,this.assetService=t,this.shaders=s,this.baseUrl="",this.urlSuffix="",this.loadingManager=new h,this.glbLoader=new a(this.loadingManager),this.fbxLoader=new r(this.loadingManager),this.objLoader=new i(this.loadingManager),this.mtlLoader=new o(this.loadingManager),this.tgaLoader=new n(this.loadingManager),this.ktx2Loader=new w(this.loadingManager),this.textureLoader=new l(this.loadingManager),this.audioLoader=new d(this.loadingManager)}resolvePath(e){return u(this.baseUrl,e)+this.urlSuffix}getAudioAtPath(e){const t=this.resolvePath(e);return this.audioLoader.loadAsync(t)}async getAudioByAssetId(e){const t=await this.assetService.getAsset(e);if(null==t)throw new Error(`No audio could be found with asset id ${e}`);return this.assetResourceLoader.getAudio(t)}async getAudioByAssetName(e){const t=await this.assetService.getAsset(e);if(null==t)throw new Error(`No audio could be found with asset name ${e}`);return this.assetResourceLoader.getAudio(t)}async getModelAtPath(e){const t=this.resolvePath(e);switch(e.split(".").pop().toLowerCase()){case"glb":case"gltf":return(await this.glbLoader.loadAsync(t)).scene;case"fbx":return this.fbxLoader.loadAsync(t);case"obj":return this.objLoader.loadAsync(t);default:throw new Error(`File suffix is not supperted in file ${e}`)}}async getGltfAtPath(e){const t=this.resolvePath(e);return this.glbLoader.loadAsync(t)}async getModelByAssetName(e){const t=(await this.assetService.getAssets()).find((t=>t.name===e));if(null==t)throw new Error(`No model could be found with asset name ${e}`);return this.assetResourceLoader.getMesh(t)}async getModelByAssetId(e){const t=await this.assetService.getAsset(e);if(null==t)throw new Error(`No model could be found with asset id ${e}`);return this.assetResourceLoader.getMesh(t)}async getTextureByAssetName(e){const t=(await this.assetService.getAssets()).find((t=>t.name===e));if(null==t)throw new Error(`No texture could be found with asset name ${e}`);return this.assetResourceLoader.getTexture(t)}async getTextureByAssetId(e){const t=await this.assetService.getAsset(e);if(null==t)throw new Error(`No texture could be found with asset id ${e}`);return this.assetResourceLoader.getTexture(t)}async getMaterialByAssetId(e){const t=await this.assetService.getAsset(e);if(null==t)throw new Error(`No material could be found with asset id ${e}`);return g(t,null,this.assetService,this.assetResourceLoader,this.shaders,!1)}async getAsset(e){return this.assetService.getAsset(e)}};f=e([c(),t("design:paramtypes",[s,Object,Array])],f);export{f as AssetLoader};/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -0,0 +1,202 @@
1
+ import { Subject, Observable } from "rxjs";
2
+ import { Vector3, Object3D } from "three";
3
+ import { BaseActor } from "../../actors/actor";
4
+ import { AbstractType } from "../../../utils/type";
5
+ import { CollisionShape } from "../../../index.js";
6
+ import { PhysicsBodyType } from "./physics-system";
7
+ import * as RAPIER from "@dimforge/rapier3d-compat";
8
+ export type ActorPhysicsOptions = {
9
+ isTrigger: boolean;
10
+ mass: number;
11
+ friction: number;
12
+ continousCollisionDetection: boolean;
13
+ density: number;
14
+ restitution: number;
15
+ type: PhysicsBodyType;
16
+ ignoreForNavMesh: boolean;
17
+ };
18
+ /**
19
+ * Abstract base class defining the interface for physics systems.
20
+ * This allows for different physics engine implementations while maintaining
21
+ * a consistent interface for game logic.
22
+ */
23
+ export declare abstract class AbstractPhysicsSystem {
24
+ /**
25
+ * Promise that resolves when the physics system is ready
26
+ */
27
+ abstract readonly ready: Promise<void>;
28
+ /**
29
+ * Event emitted before physics step
30
+ */
31
+ abstract readonly beforeStep: Subject<number>;
32
+ /**
33
+ * Event emitted after physics step
34
+ */
35
+ abstract readonly afterStep: Subject<number>;
36
+ /**
37
+ * Controls debug visualization of physics bodies
38
+ */
39
+ abstract get showDebug(): boolean;
40
+ abstract set showDebug(value: boolean);
41
+ /**
42
+ * Initializes and starts the physics system
43
+ */
44
+ abstract start(): Promise<void>;
45
+ /**
46
+ * Renders debug visualization of physics bodies and colliders
47
+ */
48
+ abstract renderDebug(): void;
49
+ /**
50
+ * Sets the gravity vector for the physics world
51
+ */
52
+ abstract setGravity(x: number, y: number, z: number): void;
53
+ /**
54
+ * Gets the current gravity vector of the physics world
55
+ */
56
+ abstract getGravity(): Vector3;
57
+ /**
58
+ * Adds static collision bodies to the physics world based on an existing scene hierarchy
59
+ */
60
+ abstract addFromScene(object: Object3D): void;
61
+ /**
62
+ * Creates a character controller for physics-based character movement
63
+ */
64
+ abstract getCharacterController(offset?: number): RAPIER.KinematicCharacterController;
65
+ /**
66
+ * Computes the corrected movement vector for an actor using a character controller
67
+ */
68
+ abstract getActorComputedMovement(actor: BaseActor, cc: RAPIER.KinematicCharacterController, desiredTranslation: Vector3, collisionGroup?: number): Vector3;
69
+ /**
70
+ * Sets the next kinematic translation for an actor
71
+ */
72
+ abstract setNextKinematicTranslation(actor: BaseActor, vel: Vector3): void;
73
+ /**
74
+ * Sets the angular velocity of an actor's physics body
75
+ */
76
+ abstract setAngularVelocity(actor: BaseActor, velocity: Vector3): void;
77
+ /**
78
+ * Sets the linear velocity of an actor's physics body
79
+ */
80
+ abstract setLinearVelocity(actor: BaseActor, velocity: Vector3): void;
81
+ /**
82
+ * Gets the current linear velocity of an actor's physics body
83
+ */
84
+ abstract getLinearVelocity(actor: BaseActor, target?: Vector3): Vector3;
85
+ /**
86
+ * Gets the current angular velocity of an actor's physics body
87
+ */
88
+ abstract getAngularVelocity(actor: BaseActor, target?: Vector3): Vector3;
89
+ /**
90
+ * Sets the linear damping factor for an actor's physics body
91
+ */
92
+ abstract setLinearDamping(actor: BaseActor, factor: number): void;
93
+ /**
94
+ * Sets the angular damping factor for an actor's physics body
95
+ */
96
+ abstract setAngularDamping(actor: BaseActor, factor: number): void;
97
+ /**
98
+ * Creates a new character collision object
99
+ */
100
+ abstract createCharacterCollision(): RAPIER.CharacterCollision;
101
+ /**
102
+ * Adds an actor to the physics world with the specified collision shapes and options
103
+ */
104
+ abstract addActor<A extends BaseActor>(actor: A, collisionShapes: CollisionShape[], options?: Partial<ActorPhysicsOptions>): void;
105
+ /**
106
+ * Applies a torque to an actor's physics body
107
+ */
108
+ abstract applyTorque(actor: BaseActor, torque: Vector3): void;
109
+ /**
110
+ * Applies an instantaneous torque impulse to an actor's physics body
111
+ */
112
+ abstract applyTorqueImpulse(actor: BaseActor, torqueImpulse: Vector3): void;
113
+ /**
114
+ * Resets all accumulated forces on an actor's physics body
115
+ */
116
+ abstract resetForces(actor: BaseActor): void;
117
+ /**
118
+ * Resets all accumulated torques on an actor's physics body
119
+ */
120
+ abstract resetTorques(actor: BaseActor): void;
121
+ /**
122
+ * Applies a continuous force to an actor's physics body
123
+ */
124
+ abstract applyForce(actor: BaseActor, force: Vector3): void;
125
+ /**
126
+ * Applies an instantaneous force impulse to an actor's physics body
127
+ */
128
+ abstract applyImpulse(actor: BaseActor, force: Vector3): void;
129
+ /**
130
+ * Applies a force at a specific local point on an actor's physics body
131
+ */
132
+ abstract applyLocalForce(actor: BaseActor, force: Vector3, localPoint?: Vector3): void;
133
+ /**
134
+ * Applies an instantaneous force impulse at a specific local point on an actor's physics body
135
+ */
136
+ abstract applyLocalImpulse(actor: BaseActor, force: Vector3, localPoint?: Vector3): void;
137
+ /**
138
+ * Removes an actor from the physics world
139
+ */
140
+ abstract removeActor(actor: BaseActor): void;
141
+ /**
142
+ * Removes physics bodies for objects that have been removed from the scene
143
+ */
144
+ abstract removeRemoved(scene: Object3D): void;
145
+ /**
146
+ * Removes the physics body for a specific scene object
147
+ */
148
+ abstract removeSceneObject(object: Object3D): void;
149
+ /**
150
+ * Gets an observable for when an actor begins contact with any object
151
+ */
152
+ abstract onBeginContact(self: BaseActor): Observable<number>;
153
+ /**
154
+ * Gets an observable for when an actor ends contact with any object
155
+ */
156
+ abstract onEndContact(self: BaseActor): Observable<number>;
157
+ /**
158
+ * Gets an observable that tracks whether an actor is in contact with any object
159
+ */
160
+ abstract onHasContactChanged(self: BaseActor): Observable<boolean>;
161
+ /**
162
+ * Gets an observable for when an actor begins overlapping with actors of a specific type
163
+ */
164
+ abstract onBeginOverlapWithActorType<T extends BaseActor, A extends BaseActor>(self: T, actorType: AbstractType<A>): Observable<A>;
165
+ /**
166
+ * Gets an observable for when an actor ends overlapping with actors of a specific type
167
+ */
168
+ abstract onEndOverlapWithActorType<T extends BaseActor, A extends BaseActor>(self: T, actorType: AbstractType<A>): Observable<A>;
169
+ /**
170
+ * Gets an observable for when an actor begins overlapping with a specific actor
171
+ */
172
+ abstract onBeginOverlapWithActor<T extends BaseActor, A extends BaseActor>(self: T, actor: A): Observable<A>;
173
+ /**
174
+ * Gets an observable for when an actor ends overlapping with a specific actor
175
+ */
176
+ abstract onEndOverlapWithActor<T extends BaseActor, A extends BaseActor>(self: T, actor: A): Observable<A>;
177
+ /**
178
+ * Gets an observable for collision events with a specific actor
179
+ */
180
+ abstract onCollisionWithActor<A extends BaseActor, S extends BaseActor>(self: S, actor: A): Observable<A>;
181
+ /**
182
+ * Gets an observable for collision events with actors of a specific type
183
+ */
184
+ abstract onCollisionWithActorType<A extends BaseActor, S extends BaseActor>(self: S, actorType: AbstractType<A>): Observable<A>;
185
+ /**
186
+ * Updates the transform of an actor's physics body to match its visual representation
187
+ */
188
+ abstract updateActorTransform(actor: BaseActor): void;
189
+ /**
190
+ * Gets the contact points between an actor and other objects in a specific direction
191
+ */
192
+ abstract getActorContacts(actor: BaseActor, direction: Vector3): {
193
+ ri: Vector3;
194
+ rj: Vector3;
195
+ ni: Vector3;
196
+ }[];
197
+ /**
198
+ * Stops the physics simulation and cleans up resources
199
+ */
200
+ abstract stop(): void;
201
+ }
202
+ //# sourceMappingURL=abstract-physics-system.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abstract-physics-system.d.ts","sourceRoot":"","sources":["../../../../src/gameplay/services/physics/abstract-physics-system.ts"],"names":[],"mappings":"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"}