@dcl/hammurabi-server 1.0.0-17268386187.commit-b609629

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 (520) hide show
  1. package/CLAUDE.md +90 -0
  2. package/LICENSE +201 -0
  3. package/README.md +125 -0
  4. package/dist/cli.d.ts +3 -0
  5. package/dist/cli.d.ts.map +1 -0
  6. package/dist/cli.js +79 -0
  7. package/dist/cli.js.map +1 -0
  8. package/dist/lib/babylon/avatar-rendering-system.d.ts +16 -0
  9. package/dist/lib/babylon/avatar-rendering-system.d.ts.map +1 -0
  10. package/dist/lib/babylon/avatar-rendering-system.js +96 -0
  11. package/dist/lib/babylon/avatar-rendering-system.js.map +1 -0
  12. package/dist/lib/babylon/avatars/AvatarRenderer.d.ts +40 -0
  13. package/dist/lib/babylon/avatars/AvatarRenderer.d.ts.map +1 -0
  14. package/dist/lib/babylon/avatars/AvatarRenderer.js +260 -0
  15. package/dist/lib/babylon/avatars/AvatarRenderer.js.map +1 -0
  16. package/dist/lib/babylon/avatars/CharacterController.d.ts +88 -0
  17. package/dist/lib/babylon/avatars/CharacterController.d.ts.map +1 -0
  18. package/dist/lib/babylon/avatars/CharacterController.js +463 -0
  19. package/dist/lib/babylon/avatars/CharacterController.js.map +1 -0
  20. package/dist/lib/babylon/avatars/adr-65/body.d.ts +4 -0
  21. package/dist/lib/babylon/avatars/adr-65/body.d.ts.map +1 -0
  22. package/dist/lib/babylon/avatars/adr-65/body.js +47 -0
  23. package/dist/lib/babylon/avatars/adr-65/body.js.map +1 -0
  24. package/dist/lib/babylon/avatars/adr-65/customizations.d.ts +11 -0
  25. package/dist/lib/babylon/avatars/adr-65/customizations.d.ts.map +1 -0
  26. package/dist/lib/babylon/avatars/adr-65/customizations.js +111 -0
  27. package/dist/lib/babylon/avatars/adr-65/customizations.js.map +1 -0
  28. package/dist/lib/babylon/avatars/adr-65/emote.d.ts +9 -0
  29. package/dist/lib/babylon/avatars/adr-65/emote.d.ts.map +1 -0
  30. package/dist/lib/babylon/avatars/adr-65/emote.js +46 -0
  31. package/dist/lib/babylon/avatars/adr-65/emote.js.map +1 -0
  32. package/dist/lib/babylon/avatars/adr-65/loader.d.ts +8 -0
  33. package/dist/lib/babylon/avatars/adr-65/loader.d.ts.map +1 -0
  34. package/dist/lib/babylon/avatars/adr-65/loader.js +54 -0
  35. package/dist/lib/babylon/avatars/adr-65/loader.js.map +1 -0
  36. package/dist/lib/babylon/avatars/adr-65/representation.d.ts +12 -0
  37. package/dist/lib/babylon/avatars/adr-65/representation.d.ts.map +1 -0
  38. package/dist/lib/babylon/avatars/adr-65/representation.js +77 -0
  39. package/dist/lib/babylon/avatars/adr-65/representation.js.map +1 -0
  40. package/dist/lib/babylon/avatars/adr-65/slots.d.ts +5 -0
  41. package/dist/lib/babylon/avatars/adr-65/slots.d.ts.map +1 -0
  42. package/dist/lib/babylon/avatars/adr-65/slots.js +62 -0
  43. package/dist/lib/babylon/avatars/adr-65/slots.js.map +1 -0
  44. package/dist/lib/babylon/avatars/adr-65/types.d.ts +17 -0
  45. package/dist/lib/babylon/avatars/adr-65/types.d.ts.map +1 -0
  46. package/dist/lib/babylon/avatars/adr-65/types.js +3 -0
  47. package/dist/lib/babylon/avatars/adr-65/types.js.map +1 -0
  48. package/dist/lib/babylon/avatars/adr-65/utils.d.ts +8 -0
  49. package/dist/lib/babylon/avatars/adr-65/utils.d.ts.map +1 -0
  50. package/dist/lib/babylon/avatars/adr-65/utils.js +29 -0
  51. package/dist/lib/babylon/avatars/adr-65/utils.js.map +1 -0
  52. package/dist/lib/babylon/avatars/adr-65/wearable.d.ts +7 -0
  53. package/dist/lib/babylon/avatars/adr-65/wearable.d.ts.map +1 -0
  54. package/dist/lib/babylon/avatars/adr-65/wearable.js +64 -0
  55. package/dist/lib/babylon/avatars/adr-65/wearable.js.map +1 -0
  56. package/dist/lib/babylon/avatars/avatar-asset-manager.d.ts +12 -0
  57. package/dist/lib/babylon/avatars/avatar-asset-manager.d.ts.map +1 -0
  58. package/dist/lib/babylon/avatars/avatar-asset-manager.js +31 -0
  59. package/dist/lib/babylon/avatars/avatar-asset-manager.js.map +1 -0
  60. package/dist/lib/babylon/avatars/loader.d.ts +6 -0
  61. package/dist/lib/babylon/avatars/loader.d.ts.map +1 -0
  62. package/dist/lib/babylon/avatars/loader.js +108 -0
  63. package/dist/lib/babylon/avatars/loader.js.map +1 -0
  64. package/dist/lib/babylon/avatars/urn.d.ts +2 -0
  65. package/dist/lib/babylon/avatars/urn.d.ts.map +1 -0
  66. package/dist/lib/babylon/avatars/urn.js +9 -0
  67. package/dist/lib/babylon/avatars/urn.js.map +1 -0
  68. package/dist/lib/babylon/index.d.ts +6 -0
  69. package/dist/lib/babylon/index.d.ts.map +1 -0
  70. package/dist/lib/babylon/index.js +85 -0
  71. package/dist/lib/babylon/index.js.map +1 -0
  72. package/dist/lib/babylon/input.d.ts +35 -0
  73. package/dist/lib/babylon/input.d.ts.map +1 -0
  74. package/dist/lib/babylon/input.js +137 -0
  75. package/dist/lib/babylon/input.js.map +1 -0
  76. package/dist/lib/babylon/scene/AssetManager.d.ts +19 -0
  77. package/dist/lib/babylon/scene/AssetManager.d.ts.map +1 -0
  78. package/dist/lib/babylon/scene/AssetManager.js +271 -0
  79. package/dist/lib/babylon/scene/AssetManager.js.map +1 -0
  80. package/dist/lib/babylon/scene/BabylonEntity.d.ts +84 -0
  81. package/dist/lib/babylon/scene/BabylonEntity.d.ts.map +1 -0
  82. package/dist/lib/babylon/scene/BabylonEntity.js +174 -0
  83. package/dist/lib/babylon/scene/BabylonEntity.js.map +1 -0
  84. package/dist/lib/babylon/scene/connect-context-rpc.d.ts +8 -0
  85. package/dist/lib/babylon/scene/connect-context-rpc.d.ts.map +1 -0
  86. package/dist/lib/babylon/scene/connect-context-rpc.js +210 -0
  87. package/dist/lib/babylon/scene/connect-context-rpc.js.map +1 -0
  88. package/dist/lib/babylon/scene/coordinates.d.ts +5 -0
  89. package/dist/lib/babylon/scene/coordinates.d.ts.map +1 -0
  90. package/dist/lib/babylon/scene/coordinates.js +17 -0
  91. package/dist/lib/babylon/scene/coordinates.js.map +1 -0
  92. package/dist/lib/babylon/scene/hot-reload.d.ts +9 -0
  93. package/dist/lib/babylon/scene/hot-reload.d.ts.map +1 -0
  94. package/dist/lib/babylon/scene/hot-reload.js +65 -0
  95. package/dist/lib/babylon/scene/hot-reload.js.map +1 -0
  96. package/dist/lib/babylon/scene/load.d.ts +54 -0
  97. package/dist/lib/babylon/scene/load.d.ts.map +1 -0
  98. package/dist/lib/babylon/scene/load.js +154 -0
  99. package/dist/lib/babylon/scene/load.js.map +1 -0
  100. package/dist/lib/babylon/scene/logic/apply-animations.d.ts +3 -0
  101. package/dist/lib/babylon/scene/logic/apply-animations.d.ts.map +1 -0
  102. package/dist/lib/babylon/scene/logic/apply-animations.js +50 -0
  103. package/dist/lib/babylon/scene/logic/apply-animations.js.map +1 -0
  104. package/dist/lib/babylon/scene/logic/billboards.d.ts +3 -0
  105. package/dist/lib/babylon/scene/logic/billboards.d.ts.map +1 -0
  106. package/dist/lib/babylon/scene/logic/billboards.js +12 -0
  107. package/dist/lib/babylon/scene/logic/billboards.js.map +1 -0
  108. package/dist/lib/babylon/scene/logic/camera-follows-player.d.ts +7 -0
  109. package/dist/lib/babylon/scene/logic/camera-follows-player.d.ts.map +1 -0
  110. package/dist/lib/babylon/scene/logic/camera-follows-player.js +35 -0
  111. package/dist/lib/babylon/scene/logic/camera-follows-player.js.map +1 -0
  112. package/dist/lib/babylon/scene/logic/colliders.d.ts +9 -0
  113. package/dist/lib/babylon/scene/logic/colliders.d.ts.map +1 -0
  114. package/dist/lib/babylon/scene/logic/colliders.js +79 -0
  115. package/dist/lib/babylon/scene/logic/colliders.js.map +1 -0
  116. package/dist/lib/babylon/scene/logic/cyclic-transform.d.ts +12 -0
  117. package/dist/lib/babylon/scene/logic/cyclic-transform.d.ts.map +1 -0
  118. package/dist/lib/babylon/scene/logic/cyclic-transform.js +67 -0
  119. package/dist/lib/babylon/scene/logic/cyclic-transform.js.map +1 -0
  120. package/dist/lib/babylon/scene/logic/delayed-interpolation.d.ts +27 -0
  121. package/dist/lib/babylon/scene/logic/delayed-interpolation.d.ts.map +1 -0
  122. package/dist/lib/babylon/scene/logic/delayed-interpolation.js +49 -0
  123. package/dist/lib/babylon/scene/logic/delayed-interpolation.js.map +1 -0
  124. package/dist/lib/babylon/scene/logic/easings.d.ts +7 -0
  125. package/dist/lib/babylon/scene/logic/easings.d.ts.map +1 -0
  126. package/dist/lib/babylon/scene/logic/easings.js +100 -0
  127. package/dist/lib/babylon/scene/logic/easings.js.map +1 -0
  128. package/dist/lib/babylon/scene/logic/hide-camera-obstuction-system.d.ts +5 -0
  129. package/dist/lib/babylon/scene/logic/hide-camera-obstuction-system.d.ts.map +1 -0
  130. package/dist/lib/babylon/scene/logic/hide-camera-obstuction-system.js +145 -0
  131. package/dist/lib/babylon/scene/logic/hide-camera-obstuction-system.js.map +1 -0
  132. package/dist/lib/babylon/scene/logic/local-avatar-scene.d.ts +10 -0
  133. package/dist/lib/babylon/scene/logic/local-avatar-scene.d.ts.map +1 -0
  134. package/dist/lib/babylon/scene/logic/local-avatar-scene.js +50 -0
  135. package/dist/lib/babylon/scene/logic/local-avatar-scene.js.map +1 -0
  136. package/dist/lib/babylon/scene/logic/pointer-events.d.ts +12 -0
  137. package/dist/lib/babylon/scene/logic/pointer-events.d.ts.map +1 -0
  138. package/dist/lib/babylon/scene/logic/pointer-events.js +199 -0
  139. package/dist/lib/babylon/scene/logic/pointer-events.js.map +1 -0
  140. package/dist/lib/babylon/scene/logic/raycasts.d.ts +21 -0
  141. package/dist/lib/babylon/scene/logic/raycasts.d.ts.map +1 -0
  142. package/dist/lib/babylon/scene/logic/raycasts.js +142 -0
  143. package/dist/lib/babylon/scene/logic/raycasts.js.map +1 -0
  144. package/dist/lib/babylon/scene/logic/static-entities.d.ts +18 -0
  145. package/dist/lib/babylon/scene/logic/static-entities.d.ts.map +1 -0
  146. package/dist/lib/babylon/scene/logic/static-entities.js +64 -0
  147. package/dist/lib/babylon/scene/logic/static-entities.js.map +1 -0
  148. package/dist/lib/babylon/scene/nodejs-runtime.d.ts +4 -0
  149. package/dist/lib/babylon/scene/nodejs-runtime.d.ts.map +1 -0
  150. package/dist/lib/babylon/scene/nodejs-runtime.js +100 -0
  151. package/dist/lib/babylon/scene/nodejs-runtime.js.map +1 -0
  152. package/dist/lib/babylon/scene/scene-context.d.ts +116 -0
  153. package/dist/lib/babylon/scene/scene-context.d.ts.map +1 -0
  154. package/dist/lib/babylon/scene/scene-context.js +492 -0
  155. package/dist/lib/babylon/scene/scene-context.js.map +1 -0
  156. package/dist/lib/babylon/scene/scene-culling.d.ts +6 -0
  157. package/dist/lib/babylon/scene/scene-culling.d.ts.map +1 -0
  158. package/dist/lib/babylon/scene/scene-culling.js +23 -0
  159. package/dist/lib/babylon/scene/scene-culling.js.map +1 -0
  160. package/dist/lib/babylon/scene/update-scheduler.d.ts +7 -0
  161. package/dist/lib/babylon/scene/update-scheduler.d.ts.map +1 -0
  162. package/dist/lib/babylon/scene/update-scheduler.js +40 -0
  163. package/dist/lib/babylon/scene/update-scheduler.js.map +1 -0
  164. package/dist/lib/babylon/time-based-animation.d.ts +13 -0
  165. package/dist/lib/babylon/time-based-animation.d.ts.map +1 -0
  166. package/dist/lib/babylon/time-based-animation.js +35 -0
  167. package/dist/lib/babylon/time-based-animation.js.map +1 -0
  168. package/dist/lib/babylon/visual/ambientLights.d.ts +6 -0
  169. package/dist/lib/babylon/visual/ambientLights.d.ts.map +1 -0
  170. package/dist/lib/babylon/visual/ambientLights.js +65 -0
  171. package/dist/lib/babylon/visual/ambientLights.js.map +1 -0
  172. package/dist/lib/babylon/visual/glowLayer.d.ts +6 -0
  173. package/dist/lib/babylon/visual/glowLayer.d.ts.map +1 -0
  174. package/dist/lib/babylon/visual/glowLayer.js +59 -0
  175. package/dist/lib/babylon/visual/glowLayer.js.map +1 -0
  176. package/dist/lib/babylon/visual/parcelOutline.d.ts +7 -0
  177. package/dist/lib/babylon/visual/parcelOutline.d.ts.map +1 -0
  178. package/dist/lib/babylon/visual/parcelOutline.js +88 -0
  179. package/dist/lib/babylon/visual/parcelOutline.js.map +1 -0
  180. package/dist/lib/babylon/visual/reticle.d.ts +3 -0
  181. package/dist/lib/babylon/visual/reticle.d.ts.map +1 -0
  182. package/dist/lib/babylon/visual/reticle.js +60 -0
  183. package/dist/lib/babylon/visual/reticle.js.map +1 -0
  184. package/dist/lib/babylon/visual/ui.d.ts +8 -0
  185. package/dist/lib/babylon/visual/ui.d.ts.map +1 -0
  186. package/dist/lib/babylon/visual/ui.js +54 -0
  187. package/dist/lib/babylon/visual/ui.js.map +1 -0
  188. package/dist/lib/common-runtime/game-loop.d.ts +4 -0
  189. package/dist/lib/common-runtime/game-loop.d.ts.map +1 -0
  190. package/dist/lib/common-runtime/game-loop.js +31 -0
  191. package/dist/lib/common-runtime/game-loop.js.map +1 -0
  192. package/dist/lib/common-runtime/modules.d.ts +244 -0
  193. package/dist/lib/common-runtime/modules.d.ts.map +1 -0
  194. package/dist/lib/common-runtime/modules.js +74 -0
  195. package/dist/lib/common-runtime/modules.js.map +1 -0
  196. package/dist/lib/common-runtime/startup.d.ts +8 -0
  197. package/dist/lib/common-runtime/startup.d.ts.map +1 -0
  198. package/dist/lib/common-runtime/startup.js +45 -0
  199. package/dist/lib/common-runtime/startup.js.map +1 -0
  200. package/dist/lib/common-runtime/types.d.ts +15 -0
  201. package/dist/lib/common-runtime/types.d.ts.map +1 -0
  202. package/dist/lib/common-runtime/types.js +7 -0
  203. package/dist/lib/common-runtime/types.js.map +1 -0
  204. package/dist/lib/decentraland/ByteBuffer/index.d.ts +75 -0
  205. package/dist/lib/decentraland/ByteBuffer/index.d.ts.map +1 -0
  206. package/dist/lib/decentraland/ByteBuffer/index.js +279 -0
  207. package/dist/lib/decentraland/ByteBuffer/index.js.map +1 -0
  208. package/dist/lib/decentraland/ByteBuffer/types.d.ts +109 -0
  209. package/dist/lib/decentraland/ByteBuffer/types.d.ts.map +1 -0
  210. package/dist/lib/decentraland/ByteBuffer/types.js +3 -0
  211. package/dist/lib/decentraland/ByteBuffer/types.js.map +1 -0
  212. package/dist/lib/decentraland/communications/CommsTransportWrapper.d.ts +45 -0
  213. package/dist/lib/decentraland/communications/CommsTransportWrapper.d.ts.map +1 -0
  214. package/dist/lib/decentraland/communications/CommsTransportWrapper.js +174 -0
  215. package/dist/lib/decentraland/communications/CommsTransportWrapper.js.map +1 -0
  216. package/dist/lib/decentraland/communications/avatar-communication-system.d.ts +18 -0
  217. package/dist/lib/decentraland/communications/avatar-communication-system.d.ts.map +1 -0
  218. package/dist/lib/decentraland/communications/avatar-communication-system.js +203 -0
  219. package/dist/lib/decentraland/communications/avatar-communication-system.js.map +1 -0
  220. package/dist/lib/decentraland/communications/connect-adapter.d.ts +5 -0
  221. package/dist/lib/decentraland/communications/connect-adapter.d.ts.map +1 -0
  222. package/dist/lib/decentraland/communications/connect-adapter.js +110 -0
  223. package/dist/lib/decentraland/communications/connect-adapter.js.map +1 -0
  224. package/dist/lib/decentraland/communications/connect-transport.d.ts +5 -0
  225. package/dist/lib/decentraland/communications/connect-transport.d.ts.map +1 -0
  226. package/dist/lib/decentraland/communications/connect-transport.js +32 -0
  227. package/dist/lib/decentraland/communications/connect-transport.js.map +1 -0
  228. package/dist/lib/decentraland/communications/networked-profile-system.d.ts +10 -0
  229. package/dist/lib/decentraland/communications/networked-profile-system.d.ts.map +1 -0
  230. package/dist/lib/decentraland/communications/networked-profile-system.js +73 -0
  231. package/dist/lib/decentraland/communications/networked-profile-system.js.map +1 -0
  232. package/dist/lib/decentraland/communications/player-entity-manager.d.ts +55 -0
  233. package/dist/lib/decentraland/communications/player-entity-manager.d.ts.map +1 -0
  234. package/dist/lib/decentraland/communications/player-entity-manager.js +167 -0
  235. package/dist/lib/decentraland/communications/player-entity-manager.js.map +1 -0
  236. package/dist/lib/decentraland/communications/position-report-system.d.ts +8 -0
  237. package/dist/lib/decentraland/communications/position-report-system.d.ts.map +1 -0
  238. package/dist/lib/decentraland/communications/position-report-system.js +51 -0
  239. package/dist/lib/decentraland/communications/position-report-system.js.map +1 -0
  240. package/dist/lib/decentraland/communications/realm-communications-system.d.ts +17 -0
  241. package/dist/lib/decentraland/communications/realm-communications-system.d.ts.map +1 -0
  242. package/dist/lib/decentraland/communications/realm-communications-system.js +111 -0
  243. package/dist/lib/decentraland/communications/realm-communications-system.js.map +1 -0
  244. package/dist/lib/decentraland/communications/scene-comms.d.ts +9 -0
  245. package/dist/lib/decentraland/communications/scene-comms.d.ts.map +1 -0
  246. package/dist/lib/decentraland/communications/scene-comms.js +20 -0
  247. package/dist/lib/decentraland/communications/scene-comms.js.map +1 -0
  248. package/dist/lib/decentraland/communications/transports/livekit.d.ts +27 -0
  249. package/dist/lib/decentraland/communications/transports/livekit.d.ts.map +1 -0
  250. package/dist/lib/decentraland/communications/transports/livekit.js +135 -0
  251. package/dist/lib/decentraland/communications/transports/livekit.js.map +1 -0
  252. package/dist/lib/decentraland/communications/transports/ws-room.d.ts +26 -0
  253. package/dist/lib/decentraland/communications/transports/ws-room.d.ts.map +1 -0
  254. package/dist/lib/decentraland/communications/transports/ws-room.js +235 -0
  255. package/dist/lib/decentraland/communications/transports/ws-room.js.map +1 -0
  256. package/dist/lib/decentraland/communications/types.d.ts +76 -0
  257. package/dist/lib/decentraland/communications/types.d.ts.map +1 -0
  258. package/dist/lib/decentraland/communications/types.js +6 -0
  259. package/dist/lib/decentraland/communications/types.js.map +1 -0
  260. package/dist/lib/decentraland/communications/ws-async-channel.d.ts +6 -0
  261. package/dist/lib/decentraland/communications/ws-async-channel.d.ts.map +1 -0
  262. package/dist/lib/decentraland/communications/ws-async-channel.js +52 -0
  263. package/dist/lib/decentraland/communications/ws-async-channel.js.map +1 -0
  264. package/dist/lib/decentraland/crdt-internal/components.d.ts +156 -0
  265. package/dist/lib/decentraland/crdt-internal/components.d.ts.map +1 -0
  266. package/dist/lib/decentraland/crdt-internal/components.js +8 -0
  267. package/dist/lib/decentraland/crdt-internal/components.js.map +1 -0
  268. package/dist/lib/decentraland/crdt-internal/conflict-resolution.d.ts +45 -0
  269. package/dist/lib/decentraland/crdt-internal/conflict-resolution.d.ts.map +1 -0
  270. package/dist/lib/decentraland/crdt-internal/conflict-resolution.js +49 -0
  271. package/dist/lib/decentraland/crdt-internal/conflict-resolution.js.map +1 -0
  272. package/dist/lib/decentraland/crdt-internal/dataCompare.d.ts +6 -0
  273. package/dist/lib/decentraland/crdt-internal/dataCompare.d.ts.map +1 -0
  274. package/dist/lib/decentraland/crdt-internal/dataCompare.js +34 -0
  275. package/dist/lib/decentraland/crdt-internal/dataCompare.js.map +1 -0
  276. package/dist/lib/decentraland/crdt-internal/generational-index-pool.d.ts +22 -0
  277. package/dist/lib/decentraland/crdt-internal/generational-index-pool.d.ts.map +1 -0
  278. package/dist/lib/decentraland/crdt-internal/generational-index-pool.js +91 -0
  279. package/dist/lib/decentraland/crdt-internal/generational-index-pool.js.map +1 -0
  280. package/dist/lib/decentraland/crdt-internal/grow-only-set.d.ts +10 -0
  281. package/dist/lib/decentraland/crdt-internal/grow-only-set.d.ts.map +1 -0
  282. package/dist/lib/decentraland/crdt-internal/grow-only-set.js +129 -0
  283. package/dist/lib/decentraland/crdt-internal/grow-only-set.js.map +1 -0
  284. package/dist/lib/decentraland/crdt-internal/last-write-win-element-set.d.ts +11 -0
  285. package/dist/lib/decentraland/crdt-internal/last-write-win-element-set.d.ts.map +1 -0
  286. package/dist/lib/decentraland/crdt-internal/last-write-win-element-set.js +224 -0
  287. package/dist/lib/decentraland/crdt-internal/last-write-win-element-set.js.map +1 -0
  288. package/dist/lib/decentraland/crdt-wire-protocol/appendValue.d.ts +15 -0
  289. package/dist/lib/decentraland/crdt-wire-protocol/appendValue.d.ts.map +1 -0
  290. package/dist/lib/decentraland/crdt-wire-protocol/appendValue.js +50 -0
  291. package/dist/lib/decentraland/crdt-wire-protocol/appendValue.js.map +1 -0
  292. package/dist/lib/decentraland/crdt-wire-protocol/crdtMessageProtocol.d.ts +31 -0
  293. package/dist/lib/decentraland/crdt-wire-protocol/crdtMessageProtocol.d.ts.map +1 -0
  294. package/dist/lib/decentraland/crdt-wire-protocol/crdtMessageProtocol.js +72 -0
  295. package/dist/lib/decentraland/crdt-wire-protocol/crdtMessageProtocol.js.map +1 -0
  296. package/dist/lib/decentraland/crdt-wire-protocol/deleteComponent.d.ts +14 -0
  297. package/dist/lib/decentraland/crdt-wire-protocol/deleteComponent.d.ts.map +1 -0
  298. package/dist/lib/decentraland/crdt-wire-protocol/deleteComponent.js +44 -0
  299. package/dist/lib/decentraland/crdt-wire-protocol/deleteComponent.js.map +1 -0
  300. package/dist/lib/decentraland/crdt-wire-protocol/deleteEntity.d.ts +11 -0
  301. package/dist/lib/decentraland/crdt-wire-protocol/deleteEntity.d.ts.map +1 -0
  302. package/dist/lib/decentraland/crdt-wire-protocol/deleteEntity.js +35 -0
  303. package/dist/lib/decentraland/crdt-wire-protocol/deleteEntity.js.map +1 -0
  304. package/dist/lib/decentraland/crdt-wire-protocol/index.d.ts +8 -0
  305. package/dist/lib/decentraland/crdt-wire-protocol/index.d.ts.map +1 -0
  306. package/dist/lib/decentraland/crdt-wire-protocol/index.js +24 -0
  307. package/dist/lib/decentraland/crdt-wire-protocol/index.js.map +1 -0
  308. package/dist/lib/decentraland/crdt-wire-protocol/message.d.ts +17 -0
  309. package/dist/lib/decentraland/crdt-wire-protocol/message.d.ts.map +1 -0
  310. package/dist/lib/decentraland/crdt-wire-protocol/message.js +49 -0
  311. package/dist/lib/decentraland/crdt-wire-protocol/message.js.map +1 -0
  312. package/dist/lib/decentraland/crdt-wire-protocol/prettyPrint.d.ts +4 -0
  313. package/dist/lib/decentraland/crdt-wire-protocol/prettyPrint.d.ts.map +1 -0
  314. package/dist/lib/decentraland/crdt-wire-protocol/prettyPrint.js +26 -0
  315. package/dist/lib/decentraland/crdt-wire-protocol/prettyPrint.js.map +1 -0
  316. package/dist/lib/decentraland/crdt-wire-protocol/putComponent.d.ts +15 -0
  317. package/dist/lib/decentraland/crdt-wire-protocol/putComponent.d.ts.map +1 -0
  318. package/dist/lib/decentraland/crdt-wire-protocol/putComponent.js +48 -0
  319. package/dist/lib/decentraland/crdt-wire-protocol/putComponent.js.map +1 -0
  320. package/dist/lib/decentraland/crdt-wire-protocol/types.d.ts +80 -0
  321. package/dist/lib/decentraland/crdt-wire-protocol/types.d.ts.map +1 -0
  322. package/dist/lib/decentraland/crdt-wire-protocol/types.js +15 -0
  323. package/dist/lib/decentraland/crdt-wire-protocol/types.js.map +1 -0
  324. package/dist/lib/decentraland/identifiers.d.ts +6 -0
  325. package/dist/lib/decentraland/identifiers.d.ts.map +1 -0
  326. package/dist/lib/decentraland/identifiers.js +22 -0
  327. package/dist/lib/decentraland/identifiers.js.map +1 -0
  328. package/dist/lib/decentraland/identity/avatar.d.ts +4 -0
  329. package/dist/lib/decentraland/identity/avatar.d.ts.map +1 -0
  330. package/dist/lib/decentraland/identity/avatar.js +57 -0
  331. package/dist/lib/decentraland/identity/avatar.js.map +1 -0
  332. package/dist/lib/decentraland/identity/login.d.ts +8 -0
  333. package/dist/lib/decentraland/identity/login.d.ts.map +1 -0
  334. package/dist/lib/decentraland/identity/login.js +121 -0
  335. package/dist/lib/decentraland/identity/login.js.map +1 -0
  336. package/dist/lib/decentraland/identity/signed-fetch.d.ts +17 -0
  337. package/dist/lib/decentraland/identity/signed-fetch.d.ts.map +1 -0
  338. package/dist/lib/decentraland/identity/signed-fetch.js +47 -0
  339. package/dist/lib/decentraland/identity/signed-fetch.js.map +1 -0
  340. package/dist/lib/decentraland/identity/types.d.ts +11 -0
  341. package/dist/lib/decentraland/identity/types.d.ts.map +1 -0
  342. package/dist/lib/decentraland/identity/types.js +3 -0
  343. package/dist/lib/decentraland/identity/types.js.map +1 -0
  344. package/dist/lib/decentraland/positions.d.ts +15 -0
  345. package/dist/lib/decentraland/positions.d.ts.map +1 -0
  346. package/dist/lib/decentraland/positions.js +40 -0
  347. package/dist/lib/decentraland/positions.js.map +1 -0
  348. package/dist/lib/decentraland/realm/resolution.d.ts +2 -0
  349. package/dist/lib/decentraland/realm/resolution.d.ts.map +1 -0
  350. package/dist/lib/decentraland/realm/resolution.js +39 -0
  351. package/dist/lib/decentraland/realm/resolution.js.map +1 -0
  352. package/dist/lib/decentraland/scene/content-server-entity.d.ts +34 -0
  353. package/dist/lib/decentraland/scene/content-server-entity.d.ts.map +1 -0
  354. package/dist/lib/decentraland/scene/content-server-entity.js +22 -0
  355. package/dist/lib/decentraland/scene/content-server-entity.js.map +1 -0
  356. package/dist/lib/decentraland/scene/spawn-points.d.ts +16 -0
  357. package/dist/lib/decentraland/scene/spawn-points.d.ts.map +1 -0
  358. package/dist/lib/decentraland/scene/spawn-points.js +78 -0
  359. package/dist/lib/decentraland/scene/spawn-points.js.map +1 -0
  360. package/dist/lib/decentraland/scene/types.d.ts +38 -0
  361. package/dist/lib/decentraland/scene/types.d.ts.map +1 -0
  362. package/dist/lib/decentraland/scene/types.js +3 -0
  363. package/dist/lib/decentraland/scene/types.js.map +1 -0
  364. package/dist/lib/decentraland/sdk-components/animator-component.d.ts +3 -0
  365. package/dist/lib/decentraland/sdk-components/animator-component.d.ts.map +1 -0
  366. package/dist/lib/decentraland/sdk-components/animator-component.js +12 -0
  367. package/dist/lib/decentraland/sdk-components/animator-component.js.map +1 -0
  368. package/dist/lib/decentraland/sdk-components/avatar-base.d.ts +5 -0
  369. package/dist/lib/decentraland/sdk-components/avatar-base.d.ts.map +1 -0
  370. package/dist/lib/decentraland/sdk-components/avatar-base.js +40 -0
  371. package/dist/lib/decentraland/sdk-components/avatar-base.js.map +1 -0
  372. package/dist/lib/decentraland/sdk-components/avatar-customizations.d.ts +5 -0
  373. package/dist/lib/decentraland/sdk-components/avatar-customizations.d.ts.map +1 -0
  374. package/dist/lib/decentraland/sdk-components/avatar-customizations.js +9 -0
  375. package/dist/lib/decentraland/sdk-components/avatar-customizations.js.map +1 -0
  376. package/dist/lib/decentraland/sdk-components/avatar-shape.d.ts +5 -0
  377. package/dist/lib/decentraland/sdk-components/avatar-shape.d.ts.map +1 -0
  378. package/dist/lib/decentraland/sdk-components/avatar-shape.js +33 -0
  379. package/dist/lib/decentraland/sdk-components/avatar-shape.js.map +1 -0
  380. package/dist/lib/decentraland/sdk-components/billboard-component.d.ts +3 -0
  381. package/dist/lib/decentraland/sdk-components/billboard-component.d.ts.map +1 -0
  382. package/dist/lib/decentraland/sdk-components/billboard-component.js +15 -0
  383. package/dist/lib/decentraland/sdk-components/billboard-component.js.map +1 -0
  384. package/dist/lib/decentraland/sdk-components/delayed-interpolation.d.ts +3 -0
  385. package/dist/lib/decentraland/sdk-components/delayed-interpolation.d.ts.map +1 -0
  386. package/dist/lib/decentraland/sdk-components/delayed-interpolation.js +15 -0
  387. package/dist/lib/decentraland/sdk-components/delayed-interpolation.js.map +1 -0
  388. package/dist/lib/decentraland/sdk-components/engine-info.d.ts +3 -0
  389. package/dist/lib/decentraland/sdk-components/engine-info.d.ts.map +1 -0
  390. package/dist/lib/decentraland/sdk-components/engine-info.js +7 -0
  391. package/dist/lib/decentraland/sdk-components/engine-info.js.map +1 -0
  392. package/dist/lib/decentraland/sdk-components/gltf-component.d.ts +3 -0
  393. package/dist/lib/decentraland/sdk-components/gltf-component.d.ts.map +1 -0
  394. package/dist/lib/decentraland/sdk-components/gltf-component.js +114 -0
  395. package/dist/lib/decentraland/sdk-components/gltf-component.js.map +1 -0
  396. package/dist/lib/decentraland/sdk-components/gltf-loading-state.d.ts +3 -0
  397. package/dist/lib/decentraland/sdk-components/gltf-loading-state.d.ts.map +1 -0
  398. package/dist/lib/decentraland/sdk-components/gltf-loading-state.js +7 -0
  399. package/dist/lib/decentraland/sdk-components/gltf-loading-state.js.map +1 -0
  400. package/dist/lib/decentraland/sdk-components/material-component.d.ts +5 -0
  401. package/dist/lib/decentraland/sdk-components/material-component.d.ts.map +1 -0
  402. package/dist/lib/decentraland/sdk-components/material-component.js +92 -0
  403. package/dist/lib/decentraland/sdk-components/material-component.js.map +1 -0
  404. package/dist/lib/decentraland/sdk-components/mesh-collider-component.d.ts +3 -0
  405. package/dist/lib/decentraland/sdk-components/mesh-collider-component.d.ts.map +1 -0
  406. package/dist/lib/decentraland/sdk-components/mesh-collider-component.js +37 -0
  407. package/dist/lib/decentraland/sdk-components/mesh-collider-component.js.map +1 -0
  408. package/dist/lib/decentraland/sdk-components/mesh-renderer-component.d.ts +5 -0
  409. package/dist/lib/decentraland/sdk-components/mesh-renderer-component.d.ts.map +1 -0
  410. package/dist/lib/decentraland/sdk-components/mesh-renderer-component.js +111 -0
  411. package/dist/lib/decentraland/sdk-components/mesh-renderer-component.js.map +1 -0
  412. package/dist/lib/decentraland/sdk-components/pb-based-component-helper.d.ts +10 -0
  413. package/dist/lib/decentraland/sdk-components/pb-based-component-helper.d.ts.map +1 -0
  414. package/dist/lib/decentraland/sdk-components/pb-based-component-helper.js +23 -0
  415. package/dist/lib/decentraland/sdk-components/pb-based-component-helper.js.map +1 -0
  416. package/dist/lib/decentraland/sdk-components/player-identity-data.d.ts +3 -0
  417. package/dist/lib/decentraland/sdk-components/player-identity-data.d.ts.map +1 -0
  418. package/dist/lib/decentraland/sdk-components/player-identity-data.js +7 -0
  419. package/dist/lib/decentraland/sdk-components/player-identity-data.js.map +1 -0
  420. package/dist/lib/decentraland/sdk-components/pointer-events-result.d.ts +3 -0
  421. package/dist/lib/decentraland/sdk-components/pointer-events-result.d.ts.map +1 -0
  422. package/dist/lib/decentraland/sdk-components/pointer-events-result.js +7 -0
  423. package/dist/lib/decentraland/sdk-components/pointer-events-result.js.map +1 -0
  424. package/dist/lib/decentraland/sdk-components/pointer-events.d.ts +3 -0
  425. package/dist/lib/decentraland/sdk-components/pointer-events.d.ts.map +1 -0
  426. package/dist/lib/decentraland/sdk-components/pointer-events.js +15 -0
  427. package/dist/lib/decentraland/sdk-components/pointer-events.js.map +1 -0
  428. package/dist/lib/decentraland/sdk-components/raycast-component.d.ts +5 -0
  429. package/dist/lib/decentraland/sdk-components/raycast-component.d.ts.map +1 -0
  430. package/dist/lib/decentraland/sdk-components/raycast-component.js +66 -0
  431. package/dist/lib/decentraland/sdk-components/raycast-component.js.map +1 -0
  432. package/dist/lib/decentraland/sdk-components/transform-component.d.ts +13 -0
  433. package/dist/lib/decentraland/sdk-components/transform-component.d.ts.map +1 -0
  434. package/dist/lib/decentraland/sdk-components/transform-component.js +84 -0
  435. package/dist/lib/decentraland/sdk-components/transform-component.js.map +1 -0
  436. package/dist/lib/decentraland/sdk-components/tween.d.ts +3 -0
  437. package/dist/lib/decentraland/sdk-components/tween.d.ts.map +1 -0
  438. package/dist/lib/decentraland/sdk-components/tween.js +15 -0
  439. package/dist/lib/decentraland/sdk-components/tween.js.map +1 -0
  440. package/dist/lib/decentraland/state.d.ts +24 -0
  441. package/dist/lib/decentraland/state.d.ts.map +1 -0
  442. package/dist/lib/decentraland/state.js +16 -0
  443. package/dist/lib/decentraland/state.js.map +1 -0
  444. package/dist/lib/decentraland/system.d.ts +7 -0
  445. package/dist/lib/decentraland/system.d.ts.map +1 -0
  446. package/dist/lib/decentraland/system.js +13 -0
  447. package/dist/lib/decentraland/system.js.map +1 -0
  448. package/dist/lib/decentraland/types.d.ts +9 -0
  449. package/dist/lib/decentraland/types.d.ts.map +1 -0
  450. package/dist/lib/decentraland/types.js +3 -0
  451. package/dist/lib/decentraland/types.js.map +1 -0
  452. package/dist/lib/decentraland/virtual-scene.d.ts +12 -0
  453. package/dist/lib/decentraland/virtual-scene.d.ts.map +1 -0
  454. package/dist/lib/decentraland/virtual-scene.js +3 -0
  455. package/dist/lib/decentraland/virtual-scene.js.map +1 -0
  456. package/dist/lib/engine-main.d.ts +8 -0
  457. package/dist/lib/engine-main.d.ts.map +1 -0
  458. package/dist/lib/engine-main.js +103 -0
  459. package/dist/lib/engine-main.js.map +1 -0
  460. package/dist/lib/misc/atom.d.ts +13 -0
  461. package/dist/lib/misc/atom.d.ts.map +1 -0
  462. package/dist/lib/misc/atom.js +66 -0
  463. package/dist/lib/misc/atom.js.map +1 -0
  464. package/dist/lib/misc/bit-operations.d.ts +3 -0
  465. package/dist/lib/misc/bit-operations.d.ts.map +1 -0
  466. package/dist/lib/misc/bit-operations.js +14 -0
  467. package/dist/lib/misc/bit-operations.js.map +1 -0
  468. package/dist/lib/misc/flat-fetch.d.ts +16 -0
  469. package/dist/lib/misc/flat-fetch.d.ts.map +1 -0
  470. package/dist/lib/misc/flat-fetch.js +26 -0
  471. package/dist/lib/misc/flat-fetch.js.map +1 -0
  472. package/dist/lib/misc/json.d.ts +3 -0
  473. package/dist/lib/misc/json.d.ts.map +1 -0
  474. package/dist/lib/misc/json.js +24 -0
  475. package/dist/lib/misc/json.js.map +1 -0
  476. package/dist/lib/misc/logger.d.ts +6 -0
  477. package/dist/lib/misc/logger.d.ts.map +1 -0
  478. package/dist/lib/misc/logger.js +24 -0
  479. package/dist/lib/misc/logger.js.map +1 -0
  480. package/dist/lib/misc/memoize.d.ts +2 -0
  481. package/dist/lib/misc/memoize.d.ts.map +1 -0
  482. package/dist/lib/misc/memoize.js +16 -0
  483. package/dist/lib/misc/memoize.js.map +1 -0
  484. package/dist/lib/misc/promises.d.ts +3 -0
  485. package/dist/lib/misc/promises.d.ts.map +1 -0
  486. package/dist/lib/misc/promises.js +14 -0
  487. package/dist/lib/misc/promises.js.map +1 -0
  488. package/dist/lib/polyfills/xmlhttprequest.d.ts +6 -0
  489. package/dist/lib/polyfills/xmlhttprequest.d.ts.map +1 -0
  490. package/dist/lib/polyfills/xmlhttprequest.js +127 -0
  491. package/dist/lib/polyfills/xmlhttprequest.js.map +1 -0
  492. package/dist/lib/quick-js/convert-handles.d.ts +14 -0
  493. package/dist/lib/quick-js/convert-handles.d.ts.map +1 -0
  494. package/dist/lib/quick-js/convert-handles.js +83 -0
  495. package/dist/lib/quick-js/convert-handles.js.map +1 -0
  496. package/dist/lib/quick-js/index.d.ts +12 -0
  497. package/dist/lib/quick-js/index.d.ts.map +1 -0
  498. package/dist/lib/quick-js/index.js +159 -0
  499. package/dist/lib/quick-js/index.js.map +1 -0
  500. package/dist/lib/quick-js/rpc-scene-runtime.d.ts +13 -0
  501. package/dist/lib/quick-js/rpc-scene-runtime.d.ts.map +1 -0
  502. package/dist/lib/quick-js/rpc-scene-runtime.js +32 -0
  503. package/dist/lib/quick-js/rpc-scene-runtime.js.map +1 -0
  504. package/dist/lib/quick-js/types.d.ts +35 -0
  505. package/dist/lib/quick-js/types.d.ts.map +1 -0
  506. package/dist/lib/quick-js/types.js +3 -0
  507. package/dist/lib/quick-js/types.js.map +1 -0
  508. package/dist/lib/web-worker-runtime/context.d.ts +12 -0
  509. package/dist/lib/web-worker-runtime/context.d.ts.map +1 -0
  510. package/dist/lib/web-worker-runtime/context.js +97 -0
  511. package/dist/lib/web-worker-runtime/context.js.map +1 -0
  512. package/dist/lib/web-worker-runtime/sandbox.d.ts +9 -0
  513. package/dist/lib/web-worker-runtime/sandbox.d.ts.map +1 -0
  514. package/dist/lib/web-worker-runtime/sandbox.js +98 -0
  515. package/dist/lib/web-worker-runtime/sandbox.js.map +1 -0
  516. package/dist/lib/web-worker-runtime/web-worker-scene-runtime.d.ts +13 -0
  517. package/dist/lib/web-worker-runtime/web-worker-scene-runtime.d.ts.map +1 -0
  518. package/dist/lib/web-worker-runtime/web-worker-scene-runtime.js +32 -0
  519. package/dist/lib/web-worker-runtime/web-worker-scene-runtime.js.map +1 -0
  520. package/package.json +73 -0
