@directivegames/genesys.js 3.1.24

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 (1501) hide show
  1. package/README.md +123 -0
  2. package/assets/animation-profiles/mixamo.skeleton-profile.json +63 -0
  3. package/assets/animation-profiles/rigify.skeleton-profile.json +61 -0
  4. package/assets/character/SKM_SB_MediumHuman.glb +0 -0
  5. package/assets/character/config/AnimationStateMachineComponent.md +107 -0
  6. package/assets/character/config/mannequin-anim.json +53 -0
  7. package/assets/character/mannequin.glb +0 -0
  8. package/assets/character/mannequinG.glb +0 -0
  9. package/assets/default.genesys-scene +194 -0
  10. package/assets/models/PickupActors/SM_Pickup_Health.glb +0 -0
  11. package/assets/models/PickupActors/SM_Pickup_Station.glb +0 -0
  12. package/assets/models/SM_Capsule.glb +0 -0
  13. package/assets/models/SM_ChamferCube.glb +0 -0
  14. package/assets/models/SM_Cone.glb +0 -0
  15. package/assets/models/SM_Cube.glb +0 -0
  16. package/assets/models/SM_Cylinder.glb +0 -0
  17. package/assets/models/SM_Plane.glb +0 -0
  18. package/assets/models/SM_Pyramid.glb +0 -0
  19. package/assets/models/SM_Sphere.glb +0 -0
  20. package/assets/models/SM_Torus.glb +0 -0
  21. package/assets/models/SM_Wedge.glb +0 -0
  22. package/assets/models/Weapons/SM_ShotGun_01.glb +0 -0
  23. package/assets/models/demo/Characters/Knightdude.glb +0 -0
  24. package/assets/models/demo/Characters/Spacedude.glb +0 -0
  25. package/assets/models/demo/LowPoly/SM_Bush01.glb +0 -0
  26. package/assets/models/demo/LowPoly/SM_Bush02.glb +0 -0
  27. package/assets/models/demo/LowPoly/SM_Flower01.glb +0 -0
  28. package/assets/models/demo/LowPoly/SM_Flower02.glb +0 -0
  29. package/assets/models/demo/LowPoly/SM_Flower03.glb +0 -0
  30. package/assets/models/demo/LowPoly/SM_GeneratedLandscape.glb +0 -0
  31. package/assets/models/demo/LowPoly/SM_Grass01.glb +0 -0
  32. package/assets/models/demo/LowPoly/SM_Grass02.glb +0 -0
  33. package/assets/models/demo/LowPoly/SM_Grass03.glb +0 -0
  34. package/assets/models/demo/LowPoly/SM_Mushroom01.glb +0 -0
  35. package/assets/models/demo/LowPoly/SM_Mushroom02.glb +0 -0
  36. package/assets/models/demo/LowPoly/SM_MushroomCluster01.glb +0 -0
  37. package/assets/models/demo/LowPoly/SM_MushroomCluster02.glb +0 -0
  38. package/assets/models/demo/LowPoly/SM_Rock01.glb +0 -0
  39. package/assets/models/demo/LowPoly/SM_Rock02.glb +0 -0
  40. package/assets/models/demo/LowPoly/SM_Rock03.glb +0 -0
  41. package/assets/models/demo/LowPoly/SM_Rock04.glb +0 -0
  42. package/assets/models/demo/LowPoly/SM_Tree01.glb +0 -0
  43. package/assets/models/demo/LowPoly/SM_Tree02.glb +0 -0
  44. package/assets/models/demo/LowPoly/SM_Tree03.glb +0 -0
  45. package/assets/models/demo/LowPoly/SM_Tree04.glb +0 -0
  46. package/assets/models/demo/LowPoly/SM_TreeStump.glb +0 -0
  47. package/assets/models/demo/LowPoly/SM_TreeTrunk.glb +0 -0
  48. package/assets/models/demo/LowPoly/low_poly_ship_wreck.glb +0 -0
  49. package/assets/models/demo/SandboxAsset/Blocks/SM_SB_Block.glb +0 -0
  50. package/assets/models/demo/SandboxAsset/Blocks/SM_SB_Block_Dirt.glb +0 -0
  51. package/assets/models/demo/SandboxAsset/Blocks/SM_SB_Block_Grass02.glb +0 -0
  52. package/assets/models/demo/SandboxAsset/Blocks/SM_SB_Block_Grass02Patch.glb +0 -0
  53. package/assets/models/demo/SandboxAsset/Blocks/SM_SB_Block_Gravel.glb +0 -0
  54. package/assets/models/demo/SandboxAsset/Blocks/SM_SB_Block_Lava.glb +0 -0
  55. package/assets/models/demo/SandboxAsset/Blocks/SM_SB_Block_LavaStone.glb +0 -0
  56. package/assets/models/demo/SandboxAsset/Blocks/SM_SB_Block_Sand.glb +0 -0
  57. package/assets/models/demo/SandboxAsset/Blocks/SM_SB_Block_Stone.glb +0 -0
  58. package/assets/models/demo/SandboxAsset/Blocks/SM_SB_Block_StoneA.glb +0 -0
  59. package/assets/models/demo/SandboxAsset/Blocks/SM_SB_Block_StoneC.glb +0 -0
  60. package/assets/models/demo/SandboxAsset/Blocks/SM_SB_Block_Wall.glb +0 -0
  61. package/assets/models/demo/SandboxAsset/Blocks/SM_SB_Block_Water.glb +0 -0
  62. package/assets/models/demo/SandboxAsset/Characters/SKM_Arachnids_Large_Spider.glb +0 -0
  63. package/assets/models/demo/SandboxAsset/Characters/SKM_SB_Adventurer_F01.glb +0 -0
  64. package/assets/models/demo/SandboxAsset/Characters/SKM_SB_Adventurer_M01.glb +0 -0
  65. package/assets/models/demo/SandboxAsset/Characters/SKM_SB_Aviator_F01.glb +0 -0
  66. package/assets/models/demo/SandboxAsset/Characters/SKM_SB_Aviator_M01.glb +0 -0
  67. package/assets/models/demo/SandboxAsset/Characters/SKM_SB_Aztec_F01.glb +0 -0
  68. package/assets/models/demo/SandboxAsset/Characters/SKM_SB_Aztec_M01.glb +0 -0
  69. package/assets/models/demo/SandboxAsset/Characters/SKM_SB_MediumHuman.glb +0 -0
  70. package/assets/models/demo/SandboxAsset/Characters/SKM_SB_Shaman.glb +0 -0
  71. package/assets/models/demo/SandboxAsset/Clouds/SM_SB_Cloud_01.glb +0 -0
  72. package/assets/models/demo/SandboxAsset/Clouds/SM_SB_Cloud_02.glb +0 -0
  73. package/assets/models/demo/SandboxAsset/Clouds/SM_SB_Cloud_03.glb +0 -0
  74. package/assets/models/demo/SandboxAsset/Clouds/SM_SB_Cloud_04.glb +0 -0
  75. package/assets/models/demo/SandboxAsset/Clouds/SM_SB_Env_Cloud_01.glb +0 -0
  76. package/assets/models/demo/SandboxAsset/Clouds/SM_SB_Env_Cloud_02.glb +0 -0
  77. package/assets/models/demo/SandboxAsset/Clouds/SM_SB_Env_Cloud_03.glb +0 -0
  78. package/assets/models/demo/SandboxAsset/Clouds/SM_SB_Env_Cloud_04.glb +0 -0
  79. package/assets/models/demo/SandboxAsset/Clouds/SM_SB_Env_Cloud_05.glb +0 -0
  80. package/assets/models/demo/SandboxAsset/Clouds/SM_SB_Env_Cloud_06.glb +0 -0
  81. package/assets/models/demo/SandboxAsset/Clouds/SM_SB_Env_Cloud_07.glb +0 -0
  82. package/assets/models/demo/SandboxAsset/Clouds/SM_SB_SmallCloud01.glb +0 -0
  83. package/assets/models/demo/SandboxAsset/Clouds/SM_SB_SmallCloud_02.glb +0 -0
  84. package/assets/models/demo/SandboxAsset/Decorations/SM_SB_AztecStatue.glb +0 -0
  85. package/assets/models/demo/SandboxAsset/Decorations/SM_SB_Claypot_01.glb +0 -0
  86. package/assets/models/demo/SandboxAsset/Decorations/SM_SB_Claypot_02.glb +0 -0
  87. package/assets/models/demo/SandboxAsset/Decorations/SM_SB_Claypot_03.glb +0 -0
  88. package/assets/models/demo/SandboxAsset/Decorations/SM_SB_Claypot_Broken_01.glb +0 -0
  89. package/assets/models/demo/SandboxAsset/Decorations/SM_SB_Claypot_Broken_02.glb +0 -0
  90. package/assets/models/demo/SandboxAsset/Decorations/SM_SB_Crystal_Calendar_01.glb +0 -0
  91. package/assets/models/demo/SandboxAsset/Decorations/SM_SB_Crystal_Calendar_02.glb +0 -0
  92. package/assets/models/demo/SandboxAsset/Decorations/SM_SB_Crystal_Skull.glb +0 -0
  93. package/assets/models/demo/SandboxAsset/Decorations/SM_SB_Goldpile_01.glb +0 -0
  94. package/assets/models/demo/SandboxAsset/Decorations/SM_SB_Goldpile_02.glb +0 -0
  95. package/assets/models/demo/SandboxAsset/Decorations/SM_SB_Rubble_Skeleton_01.glb +0 -0
  96. package/assets/models/demo/SandboxAsset/Decorations/SM_SB_TreasureChest.glb +0 -0
  97. package/assets/models/demo/SandboxAsset/Decorations/SM_SB_TreasureChestSmall.glb +0 -0
  98. package/assets/models/demo/SandboxAsset/Decorations/SM_SB_Wall_Deco_01.glb +0 -0
  99. package/assets/models/demo/SandboxAsset/Dungeon/SM_SB_AngledWall.glb +0 -0
  100. package/assets/models/demo/SandboxAsset/Dungeon/SM_SB_Arch.glb +0 -0
  101. package/assets/models/demo/SandboxAsset/Dungeon/SM_SB_Beams.glb +0 -0
  102. package/assets/models/demo/SandboxAsset/Dungeon/SM_SB_Beams02.glb +0 -0
  103. package/assets/models/demo/SandboxAsset/Dungeon/SM_SB_Corner.glb +0 -0
  104. package/assets/models/demo/SandboxAsset/Dungeon/SM_SB_CornerB.glb +0 -0
  105. package/assets/models/demo/SandboxAsset/Dungeon/SM_SB_Floor.glb +0 -0
  106. package/assets/models/demo/SandboxAsset/Dungeon/SM_SB_Floor2.glb +0 -0
  107. package/assets/models/demo/SandboxAsset/Dungeon/SM_SB_Floor3.glb +0 -0
  108. package/assets/models/demo/SandboxAsset/Dungeon/SM_SB_GrowingTree.glb +0 -0
  109. package/assets/models/demo/SandboxAsset/Dungeon/SM_SB_HalfFloor.glb +0 -0
  110. package/assets/models/demo/SandboxAsset/Dungeon/SM_SB_IronBucket.glb +0 -0
  111. package/assets/models/demo/SandboxAsset/Dungeon/SM_SB_Pillar.glb +0 -0
  112. package/assets/models/demo/SandboxAsset/Dungeon/SM_SB_Railing.glb +0 -0
  113. package/assets/models/demo/SandboxAsset/Dungeon/SM_SB_RoofWindow.glb +0 -0
  114. package/assets/models/demo/SandboxAsset/Dungeon/SM_SB_Stairs01.glb +0 -0
  115. package/assets/models/demo/SandboxAsset/Dungeon/SM_SB_Statue.glb +0 -0
  116. package/assets/models/demo/SandboxAsset/Dungeon/SM_SB_Wall.glb +0 -0
  117. package/assets/models/demo/SandboxAsset/Dungeon/SM_SB_Wall02.glb +0 -0
  118. package/assets/models/demo/SandboxAsset/Dungeon/SM_SB_Wall03.glb +0 -0
  119. package/assets/models/demo/SandboxAsset/Dungeon/SM_SB_Wall03B.glb +0 -0
  120. package/assets/models/demo/SandboxAsset/Dungeon/SM_SB_Wall04.glb +0 -0
  121. package/assets/models/demo/SandboxAsset/Dungeon/SM_SB_WallB.glb +0 -0
  122. package/assets/models/demo/SandboxAsset/Dungeon/SM_SB_WallTrim.glb +0 -0
  123. package/assets/models/demo/SandboxAsset/Floors/SM_SB_Floor_01.glb +0 -0
  124. package/assets/models/demo/SandboxAsset/Floors/SM_SB_Floor_02.glb +0 -0
  125. package/assets/models/demo/SandboxAsset/Flowers/SM_SB_Flower01_ColorA.glb +0 -0
  126. package/assets/models/demo/SandboxAsset/Flowers/SM_SB_Flower01_ColorB.glb +0 -0
  127. package/assets/models/demo/SandboxAsset/Flowers/SM_SB_Flower02_ColorA.glb +0 -0
  128. package/assets/models/demo/SandboxAsset/Flowers/SM_SB_Flower02_ColorB.glb +0 -0
  129. package/assets/models/demo/SandboxAsset/Flowers/SM_SB_Flower03_ColorA.glb +0 -0
  130. package/assets/models/demo/SandboxAsset/Flowers/SM_SB_Flower03_ColorB.glb +0 -0
  131. package/assets/models/demo/SandboxAsset/Foliage/SM_SB_Beach_Grass.glb +0 -0
  132. package/assets/models/demo/SandboxAsset/Foliage/SM_SB_Birgaradier_Tree.glb +0 -0
  133. package/assets/models/demo/SandboxAsset/Foliage/SM_SB_Cactus_Long.glb +0 -0
  134. package/assets/models/demo/SandboxAsset/Foliage/SM_SB_ElephantEar01.glb +0 -0
  135. package/assets/models/demo/SandboxAsset/Foliage/SM_SB_Fern01.glb +0 -0
  136. package/assets/models/demo/SandboxAsset/Foliage/SM_SB_GrassPatch.glb +0 -0
  137. package/assets/models/demo/SandboxAsset/Foliage/SM_SB_Growing_Plant.glb +0 -0
  138. package/assets/models/demo/SandboxAsset/Foliage/SM_SB_Leaf_bush01.glb +0 -0
  139. package/assets/models/demo/SandboxAsset/Foliage/SM_SB_Middle_Moss.glb +0 -0
  140. package/assets/models/demo/SandboxAsset/Foliage/SM_SB_Oracle_Tree.glb +0 -0
  141. package/assets/models/demo/SandboxAsset/Foliage/SM_SB_Plant01.glb +0 -0
  142. package/assets/models/demo/SandboxAsset/Foliage/SM_SB_Tree01.glb +0 -0
  143. package/assets/models/demo/SandboxAsset/Foliage/SM_SB_plant.glb +0 -0
  144. package/assets/models/demo/SandboxAsset/GameItems/SM_SB_Arrow_large_01.glb +0 -0
  145. package/assets/models/demo/SandboxAsset/GameItems/SM_SB_Arrow_large_02.glb +0 -0
  146. package/assets/models/demo/SandboxAsset/GameItems/SM_SB_HangingBridgeEnd_01.glb +0 -0
  147. package/assets/models/demo/SandboxAsset/GameItems/SM_SB_HangingBridgeEnd_02.glb +0 -0
  148. package/assets/models/demo/SandboxAsset/GameItems/SM_SB_HangingBridgeMiddle.glb +0 -0
  149. package/assets/models/demo/SandboxAsset/GameItems/SM_SB_MovingPlatform_01.glb +0 -0
  150. package/assets/models/demo/SandboxAsset/GameItems/SM_SB_MovingWall.glb +0 -0
  151. package/assets/models/demo/SandboxAsset/GameItems/SM_SB_ObsidianTrap.glb +0 -0
  152. package/assets/models/demo/SandboxAsset/GameItems/SM_SB_Scull_Arrowshooter01.glb +0 -0
  153. package/assets/models/demo/SandboxAsset/GameItems/SM_SB_Scull_Arrowshooter02.glb +0 -0
  154. package/assets/models/demo/SandboxAsset/GameItems/SM_SB_Snakepit.glb +0 -0
  155. package/assets/models/demo/SandboxAsset/Rocks/SM_SB_Rock01.glb +0 -0
  156. package/assets/models/demo/SandboxAsset/Rocks/SM_SB_Rock02.glb +0 -0
  157. package/assets/models/demo/SandboxAsset/Slides/SM_SB_Slide_Corner_L.glb +0 -0
  158. package/assets/models/demo/SandboxAsset/Slides/SM_SB_Slide_Corner_R.glb +0 -0
  159. package/assets/models/demo/SandboxAsset/Slides/SM_SB_Slide_Edge.glb +0 -0
  160. package/assets/models/demo/SandboxAsset/Slides/SM_SB_Slide_End01.glb +0 -0
  161. package/assets/models/demo/SandboxAsset/Slides/SM_SB_Slide_Module.glb +0 -0
  162. package/assets/models/demo/SandboxAsset/Trees/SM_SB_CaribbeanPine_01.glb +0 -0
  163. package/assets/models/demo/SandboxAsset/Trees/SM_SB_CaribbeanPine_02.glb +0 -0
  164. package/assets/models/demo/SandboxAsset/Trees/SM_SB_CoconutTree01.glb +0 -0
  165. package/assets/models/demo/SandboxAsset/Trees/SM_SB_CoconutTree02.glb +0 -0
  166. package/assets/models/demo/SandboxAsset/Trees/SM_SB_KapokTree_01.glb +0 -0
  167. package/assets/models/demo/SandboxAsset/Trees/SM_SB_KapokTree_02.glb +0 -0
  168. package/assets/models/demo/SandboxAsset/Trees/SM_SB_QueenPalm_01.glb +0 -0
  169. package/assets/models/demo/SandboxAsset/Trees/SM_SB_QueenPalm_02.glb +0 -0
  170. package/assets/models/demo/SandboxAsset/Trees/SM_SB_TreeTrunk.glb +0 -0
  171. package/assets/models/demo/SandboxAsset/Trims/SM_SB_TrimA.glb +0 -0
  172. package/assets/models/demo/SandboxAsset/Trims/SM_SB_TrimB.glb +0 -0
  173. package/assets/models/demo/SandboxAsset/Trims/SM_SB_TrimC.glb +0 -0
  174. package/assets/models/demo/SandboxAsset/Trims/SM_SB_TrimD.glb +0 -0
  175. package/assets/models/demo/SandboxAsset/Trims/SM_SB_TrimE.glb +0 -0
  176. package/assets/models/demo/SandboxAsset/Trims/SM_SB_TrimF.glb +0 -0
  177. package/assets/models/demo/SandboxAsset/Trims/SM_SB_TrimG.glb +0 -0
  178. package/assets/models/demo/SandboxAsset/Trims/SM_SB_TrimH.glb +0 -0
  179. package/assets/models/demo/SandboxAsset/Trims/SM_SB_TrimI.glb +0 -0
  180. package/assets/models/demo/SandboxAsset/Trims/SM_SB_TrimJ.glb +0 -0
  181. package/assets/models/demo/SandboxAsset/Walls/SM_SB_Aztec_Wall_01.glb +0 -0
  182. package/assets/models/demo/SandboxAsset/Walls/SM_SB_Aztec_Wall_02.glb +0 -0
  183. package/assets/models/demo/SandboxAsset/Walls/SM_SB_Brick01.glb +0 -0
  184. package/assets/models/demo/SandboxAsset/Walls/SM_SB_BrickBlock01.glb +0 -0
  185. package/assets/models/demo/SandboxAsset/Walls/SM_SB_BrickBlock02.glb +0 -0
  186. package/assets/models/demo/SandboxAsset/Walls/SM_SB_Vineswall01.glb +0 -0
  187. package/assets/models/demo/SandboxAsset/Walls/SM_SB_WallDecoA.glb +0 -0
  188. package/assets/models/demo/SandboxAsset/Walls/SM_SB_Wall_L_01B_128x96.glb +0 -0
  189. package/assets/models/demo/SandboxAsset/Walls/SM_SB_Wall_L_01_128x96.glb +0 -0
  190. package/assets/models/demo/SandboxAsset/Walls/SM_SB_Wall_L_02B_128x96.glb +0 -0
  191. package/assets/models/demo/SandboxAsset/Walls/SM_SB_Wall_L_02C_128x96.glb +0 -0
  192. package/assets/models/demo/SandboxAsset/Walls/SM_SB_Wall_L_02D_128x96.glb +0 -0
  193. package/assets/models/demo/SandboxAsset/Walls/SM_SB_Wall_L_02_128x96.glb +0 -0
  194. package/assets/models/demo/SandboxAsset/Walls/SM_SB_Wall_L_03B_128x96.glb +0 -0
  195. package/assets/models/demo/SandboxAsset/Walls/SM_SB_Wall_L_03_128x96.glb +0 -0
  196. package/assets/prefabs/actors/demo_health_pickup.prefab.json +114 -0
  197. package/assets/prefabs/actors/demo_health_pickup_spawner.prefab.json +102 -0
  198. package/assets/prefabs/actors/test.prefab.json +87 -0
  199. package/assets/shaders/M_Anisotropy_Brushed.material.json +89 -0
  200. package/assets/shaders/M_Anisotropy_Radial.material.json +55 -0
  201. package/assets/shaders/M_Chrome.material.json +18 -0
  202. package/assets/shaders/M_Emissive_Blue.material.json +26 -0
  203. package/assets/shaders/M_Glass_Frosted.material.json +24 -0
  204. package/assets/shaders/M_Glass_ThinFilm.material.json +23 -0
  205. package/assets/shaders/M_Glossy_Grey.material.json +20 -0
  206. package/assets/shaders/M_Matte_White.material.json +20 -0
  207. package/assets/shaders/M_Metal_Anisotropic_Gold.material.json +31 -0
  208. package/assets/shaders/M_Metal_Anisotropic_Silver.material.json +31 -0
  209. package/assets/shaders/M_Metal_Brushed.material.json +61 -0
  210. package/assets/shaders/M_Paint_Clearcoat.material.json +28 -0
  211. package/assets/shaders/M_Stone_Mossy.material.json +153 -0
  212. package/assets/shaders/M_Stone_Mossy_Snow.material.json +151 -0
  213. package/assets/shaders/M_Toon_Anime.material.json +49 -0
  214. package/assets/shaders/M_Toon_Anime_5Step.material.json +45 -0
  215. package/assets/shaders/M_Toon_Cel.material.json +49 -0
  216. package/assets/shaders/M_Transmission.material.json +42 -0
  217. package/assets/shaders/M_Velvet_Blue.material.json +33 -0
  218. package/assets/shaders/M_Velvet_Purple.material.json +30 -0
  219. package/assets/shaders/M_Velvet_Red.material.json +33 -0
  220. package/assets/shaders/M_Wax_SSSLite.material.json +55 -0
  221. package/assets/shaders/matcap/M_Matcap_Blue.material.json +27 -0
  222. package/assets/shaders/matcap/M_Matcap_Rainbow.material.json +26 -0
  223. package/assets/shaders/matcap/M_Matcap_White.material.json +28 -0
  224. package/assets/sounds/birds.mp3 +0 -0
  225. package/assets/sounds/explosion.mp3 +0 -0
  226. package/assets/sounds/game-gun-short.mp3 +0 -0
  227. package/assets/sounds/laser.mp3 +0 -0
  228. package/assets/sounds/pickup.mp3 +0 -0
  229. package/assets/sounds/tuba.mp3 +0 -0
  230. package/assets/textures/Checkerboard.png +0 -0
  231. package/assets/textures/Grid_10x10.png +0 -0
  232. package/assets/textures/T_AnisotropyMap_Radial.png +0 -0
  233. package/assets/textures/T_Anisotropy_Roughness.png +0 -0
  234. package/assets/textures/T_Gradient.png +0 -0
  235. package/assets/textures/T_Grid_01.png +0 -0
  236. package/assets/textures/T_Grid_01.texture.json +7 -0
  237. package/assets/textures/T_Metal_Brushed_Normal.png +0 -0
  238. package/assets/textures/T_Normal.png +0 -0
  239. package/assets/textures/T_Stone_Mossy_AmbientOcclusion.jpg +0 -0
  240. package/assets/textures/T_Stone_Mossy_BaseColor.jpg +0 -0
  241. package/assets/textures/T_Stone_Mossy_Normal.jpg +0 -0
  242. package/assets/textures/T_Stone_Mossy_Roughness.jpg +0 -0
  243. package/assets/textures/T_Stone_Mossy_Snow_AmbientOcclusion.jpg +0 -0
  244. package/assets/textures/T_Stone_Mossy_Snow_BaseColor.jpg +0 -0
  245. package/assets/textures/T_Stone_Mossy_Snow_Normal.jpg +0 -0
  246. package/assets/textures/T_Stone_Mossy_Snow_Roughness.jpg +0 -0
  247. package/assets/textures/T_Toon_Anime_4Step.png +0 -0
  248. package/assets/textures/T_Toon_Anime_5Step.png +0 -0
  249. package/assets/textures/T_Toon_Cel_2Step.png +0 -0
  250. package/assets/textures/T_Wax_Thickness.png +0 -0
  251. package/assets/textures/matcaps/T_Matcap_Rainbow.png.png +0 -0
  252. package/assets/textures/matcaps/beige.png +0 -0
  253. package/assets/textures/matcaps/black.png +0 -0
  254. package/assets/textures/matcaps/blue.png +0 -0
  255. package/assets/textures/matcaps/brown.png +0 -0
  256. package/assets/textures/matcaps/emeraldGreen.png +0 -0
  257. package/assets/textures/matcaps/gold.png +0 -0
  258. package/assets/textures/matcaps/gray.png +0 -0
  259. package/assets/textures/matcaps/green.png +0 -0
  260. package/assets/textures/matcaps/metal.png +0 -0
  261. package/assets/textures/matcaps/orange.png +0 -0
  262. package/assets/textures/matcaps/purple.png +0 -0
  263. package/assets/textures/matcaps/red.png +0 -0
  264. package/assets/textures/matcaps/white.png +0 -0
  265. package/assets/textures/matcaps/yellow.png +0 -0
  266. package/assets/textures/skybox/citrus_orchard_road_puresky_2k.hdr +0 -0
  267. package/assets/textures/skybox/venice_sunset_4k.hdr +0 -0
  268. package/assets/ui/styles/ammo-counter.css +58 -0
  269. package/assets/ui/styles/compass.css +54 -0
  270. package/assets/ui/styles/controls-help.css +21 -0
  271. package/assets/ui/styles/crosshair.css +51 -0
  272. package/assets/ui/styles/inventory-bar.css +112 -0
  273. package/assets/ui/styles/inventory-grid.css +257 -0
  274. package/assets/ui/styles/main-menu.css +59 -0
  275. package/assets/ui/styles/minimap.css +12 -0
  276. package/assets/ui/styles/number-display.css +18 -0
  277. package/assets/ui/styles/progress-bar.css +199 -0
  278. package/assets/ui/styles/reload-indicator.css +76 -0
  279. package/assets/ui/templates/ammo-counter.html +7 -0
  280. package/assets/ui/templates/compass.html +6 -0
  281. package/assets/ui/templates/controls-help.html +9 -0
  282. package/assets/ui/templates/crosshair.html +1 -0
  283. package/assets/ui/templates/inventory-bar.html +38 -0
  284. package/assets/ui/templates/inventory-grid.html +9 -0
  285. package/assets/ui/templates/main-menu.html +10 -0
  286. package/assets/ui/templates/minimap.html +3 -0
  287. package/assets/ui/templates/number-display.html +3 -0
  288. package/assets/ui/templates/progress-bar.html +7 -0
  289. package/assets/ui/templates/reload-indicator.html +13 -0
  290. package/dist/games/animation-demo.d.ts +21 -0
  291. package/dist/games/animation-demo.js +398 -0
  292. package/dist/games/animation-retarget-demo.d.ts +44 -0
  293. package/dist/games/animation-retarget-demo.js +574 -0
  294. package/dist/games/behavior-tree-demo.d.ts +100 -0
  295. package/dist/games/behavior-tree-demo.js +1656 -0
  296. package/dist/games/character_animation.d.ts +15 -0
  297. package/dist/games/character_animation.js +170 -0
  298. package/dist/games/collision-demo.d.ts +4 -0
  299. package/dist/games/collision-demo.js +134 -0
  300. package/dist/games/deprecated/advanced-grid-demo.d.ts +18 -0
  301. package/dist/games/deprecated/advanced-grid-demo.js +305 -0
  302. package/dist/games/deprecated/airplane-demo.d.ts +10 -0
  303. package/dist/games/deprecated/airplane-demo.js +136 -0
  304. package/dist/games/deprecated/character-controller.d.ts +6 -0
  305. package/dist/games/deprecated/character-controller.js +144 -0
  306. package/dist/games/deprecated/chase-game.d.ts +17 -0
  307. package/dist/games/deprecated/chase-game.js +269 -0
  308. package/dist/games/deprecated/collision-config.d.ts +7 -0
  309. package/dist/games/deprecated/collision-config.js +295 -0
  310. package/dist/games/deprecated/door-demo.d.ts +30 -0
  311. package/dist/games/deprecated/door-demo.js +562 -0
  312. package/dist/games/deprecated/fps-demo.d.ts +9 -0
  313. package/dist/games/deprecated/fps-demo.js +119 -0
  314. package/dist/games/deprecated/fps-shotgun-demo.d.ts +19 -0
  315. package/dist/games/deprecated/fps-shotgun-demo.js +221 -0
  316. package/dist/games/deprecated/index.d.ts +25 -0
  317. package/dist/games/deprecated/index.js +26 -0
  318. package/dist/games/deprecated/lightmapping-demo.d.ts +135 -0
  319. package/dist/games/deprecated/lightmapping-demo.js +1344 -0
  320. package/dist/games/deprecated/lights-demo.d.ts +93 -0
  321. package/dist/games/deprecated/lights-demo.js +815 -0
  322. package/dist/games/deprecated/matcap-demo.d.ts +54 -0
  323. package/dist/games/deprecated/matcap-demo.js +788 -0
  324. package/dist/games/deprecated/material-demo-2.d.ts +14 -0
  325. package/dist/games/deprecated/material-demo-2.js +521 -0
  326. package/dist/games/deprecated/material-demo.d.ts +8 -0
  327. package/dist/games/deprecated/material-demo.js +177 -0
  328. package/dist/games/deprecated/memory-leak-test.d.ts +6 -0
  329. package/dist/games/deprecated/memory-leak-test.js +20 -0
  330. package/dist/games/deprecated/model-stress-test.d.ts +10 -0
  331. package/dist/games/deprecated/model-stress-test.js +116 -0
  332. package/dist/games/deprecated/multiplayer-demo.d.ts +13 -0
  333. package/dist/games/deprecated/multiplayer-demo.js +377 -0
  334. package/dist/games/deprecated/physics-demo.d.ts +10 -0
  335. package/dist/games/deprecated/physics-demo.js +200 -0
  336. package/dist/games/deprecated/shadow-demo.d.ts +25 -0
  337. package/dist/games/deprecated/shadow-demo.js +402 -0
  338. package/dist/games/deprecated/shooting-demo.d.ts +19 -0
  339. package/dist/games/deprecated/shooting-demo.js +338 -0
  340. package/dist/games/deprecated/skybox-demo.d.ts +35 -0
  341. package/dist/games/deprecated/skybox-demo.js +323 -0
  342. package/dist/games/deprecated/sound-demo.d.ts +11 -0
  343. package/dist/games/deprecated/sound-demo.js +125 -0
  344. package/dist/games/deprecated/timer-demo.d.ts +11 -0
  345. package/dist/games/deprecated/timer-demo.js +150 -0
  346. package/dist/games/deprecated/voxel-demo.d.ts +5 -0
  347. package/dist/games/deprecated/voxel-demo.js +41 -0
  348. package/dist/games/deprecated/world-commands.d.ts +8 -0
  349. package/dist/games/deprecated/world-commands.js +168 -0
  350. package/dist/games/deprecated/world-loading.d.ts +6 -0
  351. package/dist/games/deprecated/world-loading.js +86 -0
  352. package/dist/games/examples/fps-advanced/const.d.ts +171 -0
  353. package/dist/games/examples/fps-advanced/const.js +116 -0
  354. package/dist/games/examples/fps-advanced/enemies.d.ts +21 -0
  355. package/dist/games/examples/fps-advanced/enemies.js +182 -0
  356. package/dist/games/examples/fps-advanced/game-mode.d.ts +53 -0
  357. package/dist/games/examples/fps-advanced/game-mode.js +353 -0
  358. package/dist/games/examples/fps-advanced/game.d.ts +9 -0
  359. package/dist/games/examples/fps-advanced/game.js +58 -0
  360. package/dist/games/examples/fps-advanced/pickups.d.ts +36 -0
  361. package/dist/games/examples/fps-advanced/pickups.js +225 -0
  362. package/dist/games/examples/fps-advanced/player.d.ts +12 -0
  363. package/dist/games/examples/fps-advanced/player.js +110 -0
  364. package/dist/games/examples/fps-advanced/ui/endgame-ui.d.ts +21 -0
  365. package/dist/games/examples/fps-advanced/ui/endgame-ui.js +291 -0
  366. package/dist/games/examples/fps-advanced/ui/game-hud.d.ts +17 -0
  367. package/dist/games/examples/fps-advanced/ui/game-hud.js +225 -0
  368. package/dist/games/examples/fps-advanced/ui/menu-ui.d.ts +13 -0
  369. package/dist/games/examples/fps-advanced/ui/menu-ui.js +224 -0
  370. package/dist/games/examples/fps-advanced/ui/weapon-hud.d.ts +27 -0
  371. package/dist/games/examples/fps-advanced/ui/weapon-hud.js +259 -0
  372. package/dist/games/examples/fps-advanced/weapons.d.ts +14 -0
  373. package/dist/games/examples/fps-advanced/weapons.js +173 -0
  374. package/dist/games/examples/index.d.ts +5 -0
  375. package/dist/games/examples/index.js +6 -0
  376. package/dist/games/examples/plugin-demo/game.d.ts +7 -0
  377. package/dist/games/examples/plugin-demo/game.js +168 -0
  378. package/dist/games/examples/plugin-demo/plugins/dynamic-lighting.d.ts +8 -0
  379. package/dist/games/examples/plugin-demo/plugins/dynamic-lighting.js +156 -0
  380. package/dist/games/examples/plugin-demo/plugins/instanced-forest.d.ts +7 -0
  381. package/dist/games/examples/plugin-demo/plugins/instanced-forest.js +194 -0
  382. package/dist/games/examples/plugin-demo/plugins/particle-fountain.d.ts +7 -0
  383. package/dist/games/examples/plugin-demo/plugins/particle-fountain.js +64 -0
  384. package/dist/games/examples/plugin-demo/plugins/physics-playground.d.ts +7 -0
  385. package/dist/games/examples/plugin-demo/plugins/physics-playground.js +185 -0
  386. package/dist/games/examples/plugin-demo/plugins/robot-follower.d.ts +7 -0
  387. package/dist/games/examples/plugin-demo/plugins/robot-follower.js +347 -0
  388. package/dist/games/examples/plugin-demo/plugins/scatter-models.d.ts +7 -0
  389. package/dist/games/examples/plugin-demo/plugins/scatter-models.js +70 -0
  390. package/dist/games/examples/plugin-demo/plugins/simple-cube.d.ts +7 -0
  391. package/dist/games/examples/plugin-demo/plugins/simple-cube.js +44 -0
  392. package/dist/games/examples/plugin-demo/plugins/tic-tac-toe.d.ts +8 -0
  393. package/dist/games/examples/plugin-demo/plugins/tic-tac-toe.js +526 -0
  394. package/dist/games/examples/plugin-demo/plugins/wobbling-sphere.d.ts +7 -0
  395. package/dist/games/examples/plugin-demo/plugins/wobbling-sphere.js +63 -0
  396. package/dist/games/examples/side-scroller-advanced/const.d.ts +97 -0
  397. package/dist/games/examples/side-scroller-advanced/const.js +82 -0
  398. package/dist/games/examples/side-scroller-advanced/game-mode.d.ts +54 -0
  399. package/dist/games/examples/side-scroller-advanced/game-mode.js +351 -0
  400. package/dist/games/examples/side-scroller-advanced/game.d.ts +9 -0
  401. package/dist/games/examples/side-scroller-advanced/game.js +70 -0
  402. package/dist/games/examples/side-scroller-advanced/level-generator.d.ts +68 -0
  403. package/dist/games/examples/side-scroller-advanced/level-generator.js +366 -0
  404. package/dist/games/examples/side-scroller-advanced/pickups.d.ts +18 -0
  405. package/dist/games/examples/side-scroller-advanced/pickups.js +147 -0
  406. package/dist/games/examples/side-scroller-advanced/player.d.ts +5 -0
  407. package/dist/games/examples/side-scroller-advanced/player.js +104 -0
  408. package/dist/games/examples/side-scroller-advanced/ui/endgame-ui.d.ts +16 -0
  409. package/dist/games/examples/side-scroller-advanced/ui/endgame-ui.js +290 -0
  410. package/dist/games/examples/side-scroller-advanced/ui/game-hud.d.ts +21 -0
  411. package/dist/games/examples/side-scroller-advanced/ui/game-hud.js +265 -0
  412. package/dist/games/examples/side-scroller-advanced/ui/menu-ui.d.ts +13 -0
  413. package/dist/games/examples/side-scroller-advanced/ui/menu-ui.js +222 -0
  414. package/dist/games/examples/vehicle/base-vehicle.d.ts +30 -0
  415. package/dist/games/examples/vehicle/base-vehicle.js +155 -0
  416. package/dist/games/examples/vehicle/game.d.ts +11 -0
  417. package/dist/games/examples/vehicle/game.js +140 -0
  418. package/dist/games/examples/vehicle/mesh-vehicle.d.ts +19 -0
  419. package/dist/games/examples/vehicle/mesh-vehicle.js +194 -0
  420. package/dist/games/examples/vehicle/player.d.ts +9 -0
  421. package/dist/games/examples/vehicle/player.js +87 -0
  422. package/dist/games/examples/vehicle/primitive-vehicle.d.ts +21 -0
  423. package/dist/games/examples/vehicle/primitive-vehicle.js +269 -0
  424. package/dist/games/examples/vr-game/VRAttachableCube.d.ts +8 -0
  425. package/dist/games/examples/vr-game/VRAttachableCube.js +41 -0
  426. package/dist/games/examples/vr-game/VRInteractableCylinder.d.ts +10 -0
  427. package/dist/games/examples/vr-game/VRInteractableCylinder.js +76 -0
  428. package/dist/games/examples/vr-game/VRPressableButton.d.ts +24 -0
  429. package/dist/games/examples/vr-game/VRPressableButton.js +135 -0
  430. package/dist/games/examples/vr-game/VRProjectileActor.d.ts +19 -0
  431. package/dist/games/examples/vr-game/VRProjectileActor.js +75 -0
  432. package/dist/games/examples/vr-game/VRRifleActor.d.ts +16 -0
  433. package/dist/games/examples/vr-game/VRRifleActor.js +142 -0
  434. package/dist/games/examples/vr-game/game.d.ts +9 -0
  435. package/dist/games/examples/vr-game/game.js +56 -0
  436. package/dist/games/examples/vr-game/index.d.ts +5 -0
  437. package/dist/games/examples/vr-game/index.js +9 -0
  438. package/dist/games/examples/vr-game/scene.d.ts +5 -0
  439. package/dist/games/examples/vr-game/scene.js +83 -0
  440. package/dist/games/hand-tracking-demo.d.ts +10 -0
  441. package/dist/games/hand-tracking-demo.js +65 -0
  442. package/dist/games/index.d.ts +21 -0
  443. package/dist/games/index.js +22 -0
  444. package/dist/games/instanced-mesh-demo.d.ts +45 -0
  445. package/dist/games/instanced-mesh-demo.js +416 -0
  446. package/dist/games/manifold-demo.d.ts +6 -0
  447. package/dist/games/manifold-demo.js +44 -0
  448. package/dist/games/navigation-demo.d.ts +30 -0
  449. package/dist/games/navigation-demo.js +336 -0
  450. package/dist/games/navmesh-primitives-demo.d.ts +167 -0
  451. package/dist/games/navmesh-primitives-demo.js +1105 -0
  452. package/dist/games/performance-test-demo.d.ts +13 -0
  453. package/dist/games/performance-test-demo.js +214 -0
  454. package/dist/games/postprocess-demo.d.ts +46 -0
  455. package/dist/games/postprocess-demo.js +829 -0
  456. package/dist/games/ragdoll-demo-simple.d.ts +34 -0
  457. package/dist/games/ragdoll-demo-simple.js +152 -0
  458. package/dist/games/ragdoll-demo.d.ts +30 -0
  459. package/dist/games/ragdoll-demo.js +258 -0
  460. package/dist/games/swipe-tap-demo.d.ts +24 -0
  461. package/dist/games/swipe-tap-demo.js +238 -0
  462. package/dist/games/tween-demo.d.ts +22 -0
  463. package/dist/games/tween-demo.js +122 -0
  464. package/dist/games/ui-demo.d.ts +75 -0
  465. package/dist/games/ui-demo.js +1054 -0
  466. package/dist/games/vfx-demo.d.ts +48 -0
  467. package/dist/games/vfx-demo.js +821 -0
  468. package/dist/games/vfx-wawa-demo.d.ts +7 -0
  469. package/dist/games/vfx-wawa-demo.js +471 -0
  470. package/dist/games/vr-ui-demo-minimal.d.ts +15 -0
  471. package/dist/games/vr-ui-demo-minimal.js +141 -0
  472. package/dist/games/vr-ui-demo.d.ts +32 -0
  473. package/dist/games/vr-ui-demo.js +871 -0
  474. package/dist/genesys.min.mjs +7035 -0
  475. package/dist/launcher.d.ts +1 -0
  476. package/dist/launcher.js +778 -0
  477. package/dist/scripts/build-browser-bundle.d.ts +5 -0
  478. package/dist/scripts/build-browser-bundle.js +69 -0
  479. package/dist/scripts/check-asset-path.d.ts +1 -0
  480. package/dist/scripts/check-asset-path.js +146 -0
  481. package/dist/scripts/dump-templates.d.ts +1 -0
  482. package/dist/scripts/dump-templates.js +16 -0
  483. package/dist/scripts/generate-dependencies.d.ts +1 -0
  484. package/dist/scripts/generate-dependencies.js +110 -0
  485. package/dist/scripts/generate-prefabs.d.ts +1 -0
  486. package/dist/scripts/generate-prefabs.js +106 -0
  487. package/dist/scripts/load-save-world.d.ts +2 -0
  488. package/dist/scripts/load-save-world.js +35 -0
  489. package/dist/scripts/loc.d.ts +1 -0
  490. package/dist/scripts/loc.js +80 -0
  491. package/dist/scripts/optimize-glb-wrapper.d.ts +1 -0
  492. package/dist/scripts/optimize-glb-wrapper.js +26 -0
  493. package/dist/scripts/optimize-glb.d.ts +41 -0
  494. package/dist/scripts/optimize-glb.js +296 -0
  495. package/dist/scripts/session-server.d.ts +117 -0
  496. package/dist/scripts/session-server.js +782 -0
  497. package/dist/scripts/test-world-loading.d.ts +14 -0
  498. package/dist/scripts/test-world-loading.js +19 -0
  499. package/dist/src/actors/Actor.d.ts +510 -0
  500. package/dist/src/actors/Actor.js +1180 -0
  501. package/dist/src/actors/GLTFMeshActor.d.ts +34 -0
  502. package/dist/src/actors/GLTFMeshActor.js +102 -0
  503. package/dist/src/actors/GlobalParticleManager.d.ts +154 -0
  504. package/dist/src/actors/GlobalParticleManager.js +365 -0
  505. package/dist/src/actors/Pawn.d.ts +191 -0
  506. package/dist/src/actors/Pawn.js +384 -0
  507. package/dist/src/actors/PlayerController.d.ts +177 -0
  508. package/dist/src/actors/PlayerController.js +763 -0
  509. package/dist/src/actors/PlayerStart.d.ts +8 -0
  510. package/dist/src/actors/PlayerStart.js +48 -0
  511. package/dist/src/actors/Projectile.d.ts +50 -0
  512. package/dist/src/actors/Projectile.js +157 -0
  513. package/dist/src/actors/RagdollTestActor.d.ts +31 -0
  514. package/dist/src/actors/RagdollTestActor.js +153 -0
  515. package/dist/src/actors/ThirdPersonCharacterPawn.d.ts +27 -0
  516. package/dist/src/actors/ThirdPersonCharacterPawn.js +149 -0
  517. package/dist/src/actors/index.d.ts +20 -0
  518. package/dist/src/actors/index.js +21 -0
  519. package/dist/src/animation/AnimationClipCache.d.ts +41 -0
  520. package/dist/src/animation/AnimationClipCache.js +97 -0
  521. package/dist/src/animation/AnimationRetargeting.d.ts +100 -0
  522. package/dist/src/animation/AnimationRetargeting.js +455 -0
  523. package/dist/src/animation/SkeletonProfile.d.ts +112 -0
  524. package/dist/src/animation/SkeletonProfile.js +84 -0
  525. package/dist/src/animation/index.d.ts +14 -0
  526. package/dist/src/animation/index.js +15 -0
  527. package/dist/src/animation/retargeting.d.ts +142 -0
  528. package/dist/src/animation/retargeting.js +834 -0
  529. package/dist/src/components/CharacterStatsComponent.d.ts +89 -0
  530. package/dist/src/components/CharacterStatsComponent.js +207 -0
  531. package/dist/src/components/CollisionShapeComponent.d.ts +102 -0
  532. package/dist/src/components/CollisionShapeComponent.js +232 -0
  533. package/dist/src/components/Component.d.ts +82 -0
  534. package/dist/src/components/Component.js +2 -0
  535. package/dist/src/components/FollowComponent.d.ts +67 -0
  536. package/dist/src/components/FollowComponent.js +128 -0
  537. package/dist/src/components/PrimitiveComponent.d.ts +183 -0
  538. package/dist/src/components/PrimitiveComponent.js +368 -0
  539. package/dist/src/components/ResetPositionComponent.d.ts +52 -0
  540. package/dist/src/components/ResetPositionComponent.js +161 -0
  541. package/dist/src/components/SceneComponent.d.ts +225 -0
  542. package/dist/src/components/SceneComponent.js +621 -0
  543. package/dist/src/components/audio/SoundComponent.d.ts +109 -0
  544. package/dist/src/components/audio/SoundComponent.js +353 -0
  545. package/dist/src/components/audio/index.d.ts +11 -0
  546. package/dist/src/components/audio/index.js +12 -0
  547. package/dist/src/components/csg/CSGCombiner.d.ts +87 -0
  548. package/dist/src/components/csg/CSGCombiner.js +240 -0
  549. package/dist/src/components/csg/CSGShapes.d.ts +173 -0
  550. package/dist/src/components/csg/CSGShapes.js +326 -0
  551. package/dist/src/components/csg/index.d.ts +12 -0
  552. package/dist/src/components/csg/index.js +13 -0
  553. package/dist/src/components/gameplay/BaseWeaponComponent.d.ts +175 -0
  554. package/dist/src/components/gameplay/BaseWeaponComponent.js +496 -0
  555. package/dist/src/components/gameplay/DoorComponent.d.ts +236 -0
  556. package/dist/src/components/gameplay/DoorComponent.js +928 -0
  557. package/dist/src/components/gameplay/Equipment.d.ts +22 -0
  558. package/dist/src/components/gameplay/Equipment.js +9 -0
  559. package/dist/src/components/gameplay/GenericEquipment.d.ts +37 -0
  560. package/dist/src/components/gameplay/GenericEquipment.js +90 -0
  561. package/dist/src/components/gameplay/InstantHitWeaponComponent.d.ts +96 -0
  562. package/dist/src/components/gameplay/InstantHitWeaponComponent.js +194 -0
  563. package/dist/src/components/gameplay/PickupComponent.d.ts +130 -0
  564. package/dist/src/components/gameplay/PickupComponent.js +429 -0
  565. package/dist/src/components/gameplay/ProjectileWeaponComponent.d.ts +49 -0
  566. package/dist/src/components/gameplay/ProjectileWeaponComponent.js +93 -0
  567. package/dist/src/components/gameplay/ShotgunComponent.d.ts +18 -0
  568. package/dist/src/components/gameplay/ShotgunComponent.js +216 -0
  569. package/dist/src/components/gameplay/SwitchComponent.d.ts +152 -0
  570. package/dist/src/components/gameplay/SwitchComponent.js +481 -0
  571. package/dist/src/components/gameplay/TriggerZoneComponent.d.ts +157 -0
  572. package/dist/src/components/gameplay/TriggerZoneComponent.js +312 -0
  573. package/dist/src/components/gameplay/index.d.ts +20 -0
  574. package/dist/src/components/gameplay/index.js +21 -0
  575. package/dist/src/components/index.d.ts +16 -0
  576. package/dist/src/components/index.js +18 -0
  577. package/dist/src/components/lights/AmbientLightComponent.d.ts +37 -0
  578. package/dist/src/components/lights/AmbientLightComponent.js +68 -0
  579. package/dist/src/components/lights/DirectionalLightComponent.d.ts +77 -0
  580. package/dist/src/components/lights/DirectionalLightComponent.js +146 -0
  581. package/dist/src/components/lights/HemisphereLightComponent.d.ts +67 -0
  582. package/dist/src/components/lights/HemisphereLightComponent.js +121 -0
  583. package/dist/src/components/lights/LightComponent.d.ts +145 -0
  584. package/dist/src/components/lights/LightComponent.js +315 -0
  585. package/dist/src/components/lights/PointLightComponent.d.ts +61 -0
  586. package/dist/src/components/lights/PointLightComponent.js +103 -0
  587. package/dist/src/components/lights/RectAreaLightComponent.d.ts +78 -0
  588. package/dist/src/components/lights/RectAreaLightComponent.js +135 -0
  589. package/dist/src/components/lights/SpotLightComponent.d.ts +100 -0
  590. package/dist/src/components/lights/SpotLightComponent.js +167 -0
  591. package/dist/src/components/lights/index.d.ts +17 -0
  592. package/dist/src/components/lights/index.js +18 -0
  593. package/dist/src/components/movement/AerialMovementComponent.d.ts +93 -0
  594. package/dist/src/components/movement/AerialMovementComponent.js +339 -0
  595. package/dist/src/components/movement/AirplaneMovementComponent.d.ts +59 -0
  596. package/dist/src/components/movement/AirplaneMovementComponent.js +215 -0
  597. package/dist/src/components/movement/BasePawnMovementComponent.d.ts +132 -0
  598. package/dist/src/components/movement/BasePawnMovementComponent.js +264 -0
  599. package/dist/src/components/movement/CharacterMovementComponent.d.ts +175 -0
  600. package/dist/src/components/movement/CharacterMovementComponent.js +448 -0
  601. package/dist/src/components/movement/DirectionalCharacterMovementComponent.d.ts +17 -0
  602. package/dist/src/components/movement/DirectionalCharacterMovementComponent.js +82 -0
  603. package/dist/src/components/movement/NpcMovementComponent.d.ts +232 -0
  604. package/dist/src/components/movement/NpcMovementComponent.js +890 -0
  605. package/dist/src/components/movement/PathMovementComponent.d.ts +54 -0
  606. package/dist/src/components/movement/PathMovementComponent.js +211 -0
  607. package/dist/src/components/movement/TopDownMovementComponent.d.ts +25 -0
  608. package/dist/src/components/movement/TopDownMovementComponent.js +79 -0
  609. package/dist/src/components/movement/TweenMovementComponent.d.ts +59 -0
  610. package/dist/src/components/movement/TweenMovementComponent.js +362 -0
  611. package/dist/src/components/movement/VehicleMovementComponent.d.ts +98 -0
  612. package/dist/src/components/movement/VehicleMovementComponent.js +402 -0
  613. package/dist/src/components/movement/index.d.ts +19 -0
  614. package/dist/src/components/movement/index.js +20 -0
  615. package/dist/src/components/physics/RagdollComponent.d.ts +118 -0
  616. package/dist/src/components/physics/RagdollComponent.js +671 -0
  617. package/dist/src/components/visual/AnimationComponent.d.ts +29 -0
  618. package/dist/src/components/visual/AnimationComponent.js +234 -0
  619. package/dist/src/components/visual/AnimationStateMachineComponent.d.ts +235 -0
  620. package/dist/src/components/visual/AnimationStateMachineComponent.js +1048 -0
  621. package/dist/src/components/visual/BaseInstancedMeshComponent.d.ts +253 -0
  622. package/dist/src/components/visual/BaseInstancedMeshComponent.js +763 -0
  623. package/dist/src/components/visual/BillboardComponent.d.ts +26 -0
  624. package/dist/src/components/visual/BillboardComponent.js +143 -0
  625. package/dist/src/components/visual/EditorOnlyMeshComponent.d.ts +17 -0
  626. package/dist/src/components/visual/EditorOnlyMeshComponent.js +53 -0
  627. package/dist/src/components/visual/FogComponent.d.ts +32 -0
  628. package/dist/src/components/visual/FogComponent.js +131 -0
  629. package/dist/src/components/visual/GLTFMeshComponent.d.ts +138 -0
  630. package/dist/src/components/visual/GLTFMeshComponent.js +411 -0
  631. package/dist/src/components/visual/InstancedGltfMeshComponent.d.ts +75 -0
  632. package/dist/src/components/visual/InstancedGltfMeshComponent.js +217 -0
  633. package/dist/src/components/visual/InstancedMeshComponent.d.ts +57 -0
  634. package/dist/src/components/visual/InstancedMeshComponent.js +114 -0
  635. package/dist/src/components/visual/MeshComponent.d.ts +71 -0
  636. package/dist/src/components/visual/MeshComponent.js +208 -0
  637. package/dist/src/components/visual/ParticleEmitterComponent.d.ts +145 -0
  638. package/dist/src/components/visual/ParticleEmitterComponent.js +569 -0
  639. package/dist/src/components/visual/SkyboxComponent.d.ts +135 -0
  640. package/dist/src/components/visual/SkyboxComponent.js +342 -0
  641. package/dist/src/components/visual/TerrainMeshComponent.d.ts +119 -0
  642. package/dist/src/components/visual/TerrainMeshComponent.js +309 -0
  643. package/dist/src/components/visual/UI3DComponent.d.ts +60 -0
  644. package/dist/src/components/visual/UI3DComponent.js +248 -0
  645. package/dist/src/components/visual/index.d.ts +23 -0
  646. package/dist/src/components/visual/index.js +24 -0
  647. package/dist/src/components/voxel/MagicaVoxelLoader.d.ts +18 -0
  648. package/dist/src/components/voxel/MagicaVoxelLoader.js +151 -0
  649. package/dist/src/components/voxel/VoxelMeshComponent.d.ts +66 -0
  650. package/dist/src/components/voxel/VoxelMeshComponent.js +246 -0
  651. package/dist/src/components/voxel/index.d.ts +2 -0
  652. package/dist/src/components/voxel/index.js +3 -0
  653. package/dist/src/const.d.ts +61 -0
  654. package/dist/src/const.js +62 -0
  655. package/dist/src/csg/CSGUtils.d.ts +118 -0
  656. package/dist/src/csg/CSGUtils.js +805 -0
  657. package/dist/src/csg/ManifoldWrapper.d.ts +172 -0
  658. package/dist/src/csg/ManifoldWrapper.js +629 -0
  659. package/dist/src/csg/index.d.ts +13 -0
  660. package/dist/src/csg/index.js +14 -0
  661. package/dist/src/dependencies.d.ts +125 -0
  662. package/dist/src/dependencies.js +72 -0
  663. package/dist/src/game/GameBuilder.d.ts +104 -0
  664. package/dist/src/game/GameBuilder.js +263 -0
  665. package/dist/src/game/GameLoop.d.ts +204 -0
  666. package/dist/src/game/GameLoop.js +545 -0
  667. package/dist/src/game/GameMode.d.ts +58 -0
  668. package/dist/src/game/GameMode.js +131 -0
  669. package/dist/src/game/Playable.d.ts +38 -0
  670. package/dist/src/game/Playable.js +83 -0
  671. package/dist/src/game/World.d.ts +512 -0
  672. package/dist/src/game/World.js +1467 -0
  673. package/dist/src/game/index.d.ts +18 -0
  674. package/dist/src/game/index.js +19 -0
  675. package/dist/src/index.d.ts +39 -0
  676. package/dist/src/index.js +40 -0
  677. package/dist/src/materials.d.ts +49 -0
  678. package/dist/src/materials.js +177 -0
  679. package/dist/src/multiplayer/MovementPrediction.d.ts +28 -0
  680. package/dist/src/multiplayer/MovementPrediction.js +204 -0
  681. package/dist/src/multiplayer/NetWorld.d.ts +125 -0
  682. package/dist/src/multiplayer/NetWorld.js +960 -0
  683. package/dist/src/multiplayer/implementations/MemorySession.d.ts +18 -0
  684. package/dist/src/multiplayer/implementations/MemorySession.js +112 -0
  685. package/dist/src/multiplayer/implementations/WebSocketSession.d.ts +134 -0
  686. package/dist/src/multiplayer/implementations/WebSocketSession.js +439 -0
  687. package/dist/src/multiplayer/implementations/index.d.ts +14 -0
  688. package/dist/src/multiplayer/implementations/index.js +15 -0
  689. package/dist/src/multiplayer/index.d.ts +16 -0
  690. package/dist/src/multiplayer/index.js +17 -0
  691. package/dist/src/multiplayer/interface.d.ts +134 -0
  692. package/dist/src/multiplayer/interface.js +87 -0
  693. package/dist/src/navigation/NavigationServer.d.ts +134 -0
  694. package/dist/src/navigation/NavigationServer.js +47 -0
  695. package/dist/src/navigation/RecastNavigationServer.d.ts +82 -0
  696. package/dist/src/navigation/RecastNavigationServer.js +325 -0
  697. package/dist/src/navigation/index.d.ts +16 -0
  698. package/dist/src/navigation/index.js +17 -0
  699. package/dist/src/npc/behavior-tree/BehaviorNode.d.ts +95 -0
  700. package/dist/src/npc/behavior-tree/BehaviorNode.js +177 -0
  701. package/dist/src/npc/behavior-tree/BehaviorTreeComponent.d.ts +104 -0
  702. package/dist/src/npc/behavior-tree/BehaviorTreeComponent.js +341 -0
  703. package/dist/src/npc/behavior-tree/behaviors/BehaviorAction.d.ts +52 -0
  704. package/dist/src/npc/behavior-tree/behaviors/BehaviorAction.js +70 -0
  705. package/dist/src/npc/behavior-tree/behaviors/ConditionEvaluator.d.ts +73 -0
  706. package/dist/src/npc/behavior-tree/behaviors/ConditionEvaluator.js +116 -0
  707. package/dist/src/npc/behavior-tree/behaviors/actions/aerial/AerialMoveToTargetAction.d.ts +33 -0
  708. package/dist/src/npc/behavior-tree/behaviors/actions/aerial/AerialMoveToTargetAction.js +138 -0
  709. package/dist/src/npc/behavior-tree/behaviors/actions/aerial/AerialSearchAction.d.ts +42 -0
  710. package/dist/src/npc/behavior-tree/behaviors/actions/aerial/AerialSearchAction.js +170 -0
  711. package/dist/src/npc/behavior-tree/behaviors/actions/aerial/AerialTrackTargetAction.d.ts +27 -0
  712. package/dist/src/npc/behavior-tree/behaviors/actions/aerial/AerialTrackTargetAction.js +86 -0
  713. package/dist/src/npc/behavior-tree/behaviors/actions/aerial/AerialWanderAction.d.ts +50 -0
  714. package/dist/src/npc/behavior-tree/behaviors/actions/aerial/AerialWanderAction.js +189 -0
  715. package/dist/src/npc/behavior-tree/behaviors/actions/aerial/index.d.ts +4 -0
  716. package/dist/src/npc/behavior-tree/behaviors/actions/aerial/index.js +6 -0
  717. package/dist/src/npc/behavior-tree/behaviors/actions/combat/MeleeAttackAction.d.ts +37 -0
  718. package/dist/src/npc/behavior-tree/behaviors/actions/combat/MeleeAttackAction.js +172 -0
  719. package/dist/src/npc/behavior-tree/behaviors/actions/combat/ShootAction.d.ts +35 -0
  720. package/dist/src/npc/behavior-tree/behaviors/actions/combat/ShootAction.js +173 -0
  721. package/dist/src/npc/behavior-tree/behaviors/actions/combat/index.d.ts +2 -0
  722. package/dist/src/npc/behavior-tree/behaviors/actions/combat/index.js +4 -0
  723. package/dist/src/npc/behavior-tree/behaviors/actions/ground/FleeFromTargetAction.d.ts +34 -0
  724. package/dist/src/npc/behavior-tree/behaviors/actions/ground/FleeFromTargetAction.js +148 -0
  725. package/dist/src/npc/behavior-tree/behaviors/actions/ground/FollowActorAction.d.ts +30 -0
  726. package/dist/src/npc/behavior-tree/behaviors/actions/ground/FollowActorAction.js +129 -0
  727. package/dist/src/npc/behavior-tree/behaviors/actions/ground/MoveToPositionAction.d.ts +27 -0
  728. package/dist/src/npc/behavior-tree/behaviors/actions/ground/MoveToPositionAction.js +115 -0
  729. package/dist/src/npc/behavior-tree/behaviors/actions/ground/SetNextWaypointAction.d.ts +28 -0
  730. package/dist/src/npc/behavior-tree/behaviors/actions/ground/SetNextWaypointAction.js +120 -0
  731. package/dist/src/npc/behavior-tree/behaviors/actions/ground/WanderAction.d.ts +35 -0
  732. package/dist/src/npc/behavior-tree/behaviors/actions/ground/WanderAction.js +172 -0
  733. package/dist/src/npc/behavior-tree/behaviors/actions/ground/index.d.ts +5 -0
  734. package/dist/src/npc/behavior-tree/behaviors/actions/ground/index.js +7 -0
  735. package/dist/src/npc/behavior-tree/behaviors/actions/index.d.ts +4 -0
  736. package/dist/src/npc/behavior-tree/behaviors/actions/index.js +10 -0
  737. package/dist/src/npc/behavior-tree/behaviors/actions/utility/CalculateTacticalPositionAction.d.ts +32 -0
  738. package/dist/src/npc/behavior-tree/behaviors/actions/utility/CalculateTacticalPositionAction.js +123 -0
  739. package/dist/src/npc/behavior-tree/behaviors/actions/utility/LookAtTargetAction.d.ts +43 -0
  740. package/dist/src/npc/behavior-tree/behaviors/actions/utility/LookAtTargetAction.js +140 -0
  741. package/dist/src/npc/behavior-tree/behaviors/actions/utility/WaitAction.d.ts +24 -0
  742. package/dist/src/npc/behavior-tree/behaviors/actions/utility/WaitAction.js +85 -0
  743. package/dist/src/npc/behavior-tree/behaviors/actions/utility/index.d.ts +3 -0
  744. package/dist/src/npc/behavior-tree/behaviors/actions/utility/index.js +5 -0
  745. package/dist/src/npc/behavior-tree/behaviors/conditions/BlackboardValueCondition.d.ts +40 -0
  746. package/dist/src/npc/behavior-tree/behaviors/conditions/BlackboardValueCondition.js +133 -0
  747. package/dist/src/npc/behavior-tree/behaviors/conditions/CanSeeTargetCondition.d.ts +29 -0
  748. package/dist/src/npc/behavior-tree/behaviors/conditions/CanSeeTargetCondition.js +167 -0
  749. package/dist/src/npc/behavior-tree/behaviors/conditions/HasLastKnownPositionCondition.d.ts +19 -0
  750. package/dist/src/npc/behavior-tree/behaviors/conditions/HasLastKnownPositionCondition.js +67 -0
  751. package/dist/src/npc/behavior-tree/behaviors/conditions/HpAbovePercentCondition.d.ts +25 -0
  752. package/dist/src/npc/behavior-tree/behaviors/conditions/HpAbovePercentCondition.js +94 -0
  753. package/dist/src/npc/behavior-tree/behaviors/conditions/IsPlayerNearCondition.d.ts +15 -0
  754. package/dist/src/npc/behavior-tree/behaviors/conditions/IsPlayerNearCondition.js +51 -0
  755. package/dist/src/npc/behavior-tree/behaviors/conditions/TargetBelowHpPercentCondition.d.ts +19 -0
  756. package/dist/src/npc/behavior-tree/behaviors/conditions/TargetBelowHpPercentCondition.js +66 -0
  757. package/dist/src/npc/behavior-tree/behaviors/conditions/TargetInConeCondition.d.ts +26 -0
  758. package/dist/src/npc/behavior-tree/behaviors/conditions/TargetInConeCondition.js +111 -0
  759. package/dist/src/npc/behavior-tree/behaviors/conditions/TimeLimitCondition.d.ts +24 -0
  760. package/dist/src/npc/behavior-tree/behaviors/conditions/TimeLimitCondition.js +81 -0
  761. package/dist/src/npc/behavior-tree/behaviors/conditions/index.d.ts +8 -0
  762. package/dist/src/npc/behavior-tree/behaviors/conditions/index.js +15 -0
  763. package/dist/src/npc/behavior-tree/behaviors/index.d.ts +4 -0
  764. package/dist/src/npc/behavior-tree/behaviors/index.js +8 -0
  765. package/dist/src/npc/behavior-tree/blackboard/Blackboard.d.ts +50 -0
  766. package/dist/src/npc/behavior-tree/blackboard/Blackboard.js +121 -0
  767. package/dist/src/npc/behavior-tree/blackboard/BlackboardKey.d.ts +35 -0
  768. package/dist/src/npc/behavior-tree/blackboard/BlackboardKey.js +66 -0
  769. package/dist/src/npc/behavior-tree/blackboard/index.d.ts +2 -0
  770. package/dist/src/npc/behavior-tree/blackboard/index.js +3 -0
  771. package/dist/src/npc/behavior-tree/index.d.ts +9 -0
  772. package/dist/src/npc/behavior-tree/index.js +19 -0
  773. package/dist/src/npc/behavior-tree/loader/BehaviorTreeLoader.d.ts +91 -0
  774. package/dist/src/npc/behavior-tree/loader/BehaviorTreeLoader.js +240 -0
  775. package/dist/src/npc/behavior-tree/nodes/CompositeNode.d.ts +46 -0
  776. package/dist/src/npc/behavior-tree/nodes/CompositeNode.js +93 -0
  777. package/dist/src/npc/behavior-tree/nodes/LeafNode.d.ts +8 -0
  778. package/dist/src/npc/behavior-tree/nodes/LeafNode.js +11 -0
  779. package/dist/src/npc/behavior-tree/nodes/composite/SelectorNode.d.ts +15 -0
  780. package/dist/src/npc/behavior-tree/nodes/composite/SelectorNode.js +61 -0
  781. package/dist/src/npc/behavior-tree/nodes/composite/SequenceNode.d.ts +15 -0
  782. package/dist/src/npc/behavior-tree/nodes/composite/SequenceNode.js +61 -0
  783. package/dist/src/physics/BasePhysicsEngine.d.ts +389 -0
  784. package/dist/src/physics/BasePhysicsEngine.js +1227 -0
  785. package/dist/src/physics/IPhysicsVehicle.d.ts +150 -0
  786. package/dist/src/physics/IPhysicsVehicle.js +2 -0
  787. package/dist/src/physics/PhysicsEngine.d.ts +425 -0
  788. package/dist/src/physics/PhysicsEngine.js +69 -0
  789. package/dist/src/physics/PhysicsTypes.d.ts +91 -0
  790. package/dist/src/physics/PhysicsTypes.js +24 -0
  791. package/dist/src/physics/implementations/RapierDebugRender.d.ts +24 -0
  792. package/dist/src/physics/implementations/RapierDebugRender.js +66 -0
  793. package/dist/src/physics/implementations/RapierPhysics.d.ts +122 -0
  794. package/dist/src/physics/implementations/RapierPhysics.js +1191 -0
  795. package/dist/src/physics/implementations/RapierVehicle.d.ts +31 -0
  796. package/dist/src/physics/implementations/RapierVehicle.js +236 -0
  797. package/dist/src/physics/index.d.ts +16 -0
  798. package/dist/src/physics/index.js +17 -0
  799. package/dist/src/render/EdgeOutlineEffect.d.ts +40 -0
  800. package/dist/src/render/EdgeOutlineEffect.js +389 -0
  801. package/dist/src/render/PostProcessManager.d.ts +274 -0
  802. package/dist/src/render/PostProcessManager.js +932 -0
  803. package/dist/src/render/Renderer.d.ts +84 -0
  804. package/dist/src/render/Renderer.js +306 -0
  805. package/dist/src/render/Texture.d.ts +51 -0
  806. package/dist/src/render/Texture.js +144 -0
  807. package/dist/src/render/index.d.ts +20 -0
  808. package/dist/src/render/index.js +21 -0
  809. package/dist/src/render/lightmapping/LightmapAtlas.d.ts +52 -0
  810. package/dist/src/render/lightmapping/LightmapAtlas.js +201 -0
  811. package/dist/src/render/lightmapping/LightmapBaker.d.ts +99 -0
  812. package/dist/src/render/lightmapping/LightmapBaker.js +239 -0
  813. package/dist/src/render/lightmapping/LightmapManager.d.ts +148 -0
  814. package/dist/src/render/lightmapping/LightmapManager.js +630 -0
  815. package/dist/src/render/lightmapping/LightmapMaterial.d.ts +26 -0
  816. package/dist/src/render/lightmapping/LightmapMaterial.js +242 -0
  817. package/dist/src/render/lightmapping/LightmapSerialization.d.ts +379 -0
  818. package/dist/src/render/lightmapping/LightmapSerialization.js +244 -0
  819. package/dist/src/render/lightmapping/LightmapSerializer.d.ts +94 -0
  820. package/dist/src/render/lightmapping/LightmapSerializer.js +223 -0
  821. package/dist/src/render/lightmapping/MultiLightmapperMaterial.d.ts +41 -0
  822. package/dist/src/render/lightmapping/MultiLightmapperMaterial.js +424 -0
  823. package/dist/src/render/lightmapping/index.d.ts +9 -0
  824. package/dist/src/render/lightmapping/index.js +6 -0
  825. package/dist/src/render/postprocessing/EffectPassWrapper.d.ts +17 -0
  826. package/dist/src/render/postprocessing/EffectPassWrapper.js +47 -0
  827. package/dist/src/render/postprocessing/ObjectOutlineEffect.d.ts +49 -0
  828. package/dist/src/render/postprocessing/ObjectOutlineEffect.js +364 -0
  829. package/dist/src/render/postprocessing/index.d.ts +2 -0
  830. package/dist/src/render/postprocessing/index.js +3 -0
  831. package/dist/src/runtime/GameRuntime.d.ts +25 -0
  832. package/dist/src/runtime/GameRuntime.js +131 -0
  833. package/dist/src/runtime/InjectedDependencies.d.ts +13 -0
  834. package/dist/src/runtime/InjectedDependencies.js +63 -0
  835. package/dist/src/runtime/Utils.d.ts +16 -0
  836. package/dist/src/runtime/Utils.js +113 -0
  837. package/dist/src/runtime/index.d.ts +4 -0
  838. package/dist/src/runtime/index.js +5 -0
  839. package/dist/src/runtime/materials/MatcapShaderMaterial.d.ts +23 -0
  840. package/dist/src/runtime/materials/MatcapShaderMaterial.js +235 -0
  841. package/dist/src/runtime/materials/index.d.ts +1 -0
  842. package/dist/src/runtime/materials/index.js +2 -0
  843. package/dist/src/scripting/Plugin.d.ts +64 -0
  844. package/dist/src/scripting/Plugin.js +2 -0
  845. package/dist/src/scripting/PluginManager.d.ts +40 -0
  846. package/dist/src/scripting/PluginManager.js +111 -0
  847. package/dist/src/scripting/index.d.ts +1 -0
  848. package/dist/src/scripting/index.js +2 -0
  849. package/dist/src/storage/defaultStorageProvider.d.ts +15 -0
  850. package/dist/src/storage/defaultStorageProvider.js +73 -0
  851. package/dist/src/storage/index.d.ts +16 -0
  852. package/dist/src/storage/index.js +17 -0
  853. package/dist/src/storage/projectContext.d.ts +80 -0
  854. package/dist/src/storage/projectContext.js +164 -0
  855. package/dist/src/storage/storageProvider.d.ts +148 -0
  856. package/dist/src/storage/storageProvider.js +181 -0
  857. package/dist/src/systems/ClassRegistry.d.ts +98 -0
  858. package/dist/src/systems/ClassRegistry.js +478 -0
  859. package/dist/src/systems/ConsoleManager.d.ts +66 -0
  860. package/dist/src/systems/ConsoleManager.js +465 -0
  861. package/dist/src/systems/ConsoleVariableHandler.d.ts +17 -0
  862. package/dist/src/systems/ConsoleVariableHandler.js +120 -0
  863. package/dist/src/systems/ConsoleVariableManager.d.ts +128 -0
  864. package/dist/src/systems/ConsoleVariableManager.js +295 -0
  865. package/dist/src/systems/InputManager.d.ts +511 -0
  866. package/dist/src/systems/InputManager.js +1025 -0
  867. package/dist/src/systems/ObjectNamingSystem.d.ts +9 -0
  868. package/dist/src/systems/ObjectNamingSystem.js +34 -0
  869. package/dist/src/systems/Stats.d.ts +36 -0
  870. package/dist/src/systems/Stats.js +193 -0
  871. package/dist/src/systems/TimerSystem.d.ts +180 -0
  872. package/dist/src/systems/TimerSystem.js +292 -0
  873. package/dist/src/systems/TweenManager.d.ts +57 -0
  874. package/dist/src/systems/TweenManager.js +107 -0
  875. package/dist/src/systems/WorldSerialization.d.ts +216 -0
  876. package/dist/src/systems/WorldSerialization.js +1082 -0
  877. package/dist/src/systems/collision/CollisionConfig.d.ts +56 -0
  878. package/dist/src/systems/collision/CollisionConfig.js +249 -0
  879. package/dist/src/systems/collision/CollisionTypes.d.ts +138 -0
  880. package/dist/src/systems/collision/CollisionTypes.js +204 -0
  881. package/dist/src/systems/collision/index.d.ts +15 -0
  882. package/dist/src/systems/collision/index.js +16 -0
  883. package/dist/src/systems/index.d.ts +23 -0
  884. package/dist/src/systems/index.js +24 -0
  885. package/dist/src/templates/MyActor.d.ts +9 -0
  886. package/dist/src/templates/MyActor.js +25 -0
  887. package/dist/src/templates/MySceneComponent.d.ts +9 -0
  888. package/dist/src/templates/MySceneComponent.js +25 -0
  889. package/dist/src/ui/LoadingScreen.d.ts +15 -0
  890. package/dist/src/ui/LoadingScreen.js +103 -0
  891. package/dist/src/ui/UIElement.d.ts +74 -0
  892. package/dist/src/ui/UIElement.js +202 -0
  893. package/dist/src/ui/UILayout.d.ts +126 -0
  894. package/dist/src/ui/UILayout.js +244 -0
  895. package/dist/src/ui/UIManager.d.ts +44 -0
  896. package/dist/src/ui/UIManager.js +148 -0
  897. package/dist/src/ui/UIResource.d.ts +6 -0
  898. package/dist/src/ui/UIResource.js +24 -0
  899. package/dist/src/ui/components/AmmoCounter.d.ts +28 -0
  900. package/dist/src/ui/components/AmmoCounter.js +125 -0
  901. package/dist/src/ui/components/BaseUIComponent.d.ts +128 -0
  902. package/dist/src/ui/components/BaseUIComponent.js +342 -0
  903. package/dist/src/ui/components/Compass.d.ts +28 -0
  904. package/dist/src/ui/components/Compass.js +125 -0
  905. package/dist/src/ui/components/ControlsPanel.d.ts +37 -0
  906. package/dist/src/ui/components/ControlsPanel.js +47 -0
  907. package/dist/src/ui/components/Crosshair.d.ts +20 -0
  908. package/dist/src/ui/components/Crosshair.js +67 -0
  909. package/dist/src/ui/components/InventoryBar.d.ts +103 -0
  910. package/dist/src/ui/components/InventoryBar.js +177 -0
  911. package/dist/src/ui/components/InventoryGrid.d.ts +139 -0
  912. package/dist/src/ui/components/InventoryGrid.js +407 -0
  913. package/dist/src/ui/components/Minimap.d.ts +39 -0
  914. package/dist/src/ui/components/Minimap.js +156 -0
  915. package/dist/src/ui/components/NumberDisplay.d.ts +51 -0
  916. package/dist/src/ui/components/NumberDisplay.js +164 -0
  917. package/dist/src/ui/components/ProgressBar.d.ts +115 -0
  918. package/dist/src/ui/components/ProgressBar.js +347 -0
  919. package/dist/src/ui/components/ReloadIndicator.d.ts +29 -0
  920. package/dist/src/ui/components/ReloadIndicator.js +147 -0
  921. package/dist/src/ui/components/index.d.ts +11 -0
  922. package/dist/src/ui/components/index.js +13 -0
  923. package/dist/src/ui/index.d.ts +21 -0
  924. package/dist/src/ui/index.js +22 -0
  925. package/dist/src/ui/ui-loader.d.ts +49 -0
  926. package/dist/src/ui/ui-loader.js +83 -0
  927. package/dist/src/utils/Color.d.ts +48 -0
  928. package/dist/src/utils/Color.js +121 -0
  929. package/dist/src/utils/Delegate.d.ts +72 -0
  930. package/dist/src/utils/Delegate.js +102 -0
  931. package/dist/src/utils/DescriptionHelpers.d.ts +47 -0
  932. package/dist/src/utils/DescriptionHelpers.js +65 -0
  933. package/dist/src/utils/EditorClassMeta.d.ts +99 -0
  934. package/dist/src/utils/EditorClassMeta.js +2 -0
  935. package/dist/src/utils/GlobalAudioManager.d.ts +141 -0
  936. package/dist/src/utils/GlobalAudioManager.js +312 -0
  937. package/dist/src/utils/IAsyncLoadable.d.ts +94 -0
  938. package/dist/src/utils/IAsyncLoadable.js +52 -0
  939. package/dist/src/utils/MaterialHelpers.d.ts +67 -0
  940. package/dist/src/utils/MaterialHelpers.js +278 -0
  941. package/dist/src/utils/MathHelpers.d.ts +65 -0
  942. package/dist/src/utils/MathHelpers.js +60 -0
  943. package/dist/src/utils/NodeJs.d.ts +1 -0
  944. package/dist/src/utils/NodeJs.js +81 -0
  945. package/dist/src/utils/Perlin.d.ts +39 -0
  946. package/dist/src/utils/Perlin.js +380 -0
  947. package/dist/src/utils/ResourceManager.d.ts +183 -0
  948. package/dist/src/utils/ResourceManager.js +703 -0
  949. package/dist/src/utils/SceneGraphUtils.d.ts +26 -0
  950. package/dist/src/utils/SceneGraphUtils.js +139 -0
  951. package/dist/src/utils/Spawn.d.ts +27 -0
  952. package/dist/src/utils/Spawn.js +73 -0
  953. package/dist/src/utils/ThreeJsExtensions.d.ts +298 -0
  954. package/dist/src/utils/ThreeJsExtensions.js +817 -0
  955. package/dist/src/utils/TweenExtensions.d.ts +8 -0
  956. package/dist/src/utils/TweenExtensions.js +103 -0
  957. package/dist/src/utils/UserCodeEngine.d.ts +70 -0
  958. package/dist/src/utils/UserCodeEngine.js +235 -0
  959. package/dist/src/utils/Utils.d.ts +65 -0
  960. package/dist/src/utils/Utils.js +296 -0
  961. package/dist/src/utils/VRButtonUtils.d.ts +21 -0
  962. package/dist/src/utils/VRButtonUtils.js +88 -0
  963. package/dist/src/utils/browser-polyfills/module.d.ts +20 -0
  964. package/dist/src/utils/browser-polyfills/module.js +31 -0
  965. package/dist/src/utils/browser-polyfills/path.d.ts +69 -0
  966. package/dist/src/utils/browser-polyfills/path.js +188 -0
  967. package/dist/src/utils/index.d.ts +29 -0
  968. package/dist/src/utils/index.js +30 -0
  969. package/dist/src/utils/serialization/cdo.d.ts +6 -0
  970. package/dist/src/utils/serialization/cdo.js +74 -0
  971. package/dist/src/utils/serialization/clsAlias.d.ts +15 -0
  972. package/dist/src/utils/serialization/clsAlias.js +96 -0
  973. package/dist/src/utils/serialization/decorator.d.ts +132 -0
  974. package/dist/src/utils/serialization/decorator.js +66 -0
  975. package/dist/src/utils/serialization/index.d.ts +7 -0
  976. package/dist/src/utils/serialization/index.js +8 -0
  977. package/dist/src/utils/serialization/prefab.d.ts +9 -0
  978. package/dist/src/utils/serialization/prefab.js +55 -0
  979. package/dist/src/utils/serialization/prefabManager.d.ts +17 -0
  980. package/dist/src/utils/serialization/prefabManager.js +84 -0
  981. package/dist/src/utils/serialization/serializable.d.ts +23 -0
  982. package/dist/src/utils/serialization/serializable.js +2 -0
  983. package/dist/src/utils/serialization/serializer.d.ts +126 -0
  984. package/dist/src/utils/serialization/serializer.js +1032 -0
  985. package/dist/src/utils/serialization/specialization.d.ts +1 -0
  986. package/dist/src/utils/serialization/specialization.js +194 -0
  987. package/dist/src/utils/serialization/specializationUtils.d.ts +27 -0
  988. package/dist/src/utils/serialization/specializationUtils.js +137 -0
  989. package/dist/src/vfx/VFXComponent.d.ts +65 -0
  990. package/dist/src/vfx/VFXComponent.js +202 -0
  991. package/dist/src/vfx/index.d.ts +11 -0
  992. package/dist/src/vfx/index.js +11 -0
  993. package/dist/src/vfx/types.d.ts +146 -0
  994. package/dist/src/vfx/types.js +146 -0
  995. package/dist/src/world-commands/common.d.ts +23 -0
  996. package/dist/src/world-commands/common.js +2 -0
  997. package/dist/src/world-commands/generate-code.d.ts +3 -0
  998. package/dist/src/world-commands/generate-code.js +90 -0
  999. package/dist/src/world-commands/index.d.ts +19 -0
  1000. package/dist/src/world-commands/index.js +20 -0
  1001. package/dist/src/world-commands/place-gltf.d.ts +25 -0
  1002. package/dist/src/world-commands/place-gltf.js +39 -0
  1003. package/dist/src/world-commands/place-prefab.d.ts +25 -0
  1004. package/dist/src/world-commands/place-prefab.js +40 -0
  1005. package/dist/src/world-commands/place-primitive.d.ts +39 -0
  1006. package/dist/src/world-commands/place-primitive.js +100 -0
  1007. package/dist/src/world-commands/remove-actors.d.ts +23 -0
  1008. package/dist/src/world-commands/remove-actors.js +9 -0
  1009. package/dist/src/xr/VRActor.d.ts +46 -0
  1010. package/dist/src/xr/VRActor.js +56 -0
  1011. package/dist/src/xr/VRControllerHandler.d.ts +25 -0
  1012. package/dist/src/xr/VRControllerHandler.js +74 -0
  1013. package/dist/src/xr/VRControllerManager.d.ts +194 -0
  1014. package/dist/src/xr/VRControllerManager.js +539 -0
  1015. package/dist/src/xr/VRDeviceHandler.d.ts +47 -0
  1016. package/dist/src/xr/VRDeviceHandler.js +61 -0
  1017. package/dist/src/xr/VRHandHandler.d.ts +23 -0
  1018. package/dist/src/xr/VRHandHandler.js +161 -0
  1019. package/dist/src/xr/VRInputDevice.d.ts +100 -0
  1020. package/dist/src/xr/VRInputDevice.js +367 -0
  1021. package/dist/src/xr/VRPawn.d.ts +198 -0
  1022. package/dist/src/xr/VRPawn.js +771 -0
  1023. package/dist/src/xr/actor-components/CanvasUIComponent.d.ts +61 -0
  1024. package/dist/src/xr/actor-components/CanvasUIComponent.js +418 -0
  1025. package/dist/src/xr/actor-components/VRBaseComponent.d.ts +15 -0
  1026. package/dist/src/xr/actor-components/VRBaseComponent.js +24 -0
  1027. package/dist/src/xr/actor-components/VRGrabbableComponent.d.ts +31 -0
  1028. package/dist/src/xr/actor-components/VRGrabbableComponent.js +81 -0
  1029. package/dist/src/xr/actor-components/VRInteractableComponent.d.ts +19 -0
  1030. package/dist/src/xr/actor-components/VRInteractableComponent.js +50 -0
  1031. package/dist/src/xr/index.d.ts +17 -0
  1032. package/dist/src/xr/index.js +18 -0
  1033. package/dist/src/xr/pawn-components/VRGrabComponent.d.ts +36 -0
  1034. package/dist/src/xr/pawn-components/VRGrabComponent.js +445 -0
  1035. package/dist/src/xr/pawn-components/VRInteractComponent.d.ts +20 -0
  1036. package/dist/src/xr/pawn-components/VRInteractComponent.js +81 -0
  1037. package/dist/src/xr/pawn-components/VRSnapTurnComponent.d.ts +25 -0
  1038. package/dist/src/xr/pawn-components/VRSnapTurnComponent.js +114 -0
  1039. package/dist/src/xr/pawn-components/VRTeleportComponent.d.ts +42 -0
  1040. package/dist/src/xr/pawn-components/VRTeleportComponent.js +318 -0
  1041. package/dist/src/xr/ui/CanvasColorPicker.d.ts +33 -0
  1042. package/dist/src/xr/ui/CanvasColorPicker.js +188 -0
  1043. package/dist/src/xr/ui/CanvasKeyboard.d.ts +21 -0
  1044. package/dist/src/xr/ui/CanvasKeyboard.js +281 -0
  1045. package/dist/src/xr/ui/CanvasSlider.d.ts +21 -0
  1046. package/dist/src/xr/ui/CanvasSlider.js +112 -0
  1047. package/dist/src/xr/ui/CanvasUI.d.ts +129 -0
  1048. package/dist/src/xr/ui/CanvasUI.js +876 -0
  1049. package/dist/src/xr/ui/index.d.ts +8 -0
  1050. package/dist/src/xr/ui/index.js +9 -0
  1051. package/dist/test/absolute-transform.test.d.ts +1 -0
  1052. package/dist/test/absolute-transform.test.js +796 -0
  1053. package/dist/test/asset-path.test.d.ts +1 -0
  1054. package/dist/test/asset-path.test.js +339 -0
  1055. package/dist/test/component.test.d.ts +1 -0
  1056. package/dist/test/component.test.js +24 -0
  1057. package/dist/test/construction.test.d.ts +1 -0
  1058. package/dist/test/construction.test.js +26 -0
  1059. package/dist/test/default-options-validation.test.d.ts +1 -0
  1060. package/dist/test/default-options-validation.test.js +186 -0
  1061. package/dist/test/metadata.test.d.ts +1 -0
  1062. package/dist/test/metadata.test.js +82 -0
  1063. package/dist/test/nodeStorage.d.ts +19 -0
  1064. package/dist/test/nodeStorage.js +85 -0
  1065. package/dist/test/postprocess-manager.test.d.ts +1 -0
  1066. package/dist/test/postprocess-manager.test.js +77 -0
  1067. package/dist/test/prefab.test.d.ts +1 -0
  1068. package/dist/test/prefab.test.js +903 -0
  1069. package/dist/test/scene-component.test.d.ts +1 -0
  1070. package/dist/test/scene-component.test.js +13 -0
  1071. package/dist/test/scene-graph.test.d.ts +1 -0
  1072. package/dist/test/scene-graph.test.js +163 -0
  1073. package/dist/test/serialization-v1.test.d.ts +15 -0
  1074. package/dist/test/serialization-v1.test.js +1057 -0
  1075. package/dist/test/serialization.test.d.ts +1 -0
  1076. package/dist/test/serialization.test.js +425 -0
  1077. package/dist/test/spawn.test.d.ts +1 -0
  1078. package/dist/test/spawn.test.js +137 -0
  1079. package/dist/test/utils.d.ts +27 -0
  1080. package/dist/test/utils.js +115 -0
  1081. package/docs/agent-instructions.md +49 -0
  1082. package/docs/deprecated/8-guide-user-interface-2.md +600 -0
  1083. package/docs/deprecated/Agents.md +117 -0
  1084. package/docs/deprecated/TELEGRAM_MINIAPP_SUPPORT_PLAN.md +283 -0
  1085. package/docs/deprecated/summary-2.md +101 -0
  1086. package/docs/engine-summary.md +104 -0
  1087. package/docs/guides/0-world-and-gameloop.md +331 -0
  1088. package/docs/guides/1-actors-and-components.md +955 -0
  1089. package/docs/guides/10-camera-system.md +778 -0
  1090. package/docs/guides/11-equipment-and-weapons.md +850 -0
  1091. package/docs/guides/12-threejs-extensions.md +528 -0
  1092. package/docs/guides/13-visual-effects-and-particles.md +530 -0
  1093. package/docs/guides/14-sound-system.md +436 -0
  1094. package/docs/guides/15-global-audio-manager.md +367 -0
  1095. package/docs/guides/15-navigation-and-pathfinding.md +818 -0
  1096. package/docs/guides/16-ragdoll-physics.md +479 -0
  1097. package/docs/guides/17-asset-referencing.md +248 -0
  1098. package/docs/guides/18-lightmapping-system.md +984 -0
  1099. package/docs/guides/19-webxr-virtual-reality.md +367 -0
  1100. package/docs/guides/2-player-inputs-and-controls.md +737 -0
  1101. package/docs/guides/3-physics-and-collisions.md +248 -0
  1102. package/docs/guides/4-visuals-and-rendering.md +946 -0
  1103. package/docs/guides/5-animation.md +310 -0
  1104. package/docs/guides/6-ai-and-behavior-trees.md +1316 -0
  1105. package/docs/guides/7-building-levels.md +211 -0
  1106. package/docs/guides/8-user-interface.md +291 -0
  1107. package/docs/guides/9-multiplayer.md +181 -0
  1108. package/docs/high-level-class-hierarchy.md +218 -0
  1109. package/eslint-rules/constructor-type-consistency.js +251 -0
  1110. package/eslint-rules/default-getter-return-type.js +42 -0
  1111. package/eslint-rules/engine-class-name-consistency.js +62 -0
  1112. package/eslint-rules/no-async-override-mismatch.js +100 -0
  1113. package/eslint-rules/no-default-class-fields.js +66 -0
  1114. package/eslint-rules/no-override-methods.js +158 -0
  1115. package/games/animation-demo.ts +367 -0
  1116. package/games/animation-retarget-demo.ts +553 -0
  1117. package/games/behavior-tree-demo.ts +1774 -0
  1118. package/games/character_animation.ts +194 -0
  1119. package/games/collision-demo.ts +139 -0
  1120. package/games/deprecated/advanced-grid-demo.ts +336 -0
  1121. package/games/deprecated/airplane-demo.ts +156 -0
  1122. package/games/deprecated/character-controller.ts +161 -0
  1123. package/games/deprecated/chase-game.ts +310 -0
  1124. package/games/deprecated/collision-config.ts +317 -0
  1125. package/games/deprecated/door-demo.ts +641 -0
  1126. package/games/deprecated/fps-demo.ts +128 -0
  1127. package/games/deprecated/fps-shotgun-demo.ts +227 -0
  1128. package/games/deprecated/index.ts +25 -0
  1129. package/games/deprecated/lightmapping-demo.ts +1515 -0
  1130. package/games/deprecated/lights-demo.ts +957 -0
  1131. package/games/deprecated/matcap-demo.ts +823 -0
  1132. package/games/deprecated/material-demo-2.ts +582 -0
  1133. package/games/deprecated/material-demo.ts +204 -0
  1134. package/games/deprecated/memory-leak-test.ts +23 -0
  1135. package/games/deprecated/model-stress-test.ts +150 -0
  1136. package/games/deprecated/multiplayer-demo.ts +392 -0
  1137. package/games/deprecated/physics-demo.ts +199 -0
  1138. package/games/deprecated/shadow-demo.ts +435 -0
  1139. package/games/deprecated/shooting-demo.ts +352 -0
  1140. package/games/deprecated/skybox-demo.ts +341 -0
  1141. package/games/deprecated/sound-demo.ts +117 -0
  1142. package/games/deprecated/timer-demo.ts +178 -0
  1143. package/games/deprecated/voxel-demo.ts +50 -0
  1144. package/games/deprecated/world-commands.ts +184 -0
  1145. package/games/deprecated/world-loading.ts +90 -0
  1146. package/games/examples/fps-advanced/const.ts +122 -0
  1147. package/games/examples/fps-advanced/enemies.ts +174 -0
  1148. package/games/examples/fps-advanced/game-mode.ts +347 -0
  1149. package/games/examples/fps-advanced/game.ts +74 -0
  1150. package/games/examples/fps-advanced/pickups.ts +225 -0
  1151. package/games/examples/fps-advanced/player.ts +101 -0
  1152. package/games/examples/fps-advanced/ui/endgame-ui.ts +277 -0
  1153. package/games/examples/fps-advanced/ui/game-hud.ts +211 -0
  1154. package/games/examples/fps-advanced/ui/menu-ui.ts +217 -0
  1155. package/games/examples/fps-advanced/ui/weapon-hud.ts +254 -0
  1156. package/games/examples/fps-advanced/weapons.ts +209 -0
  1157. package/games/examples/index.ts +5 -0
  1158. package/games/examples/plugin-demo/game.ts +175 -0
  1159. package/games/examples/plugin-demo/plugins/dynamic-lighting.ts +146 -0
  1160. package/games/examples/plugin-demo/plugins/instanced-forest.ts +186 -0
  1161. package/games/examples/plugin-demo/plugins/particle-fountain.ts +63 -0
  1162. package/games/examples/plugin-demo/plugins/physics-playground.ts +189 -0
  1163. package/games/examples/plugin-demo/plugins/robot-follower.ts +306 -0
  1164. package/games/examples/plugin-demo/plugins/scatter-models.ts +74 -0
  1165. package/games/examples/plugin-demo/plugins/simple-cube.ts +44 -0
  1166. package/games/examples/plugin-demo/plugins/tic-tac-toe.ts +522 -0
  1167. package/games/examples/plugin-demo/plugins/wobbling-sphere.ts +66 -0
  1168. package/games/examples/side-scroller-advanced/const.ts +88 -0
  1169. package/games/examples/side-scroller-advanced/game-mode.ts +350 -0
  1170. package/games/examples/side-scroller-advanced/game.ts +80 -0
  1171. package/games/examples/side-scroller-advanced/level-generator.ts +384 -0
  1172. package/games/examples/side-scroller-advanced/pickups.ts +132 -0
  1173. package/games/examples/side-scroller-advanced/player.ts +105 -0
  1174. package/games/examples/side-scroller-advanced/ui/endgame-ui.ts +278 -0
  1175. package/games/examples/side-scroller-advanced/ui/game-hud.ts +238 -0
  1176. package/games/examples/side-scroller-advanced/ui/menu-ui.ts +215 -0
  1177. package/games/examples/vehicle/base-vehicle.ts +159 -0
  1178. package/games/examples/vehicle/game.ts +154 -0
  1179. package/games/examples/vehicle/mesh-vehicle.ts +191 -0
  1180. package/games/examples/vehicle/player.ts +86 -0
  1181. package/games/examples/vehicle/primitive-vehicle.ts +266 -0
  1182. package/games/examples/vr-game/VRAttachableCube.ts +39 -0
  1183. package/games/examples/vr-game/VRInteractableCylinder.ts +83 -0
  1184. package/games/examples/vr-game/VRPressableButton.ts +113 -0
  1185. package/games/examples/vr-game/VRProjectileActor.ts +69 -0
  1186. package/games/examples/vr-game/VRRifleActor.ts +138 -0
  1187. package/games/examples/vr-game/game.ts +69 -0
  1188. package/games/examples/vr-game/index.ts +9 -0
  1189. package/games/examples/vr-game/scene.ts +99 -0
  1190. package/games/hand-tracking-demo.ts +71 -0
  1191. package/games/index.ts +21 -0
  1192. package/games/instanced-mesh-demo.ts +429 -0
  1193. package/games/manifold-demo.ts +52 -0
  1194. package/games/navigation-demo.ts +351 -0
  1195. package/games/navmesh-primitives-demo.ts +1252 -0
  1196. package/games/performance-test-demo.ts +237 -0
  1197. package/games/postprocess-demo.ts +867 -0
  1198. package/games/ragdoll-demo-simple.ts +163 -0
  1199. package/games/ragdoll-demo.ts +272 -0
  1200. package/games/swipe-tap-demo.ts +228 -0
  1201. package/games/tween-demo.ts +125 -0
  1202. package/games/ui-demo.ts +1058 -0
  1203. package/games/vfx-demo.ts +922 -0
  1204. package/games/vfx-wawa-demo.ts +540 -0
  1205. package/games/vr-ui-demo-minimal.ts +156 -0
  1206. package/games/vr-ui-demo.ts +972 -0
  1207. package/package.json +104 -0
  1208. package/scripts/build-browser-bundle.ts +75 -0
  1209. package/scripts/check-asset-path.ts +166 -0
  1210. package/scripts/dump-templates.ts +21 -0
  1211. package/scripts/generate-dependencies.ts +145 -0
  1212. package/scripts/generate-prefabs.ts +120 -0
  1213. package/scripts/load-save-world.ts +44 -0
  1214. package/scripts/loc.ts +112 -0
  1215. package/scripts/optimize-glb-wrapper.ts +28 -0
  1216. package/scripts/optimize-glb.ts +352 -0
  1217. package/scripts/session-server.ts +861 -0
  1218. package/scripts/test-world-loading.ts +23 -0
  1219. package/src/actors/Actor.ts +1183 -0
  1220. package/src/actors/GLTFMeshActor.ts +107 -0
  1221. package/src/actors/GlobalParticleManager.ts +460 -0
  1222. package/src/actors/Pawn.ts +370 -0
  1223. package/src/actors/PlayerController.ts +646 -0
  1224. package/src/actors/PlayerStart.ts +47 -0
  1225. package/src/actors/Projectile.ts +179 -0
  1226. package/src/actors/RagdollTestActor.ts +153 -0
  1227. package/src/actors/ThirdPersonCharacterPawn.ts +139 -0
  1228. package/src/actors/index.ts +21 -0
  1229. package/src/animation/AnimationClipCache.ts +86 -0
  1230. package/src/animation/AnimationRetargeting.ts +566 -0
  1231. package/src/animation/SkeletonProfile.ts +137 -0
  1232. package/src/animation/index.ts +14 -0
  1233. package/src/animation/retargeting.ts +866 -0
  1234. package/src/components/CharacterStatsComponent.ts +199 -0
  1235. package/src/components/CollisionShapeComponent.ts +256 -0
  1236. package/src/components/Component.ts +111 -0
  1237. package/src/components/FollowComponent.ts +149 -0
  1238. package/src/components/PrimitiveComponent.ts +368 -0
  1239. package/src/components/ResetPositionComponent.ts +175 -0
  1240. package/src/components/SceneComponent.ts +628 -0
  1241. package/src/components/audio/SoundComponent.ts +385 -0
  1242. package/src/components/audio/index.ts +11 -0
  1243. package/src/components/csg/CSGCombiner.ts +268 -0
  1244. package/src/components/csg/CSGShapes.ts +344 -0
  1245. package/src/components/csg/index.ts +12 -0
  1246. package/src/components/gameplay/BaseWeaponComponent.ts +597 -0
  1247. package/src/components/gameplay/DoorComponent.ts +930 -0
  1248. package/src/components/gameplay/Equipment.ts +30 -0
  1249. package/src/components/gameplay/GenericEquipment.ts +96 -0
  1250. package/src/components/gameplay/InstantHitWeaponComponent.ts +248 -0
  1251. package/src/components/gameplay/PickupComponent.ts +473 -0
  1252. package/src/components/gameplay/ProjectileWeaponComponent.ts +114 -0
  1253. package/src/components/gameplay/ShotgunComponent.ts +220 -0
  1254. package/src/components/gameplay/SwitchComponent.ts +466 -0
  1255. package/src/components/gameplay/TriggerZoneComponent.ts +346 -0
  1256. package/src/components/gameplay/index.ts +20 -0
  1257. package/src/components/index.ts +19 -0
  1258. package/src/components/lights/AmbientLightComponent.ts +72 -0
  1259. package/src/components/lights/DirectionalLightComponent.ts +163 -0
  1260. package/src/components/lights/HemisphereLightComponent.ts +132 -0
  1261. package/src/components/lights/LightComponent.ts +351 -0
  1262. package/src/components/lights/PointLightComponent.ts +115 -0
  1263. package/src/components/lights/RectAreaLightComponent.ts +151 -0
  1264. package/src/components/lights/SpotLightComponent.ts +193 -0
  1265. package/src/components/lights/index.ts +17 -0
  1266. package/src/components/movement/AerialMovementComponent.ts +348 -0
  1267. package/src/components/movement/AirplaneMovementComponent.ts +236 -0
  1268. package/src/components/movement/BasePawnMovementComponent.ts +297 -0
  1269. package/src/components/movement/CharacterMovementComponent.ts +446 -0
  1270. package/src/components/movement/DirectionalCharacterMovementComponent.ts +79 -0
  1271. package/src/components/movement/NpcMovementComponent.ts +930 -0
  1272. package/src/components/movement/PathMovementComponent.ts +190 -0
  1273. package/src/components/movement/TopDownMovementComponent.ts +88 -0
  1274. package/src/components/movement/TweenMovementComponent.ts +386 -0
  1275. package/src/components/movement/VehicleMovementComponent.ts +469 -0
  1276. package/src/components/movement/index.ts +19 -0
  1277. package/src/components/physics/RagdollComponent.ts +730 -0
  1278. package/src/components/visual/AnimationComponent.ts +208 -0
  1279. package/src/components/visual/AnimationStateMachineComponent.ts +1079 -0
  1280. package/src/components/visual/BaseInstancedMeshComponent.ts +904 -0
  1281. package/src/components/visual/BillboardComponent.ts +127 -0
  1282. package/src/components/visual/EditorOnlyMeshComponent.ts +54 -0
  1283. package/src/components/visual/FogComponent.ts +131 -0
  1284. package/src/components/visual/GLTFMeshComponent.ts +444 -0
  1285. package/src/components/visual/InstancedGltfMeshComponent.ts +215 -0
  1286. package/src/components/visual/InstancedMeshComponent.ts +118 -0
  1287. package/src/components/visual/MeshComponent.ts +224 -0
  1288. package/src/components/visual/ParticleEmitterComponent.ts +628 -0
  1289. package/src/components/visual/SkyboxComponent.ts +381 -0
  1290. package/src/components/visual/TerrainMeshComponent.ts +346 -0
  1291. package/src/components/visual/UI3DComponent.ts +264 -0
  1292. package/src/components/visual/index.ts +23 -0
  1293. package/src/components/voxel/MagicaVoxelLoader.ts +184 -0
  1294. package/src/components/voxel/VoxelMeshComponent.ts +274 -0
  1295. package/src/components/voxel/index.ts +3 -0
  1296. package/src/const.ts +68 -0
  1297. package/src/csg/CSGUtils.ts +771 -0
  1298. package/src/csg/ManifoldWrapper.ts +704 -0
  1299. package/src/csg/index.ts +13 -0
  1300. package/src/dependencies.ts +76 -0
  1301. package/src/game/GameBuilder.ts +280 -0
  1302. package/src/game/GameLoop.ts +614 -0
  1303. package/src/game/GameMode.ts +127 -0
  1304. package/src/game/Playable.ts +84 -0
  1305. package/src/game/World.ts +1430 -0
  1306. package/src/game/index.ts +18 -0
  1307. package/src/global.d.ts +11 -0
  1308. package/src/index.ts +39 -0
  1309. package/src/materials.ts +181 -0
  1310. package/src/multiplayer/MovementPrediction.ts +202 -0
  1311. package/src/multiplayer/NetWorld.ts +920 -0
  1312. package/src/multiplayer/README.md +349 -0
  1313. package/src/multiplayer/implementations/MemorySession.ts +112 -0
  1314. package/src/multiplayer/implementations/WebSocketSession.ts +468 -0
  1315. package/src/multiplayer/implementations/index.ts +14 -0
  1316. package/src/multiplayer/index.ts +16 -0
  1317. package/src/multiplayer/interface.ts +174 -0
  1318. package/src/navigation/NavigationServer.ts +170 -0
  1319. package/src/navigation/RecastNavigationServer.ts +370 -0
  1320. package/src/navigation/index.ts +17 -0
  1321. package/src/npc/behavior-tree/BehaviorNode.ts +191 -0
  1322. package/src/npc/behavior-tree/BehaviorTreeComponent.ts +351 -0
  1323. package/src/npc/behavior-tree/behaviors/BehaviorAction.ts +97 -0
  1324. package/src/npc/behavior-tree/behaviors/ConditionEvaluator.ts +128 -0
  1325. package/src/npc/behavior-tree/behaviors/actions/aerial/AerialMoveToTargetAction.ts +128 -0
  1326. package/src/npc/behavior-tree/behaviors/actions/aerial/AerialSearchAction.ts +159 -0
  1327. package/src/npc/behavior-tree/behaviors/actions/aerial/AerialTrackTargetAction.ts +76 -0
  1328. package/src/npc/behavior-tree/behaviors/actions/aerial/AerialWanderAction.ts +160 -0
  1329. package/src/npc/behavior-tree/behaviors/actions/aerial/index.ts +5 -0
  1330. package/src/npc/behavior-tree/behaviors/actions/combat/MeleeAttackAction.ts +151 -0
  1331. package/src/npc/behavior-tree/behaviors/actions/combat/ShootAction.ts +158 -0
  1332. package/src/npc/behavior-tree/behaviors/actions/combat/index.ts +3 -0
  1333. package/src/npc/behavior-tree/behaviors/actions/ground/FleeFromTargetAction.ts +157 -0
  1334. package/src/npc/behavior-tree/behaviors/actions/ground/FollowActorAction.ts +131 -0
  1335. package/src/npc/behavior-tree/behaviors/actions/ground/MoveToPositionAction.ts +99 -0
  1336. package/src/npc/behavior-tree/behaviors/actions/ground/SetNextWaypointAction.ts +114 -0
  1337. package/src/npc/behavior-tree/behaviors/actions/ground/WanderAction.ts +146 -0
  1338. package/src/npc/behavior-tree/behaviors/actions/ground/index.ts +6 -0
  1339. package/src/npc/behavior-tree/behaviors/actions/index.ts +13 -0
  1340. package/src/npc/behavior-tree/behaviors/actions/utility/CalculateTacticalPositionAction.ts +117 -0
  1341. package/src/npc/behavior-tree/behaviors/actions/utility/LookAtTargetAction.ts +136 -0
  1342. package/src/npc/behavior-tree/behaviors/actions/utility/WaitAction.ts +70 -0
  1343. package/src/npc/behavior-tree/behaviors/actions/utility/index.ts +4 -0
  1344. package/src/npc/behavior-tree/behaviors/conditions/BlackboardValueCondition.ts +144 -0
  1345. package/src/npc/behavior-tree/behaviors/conditions/CanSeeTargetCondition.ts +171 -0
  1346. package/src/npc/behavior-tree/behaviors/conditions/HasLastKnownPositionCondition.ts +63 -0
  1347. package/src/npc/behavior-tree/behaviors/conditions/HpAbovePercentCondition.ts +83 -0
  1348. package/src/npc/behavior-tree/behaviors/conditions/IsPlayerNearCondition.ts +49 -0
  1349. package/src/npc/behavior-tree/behaviors/conditions/TargetBelowHpPercentCondition.ts +61 -0
  1350. package/src/npc/behavior-tree/behaviors/conditions/TargetInConeCondition.ts +106 -0
  1351. package/src/npc/behavior-tree/behaviors/conditions/TimeLimitCondition.ts +65 -0
  1352. package/src/npc/behavior-tree/behaviors/conditions/index.ts +19 -0
  1353. package/src/npc/behavior-tree/behaviors/index.ts +9 -0
  1354. package/src/npc/behavior-tree/blackboard/Blackboard.ts +127 -0
  1355. package/src/npc/behavior-tree/blackboard/BlackboardKey.ts +59 -0
  1356. package/src/npc/behavior-tree/blackboard/index.ts +2 -0
  1357. package/src/npc/behavior-tree/index.ts +27 -0
  1358. package/src/npc/behavior-tree/loader/BehaviorTreeLoader.ts +296 -0
  1359. package/src/npc/behavior-tree/nodes/CompositeNode.ts +100 -0
  1360. package/src/npc/behavior-tree/nodes/LeafNode.ts +11 -0
  1361. package/src/npc/behavior-tree/nodes/composite/SelectorNode.ts +56 -0
  1362. package/src/npc/behavior-tree/nodes/composite/SequenceNode.ts +56 -0
  1363. package/src/physics/BasePhysicsEngine.ts +1486 -0
  1364. package/src/physics/IPhysicsVehicle.ts +162 -0
  1365. package/src/physics/PhysicsEngine.ts +517 -0
  1366. package/src/physics/PhysicsTypes.ts +116 -0
  1367. package/src/physics/implementations/RapierDebugRender.ts +55 -0
  1368. package/src/physics/implementations/RapierPhysics.ts +1419 -0
  1369. package/src/physics/implementations/RapierVehicle.ts +267 -0
  1370. package/src/physics/index.ts +16 -0
  1371. package/src/render/EdgeOutlineEffect.ts +365 -0
  1372. package/src/render/PostProcessManager.ts +1025 -0
  1373. package/src/render/Renderer.ts +310 -0
  1374. package/src/render/Texture.ts +140 -0
  1375. package/src/render/index.ts +22 -0
  1376. package/src/render/lightmapping/LightmapAtlas.ts +248 -0
  1377. package/src/render/lightmapping/LightmapBaker.ts +333 -0
  1378. package/src/render/lightmapping/LightmapManager.ts +752 -0
  1379. package/src/render/lightmapping/LightmapMaterial.ts +283 -0
  1380. package/src/render/lightmapping/LightmapSerialization.ts +336 -0
  1381. package/src/render/lightmapping/LightmapSerializer.ts +309 -0
  1382. package/src/render/lightmapping/MultiLightmapperMaterial.ts +484 -0
  1383. package/src/render/lightmapping/index.ts +18 -0
  1384. package/src/render/postprocessing/EffectPassWrapper.ts +47 -0
  1385. package/src/render/postprocessing/ObjectOutlineEffect.ts +356 -0
  1386. package/src/render/postprocessing/index.ts +2 -0
  1387. package/src/runtime/GameRuntime.ts +153 -0
  1388. package/src/runtime/InjectedDependencies.ts +70 -0
  1389. package/src/runtime/Utils.ts +146 -0
  1390. package/src/runtime/index.ts +4 -0
  1391. package/src/runtime/materials/MatcapShaderMaterial.ts +242 -0
  1392. package/src/runtime/materials/index.ts +1 -0
  1393. package/src/scripting/Plugin.ts +67 -0
  1394. package/src/scripting/PluginManager.ts +99 -0
  1395. package/src/scripting/index.ts +1 -0
  1396. package/src/storage/defaultStorageProvider.ts +95 -0
  1397. package/src/storage/index.ts +16 -0
  1398. package/src/storage/projectContext.ts +176 -0
  1399. package/src/storage/storageProvider.ts +271 -0
  1400. package/src/systems/ClassRegistry.ts +484 -0
  1401. package/src/systems/ConsoleManager.ts +484 -0
  1402. package/src/systems/ConsoleVariableHandler.ts +105 -0
  1403. package/src/systems/ConsoleVariableManager.ts +288 -0
  1404. package/src/systems/InputManager.ts +1255 -0
  1405. package/src/systems/ObjectNamingSystem.ts +30 -0
  1406. package/src/systems/Stats.ts +178 -0
  1407. package/src/systems/TimerSystem.ts +353 -0
  1408. package/src/systems/TweenManager.ts +107 -0
  1409. package/src/systems/WorldSerialization.ts +1211 -0
  1410. package/src/systems/collision/CollisionConfig.ts +281 -0
  1411. package/src/systems/collision/CollisionTypes.ts +185 -0
  1412. package/src/systems/collision/index.ts +15 -0
  1413. package/src/systems/index.ts +23 -0
  1414. package/src/templates/MyActor.ts +29 -0
  1415. package/src/templates/MySceneComponent.ts +29 -0
  1416. package/src/templates/README.md +1 -0
  1417. package/src/types/rapier-es.d.ts +16 -0
  1418. package/src/types/stats.js.d.ts +22 -0
  1419. package/src/ui/LoadingScreen.ts +110 -0
  1420. package/src/ui/UIElement.ts +224 -0
  1421. package/src/ui/UILayout.ts +269 -0
  1422. package/src/ui/UIManager.ts +161 -0
  1423. package/src/ui/UIResource.ts +20 -0
  1424. package/src/ui/components/AmmoCounter.ts +126 -0
  1425. package/src/ui/components/BaseUIComponent.md +296 -0
  1426. package/src/ui/components/BaseUIComponent.ts +390 -0
  1427. package/src/ui/components/Compass.ts +144 -0
  1428. package/src/ui/components/ControlsPanel.ts +62 -0
  1429. package/src/ui/components/Crosshair.ts +76 -0
  1430. package/src/ui/components/InventoryBar.ts +224 -0
  1431. package/src/ui/components/InventoryGrid.ts +471 -0
  1432. package/src/ui/components/Minimap.ts +181 -0
  1433. package/src/ui/components/NumberDisplay.ts +198 -0
  1434. package/src/ui/components/ProgressBar.ts +403 -0
  1435. package/src/ui/components/ReloadIndicator.ts +159 -0
  1436. package/src/ui/components/index.ts +12 -0
  1437. package/src/ui/index.ts +21 -0
  1438. package/src/ui/ui-loader.ts +87 -0
  1439. package/src/utils/Color.ts +51 -0
  1440. package/src/utils/Delegate.ts +112 -0
  1441. package/src/utils/DescriptionHelpers.ts +93 -0
  1442. package/src/utils/EditorClassMeta.ts +91 -0
  1443. package/src/utils/GlobalAudioManager.ts +370 -0
  1444. package/src/utils/IAsyncLoadable.ts +122 -0
  1445. package/src/utils/MaterialHelpers.ts +321 -0
  1446. package/src/utils/MathHelpers.ts +79 -0
  1447. package/src/utils/NodeJs.ts +79 -0
  1448. package/src/utils/Perlin.ts +346 -0
  1449. package/src/utils/ResourceManager.ts +716 -0
  1450. package/src/utils/SceneGraphUtils.ts +173 -0
  1451. package/src/utils/Spawn.ts +93 -0
  1452. package/src/utils/ThreeJsExtensions.ts +1200 -0
  1453. package/src/utils/TweenExtensions.ts +124 -0
  1454. package/src/utils/UserCodeEngine.ts +243 -0
  1455. package/src/utils/Utils.ts +328 -0
  1456. package/src/utils/VRButtonUtils.ts +125 -0
  1457. package/src/utils/browser-polyfills/module.ts +36 -0
  1458. package/src/utils/browser-polyfills/path.ts +232 -0
  1459. package/src/utils/index.ts +29 -0
  1460. package/src/utils/serialization/cdo.ts +87 -0
  1461. package/src/utils/serialization/clsAlias.ts +92 -0
  1462. package/src/utils/serialization/decorator.ts +176 -0
  1463. package/src/utils/serialization/index.ts +7 -0
  1464. package/src/utils/serialization/prefab.ts +78 -0
  1465. package/src/utils/serialization/prefabManager.ts +88 -0
  1466. package/src/utils/serialization/serializable.ts +28 -0
  1467. package/src/utils/serialization/serializer.ts +1111 -0
  1468. package/src/utils/serialization/specialization.ts +224 -0
  1469. package/src/utils/serialization/specializationUtils.ts +185 -0
  1470. package/src/vfx/VFXComponent.ts +206 -0
  1471. package/src/vfx/index.ts +17 -0
  1472. package/src/vfx/types.ts +287 -0
  1473. package/src/vfx/wawa-vfx-reference.md +399 -0
  1474. package/src/world-commands/common.ts +25 -0
  1475. package/src/world-commands/generate-code.ts +99 -0
  1476. package/src/world-commands/index.ts +19 -0
  1477. package/src/world-commands/place-gltf.ts +63 -0
  1478. package/src/world-commands/place-prefab.ts +62 -0
  1479. package/src/world-commands/place-primitive.ts +128 -0
  1480. package/src/world-commands/remove-actors.ts +32 -0
  1481. package/src/xr/VRActor.ts +71 -0
  1482. package/src/xr/VRControllerHandler.ts +87 -0
  1483. package/src/xr/VRControllerManager.ts +559 -0
  1484. package/src/xr/VRDeviceHandler.ts +77 -0
  1485. package/src/xr/VRHandHandler.ts +166 -0
  1486. package/src/xr/VRInputDevice.ts +374 -0
  1487. package/src/xr/VRPawn.ts +815 -0
  1488. package/src/xr/actor-components/CanvasUIComponent.ts +425 -0
  1489. package/src/xr/actor-components/VRBaseComponent.ts +26 -0
  1490. package/src/xr/actor-components/VRGrabbableComponent.ts +73 -0
  1491. package/src/xr/actor-components/VRInteractableComponent.ts +43 -0
  1492. package/src/xr/index.ts +17 -0
  1493. package/src/xr/pawn-components/VRGrabComponent.ts +435 -0
  1494. package/src/xr/pawn-components/VRInteractComponent.ts +77 -0
  1495. package/src/xr/pawn-components/VRSnapTurnComponent.ts +103 -0
  1496. package/src/xr/pawn-components/VRTeleportComponent.ts +284 -0
  1497. package/src/xr/ui/CanvasColorPicker.ts +172 -0
  1498. package/src/xr/ui/CanvasKeyboard.ts +283 -0
  1499. package/src/xr/ui/CanvasSlider.ts +83 -0
  1500. package/src/xr/ui/CanvasUI.ts +879 -0
  1501. package/src/xr/ui/index.ts +9 -0
@@ -0,0 +1,211 @@
1
+ ## Instruction
2
+ Use this doc to learn how to build levels in Genesys.js and understand how to create game environments using primitive shapes for prototyping, GLTFMeshComponent for complex artist-created levels, and Constructive Solid Geometry (CSG) for procedural level generation.
3
+
4
+ # 7-building-levels.md
5
+
6
+ ## Building Levels in Genesys.js
7
+
8
+ A level is the environment where your game takes place. In Genesys.js, a level is composed of various `Actor`s that define the static geometry, lighting, player start points, and interactive elements. This guide covers techniques for building levels, from simple procedural geometry to complex shapes using Constructive Solid Geometry (CSG).
9
+
10
+ ---
11
+
12
+ ## 1. Creating Basic Level Geometry
13
+
14
+ For prototyping and creating simple environments, you can use the built-in primitive shapes provided by the `World` and `GameBuilder`.
15
+
16
+ ### The Ground Plane
17
+
18
+ Almost every level needs a floor. The `GameBuilder` has a convenient method for this.
19
+
20
+ ```typescript
21
+ import * as ENGINE from "genesys.js";
22
+
23
+ class MyGame extends ENGINE.BaseGameLoop {
24
+ protected override preStart(): void {
25
+ // Creates a large, static ground plane with physics enabled.
26
+ ENGINE.GameBuilder.createDefaultGround(this.world);
27
+ }
28
+ }
29
+ ```
30
+
31
+ This creates a `MeshComponent` with a `BoxGeometry` and sets up a static physics body, so other objects can collide with it.
32
+
33
+ ### Adding Primitive Shapes
34
+
35
+ The `World` object has helper methods to quickly add basic shapes to your scene. These are great for creating walls, platforms, pillars, and other simple structures.
36
+
37
+ ```typescript
38
+ import * as ENGINE from "genesys.js";
39
+
40
+ class MyGame extends ENGINE.BaseGameLoop {
41
+ protected override preStart(): void {
42
+ ENGINE.GameBuilder.createDefaultGround(this.world);
43
+ ENGINE.GameBuilder.createDefaultLighting(this.world);
44
+ ENGINE.GameBuilder.createDefaultPawnWithPhysics(this.world, ENGINE.CharacterMovementType.FirstPerson);
45
+
46
+ // Add a solid wall. It will be a dynamic physics body by default.
47
+ this.world.addBox({
48
+ position: new THREE.Vector3(0, 1, -10),
49
+ width: 10,
50
+ height: 2,
51
+ depth: 0.5,
52
+ color: 'gray',
53
+ // Let's make it static so it doesn't move.
54
+ motionType: ENGINE.PhysicsMotionType.Static
55
+ });
56
+
57
+ // Add a cylindrical pillar.
58
+ this.world.addCylinder({
59
+ position: new THREE.Vector3(-8, 2.5, -10),
60
+ radius: 0.5,
61
+ height: 5,
62
+ color: 'silver',
63
+ motionType: ENGINE.PhysicsMotionType.Static
64
+ });
65
+
66
+ // Add a floating platform.
67
+ this.world.addBox({
68
+ position: new THREE.Vector3(0, 5, -20),
69
+ width: 5,
70
+ height: 0.2,
71
+ depth: 5,
72
+ color: 'darkgreen',
73
+ motionType: ENGINE.PhysicsMotionType.Static
74
+ });
75
+ }
76
+ }
77
+ ```
78
+
79
+ These methods (`addBox`, `addSphere`, `addCylinder`, etc.) are shortcuts for creating an `Actor` with a `MeshComponent` and the specified geometry and physics properties.
80
+
81
+ ---
82
+
83
+ ## 2. Using `GLTFMeshComponent` for Level Meshes
84
+
85
+ For complex, artist-created levels, the best approach is to model the level in software like Blender and export it as a single `.glb` file. You can then load it into your scene using a `GLTFMeshComponent`.
86
+
87
+ ```typescript
88
+ import * as ENGINE from "genesys.js";
89
+
90
+ // Create an actor to hold the entire level mesh.
91
+ const levelActor = new ENGINE.Actor({
92
+ rootComponent: new ENGINE.GLTFMeshComponent({
93
+ modelUrl: '@engine/assets/levels/MyAwesomeLevel.glb',
94
+ physicsOptions: {
95
+ enabled: true,
96
+ motionType: ENGINE.PhysicsMotionType.Static,
97
+ // Use 'Trimesh' for complex, static geometry to ensure accurate collision.
98
+ collisionMeshType: ENGINE.CollisionMeshType.Trimesh
99
+ }
100
+ })
101
+ });
102
+
103
+ // Since the mesh will have shadows cast on it, we need to enable `receiveShadow`.
104
+ // We do this by traversing the model after it loads.
105
+ const levelMeshComponent = levelActor.rootComponent as ENGINE.GLTFMeshComponent;
106
+ levelMeshComponent.onModelLoaded(() => {
107
+ levelMeshComponent.getModel()?.traverse((object) => {
108
+ if (object instanceof THREE.Mesh) {
109
+ object.receiveShadow = true;
110
+ }
111
+ });
112
+ });
113
+
114
+ // world.addActors(levelActor);
115
+ ```
116
+
117
+ ---
118
+
119
+ ## 3. Procedural Levels with Constructive Solid Geometry (CSG)
120
+
121
+ CSG is a powerful technique that allows you to create complex shapes by combining simpler shapes using boolean operations (add, subtract, intersect). This is perfect for procedurally generating levels with doorways, windows, tunnels, and other features.
122
+
123
+ The system relies on two main components:
124
+ * `CSGCombiner`: The root component that takes all its children and combines them into a single mesh.
125
+ * `CSGComponent`s (`CSGCubeComponent`, `CSGCylinderComponent`, etc.): The primitive shapes that will be combined.
126
+
127
+ ### How to use CSG:
128
+
129
+ 1. Create an `Actor` with a `CSGCombiner` as its root component.
130
+ 2. Add `CSGComponent`s as children to the combiner.
131
+ 3. Each `CSGComponent` has an `operation` property (`'add'`, `'subtract'`, or `'intersect'`).
132
+ 4. The combiner processes the children in order to produce the final mesh.
133
+
134
+ ### Example: Creating a Wall with a Doorway
135
+
136
+ This example demonstrates how to subtract a cube (the doorway) from another cube (the wall).
137
+
138
+ ```typescript
139
+ import * as ENGINE from "genesys.js";
140
+
141
+ // First, you must enable the Manifold CSG library in your world configuration.
142
+ class MyCSGGame extends ENGINE.BaseGameLoop {
143
+ public override getWorldConfiguration(): ENGINE.WorldOptions {
144
+ return {
145
+ ...super.getWorldConfiguration(),
146
+ useManifold: true // This is essential!
147
+ };
148
+ }
149
+
150
+ protected override async preStart(): Promise<void> {
151
+ ENGINE.GameBuilder.createDefaultLighting(this.world);
152
+ ENGINE.GameBuilder.createDefaultGround(this.world);
153
+ ENGINE.GameBuilder.createDefaultPawnWithPhysics(this.world, ENGINE.CharacterMovementType.FirstPerson);
154
+
155
+ // 1. Create the CSG Actor.
156
+ const wallWithDoorActor = new ENGINE.Actor({
157
+ position: new THREE.Vector3(0, 1.5, -15),
158
+ // The root is the CSGCombiner. It will generate a MeshComponent as its own child.
159
+ rootComponent: new ENGINE.csg.CSGCombiner({
160
+ // The final combined mesh will have these physics properties.
161
+ physicsOptions: {
162
+ enabled: true,
163
+ motionType: ENGINE.PhysicsMotionType.Static,
164
+ collisionMeshType: ENGINE.CollisionMeshType.Trimesh
165
+ }
166
+ })
167
+ });
168
+
169
+ const combiner = wallWithDoorActor.rootComponent as ENGINE.csg.CSGCombiner;
170
+
171
+ // 2. Create the main wall shape (an "add" operation).
172
+ const wallShape = new ENGINE.csg.CSGCubeComponent({
173
+ operation: 'add',
174
+ dimensions: new THREE.Vector3(8, 3, 0.4),
175
+ material: new THREE.MeshStandardMaterial({ color: 'lightgray' })
176
+ });
177
+
178
+ // 3. Create the doorway shape (a "subtract" operation).
179
+ const doorwayShape = new ENGINE.csg.CSGCubeComponent({
180
+ operation: 'subtract',
181
+ dimensions: new THREE.Vector3(1.5, 2.2, 1), // Make it thicker than the wall to ensure a clean cut
182
+ });
183
+
184
+ // 4. Add the shapes as children to the combiner.
185
+ combiner.add(wallShape, doorwayShape);
186
+
187
+ // The CSGCombiner automatically processes on `beginPlay`.
188
+ this.world.addActors(wallWithDoorActor);
189
+ }
190
+ }
191
+ ```
192
+ When you run this code, Genesys will:
193
+ 1. Initialize the Manifold WASM module.
194
+ 2. The `CSGCombiner` will find its children.
195
+ 3. It starts with the `wallShape`.
196
+ 4. It then subtracts the `doorwayShape` from it.
197
+ 5. It generates a new `THREE.Mesh` from the result and applies the physics properties.
198
+
199
+ This procedural approach allows for dynamic and varied level generation directly within the engine. You can combine many shapes and operations to build incredibly complex and optimized level geometry at runtime.
200
+
201
+ ## Source Code
202
+ Below are relevant engine source code you MUST digest in order to get complete understanding of the topic. Read them carefully.
203
+
204
+ ```
205
+ <file path={src/game/World.ts}>
206
+ <file path={src/components/visual/GLTFMeshComponent.ts}>
207
+ <file path={src/components/visual/MeshComponent.ts}>
208
+ <file path={src/actors/Actor.ts}>
209
+ <file path={src/components/csg/CSGCombiner.ts}>
210
+ <file path={src/components/csg/CSGShapes.ts}>
211
+ ```
@@ -0,0 +1,291 @@
1
+ ## Instruction
2
+ Use this doc to understand how the user interface system works in Genesys.js and learn how to create 2D interfaces using UIManager, UIElements for simple displays, UILayouts with HTML/CSS templates, and reusable BaseUIComponent classes.
3
+
4
+ # 8-user-interface.md
5
+
6
+ ## User Interface (UI) in Genesys.js
7
+
8
+ Genesys.js features a flexible, DOM-based UI system that allows you to create and manage 2D interfaces for your game. This system is built around the `UIManager`, which provides tools for creating layouts from HTML/CSS templates and managing individual UI elements.
9
+
10
+ This approach lets you leverage the full power of HTML and CSS for styling and layout, which is often faster and more flexible than in-game 3D UI systems.
11
+
12
+ ---
13
+
14
+ ## 1. The `UIManager`
15
+
16
+ The `UIManager` is a global system, owned by the `World`, that serves as the root for all UI elements. It creates a container `div` that sits on top of your game's canvas. You don't create a `UIManager` yourself; you access it through the `world` instance.
17
+
18
+ ```typescript
19
+ const uiManager = this.world.uiManager;
20
+ ```
21
+
22
+ ---
23
+
24
+ ## 2. Core UI Concepts
25
+
26
+ * **`UIElement`**: A lightweight wrapper around a standard `HTMLElement`. It provides a fluent API for manipulating the element's style, classes, and content. You create these using `uiManager.createElement()`.
27
+
28
+ * **`UILayout`**: A more powerful object that represents a complete piece of UI, constructed from an HTML template and a CSS stylesheet. This is the recommended way to build complex UI components like HUDs, menus, or inventory screens. You create these with `uiManager.createLayout()`.
29
+
30
+ * **`UIAssetLoader`**: A static helper class for loading the `.html` and `.css` files needed by `UILayout`.
31
+
32
+ ---
33
+
34
+ ## 3. Creating a Simple UI Element
35
+
36
+ For very simple UI, like a debug text display, you can create a `UIElement` directly.
37
+
38
+ ```typescript
39
+ import * as ENGINE from "genesys.js";
40
+
41
+ class MyGame extends ENGINE.BaseGameLoop {
42
+ private scoreDisplay: ENGINE.UIElement | null = null;
43
+ private score: number = 0;
44
+
45
+ protected override preStart(): void {
46
+ // Create a simple text element to show the score.
47
+ this.scoreDisplay = this.world.uiManager.createElement('score-display', {
48
+ // The tag can be any valid HTML tag.
49
+ tag: 'h2',
50
+ textContent: 'Score: 0',
51
+ // Use CSS for positioning and styling.
52
+ style: {
53
+ position: 'absolute',
54
+ top: '20px',
55
+ left: '20px',
56
+ color: 'white',
57
+ fontFamily: 'Arial, sans-serif',
58
+ textShadow: '2px 2px 4px black'
59
+ }
60
+ });
61
+
62
+ // Set up a timer to increment the score every second.
63
+ this.world.timerSystem.setInterval(() => {
64
+ this.score++;
65
+ this.scoreDisplay?.setText(`Score: ${this.score}`);
66
+ }, 1);
67
+ }
68
+ }
69
+ ```
70
+
71
+ ---
72
+
73
+ ## 4. Building with `UILayout` and Templates
74
+
75
+ For anything more complex than a single label, `UILayout` is the way to go. This involves creating two files: an HTML template and a CSS stylesheet.
76
+
77
+ **`/assets/ui/templates/health-bar.html`**:
78
+ ```html
79
+ <div class="health-bar-container">
80
+ <div class="health-bar-label">HP</div>
81
+ <div class="health-bar">
82
+ <div class="health-bar-fill"></div>
83
+ </div>
84
+ <div class="health-value-text">{{currentHP}}/{{maxHP}}</div>
85
+ </div>
86
+ ```
87
+ *Notice the `{{handlebar}}` syntax for data interpolation.*
88
+
89
+ **`/assets/ui/styles/health-bar.css`**:
90
+ ```css
91
+ .health-bar-container {
92
+ position: absolute;
93
+ bottom: 20px;
94
+ left: 20px;
95
+ display: flex;
96
+ align-items: center;
97
+ gap: 8px;
98
+ background-color: rgba(0,0,0,0.5);
99
+ padding: 8px;
100
+ border-radius: 4px;
101
+ color: white;
102
+ font-family: sans-serif;
103
+ }
104
+ .health-bar {
105
+ width: 200px;
106
+ height: 20px;
107
+ background-color: #444;
108
+ border: 1px solid #666;
109
+ border-radius: 3px;
110
+ }
111
+ .health-bar-fill {
112
+ height: 100%;
113
+ background-color: #22c55e; /* Green */
114
+ width: 100%; /* Will be controlled by code */
115
+ transition: width 0.3s ease-out;
116
+ }
117
+ ```
118
+
119
+ Now, let's create a `UILayout` from these files.
120
+
121
+ ```typescript
122
+ import * as ENGINE from "genesys.js";
123
+
124
+ class MyGame extends ENGINE.BaseGameLoop {
125
+ protected override async postStart(): Promise<void> {
126
+ // 1. Load the assets.
127
+ const { template, styles } = await ENGINE.UIAssetLoader.loadUIAsset(
128
+ ENGINE.AssetPath.fromString('@engine/assets/ui/templates/health-bar.html'),
129
+ ENGINE.AssetPath.fromString('@engine/assets/ui/styles/health-bar.css')
130
+ );
131
+
132
+ // 2. Create the layout.
133
+ const healthBarLayout = this.world.uiManager.createLayout('player-hud', {
134
+ template,
135
+ styles,
136
+ // Provide initial data for the template placeholders.
137
+ data: {
138
+ currentHP: 100,
139
+ maxHP: 100
140
+ }
141
+ });
142
+
143
+ // 3. Interact with the layout's elements.
144
+ const fillElement = healthBarLayout.querySelector('.health-bar-fill') as HTMLElement;
145
+ const textElement = healthBarLayout.querySelector('.health-value-text') as HTMLElement;
146
+
147
+ // Example: Simulate taking damage.
148
+ this.world.timerSystem.setInterval(() => {
149
+ const currentHP = parseInt(textElement.innerText.split('/')[0]);
150
+ const newHP = Math.max(0, currentHP - 10);
151
+
152
+ // Update the UI.
153
+ fillElement.style.width = `${(newHP / 100) * 100}%`;
154
+ textElement.textContent = `${newHP}/100`;
155
+
156
+ }, 2); // Take damage every 2 seconds.
157
+ }
158
+ }
159
+ ```
160
+
161
+ ---
162
+
163
+ ## 5. Reusable UI Components
164
+
165
+ To promote reusability and encapsulation, Genesys provides a `BaseUIComponent` class. You can extend this class to create self-contained UI components like a `ProgressBar`, `InventoryGrid`, or `Minimap`. The engine already includes several of these pre-built components.
166
+
167
+ Using a pre-built component is much cleaner than managing templates and layouts manually.
168
+
169
+ ### Example: Using the `ProgressBar` Component
170
+
171
+ Let's refactor our health bar example to use the built-in `ProgressBar` component.
172
+
173
+ ```typescript
174
+ import * as ENGINE from "genesys.js";
175
+
176
+ class MyGame extends ENGINE.BaseGameLoop {
177
+ private healthBar: ENGINE.ProgressBar | null = null;
178
+ private currentHealth: number = 100;
179
+ private maxHealth: number = 100;
180
+
181
+ protected override async postStart(): Promise<void> {
182
+ // 1. Create an instance of the ProgressBar component.
183
+ this.healthBar = new ENGINE.ProgressBar(this.world.uiManager, {
184
+ width: 250,
185
+ height: 25,
186
+ label: 'HEALTH',
187
+ // Use the 'health' theme for automatic coloring (green/orange/red).
188
+ theme: 'health',
189
+ // Animate value changes smoothly.
190
+ animate: true,
191
+ });
192
+
193
+ // 2. Initialize the component (this loads its assets and creates the layout).
194
+ await this.healthBar.initialize();
195
+
196
+ // 3. Position the component using setPosition() for precise control.
197
+ this.healthBar.setPosition({
198
+ position: 'absolute',
199
+ bottom: '20px',
200
+ left: '20px'
201
+ });
202
+
203
+ // 4. Set its initial value.
204
+ this.healthBar.setValue(this.currentHealth);
205
+ this.healthBar.setMaxValue(this.maxHealth);
206
+
207
+ // 5. Simulate taking damage.
208
+ this.world.timerSystem.setInterval(() => {
209
+ this.currentHealth = Math.max(0, this.currentHealth - 15);
210
+ // The component handles the animation and text updates automatically.
211
+ this.healthBar?.setValue(this.currentHealth);
212
+ }, 2);
213
+ }
214
+
215
+ // Don't forget to clean up UI components when they're no longer needed.
216
+ public override destroy(): void {
217
+ this.healthBar?.destroy();
218
+ super.destroy();
219
+ }
220
+ }
221
+ ```
222
+
223
+ This approach is much cleaner and more maintainable. The component encapsulates all its HTML, CSS, and logic. You interact with it through a clear, high-level API (`setValue`, `setMaxValue`, etc.).
224
+
225
+ ### Positioning UI Components
226
+
227
+ UI components can be positioned in two ways:
228
+
229
+ 1. **Using predefined positions** (via the `position` option in the constructor):
230
+ - `'top-left'`, `'top-center'`, `'top-right'`
231
+ - `'bottom-left'`, `'bottom-center'`, `'bottom-right'`
232
+ - `'center'`
233
+
234
+ 2. **Using custom positioning** (via the `.setPosition()` method for precise control):
235
+
236
+ ```typescript
237
+ // Create a component without specifying position
238
+ const healthBar = new ENGINE.ProgressBar(this.world.uiManager, {
239
+ width: 300,
240
+ height: 25,
241
+ label: 'HEALTH',
242
+ theme: 'health'
243
+ });
244
+
245
+ await healthBar.initialize();
246
+
247
+ // Use setPosition() for precise positioning with CSS properties
248
+ healthBar.setPosition({
249
+ position: 'absolute',
250
+ bottom: '20px',
251
+ right: '20px'
252
+ });
253
+
254
+ // You can also target specific child elements within the component
255
+ healthBar.setPosition({
256
+ fontSize: '14px',
257
+ fontWeight: 'bold'
258
+ }, '.progress-label'); // Target the label specifically
259
+ ```
260
+
261
+ **Best Practice**: Use the `.setPosition()` method for precise control over UI positioning, especially when you need pixel-perfect placement or responsive positioning.
262
+
263
+ The engine includes the following ready-to-use UI components in the `ENGINE` namespace:
264
+ * `ProgressBar`
265
+ * `AmmoCounter`
266
+ * `Crosshair`
267
+ * `InventoryBar`
268
+ * `InventoryGrid`
269
+ * `Minimap`
270
+ * `NumberDisplay`
271
+ * `ReloadIndicator`
272
+ * `ControlsPanel`
273
+
274
+ ## Source Code
275
+ Below are relevant engine source code you MUST digest in order to get complete understanding of the topic. Read them carefully.
276
+
277
+ ```
278
+ <file path={src/ui/UIManager.ts}>
279
+ <file path={src/ui/components/AmmoCounter.ts}>
280
+ <file path={src/ui/components/BaseUIComponent.ts}>
281
+ <file path={src/ui/components/Compass.ts}>
282
+ <file path={src/ui/components/ControlsPanel.ts}>
283
+ <file path={src/ui/components/Crosshair.ts}>
284
+ <file path={src/ui/components/InventoryBar.ts}>
285
+ <file path={src/ui/components/InventoryGrid.ts}>
286
+ <file path={src/ui/components/Minimap.ts}>
287
+ <file path={src/ui/components/NumberDisplay.ts}>
288
+ <file path={src/ui/components/ProgressBar.ts}>
289
+ <file path={src/ui/components/ReloadIndicator.ts}>
290
+ <file path={src/ui/ui-loader.ts}>
291
+ ```
@@ -0,0 +1,181 @@
1
+ ## Instruction
2
+ Use this doc to understand how multiplayer and networking work in Genesys.js and learn how to implement server-authoritative multiplayer using IGameSession for shared state, INetObject interface for networked objects, and client-side prediction for smooth gameplay.
3
+
4
+ # 9-multiplayer.md
5
+
6
+ ## Multiplayer and Networking in Genesys.js
7
+
8
+ Genesys.js is designed with multiplayer in mind, featuring a built-in networking system that handles object replication and state synchronization. This guide provides a foundational understanding of how to create a multiplayer experience.
9
+
10
+ The networking architecture is based on a server-authoritative model, but with a flexible client-side implementation. The core idea is that a **Game Session** acts as a central data store that all clients connect to.
11
+
12
+ ---
13
+
14
+ ## 1. Core Networking Concepts
15
+
16
+ * **`NetWorld`**: Every `World` has a `netWorld` property. This object is the bridge between your local game world and the remote game session. It's responsible for tracking networked objects and replicating their state.
17
+
18
+ * **`IGameSessionManager`**: An abstraction for connecting to and managing game sessions. Genesys provides two implementations:
19
+ * `MemoryGameSessionManager`: An in-memory, local "server". Perfect for single-player testing or local multiplayer on the same machine. No data is sent over a network.
20
+ * `WebSocketGameSessionManager`: A client that connects to a dedicated WebSocket server for true online multiplayer.
21
+
22
+ * **`IGameSession`**: Represents a connection to a single game room or session. Once connected, clients can add, update, and delete shared objects.
23
+
24
+ * **`INetObject`**: An interface that any `Actor` or `Component` must implement to be part of the networking system. It defines how an object is created on remote clients and how its state is synchronized.
25
+
26
+ ---
27
+
28
+ ## 2. Setting Up a Game Session
29
+
30
+ Before any networking can happen, you must create or join a game session. This is typically done at the start of your game.
31
+
32
+ ### Example: Creating and Joining a Local Session
33
+
34
+ For this example, we'll use the `MemoryGameSessionManager` for simplicity.
35
+
36
+ ```typescript
37
+ import * as ENGINE from "genesys.js";
38
+
39
+ class MyMultiplayerGame extends ENGINE.BaseGameLoop {
40
+ protected override async postStart(): Promise<void> {
41
+ // 1. Set the session manager on the NetWorld.
42
+ const netWorld = this.world.netWorld;
43
+ netWorld.setGameSessionManager(new ENGINE.multiplayer.MemoryGameSessionManager());
44
+
45
+ // 2. Try to join the first available session.
46
+ try {
47
+ const sessions = await netWorld.listSessions();
48
+ if (sessions.length > 0) {
49
+ console.log("Joining existing session...");
50
+ await netWorld.joinSession(sessions[0].sessionId);
51
+ } else {
52
+ console.log("No sessions found, creating a new one...");
53
+ await netWorld.createSession("My First Session");
54
+ }
55
+ } catch (error) {
56
+ console.error("Failed to start multiplayer session:", error);
57
+ return;
58
+ }
59
+
60
+ console.log("Successfully connected to session:", netWorld.getGameSession()?.getDescription());
61
+
62
+ // Now that we are in a session, we can spawn networked objects.
63
+ this.spawnPlayer();
64
+ }
65
+
66
+ private spawnPlayer(): void {
67
+ // The GameBuilder pawn is already a networked object.
68
+ ENGINE.GameBuilder.createDefaultAnimatedCharacter(this.world);
69
+ }
70
+ }
71
+ ```
72
+
73
+ To test this, you can open two browser tabs to the same game. The first tab will create the session, and the second tab will join it.
74
+
75
+ ---
76
+
77
+ ## 3. Networked Objects (`INetObject`)
78
+
79
+ For an object to be synchronized across the network, its class (and the classes of its components) must implement the `INetObject` interface. The `Actor` and `Component` base classes already do this. The key methods you need to be aware of are:
80
+
81
+ * **`isNetRelevant()`**: Should this object be networked? Return `true` to enable networking. Player-controlled pawns are relevant by default. For other objects, you must explicitly make them relevant.
82
+ * **`getNetConstructionData()`**: Returns a JSON object with the necessary information to create this object on a remote client. For actors, this is usually their serialized data.
83
+ * **`getNetDynamicState()`**: Called every frame. Returns a JSON object containing the state that needs to be synchronized (e.g., position, health). If it returns `null`, no update is sent. The engine automatically optimizes this by comparing it to the last sent state.
84
+ * **`setNetDynamicState(state)`**: Called on remote clients when they receive a state update for this object. This is where you apply the received state (e.g., update the object's position).
85
+
86
+ ### Example: A Networked Spinning Cube
87
+
88
+ Let's create a cube that spins on the "server" (the client that created it) and has its rotation synchronized to all other clients.
89
+
90
+ ```typescript
91
+ import * as ENGINE from "genesys.js";
92
+
93
+ @ENGINE.GameClass()
94
+ class NetworkedCube extends ENGINE.Actor {
95
+ private rotationSpeed: number = 1.0;
96
+
97
+ constructor(options: ENGINE.ActorOptions) {
98
+ super({
99
+ ...options,
100
+ rootComponent: new ENGINE.MeshComponent({
101
+ geometry: new THREE.BoxGeometry(1, 1, 1),
102
+ material: new THREE.MeshStandardMaterial({ color: 'purple' })
103
+ })
104
+ });
105
+ }
106
+
107
+ // --- INetObject Implementation ---
108
+
109
+ // 1. Make this actor network-relevant.
110
+ public override isNetRelevant(): boolean {
111
+ return true;
112
+ }
113
+
114
+ // 2. The default `getNetConstructionData` in Actor already serializes the
115
+ // actor, so we don't need to override it for this simple case.
116
+
117
+ // 3. For the client that owns this cube, we'll handle the spinning logic.
118
+ // Other clients will only receive updates.
119
+ public override tickPrePhysics(deltaTime: number): void {
120
+ // The NetWorld assigns a unique client ID. We can check if we are the owner.
121
+ if (this.getNetClientId() === this.world?.netWorld.clientId) {
122
+ // I am the owner, so I control the rotation.
123
+ this.rootComponent.addLocalRotation(
124
+ new THREE.Euler(0, this.rotationSpeed * deltaTime, 0)
125
+ );
126
+ }
127
+
128
+ super.tickPrePhysics(deltaTime);
129
+ }
130
+
131
+ // 4. The default `getNetDynamicState` in Actor already sends position,
132
+ // rotation, and scale, which is exactly what we need.
133
+
134
+ // 5. The default `setNetDynamicState` in Actor applies the transform and
135
+ // uses the `NetMovementPredictor` for smooth interpolation. We don't
136
+ // need to override it.
137
+ }
138
+ ```
139
+
140
+ Now, in your game setup after connecting to a session:
141
+
142
+ ```typescript
143
+ // Spawn the networked cube.
144
+ const cube = new NetworkedCube({
145
+ position: new THREE.Vector3(5, 1, 0)
146
+ });
147
+ this.world.addActors(cube);
148
+ ```
149
+
150
+ When you run this with two clients:
151
+ * The first client (the "owner") will create the cube. The cube's spinning logic will run locally. The `NetWorld` will send its creation data and continuous rotation updates to the session.
152
+ * The second client will receive the creation data, spawn a "remote" copy of the `NetworkedCube`. It will then receive the dynamic state updates (the new rotation) and apply them, making its cube spin in sync with the first client's cube.
153
+
154
+ ---
155
+
156
+ ## 4. Client-Side Prediction and Smoothing
157
+
158
+ When you look at a remote player in a networked game, you are seeing a "ghost". If you just set its position directly from network updates, its movement would appear jerky due to network latency and packet loss.
159
+
160
+ Genesys.js solves this with the **`NetMovementPredictor`**.
161
+
162
+ * For your **own** player character, your inputs are applied immediately, giving you instant feedback. The `BasePawnMovementComponent` sends your position and inputs to the session. If the server later sends a correction (e.g., you collided with something you didn't know about), your pawn will smoothly correct its position.
163
+ * For **remote** objects, `setNetDynamicState` doesn't just teleport the object. It feeds the incoming transform updates into the `NetMovementPredictor`. The predictor then uses interpolation and extrapolation to create a smooth visual path for the object, hiding network jitter.
164
+
165
+ This entire system is enabled by default on `Actor` and `BasePawnMovementComponent`, so for most standard use cases, you get smooth multiplayer movement for free.
166
+
167
+ ## Next Steps
168
+
169
+ This guide provides a basic overview. The multiplayer system is powerful and has more advanced features:
170
+ * **Custom Dynamic State**: You can override `getNetDynamicState` to send custom data beyond transforms, like `health` or `ammo`.
171
+ * **Remote Procedure Calls (RPCs)**: While not explicitly shown, you can implement RPCs by creating special networked objects that represent function calls and their arguments.
172
+ * **WebSocket Server**: To move beyond local testing, you will need to run the companion Genesys WebSocket server and use the `WebSocketGameSessionManager`. The server code is designed to be simple and stateless.
173
+
174
+ ## Source Code
175
+ Below are relevant engine source code you MUST digest in order to get complete understanding of the topic. Read them carefully.
176
+
177
+ ```
178
+ <file path={src/multiplayer/NetWorld.ts}>
179
+ <file path={src/multiplayer/interface.ts}>
180
+ <file path={src/multiplayer/MovementPrediction.ts}>
181
+ ```