@@ -0,0 +1,271 @@
1
+ "use strict";
2
+ // the assetManager class enable scenes to pre-fetch assets and instance them in world
3
+ // one of the main features of the assetManager is the ability to load assets in parallel
4
+ // and reuse meshes, it is common in decentraland scenes that a single model is reused
5
+ // many times inside the same scene. the associated cost of loading, parsing and generating
6
+ // buffers for each model requies us to find a reusable solution
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
22
+ });
23
+ var __importStar = (this && this.__importStar) || function (mod) {
24
+ if (mod && mod.__esModule) return mod;
25
+ var result = {};
26
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
27
+ __setModuleDefault(result, mod);
28
+ return result;
29
+ };
30
+ Object.defineProperty(exports, "__esModule", { value: true });
31
+ exports.instantiateAssetContainer = exports.AssetManager = void 0;
32
+ const BABYLON = __importStar(require("@babylonjs/core"));
33
+ const content_server_entity_1 = require("../../decentraland/scene/content-server-entity");
34
+ const glTFFileLoader_1 = require("@babylonjs/loaders/glTF/glTFFileLoader");
35
+ const colliders_1 = require("./logic/colliders");
36
+ const mesh_collider_gen_1 = require("@dcl/protocol/out-js/decentraland/sdk/components/mesh_collider.gen");
37
+ const sceneContextMap = new Map();
38
+ class AssetManager {
39
+ get wearableEntity() {
40
+ if (this.loadableScene.entity.type !== 'wearable')
41
+ throw new Error('The entity of this AssetManager is not a wearable');
42
+ return this.loadableScene.entity;
43
+ }
44
+ constructor(loadableScene, babylonScene) {
45
+ this.loadableScene = loadableScene;
46
+ this.babylonScene = babylonScene;
47
+ this.models = new Map();
48
+ }
49
+ getContainerFuture(_src) {
50
+ const normalizedSrc = _src.toLowerCase();
51
+ let fileHash = (0, content_server_entity_1.resolveFile)(this.loadableScene.entity, normalizedSrc);
52
+ if (!fileHash) {
53
+ return Promise.reject(`‼️ The file ${normalizedSrc} is not present in the deployed entity.`);
54
+ }
55
+ if (!this.models.has(fileHash)) {
56
+ // store a WeakRef to the sceneContext to enable file resolver
57
+ sceneContextMap.set(this.loadableScene.urn, new WeakRef(this.loadableScene));
58
+ const extension = normalizedSrc.endsWith('.gltf') ? '.gltf' : '.glb';
59
+ // calculate the base path for the model
60
+ const base = normalizedSrc.split('/').slice(0, -1).join('/');
61
+ const ret = BABYLON.SceneLoader.LoadAssetContainerAsync(this.loadableScene.baseUrl, fileHash + '?sceneId=' + encodeURIComponent(this.loadableScene.urn) + '&base=' + encodeURIComponent(base), this.babylonScene, null, extension);
62
+ // once the assetContainer loads it needs to be processed before usage
63
+ ret.then(_ => processAssetContainer(_));
64
+ // store the promise in the map, it will be reused for the whole scene
65
+ this.models.set(fileHash, ret);
66
+ }
67
+ return this.models.get(fileHash);
68
+ }
69
+ async readFile(file) {
70
+ // this method resolves a file deployed with the entity. it returns the content of the file and its hash
71
+ const hash = (0, content_server_entity_1.resolveFile)(this.loadableScene.entity, file);
72
+ if (!hash)
73
+ throw new Error(`File not found: ${file}`);
74
+ const absoluteLocation = (0, content_server_entity_1.resolveFileAbsolute)(this.loadableScene, file);
75
+ if (!absoluteLocation)
76
+ throw new Error(`File not found: ${file}`);
77
+ const res = await fetch(absoluteLocation);
78
+ if (!res.ok)
79
+ throw new Error(`Error loading URL: ${absoluteLocation}`);
80
+ return { content: new Uint8Array(await res.arrayBuffer()), hash };
81
+ }
82
+ async loadTexture(file) {
83
+ return new Promise((resolve, reject) => {
84
+ const hash = (0, content_server_entity_1.resolveFile)(this.loadableScene.entity, file);
85
+ if (!hash)
86
+ throw new Error(`File not found: ${file}`);
87
+ const absoluteLocation = (0, content_server_entity_1.resolveFileAbsolute)(this.loadableScene, file);
88
+ if (!absoluteLocation)
89
+ throw new Error(`File not found: ${file}`);
90
+ const task = new BABYLON.TextureAssetTask(file, absoluteLocation, false, false);
91
+ task.onError = () => reject(task.errorObject);
92
+ task.onSuccess = () => {
93
+ resolve(task.texture);
94
+ };
95
+ task.run(this.babylonScene, () => resolve(task.texture), reject);
96
+ });
97
+ }
98
+ dispose() {
99
+ for (const [hash, model] of Array.from(this.models.entries())) {
100
+ model.then((container) => {
101
+ /// TODO: this line should not be commented, but there is a bug in Babylon.js that
102
+ /// breaks the shared glTF materials when disposing the assetContainer. We will sacrifice
103
+ /// GPU memory for now until the bug is fixed.
104
+ // container.dispose()
105
+ });
106
+ this.models.delete(hash);
107
+ }
108
+ }
109
+ }
110
+ exports.AssetManager = AssetManager;
111
+ BABYLON.SceneLoader.OnPluginActivatedObservable.add(function (plugin) {
112
+ if (plugin instanceof glTFFileLoader_1.GLTFFileLoader) {
113
+ plugin.animationStartMode = glTFFileLoader_1.GLTFLoaderAnimationStartMode.NONE;
114
+ plugin.compileMaterials = true;
115
+ plugin.validate = false;
116
+ plugin.createInstances = true;
117
+ plugin.animationStartMode = 0;
118
+ plugin.preprocessUrlAsync = async function (url) {
119
+ // HERE BE DRAGONS 🐉:
120
+ // To hack the GLTF loader to use Decentraland's file system, we must
121
+ // access private properties to get the parent context to resolve individual
122
+ // files.
123
+ //
124
+ // This Hack prevents the engine from caching the entire GLB/GLTF because
125
+ // query parameters are added to them. it is RECOMMENDED that the engine
126
+ // caches all the files by their name (CIDv1)
127
+ const loader = plugin._loader;
128
+ const file = loader._fileName;
129
+ const [_gltfFilename, strParams] = file.split('?');
130
+ if (strParams) {
131
+ const params = new URLSearchParams(strParams);
132
+ const base = params.get('base') || '';
133
+ const sceneId = params.get('sceneId');
134
+ const ctx = sceneContextMap.get(sceneId)?.deref();
135
+ if (ctx) {
136
+ const relative = url.replace(ctx.baseUrl, base ? base + '/' : '');
137
+ const ret = (0, content_server_entity_1.resolveFileAbsolute)(ctx, relative);
138
+ if (ret) {
139
+ return ret;
140
+ }
141
+ }
142
+ }
143
+ console.error('‼️ ‼️ ‼️ Cannot resolve file ' + url);
144
+ return '/images/UV_checker_Map_byValle.jpg';
145
+ };
146
+ }
147
+ });
148
+ function processAssetContainer(assetContainer) {
149
+ // by default, the models will be added to the scene at 0,0,0. We will remove that instance
150
+ assetContainer.removeAllFromScene();
151
+ // keep track of every generated mes and submesh
152
+ assetContainer.meshes.forEach((mesh) => {
153
+ if (mesh instanceof BABYLON.Mesh) {
154
+ if (mesh.geometry && !assetContainer.geometries.includes(mesh.geometry)) {
155
+ assetContainer.geometries.push(mesh.geometry);
156
+ }
157
+ }
158
+ if (mesh.subMeshes) {
159
+ mesh.subMeshes.forEach((subMesh) => {
160
+ // this fixes a bug with meshes not correctly disposed
161
+ subMesh.refreshBoundingInfo();
162
+ const mesh = subMesh.getMesh();
163
+ if (mesh instanceof BABYLON.Mesh) {
164
+ if (mesh.geometry && !assetContainer.geometries.includes(mesh.geometry)) {
165
+ assetContainer.geometries.push(mesh.geometry);
166
+ }
167
+ }
168
+ });
169
+ }
170
+ // Find all the materials from all the meshes and add to $.materials
171
+ mesh.cullingStrategy = BABYLON.AbstractMesh.CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY;
172
+ if (mesh.material) {
173
+ if (!assetContainer.materials.includes(mesh.material)) {
174
+ assetContainer.materials.push(mesh.material);
175
+ }
176
+ }
177
+ if (mesh.name.endsWith('_collider')) {
178
+ (0, colliders_1.setColliderMask)(mesh, mesh_collider_gen_1.ColliderLayer.CL_PHYSICS | mesh_collider_gen_1.ColliderLayer.CL_POINTER);
179
+ }
180
+ else {
181
+ (0, colliders_1.setColliderMask)(mesh, mesh_collider_gen_1.ColliderLayer.CL_NONE);
182
+ }
183
+ });
184
+ // Find the textures in the materials that share the same domain as the context
185
+ // then add the textures to the $.textures
186
+ assetContainer.materials.forEach((material) => {
187
+ // register all textures for the scene
188
+ for (let i in material) {
189
+ const t = material[i];
190
+ if (i.endsWith('Texture') && t instanceof BABYLON.Texture) {
191
+ if (!assetContainer.textures.includes(t)) {
192
+ assetContainer.textures.push(t);
193
+ }
194
+ }
195
+ }
196
+ if (material instanceof BABYLON.PBRMaterial) {
197
+ // static materials for the moment
198
+ material.freeze();
199
+ // then replace the reflection probe of the materials when needed
200
+ material.reflectionTexture = assetContainer.scene.reflectionProbes?.find($ => $.name === 'skyReflection')?.cubeTexture || null;
201
+ if (material.alphaMode === 2) {
202
+ if (material.albedoTexture) {
203
+ material.albedoTexture.hasAlpha = true;
204
+ material.useAlphaFromAlbedoTexture = true;
205
+ }
206
+ }
207
+ }
208
+ material.freeze();
209
+ });
210
+ }
211
+ const tmpVector = new BABYLON.Vector3();
212
+ function instantiateAssetContainer(assetContainer, parentNode, entity) {
213
+ const instances = assetContainer.instantiateModelsToScene(name => name, true);
214
+ for (let node of instances.rootNodes) {
215
+ // reparent the root node inside the entity
216
+ node.parent = parentNode;
217
+ node.getChildMeshes(false).forEach(mesh => {
218
+ // this override makes all meshes not renderable if the rootNode is not enabled.
219
+ // it cascades the effect of the culling of the rootNode down to each mesh to lighten the CPU work
220
+ // of calculating every bounding box
221
+ Object.defineProperty(mesh, 'isBlocked', {
222
+ enumerable: true,
223
+ configurable: true,
224
+ get() {
225
+ return !entity.context.deref()?.rootNode.isEnabled || (mesh._masterMesh !== null && mesh._masterMesh !== undefined);
226
+ },
227
+ });
228
+ const originalF = mesh.isInFrustum;
229
+ /**
230
+ * Returns `true` if the mesh is within the frustum defined by the passed array of planes.
231
+ * A mesh is in the frustum if its bounding box intersects the frustum
232
+ * @param frustumPlanes defines the frustum to test
233
+ * @returns true if the mesh is in the frustum planes
234
+ *
235
+ * In this case, we are monkey patching the isInFrustum method to cull out meshes that are too far away
236
+ * or are too small based on the distance to the camera.
237
+ */
238
+ mesh.isInFrustum = function (frustumPlanes) {
239
+ if (!entity.context.deref()?.rootNode.isEnabled)
240
+ return false;
241
+ if (this.absolutePosition) {
242
+ const distanceToObject = tmpVector.copyFrom(this.absolutePosition).subtract(this.getScene().activeCamera.position).length();
243
+ // cull out elements farther than 300meters
244
+ if (distanceToObject > 300)
245
+ return false;
246
+ if (this._boundingInfo) {
247
+ if (this._boundingInfo.diagonalLength < 0.50 && distanceToObject > 30)
248
+ return false;
249
+ // cull elements smaller than 20cm at 40meters
250
+ if (this._boundingInfo.diagonalLength < 0.20 && distanceToObject > 20)
251
+ return false;
252
+ // cull elements smaller than 10cm at 10meters
253
+ if (this._boundingInfo.diagonalLength < 0.10 && distanceToObject > 10)
254
+ return false;
255
+ }
256
+ }
257
+ return originalF.call(this, frustumPlanes);
258
+ };
259
+ });
260
+ }
261
+ // by default animations will be configured with weight 0
262
+ for (let animationGroup of instances.animationGroups) {
263
+ animationGroup.stop();
264
+ for (let animatable of animationGroup.animatables) {
265
+ animatable.weight = 0;
266
+ }
267
+ }
268
+ return instances;
269
+ }
270
+ exports.instantiateAssetContainer = instantiateAssetContainer;
271
+ //# sourceMappingURL=AssetManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssetManager.js","sourceRoot":"","sources":["../../../../src/lib/babylon/scene/AssetManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ import * as BABYLON from '@babylonjs/core';
2
+ import { SceneContext } from './scene-context';
3
+ import { Transform } from '../../decentraland/sdk-components/transform-component';
4
+ import { ComponentDefinition } from '../../decentraland/crdt-internal/components';
5
+ import { Entity } from '../../decentraland/types';
6
+ import { PBBillboard } from '@dcl/protocol/out-js/decentraland/sdk/components/billboard.gen';
7
+ import { PBRaycast } from '@dcl/protocol/out-js/decentraland/sdk/components/raycast.gen';
8
+ import { PBMeshCollider } from '@dcl/protocol/out-js/decentraland/sdk/components/mesh_collider.gen';
9
+ import { PBGltfContainer } from '@dcl/protocol/out-js/decentraland/sdk/components/gltf_container.gen';
10
+ import { PBPointerEvents } from '@dcl/protocol/out-js/decentraland/sdk/components/pointer_events.gen';
11
+ import { PBMeshRenderer } from '@dcl/protocol/out-js/decentraland/sdk/components/mesh_renderer.gen';
12
+ import { AvatarRenderer } from '../avatars/AvatarRenderer';
13
+ import { PBDelayedInterpolation } from '@dcl/protocol/out-js/decentraland/sdk/components/delayed_interpolation.gen';
14
+ import { PBTween } from '@dcl/protocol/out-js/decentraland/sdk/components/tween.gen';
15
+ import { PBMaterial } from '@dcl/protocol/out-js/decentraland/sdk/components/material.gen';
16
+ import { PBAvatarBase } from '@dcl/protocol/out-js/decentraland/sdk/components/avatar_base.gen';
17
+ export type TransformCommand = {
18
+ value: Transform;
19
+ time: number;
20
+ };
21
+ export type AppliedComponents = {
22
+ transform: {
23
+ commands: Array<TransformCommand>;
24
+ parent: Entity;
25
+ };
26
+ billboard: PBBillboard;
27
+ raycast: {
28
+ value: PBRaycast;
29
+ helper?: BABYLON.RayHelper;
30
+ ray: BABYLON.Ray;
31
+ };
32
+ meshCollider: {
33
+ info: PBMeshCollider;
34
+ collider: BABYLON.AbstractMesh | null;
35
+ };
36
+ meshRenderer: {
37
+ info: PBMeshRenderer;
38
+ mesh: BABYLON.AbstractMesh | null;
39
+ };
40
+ gltfContainer: {
41
+ value: PBGltfContainer;
42
+ gltfContainer: BABYLON.AbstractMesh | null;
43
+ instancedEntries: BABYLON.InstantiatedEntries | null;
44
+ };
45
+ pointerEvents: PBPointerEvents;
46
+ avatarRenderer: AvatarRenderer;
47
+ avatarBase: PBAvatarBase;
48
+ delayedInterpolation: PBDelayedInterpolation;
49
+ tween: PBTween;
50
+ material: {
51
+ value: PBMaterial;
52
+ material: BABYLON.Material;
53
+ };
54
+ };
55
+ export declare const baseMaterial: (a: BABYLON.Scene) => BABYLON.StandardMaterial;
56
+ /**
57
+ * This class wraps a BabylonEntity and extends it with all the component-related
58
+ * logic for the Decentraland ECS semantics.
59
+ */
60
+ export declare class BabylonEntity extends BABYLON.TransformNode {
61
+ entityId: Entity;
62
+ context: WeakRef<SceneContext>;
63
+ readonly isDCLEntity = true;
64
+ usedComponents: Map<number, ComponentDefinition<unknown>>;
65
+ appliedComponents: Partial<AppliedComponents>;
66
+ constructor(entityId: Entity, context: WeakRef<SceneContext>);
67
+ putComponent(component: ComponentDefinition<unknown>): void;
68
+ deleteComponent(component: ComponentDefinition<unknown>): void;
69
+ _setTransformParametersBeforeMatrixCalculation(): void;
70
+ computeWorldMatrix(force: boolean | undefined, camera?: BABYLON.Nullable<BABYLON.Camera>): BABYLON.Matrix;
71
+ _afterComputeWorldMatrix(): void;
72
+ _isSynchronized(): boolean;
73
+ /**
74
+ * Returns the parentEntity set by the Transform Component.
75
+ * Defaults to ROOT_ENTITY(0)
76
+ */
77
+ get expectedParentEntityId(): number;
78
+ /**
79
+ * Returns the children that extends EcsEntity, filtering any other Object3D
80
+ */
81
+ childrenEntities(): Iterable<BabylonEntity>;
82
+ dispose(_doNotRecurse?: boolean | undefined, _disposeMaterialAndTextures?: boolean | undefined): void;
83
+ }
84
+ //# sourceMappingURL=BabylonEntity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BabylonEntity.d.ts","sourceRoot":"","sources":["../../../../src/lib/babylon/scene/BabylonEntity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.BabylonEntity = exports.baseMaterial = void 0;
27
+ const BABYLON = __importStar(require("@babylonjs/core"));
28
+ const core_1 = require("@babylonjs/core");
29
+ const billboard_gen_1 = require("@dcl/protocol/out-js/decentraland/sdk/components/billboard.gen");
30
+ const billboards_1 = require("./logic/billboards");
31
+ const static_entities_1 = require("./logic/static-entities");
32
+ const delayed_interpolation_1 = require("./logic/delayed-interpolation");
33
+ const memoize_1 = require("../../misc/memoize");
34
+ exports.baseMaterial = (0, memoize_1.memoize)((scene) => {
35
+ const material = new BABYLON.StandardMaterial('base-box', scene);
36
+ material.diffuseTexture = new BABYLON.Texture('images/UV_checker_Map_byValle.jpg');
37
+ return material;
38
+ });
39
+ /**
40
+ * This class wraps a BabylonEntity and extends it with all the component-related
41
+ * logic for the Decentraland ECS semantics.
42
+ */
43
+ class BabylonEntity extends BABYLON.TransformNode {
44
+ constructor(entityId, context) {
45
+ super(`ecs-${entityId.toString(16)}`);
46
+ this.entityId = entityId;
47
+ this.context = context;
48
+ this.isDCLEntity = true;
49
+ this.usedComponents = new Map();
50
+ this.appliedComponents = {};
51
+ }
52
+ putComponent(component) {
53
+ component.declaration.applyChanges(this, component);
54
+ this.usedComponents.set(component.componentId, component);
55
+ }
56
+ deleteComponent(component) {
57
+ component.declaration.applyChanges(this, component);
58
+ this.usedComponents.delete(component.componentId);
59
+ }
60
+ // this function chooses which value is going to be used to calculate the world
61
+ // transform of this entity. the order of precedence is:
62
+ // 1. if there are no user defined Transform, use an identity transform
63
+ // 2. if the PBDelayedInterpolation component is present, interpolate a value using the time-traveling commands
64
+ // 3. if the PBTween component is present, interpolate a value using the tweening commands
65
+ // 4. if the PBTransform component is present, use the latest value (command)
66
+ _setTransformParametersBeforeMatrixCalculation() {
67
+ if (!this.rotationQuaternion)
68
+ this.rotationQuaternion = core_1.Quaternion.Identity();
69
+ // perform interpolation if needed
70
+ const commands = this.appliedComponents.transform?.commands;
71
+ if (!commands || commands.length === 0) {
72
+ this.position.setAll(0);
73
+ this.scaling.setAll(1);
74
+ this.rotationQuaternion.set(0, 0, 0, 1);
75
+ return;
76
+ }
77
+ if (this.appliedComponents.delayedInterpolation) {
78
+ (0, delayed_interpolation_1.applyDelayedInterpolation)(this, this.appliedComponents.delayedInterpolation, commands, performance.now());
79
+ }
80
+ else /* if(BPTween) {
81
+ applyTween(this, this.appliedComponents.tween!, commands, performance.now())
82
+ } else */ {
83
+ const latestCommand = commands[commands.length - 1];
84
+ this.position.set(latestCommand.value.position.x, latestCommand.value.position.y, latestCommand.value.position.z);
85
+ this.scaling.set(latestCommand.value.scale.x, latestCommand.value.scale.y, latestCommand.value.scale.z);
86
+ this.rotationQuaternion.set(latestCommand.value.rotation.x, latestCommand.value.rotation.y, latestCommand.value.rotation.z, latestCommand.value.rotation.w);
87
+ }
88
+ }
89
+ computeWorldMatrix(force, camera) {
90
+ if (this.entityId === static_entities_1.StaticEntities.RootEntity) {
91
+ return super.computeWorldMatrix(force, camera);
92
+ }
93
+ this._setTransformParametersBeforeMatrixCalculation();
94
+ return super.computeWorldMatrix(force, camera);
95
+ }
96
+ // This function is called after Babylon calculates the world matrix of the entity
97
+ // we hook into this lifecycle event to mutate the final _worldMatrix before it is
98
+ // settled
99
+ _afterComputeWorldMatrix() {
100
+ const camera = this.getScene().activeCamera;
101
+ if (this.appliedComponents.billboard && camera) {
102
+ const billboardMode = this.appliedComponents.billboard.billboardMode ?? billboard_gen_1.BillboardMode.BM_ALL;
103
+ // save translation and scaling components of the world matrix calculated by Babylon
104
+ const position = core_1.Vector3.Zero();
105
+ const scale = core_1.Vector3.One();
106
+ this._worldMatrix.decompose(scale, undefined, position);
107
+ // compute the global position of the world matrix
108
+ const entityGlobalPosition = core_1.Vector3.TransformCoordinates(core_1.Vector3.Zero(), this._worldMatrix);
109
+ // get the direction vector from the camera to the entity position
110
+ const directionVector = camera.globalPosition.subtract(entityGlobalPosition);
111
+ // calculate the LookAt matrix from the direction vector towards zero
112
+ const rotMatrix = core_1.Matrix.LookAtLH(directionVector, core_1.Vector3.Zero(), camera.upVector).invert();
113
+ const rotation = core_1.Quaternion.FromRotationMatrix(rotMatrix);
114
+ if ((0, billboards_1.isValidBillboardCombination)(billboardMode)) {
115
+ const eulerAngles = rotation.toEulerAngles();
116
+ if (!(billboardMode & billboard_gen_1.BillboardMode.BM_X)) {
117
+ eulerAngles.x = 0;
118
+ }
119
+ if (!(billboardMode & billboard_gen_1.BillboardMode.BM_Y)) {
120
+ eulerAngles.y = 0;
121
+ }
122
+ if (!(billboardMode & billboard_gen_1.BillboardMode.BM_Z)) {
123
+ eulerAngles.z = 0;
124
+ }
125
+ core_1.Matrix.RotationYawPitchRollToRef(eulerAngles.y, eulerAngles.x, eulerAngles.z, rotMatrix);
126
+ }
127
+ // restore the scale to a blank scaling matrix
128
+ const scalingMatrix = core_1.Matrix.Scaling(scale.x, scale.y, scale.z);
129
+ // apply the scale to the rotation matrix, into _worldMatrix
130
+ scalingMatrix.multiplyToRef(rotMatrix, this._worldMatrix);
131
+ // finally restore the translation into _worldMatrix
132
+ this._worldMatrix.setTranslation(position);
133
+ }
134
+ return super._afterComputeWorldMatrix();
135
+ }
136
+ // this function should return false if the world matrix needs to be recalculated
137
+ // it is called internally by Babylon.js internal code
138
+ _isSynchronized() {
139
+ const hasBillboard = !!this.appliedComponents.billboard;
140
+ return !hasBillboard && super._isSynchronized();
141
+ }
142
+ /**
143
+ * Returns the parentEntity set by the Transform Component.
144
+ * Defaults to ROOT_ENTITY(0)
145
+ */
146
+ get expectedParentEntityId() {
147
+ return this.appliedComponents.transform?.parent ?? static_entities_1.StaticEntities.RootEntity;
148
+ }
149
+ /**
150
+ * Returns the children that extends EcsEntity, filtering any other Object3D
151
+ */
152
+ *childrenEntities() {
153
+ if (this._children)
154
+ for (let i = 0; i < this._children.length; i++) {
155
+ const element = this._children[i];
156
+ if (element.isDCLEntity) {
157
+ yield element;
158
+ }
159
+ }
160
+ }
161
+ dispose(_doNotRecurse, _disposeMaterialAndTextures) {
162
+ // first dispose all components
163
+ for (const [_, component] of this.usedComponents) {
164
+ // mark the component as deleted in the component
165
+ component.entityDeleted(this.entityId, false);
166
+ // then perform the final deletion
167
+ this.deleteComponent(component);
168
+ }
169
+ // and then proceed with the native engine disposal
170
+ super.dispose(true, false);
171
+ }
172
+ }
173
+ exports.BabylonEntity = BabylonEntity;
174
+ //# sourceMappingURL=BabylonEntity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BabylonEntity.js","sourceRoot":"","sources":["../../../../src/lib/babylon/scene/BabylonEntity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * This function will register the EngineApi and EnvironmentApi services
3
+ * to the RPC server, so that the scene can call them.
4
+ */
5
+ import { RpcServerPort } from "@dcl/rpc";
6
+ import { SceneContext } from "./scene-context";
7
+ export declare function connectContextToRpcServer(port: RpcServerPort<SceneContext>): void;
8
+ //# sourceMappingURL=connect-context-rpc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect-context-rpc.d.ts","sourceRoot":"","sources":["../../../../src/lib/babylon/scene/connect-context-rpc.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AASzC,OAAO,EAA0B,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAKvE,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,aAAa,CAAC,YAAY,CAAC,QAuL1E"}