hytopia 0.1.37 → 0.1.40

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 (352) hide show
  1. package/bin/scripts.js +10 -1
  2. package/docs/server.basecharactercontroller.createcolliders.md +19 -0
  3. package/docs/server.basecharactercontroller.md +2 -2
  4. package/docs/server.blocktype.md +1 -1
  5. package/docs/server.blocktype.onentitycollision.md +6 -1
  6. package/docs/server.blocktype.onentitycontactforce.md +5 -0
  7. package/docs/server.coefficientcombinerule.md +89 -0
  8. package/docs/server.collider.getbouncinesscombinerule.md +19 -0
  9. package/docs/server.collider.getfrictioncombinerule.md +19 -0
  10. package/docs/server.collider.md +56 -0
  11. package/docs/server.collider.setbouncinesscombinerule.md +53 -0
  12. package/docs/server.collider.setfrictioncombinerule.md +53 -0
  13. package/docs/server.collideroptions.bouncinesscombinerule.md +13 -0
  14. package/docs/server.collideroptions.frictioncombinerule.md +13 -0
  15. package/docs/server.collideroptions.indices.md +13 -0
  16. package/docs/server.collideroptions.md +76 -0
  17. package/docs/server.collideroptions.vertices.md +13 -0
  18. package/docs/server.collidershape.md +14 -0
  19. package/docs/server.collisioncallback.md +1 -1
  20. package/docs/{server.defaultcharactercontroller.createsensorcolliders.md → server.defaultcharactercontroller.createcolliders.md} +4 -4
  21. package/docs/server.defaultcharactercontroller.md +2 -2
  22. package/docs/server.entity.isblockentity.md +13 -0
  23. package/docs/server.entity.ismodelentity.md +13 -0
  24. package/docs/server.entity.md +79 -2
  25. package/docs/server.entity.modelhiddennodes.md +13 -0
  26. package/docs/server.entity.onblockcollision.md +6 -1
  27. package/docs/server.entity.onblockcontactforce.md +5 -0
  28. package/docs/server.entity.onentitycollision.md +6 -1
  29. package/docs/server.entity.onentitycontactforce.md +5 -0
  30. package/docs/server.entity.setmodelhiddennodes.md +53 -0
  31. package/docs/server.entity.startmodelloopedanimations.md +4 -0
  32. package/docs/server.entity.startmodeloneshotanimations.md +4 -0
  33. package/docs/server.entity.stopmodelanimations.md +4 -0
  34. package/docs/server.entityeventpayload.md +9 -0
  35. package/docs/server.entityeventpayload.setmodelhiddennodes.entity.md +11 -0
  36. package/docs/server.entityeventpayload.setmodelhiddennodes.md +70 -0
  37. package/docs/server.entityeventpayload.setmodelhiddennodes.modelhiddennodes.md +11 -0
  38. package/docs/server.entityeventtype.md +14 -0
  39. package/docs/server.entityoptions.md +19 -0
  40. package/docs/server.entityoptions.modelhiddennodes.md +13 -0
  41. package/docs/server.hytopia.basecharactercontroller.createcolliders.md +19 -0
  42. package/docs/server.hytopia.basecharactercontroller.md +2 -2
  43. package/docs/server.hytopia.blocktype.md +1 -1
  44. package/docs/server.hytopia.blocktype.onentitycollision.md +6 -1
  45. package/docs/server.hytopia.blocktype.onentitycontactforce.md +5 -0
  46. package/docs/server.hytopia.coefficientcombinerule.md +89 -0
  47. package/docs/server.hytopia.collider.getbouncinesscombinerule.md +19 -0
  48. package/docs/server.hytopia.collider.getfrictioncombinerule.md +19 -0
  49. package/docs/server.hytopia.collider.md +56 -0
  50. package/docs/server.hytopia.collider.setbouncinesscombinerule.md +53 -0
  51. package/docs/server.hytopia.collider.setfrictioncombinerule.md +53 -0
  52. package/docs/server.hytopia.collideroptions.bouncinesscombinerule.md +13 -0
  53. package/docs/server.hytopia.collideroptions.frictioncombinerule.md +13 -0
  54. package/docs/server.hytopia.collideroptions.indices.md +13 -0
  55. package/docs/server.hytopia.collideroptions.md +76 -0
  56. package/docs/server.hytopia.collideroptions.vertices.md +13 -0
  57. package/docs/server.hytopia.collidershape.md +14 -0
  58. package/docs/server.hytopia.collisioncallback.md +1 -1
  59. package/docs/server.hytopia.defaultcharactercontroller.createcolliders.md +19 -0
  60. package/docs/server.hytopia.defaultcharactercontroller.md +2 -2
  61. package/docs/server.hytopia.entity.isblockentity.md +13 -0
  62. package/docs/server.hytopia.entity.ismodelentity.md +13 -0
  63. package/docs/server.hytopia.entity.md +79 -2
  64. package/docs/server.hytopia.entity.modelhiddennodes.md +13 -0
  65. package/docs/server.hytopia.entity.onblockcollision.md +6 -1
  66. package/docs/server.hytopia.entity.onblockcontactforce.md +5 -0
  67. package/docs/server.hytopia.entity.onentitycollision.md +6 -1
  68. package/docs/server.hytopia.entity.onentitycontactforce.md +5 -0
  69. package/docs/server.hytopia.entity.setmodelhiddennodes.md +53 -0
  70. package/docs/server.hytopia.entity.startmodelloopedanimations.md +4 -0
  71. package/docs/server.hytopia.entity.startmodeloneshotanimations.md +4 -0
  72. package/docs/server.hytopia.entity.stopmodelanimations.md +4 -0
  73. package/docs/server.hytopia.entityeventpayload.md +9 -0
  74. package/docs/server.hytopia.entityeventpayload.setmodelhiddennodes.entity.md +11 -0
  75. package/docs/server.hytopia.entityeventpayload.setmodelhiddennodes.md +70 -0
  76. package/docs/server.hytopia.entityeventpayload.setmodelhiddennodes.modelhiddennodes.md +11 -0
  77. package/docs/server.hytopia.entityeventtype.md +14 -0
  78. package/docs/server.hytopia.entityoptions.md +19 -0
  79. package/docs/server.hytopia.entityoptions.modelhiddennodes.md +13 -0
  80. package/docs/server.hytopia.md +11 -0
  81. package/docs/server.hytopia.playercamera.md +10 -10
  82. package/docs/{server.hytopia.playercamera.hiddenmodelnodes.md → server.hytopia.playercamera.modelhiddennodes.md} +3 -3
  83. package/docs/{server.hytopia.playercamera.sethiddenmodelnodes.md → server.hytopia.playercamera.setmodelhiddennodes.md} +4 -4
  84. package/docs/server.hytopia.playercameraeventpayload.md +2 -2
  85. package/docs/{server.hytopia.playercameraeventpayload.sethiddenmodelnodes.md → server.hytopia.playercameraeventpayload.setmodelhiddennodes.md} +6 -6
  86. package/docs/server.hytopia.playercameraeventpayload.setmodelhiddennodes.modelhiddennodes.md +11 -0
  87. package/docs/server.hytopia.playercameraeventpayload.setmodelhiddennodes.playercamera.md +11 -0
  88. package/docs/server.hytopia.playercameraeventtype.md +4 -4
  89. package/docs/server.hytopia.simulation.getcontactmanifolds.md +75 -0
  90. package/docs/server.hytopia.simulation.md +14 -0
  91. package/docs/server.md +11 -0
  92. package/docs/server.playercamera.md +10 -10
  93. package/docs/{server.playercamera.hiddenmodelnodes.md → server.playercamera.modelhiddennodes.md} +3 -3
  94. package/docs/{server.playercamera.sethiddenmodelnodes.md → server.playercamera.setmodelhiddennodes.md} +4 -4
  95. package/docs/server.playercameraeventpayload.md +2 -2
  96. package/docs/{server.playercameraeventpayload.sethiddenmodelnodes.md → server.playercameraeventpayload.setmodelhiddennodes.md} +6 -6
  97. package/docs/server.playercameraeventpayload.setmodelhiddennodes.modelhiddennodes.md +11 -0
  98. package/docs/{server.playercameraeventpayload.sethiddenmodelnodes.playercamera.md → server.playercameraeventpayload.setmodelhiddennodes.playercamera.md} +2 -2
  99. package/docs/server.playercameraeventtype.md +4 -4
  100. package/docs/server.simulation.getcontactmanifolds.md +75 -0
  101. package/docs/server.simulation.md +14 -0
  102. package/examples/big-world/README.md +15 -0
  103. package/examples/big-world/index.ts +41 -0
  104. package/examples/block-entity/index.ts +11 -8
  105. package/examples/character-controller/MyCharacterController.ts +25 -5
  106. package/examples/character-controller/index.ts +3 -1
  107. package/examples/entity-spawn/index.ts +3 -1
  108. package/examples/payload-game/index.ts +10 -10
  109. package/package.json +1 -1
  110. package/server.api.json +1836 -212
  111. package/server.d.ts +143 -20
  112. package/server.js +79 -79
  113. package/boilerplate/assets/audio/music/cave.mp3 +0 -0
  114. package/boilerplate/assets/audio/music/desert.mp3 +0 -0
  115. package/boilerplate/assets/audio/music/end.mp3 +0 -0
  116. package/boilerplate/assets/audio/music/jungle.mp3 +0 -0
  117. package/boilerplate/assets/audio/music/nether.mp3 +0 -0
  118. package/boilerplate/assets/audio/music/night.mp3 +0 -0
  119. package/boilerplate/assets/audio/music/night2.mp3 +0 -0
  120. package/boilerplate/assets/audio/music/overworld.mp3 +0 -0
  121. package/boilerplate/assets/audio/music/snow.mp3 +0 -0
  122. package/boilerplate/assets/audio/sfx/damage.wav +0 -0
  123. package/boilerplate/assets/audio/sfx/step.wav +0 -0
  124. package/boilerplate/assets/certs/README.md +0 -10
  125. package/boilerplate/assets/certs/localhost.crt +0 -20
  126. package/boilerplate/assets/certs/localhost.key +0 -27
  127. package/boilerplate/assets/cubemaps/skybox/+x.png +0 -0
  128. package/boilerplate/assets/cubemaps/skybox/+y.png +0 -0
  129. package/boilerplate/assets/cubemaps/skybox/+z.png +0 -0
  130. package/boilerplate/assets/cubemaps/skybox/-x.png +0 -0
  131. package/boilerplate/assets/cubemaps/skybox/-y.png +0 -0
  132. package/boilerplate/assets/cubemaps/skybox/-z.png +0 -0
  133. package/boilerplate/assets/map.json +0 -2623
  134. package/boilerplate/assets/models/bat.gltf +0 -1
  135. package/boilerplate/assets/models/chicken.gltf +0 -1
  136. package/boilerplate/assets/models/cow.gltf +0 -1
  137. package/boilerplate/assets/models/donkey.gltf +0 -1
  138. package/boilerplate/assets/models/horse.gltf +0 -1
  139. package/boilerplate/assets/models/mindflayer.gltf +0 -1
  140. package/boilerplate/assets/models/pig.gltf +0 -1
  141. package/boilerplate/assets/models/player.gltf +0 -1
  142. package/boilerplate/assets/models/rabbit.gltf +0 -1
  143. package/boilerplate/assets/models/sheep.gltf +0 -1
  144. package/boilerplate/assets/models/skeleton.gltf +0 -1
  145. package/boilerplate/assets/models/spider.gltf +0 -1
  146. package/boilerplate/assets/models/squid.gltf +0 -1
  147. package/boilerplate/assets/models/stalker.gltf +0 -1
  148. package/boilerplate/assets/models/zombie.gltf +0 -1
  149. package/boilerplate/assets/textures/bricks.png +0 -0
  150. package/boilerplate/assets/textures/clay.png +0 -0
  151. package/boilerplate/assets/textures/cobblestone.png +0 -0
  152. package/boilerplate/assets/textures/diamond_ore.png +0 -0
  153. package/boilerplate/assets/textures/dirt.png +0 -0
  154. package/boilerplate/assets/textures/dragons_stone.png +0 -0
  155. package/boilerplate/assets/textures/emerald_ore.png +0 -0
  156. package/boilerplate/assets/textures/glass.png +0 -0
  157. package/boilerplate/assets/textures/gold_ore.png +0 -0
  158. package/boilerplate/assets/textures/grass/+x.png +0 -0
  159. package/boilerplate/assets/textures/grass/+y.png +0 -0
  160. package/boilerplate/assets/textures/grass/+z.png +0 -0
  161. package/boilerplate/assets/textures/grass/-x.png +0 -0
  162. package/boilerplate/assets/textures/grass/-y.png +0 -0
  163. package/boilerplate/assets/textures/grass/-z.png +0 -0
  164. package/boilerplate/assets/textures/gravel.png +0 -0
  165. package/boilerplate/assets/textures/ice.png +0 -0
  166. package/boilerplate/assets/textures/infected_shadowrock.png +0 -0
  167. package/boilerplate/assets/textures/iron_ore.png +0 -0
  168. package/boilerplate/assets/textures/lava.png +0 -0
  169. package/boilerplate/assets/textures/log_side.png +0 -0
  170. package/boilerplate/assets/textures/log_top.png +0 -0
  171. package/boilerplate/assets/textures/mossy_coblestone.png +0 -0
  172. package/boilerplate/assets/textures/nuit.png +0 -0
  173. package/boilerplate/assets/textures/oak_leaves.png +0 -0
  174. package/boilerplate/assets/textures/oak_planks.png +0 -0
  175. package/boilerplate/assets/textures/sand.png +0 -0
  176. package/boilerplate/assets/textures/sandstone.png +0 -0
  177. package/boilerplate/assets/textures/shadowrock.png +0 -0
  178. package/boilerplate/assets/textures/snow.png +0 -0
  179. package/boilerplate/assets/textures/stone.png +0 -0
  180. package/boilerplate/assets/textures/stone_bricks.png +0 -0
  181. package/boilerplate/assets/textures/void_grass/+x.png +0 -0
  182. package/boilerplate/assets/textures/void_grass/+y.png +0 -0
  183. package/boilerplate/assets/textures/void_grass/+z.png +0 -0
  184. package/boilerplate/assets/textures/void_grass/-x.png +0 -0
  185. package/boilerplate/assets/textures/void_grass/-y.png +0 -0
  186. package/boilerplate/assets/textures/void_grass/-z.png +0 -0
  187. package/boilerplate/assets/textures/void_sand.png +0 -0
  188. package/boilerplate/assets/textures/water.png +0 -0
  189. package/docs/server.basecharactercontroller.createsensorcolliders.md +0 -19
  190. package/docs/server.hytopia.basecharactercontroller.createsensorcolliders.md +0 -19
  191. package/docs/server.hytopia.defaultcharactercontroller.createsensorcolliders.md +0 -19
  192. package/docs/server.hytopia.playercameraeventpayload.sethiddenmodelnodes.hiddenmodelnodes.md +0 -11
  193. package/docs/server.hytopia.playercameraeventpayload.sethiddenmodelnodes.playercamera.md +0 -11
  194. package/docs/server.playercameraeventpayload.sethiddenmodelnodes.hiddenmodelnodes.md +0 -11
  195. package/examples/block-entity/assets/audio/music/cave.mp3 +0 -0
  196. package/examples/block-entity/assets/audio/music/desert.mp3 +0 -0
  197. package/examples/block-entity/assets/audio/music/end.mp3 +0 -0
  198. package/examples/block-entity/assets/audio/music/jungle.mp3 +0 -0
  199. package/examples/block-entity/assets/audio/music/nether.mp3 +0 -0
  200. package/examples/block-entity/assets/audio/music/night.mp3 +0 -0
  201. package/examples/block-entity/assets/audio/music/night2.mp3 +0 -0
  202. package/examples/block-entity/assets/audio/music/overworld.mp3 +0 -0
  203. package/examples/block-entity/assets/audio/music/snow.mp3 +0 -0
  204. package/examples/block-entity/assets/audio/sfx/damage.wav +0 -0
  205. package/examples/block-entity/assets/audio/sfx/step.wav +0 -0
  206. package/examples/block-entity/assets/certs/README.md +0 -10
  207. package/examples/block-entity/assets/certs/localhost.crt +0 -20
  208. package/examples/block-entity/assets/certs/localhost.key +0 -27
  209. package/examples/block-entity/assets/cubemaps/skybox/+x.png +0 -0
  210. package/examples/block-entity/assets/cubemaps/skybox/+y.png +0 -0
  211. package/examples/block-entity/assets/cubemaps/skybox/+z.png +0 -0
  212. package/examples/block-entity/assets/cubemaps/skybox/-x.png +0 -0
  213. package/examples/block-entity/assets/cubemaps/skybox/-y.png +0 -0
  214. package/examples/block-entity/assets/cubemaps/skybox/-z.png +0 -0
  215. package/examples/block-entity/assets/map.json +0 -2623
  216. package/examples/block-entity/assets/models/bat.gltf +0 -1
  217. package/examples/block-entity/assets/models/chicken.gltf +0 -1
  218. package/examples/block-entity/assets/models/cow.gltf +0 -1
  219. package/examples/block-entity/assets/models/donkey.gltf +0 -1
  220. package/examples/block-entity/assets/models/horse.gltf +0 -1
  221. package/examples/block-entity/assets/models/mindflayer.gltf +0 -1
  222. package/examples/block-entity/assets/models/pig.gltf +0 -1
  223. package/examples/block-entity/assets/models/player.gltf +0 -1
  224. package/examples/block-entity/assets/models/rabbit.gltf +0 -1
  225. package/examples/block-entity/assets/models/sheep.gltf +0 -1
  226. package/examples/block-entity/assets/models/skeleton.gltf +0 -1
  227. package/examples/block-entity/assets/models/spider.gltf +0 -1
  228. package/examples/block-entity/assets/models/squid.gltf +0 -1
  229. package/examples/block-entity/assets/models/stalker.gltf +0 -1
  230. package/examples/block-entity/assets/models/zombie.gltf +0 -1
  231. package/examples/block-entity/assets/textures/bricks.png +0 -0
  232. package/examples/block-entity/assets/textures/clay.png +0 -0
  233. package/examples/block-entity/assets/textures/cobblestone.png +0 -0
  234. package/examples/block-entity/assets/textures/diamond_ore.png +0 -0
  235. package/examples/block-entity/assets/textures/dirt.png +0 -0
  236. package/examples/block-entity/assets/textures/dragons_stone.png +0 -0
  237. package/examples/block-entity/assets/textures/emerald_ore.png +0 -0
  238. package/examples/block-entity/assets/textures/glass.png +0 -0
  239. package/examples/block-entity/assets/textures/gold_ore.png +0 -0
  240. package/examples/block-entity/assets/textures/grass/+x.png +0 -0
  241. package/examples/block-entity/assets/textures/grass/+y.png +0 -0
  242. package/examples/block-entity/assets/textures/grass/+z.png +0 -0
  243. package/examples/block-entity/assets/textures/grass/-x.png +0 -0
  244. package/examples/block-entity/assets/textures/grass/-y.png +0 -0
  245. package/examples/block-entity/assets/textures/grass/-z.png +0 -0
  246. package/examples/block-entity/assets/textures/gravel.png +0 -0
  247. package/examples/block-entity/assets/textures/ice.png +0 -0
  248. package/examples/block-entity/assets/textures/infected_shadowrock.png +0 -0
  249. package/examples/block-entity/assets/textures/iron_ore.png +0 -0
  250. package/examples/block-entity/assets/textures/lava.png +0 -0
  251. package/examples/block-entity/assets/textures/log_side.png +0 -0
  252. package/examples/block-entity/assets/textures/log_top.png +0 -0
  253. package/examples/block-entity/assets/textures/mossy_coblestone.png +0 -0
  254. package/examples/block-entity/assets/textures/nuit.png +0 -0
  255. package/examples/block-entity/assets/textures/oak_leaves.png +0 -0
  256. package/examples/block-entity/assets/textures/oak_planks.png +0 -0
  257. package/examples/block-entity/assets/textures/sand.png +0 -0
  258. package/examples/block-entity/assets/textures/sandstone.png +0 -0
  259. package/examples/block-entity/assets/textures/shadowrock.png +0 -0
  260. package/examples/block-entity/assets/textures/snow.png +0 -0
  261. package/examples/block-entity/assets/textures/stone.png +0 -0
  262. package/examples/block-entity/assets/textures/stone_bricks.png +0 -0
  263. package/examples/block-entity/assets/textures/void_grass/+x.png +0 -0
  264. package/examples/block-entity/assets/textures/void_grass/+y.png +0 -0
  265. package/examples/block-entity/assets/textures/void_grass/+z.png +0 -0
  266. package/examples/block-entity/assets/textures/void_grass/-x.png +0 -0
  267. package/examples/block-entity/assets/textures/void_grass/-y.png +0 -0
  268. package/examples/block-entity/assets/textures/void_grass/-z.png +0 -0
  269. package/examples/block-entity/assets/textures/void_sand.png +0 -0
  270. package/examples/block-entity/assets/textures/water.png +0 -0
  271. package/examples/block-entity/package.json +0 -14
  272. package/examples/character-controller/assets/audio/sfx/damage.wav +0 -0
  273. package/examples/character-controller/assets/audio/sfx/step.wav +0 -0
  274. package/examples/character-controller/assets/certs/README.md +0 -10
  275. package/examples/character-controller/assets/certs/localhost.crt +0 -20
  276. package/examples/character-controller/assets/certs/localhost.key +0 -27
  277. package/examples/character-controller/assets/cubemaps/skybox/+x.png +0 -0
  278. package/examples/character-controller/assets/cubemaps/skybox/+y.png +0 -0
  279. package/examples/character-controller/assets/cubemaps/skybox/+z.png +0 -0
  280. package/examples/character-controller/assets/cubemaps/skybox/-x.png +0 -0
  281. package/examples/character-controller/assets/cubemaps/skybox/-y.png +0 -0
  282. package/examples/character-controller/assets/cubemaps/skybox/-z.png +0 -0
  283. package/examples/character-controller/assets/map.json +0 -2623
  284. package/examples/character-controller/assets/models/player.gltf +0 -1
  285. package/examples/character-controller/assets/textures/bricks.png +0 -0
  286. package/examples/character-controller/assets/textures/clay.png +0 -0
  287. package/examples/character-controller/assets/textures/diamond_ore.png +0 -0
  288. package/examples/character-controller/assets/textures/dirt.png +0 -0
  289. package/examples/character-controller/assets/textures/dragons_stone.png +0 -0
  290. package/examples/character-controller/assets/textures/glass.png +0 -0
  291. package/examples/character-controller/assets/textures/grass/+x.png +0 -0
  292. package/examples/character-controller/assets/textures/grass/+y.png +0 -0
  293. package/examples/character-controller/assets/textures/grass/+z.png +0 -0
  294. package/examples/character-controller/assets/textures/grass/-x.png +0 -0
  295. package/examples/character-controller/assets/textures/grass/-y.png +0 -0
  296. package/examples/character-controller/assets/textures/grass/-z.png +0 -0
  297. package/examples/character-controller/assets/textures/grass.png +0 -0
  298. package/examples/character-controller/assets/textures/gravel.png +0 -0
  299. package/examples/character-controller/assets/textures/ice.png +0 -0
  300. package/examples/character-controller/assets/textures/infected_shadowrock.png +0 -0
  301. package/examples/character-controller/assets/textures/log_side.png +0 -0
  302. package/examples/character-controller/assets/textures/log_top.png +0 -0
  303. package/examples/character-controller/assets/textures/mossy_coblestone.png +0 -0
  304. package/examples/character-controller/assets/textures/nuit.png +0 -0
  305. package/examples/character-controller/assets/textures/oak_leaves.png +0 -0
  306. package/examples/character-controller/assets/textures/oak_planks.png +0 -0
  307. package/examples/character-controller/assets/textures/sand.png +0 -0
  308. package/examples/character-controller/assets/textures/shadowrock.png +0 -0
  309. package/examples/character-controller/assets/textures/stone.png +0 -0
  310. package/examples/character-controller/assets/textures/stone_bricks.png +0 -0
  311. package/examples/character-controller/assets/textures/void_sand.png +0 -0
  312. package/examples/character-controller/assets/textures/water_still.png +0 -0
  313. package/examples/entity-spawn/assets/certs/README.md +0 -10
  314. package/examples/entity-spawn/assets/certs/localhost.crt +0 -20
  315. package/examples/entity-spawn/assets/certs/localhost.key +0 -27
  316. package/examples/entity-spawn/assets/cubemaps/skybox/+x.png +0 -0
  317. package/examples/entity-spawn/assets/cubemaps/skybox/+y.png +0 -0
  318. package/examples/entity-spawn/assets/cubemaps/skybox/+z.png +0 -0
  319. package/examples/entity-spawn/assets/cubemaps/skybox/-x.png +0 -0
  320. package/examples/entity-spawn/assets/cubemaps/skybox/-y.png +0 -0
  321. package/examples/entity-spawn/assets/cubemaps/skybox/-z.png +0 -0
  322. package/examples/entity-spawn/assets/map.json +0 -2623
  323. package/examples/entity-spawn/assets/models/player.gltf +0 -1
  324. package/examples/entity-spawn/assets/models/spider.gltf +0 -1
  325. package/examples/entity-spawn/assets/textures/bricks.png +0 -0
  326. package/examples/entity-spawn/assets/textures/clay.png +0 -0
  327. package/examples/entity-spawn/assets/textures/diamond_ore.png +0 -0
  328. package/examples/entity-spawn/assets/textures/dirt.png +0 -0
  329. package/examples/entity-spawn/assets/textures/dragons_stone.png +0 -0
  330. package/examples/entity-spawn/assets/textures/glass.png +0 -0
  331. package/examples/entity-spawn/assets/textures/grass/+x.png +0 -0
  332. package/examples/entity-spawn/assets/textures/grass/+y.png +0 -0
  333. package/examples/entity-spawn/assets/textures/grass/+z.png +0 -0
  334. package/examples/entity-spawn/assets/textures/grass/-x.png +0 -0
  335. package/examples/entity-spawn/assets/textures/grass/-y.png +0 -0
  336. package/examples/entity-spawn/assets/textures/grass/-z.png +0 -0
  337. package/examples/entity-spawn/assets/textures/grass.png +0 -0
  338. package/examples/entity-spawn/assets/textures/gravel.png +0 -0
  339. package/examples/entity-spawn/assets/textures/ice.png +0 -0
  340. package/examples/entity-spawn/assets/textures/infected_shadowrock.png +0 -0
  341. package/examples/entity-spawn/assets/textures/log_side.png +0 -0
  342. package/examples/entity-spawn/assets/textures/log_top.png +0 -0
  343. package/examples/entity-spawn/assets/textures/mossy_coblestone.png +0 -0
  344. package/examples/entity-spawn/assets/textures/nuit.png +0 -0
  345. package/examples/entity-spawn/assets/textures/oak_leaves.png +0 -0
  346. package/examples/entity-spawn/assets/textures/oak_planks.png +0 -0
  347. package/examples/entity-spawn/assets/textures/sand.png +0 -0
  348. package/examples/entity-spawn/assets/textures/shadowrock.png +0 -0
  349. package/examples/entity-spawn/assets/textures/stone.png +0 -0
  350. package/examples/entity-spawn/assets/textures/stone_bricks.png +0 -0
  351. package/examples/entity-spawn/assets/textures/void_sand.png +0 -0
  352. package/examples/entity-spawn/assets/textures/water_still.png +0 -0
@@ -1,15 +1,15 @@
1
1
  <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
2
 
3
- [Home](./index.md) &gt; [server](./server.md) &gt; [PlayerCamera](./server.playercamera.md) &gt; [setHiddenModelNodes](./server.playercamera.sethiddenmodelnodes.md)
3
+ [Home](./index.md) &gt; [server](./server.md) &gt; [PlayerCamera](./server.playercamera.md) &gt; [setModelHiddenNodes](./server.playercamera.setmodelhiddennodes.md)
4
4
 
5
- ## PlayerCamera.setHiddenModelNodes() method
5
+ ## PlayerCamera.setModelHiddenNodes() method
6
6
 
7
7
  Sets the nodes of the model the camera is attached to that will not be rendered for the player. Uses case insensitive substring matching.
8
8
 
9
9
  **Signature:**
10
10
 
11
11
  ```typescript
12
- setHiddenModelNodes(hiddenModelNodes: string[]): void;
12
+ setModelHiddenNodes(modelHiddenNodes: string[]): void;
13
13
  ```
14
14
 
15
15
  ## Parameters
@@ -32,7 +32,7 @@ Description
32
32
  </th></tr></thead>
33
33
  <tbody><tr><td>
34
34
 
35
- hiddenModelNodes
35
+ modelHiddenNodes
36
36
 
37
37
 
38
38
  </td><td>
@@ -90,7 +90,7 @@ Description
90
90
  </td></tr>
91
91
  <tr><td>
92
92
 
93
- [SetHiddenModelNodes](./server.playercameraeventpayload.sethiddenmodelnodes.md)
93
+ [SetMode](./server.playercameraeventpayload.setmode.md)
94
94
 
95
95
 
96
96
  </td><td>
@@ -99,7 +99,7 @@ Description
99
99
  </td></tr>
100
100
  <tr><td>
101
101
 
102
- [SetMode](./server.playercameraeventpayload.setmode.md)
102
+ [SetModelHiddenNodes](./server.playercameraeventpayload.setmodelhiddennodes.md)
103
103
 
104
104
 
105
105
  </td><td>
@@ -1,13 +1,13 @@
1
1
  <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
2
 
3
- [Home](./index.md) &gt; [server](./server.md) &gt; [PlayerCameraEventPayload](./server.playercameraeventpayload.md) &gt; [SetHiddenModelNodes](./server.playercameraeventpayload.sethiddenmodelnodes.md)
3
+ [Home](./index.md) &gt; [server](./server.md) &gt; [PlayerCameraEventPayload](./server.playercameraeventpayload.md) &gt; [SetModelHiddenNodes](./server.playercameraeventpayload.setmodelhiddennodes.md)
4
4
 
5
- ## PlayerCameraEventPayload.SetHiddenModelNodes interface
5
+ ## PlayerCameraEventPayload.SetModelHiddenNodes interface
6
6
 
7
7
  **Signature:**
8
8
 
9
9
  ```typescript
10
- interface SetHiddenModelNodes
10
+ interface SetModelHiddenNodes
11
11
  ```
12
12
 
13
13
  ## Properties
@@ -35,7 +35,7 @@ Description
35
35
  </th></tr></thead>
36
36
  <tbody><tr><td>
37
37
 
38
- [hiddenModelNodes](./server.playercameraeventpayload.sethiddenmodelnodes.hiddenmodelnodes.md)
38
+ [modelHiddenNodes](./server.playercameraeventpayload.setmodelhiddennodes.modelhiddennodes.md)
39
39
 
40
40
 
41
41
  </td><td>
@@ -43,7 +43,7 @@ Description
43
43
 
44
44
  </td><td>
45
45
 
46
- string\[\]
46
+ Set&lt;string&gt;
47
47
 
48
48
 
49
49
  </td><td>
@@ -52,7 +52,7 @@ string\[\]
52
52
  </td></tr>
53
53
  <tr><td>
54
54
 
55
- [playerCamera](./server.playercameraeventpayload.sethiddenmodelnodes.playercamera.md)
55
+ [playerCamera](./server.playercameraeventpayload.setmodelhiddennodes.playercamera.md)
56
56
 
57
57
 
58
58
  </td><td>
@@ -0,0 +1,11 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [server](./server.md) &gt; [PlayerCameraEventPayload](./server.playercameraeventpayload.md) &gt; [SetModelHiddenNodes](./server.playercameraeventpayload.setmodelhiddennodes.md) &gt; [modelHiddenNodes](./server.playercameraeventpayload.setmodelhiddennodes.modelhiddennodes.md)
4
+
5
+ ## PlayerCameraEventPayload.SetModelHiddenNodes.modelHiddenNodes property
6
+
7
+ **Signature:**
8
+
9
+ ```typescript
10
+ modelHiddenNodes: Set<string>;
11
+ ```
@@ -1,8 +1,8 @@
1
1
  <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
2
 
3
- [Home](./index.md) &gt; [server](./server.md) &gt; [PlayerCameraEventPayload](./server.playercameraeventpayload.md) &gt; [SetHiddenModelNodes](./server.playercameraeventpayload.sethiddenmodelnodes.md) &gt; [playerCamera](./server.playercameraeventpayload.sethiddenmodelnodes.playercamera.md)
3
+ [Home](./index.md) &gt; [server](./server.md) &gt; [PlayerCameraEventPayload](./server.playercameraeventpayload.md) &gt; [SetModelHiddenNodes](./server.playercameraeventpayload.setmodelhiddennodes.md) &gt; [playerCamera](./server.playercameraeventpayload.setmodelhiddennodes.playercamera.md)
4
4
 
5
- ## PlayerCameraEventPayload.SetHiddenModelNodes.playerCamera property
5
+ ## PlayerCameraEventPayload.SetModelHiddenNodes.playerCamera property
6
6
 
7
7
  **Signature:**
8
8
 
@@ -130,12 +130,12 @@ SET\_FOV
130
130
  </td></tr>
131
131
  <tr><td>
132
132
 
133
- SET\_HIDDEN\_MODEL\_NODES
133
+ SET\_MODE
134
134
 
135
135
 
136
136
  </td><td>
137
137
 
138
- `"PLAYER_CAMERA.SET_HIDDEN_MODEL_NODES"`
138
+ `"PLAYER_CAMERA.SET_MODE"`
139
139
 
140
140
 
141
141
  </td><td>
@@ -144,12 +144,12 @@ SET\_HIDDEN\_MODEL\_NODES
144
144
  </td></tr>
145
145
  <tr><td>
146
146
 
147
- SET\_MODE
147
+ SET\_MODEL\_HIDDEN\_NODES
148
148
 
149
149
 
150
150
  </td><td>
151
151
 
152
- `"PLAYER_CAMERA.SET_MODE"`
152
+ `"PLAYER_CAMERA.SET_MODEL_HIDDEN_NODES"`
153
153
 
154
154
 
155
155
  </td><td>
@@ -0,0 +1,75 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [server](./server.md) &gt; [Simulation](./server.simulation.md) &gt; [getContactManifolds](./server.simulation.getcontactmanifolds.md)
4
+
5
+ ## Simulation.getContactManifolds() method
6
+
7
+ Gets the contact manifolds for a pair of colliders.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ getContactManifolds(colliderHandleA: RAPIER.ColliderHandle, colliderHandleB: RAPIER.ColliderHandle): ContactManifold[];
13
+ ```
14
+
15
+ ## Parameters
16
+
17
+ <table><thead><tr><th>
18
+
19
+ Parameter
20
+
21
+
22
+ </th><th>
23
+
24
+ Type
25
+
26
+
27
+ </th><th>
28
+
29
+ Description
30
+
31
+
32
+ </th></tr></thead>
33
+ <tbody><tr><td>
34
+
35
+ colliderHandleA
36
+
37
+
38
+ </td><td>
39
+
40
+ RAPIER.ColliderHandle
41
+
42
+
43
+ </td><td>
44
+
45
+ The handle of the first collider.
46
+
47
+
48
+ </td></tr>
49
+ <tr><td>
50
+
51
+ colliderHandleB
52
+
53
+
54
+ </td><td>
55
+
56
+ RAPIER.ColliderHandle
57
+
58
+
59
+ </td><td>
60
+
61
+ The handle of the second collider.
62
+
63
+
64
+ </td></tr>
65
+ </tbody></table>
66
+ **Returns:**
67
+
68
+ ContactManifold\[\]
69
+
70
+ The contact manifolds, or an empty array if no contact.
71
+
72
+ ## Remarks
73
+
74
+ Contact manifolds will not be returned for contacts that involve sensors.
75
+
@@ -172,6 +172,20 @@ Casts a ray through the simulation.
172
172
  Enables or disables debug rendering for the simulation. When enabled, all colliders, rigid body and raycast outlines will be rendered in the world. Do not enable this in production. In large worlds enabling this can cause noticable lag and RTT spikes.
173
173
 
174
174
 
175
+ </td></tr>
176
+ <tr><td>
177
+
178
+ [getContactManifolds(colliderHandleA, colliderHandleB)](./server.simulation.getcontactmanifolds.md)
179
+
180
+
181
+ </td><td>
182
+
183
+
184
+ </td><td>
185
+
186
+ Gets the contact manifolds for a pair of colliders.
187
+
188
+
175
189
  </td></tr>
176
190
  <tr><td>
177
191
 
@@ -0,0 +1,15 @@
1
+ # big-world
2
+
3
+ To install dependencies:
4
+
5
+ ```bash
6
+ bun install
7
+ ```
8
+
9
+ To run:
10
+
11
+ ```bash
12
+ bun run index.ts
13
+ ```
14
+
15
+ This project was created using `bun init` in bun v1.1.26. [Bun](https://bun.sh) is a fast all-in-one JavaScript runtime.
@@ -0,0 +1,41 @@
1
+ import {
2
+ startServer,
3
+ PlayerEntity,
4
+ } from 'hytopia';
5
+
6
+ import worldMap from './assets/map.json';
7
+
8
+ /**
9
+ * This example loads and simulates extremely large map that is
10
+ * 750^2 blocks in area. Approximately 2,000,000+ blocks are loaded,
11
+ * resulting in thousands of chunks and a large amount of physics vertices.
12
+ *
13
+ * This example is meant to showcase the performance of the server.
14
+ * When dealing with large fully simulated worlds, as well as benchmark
15
+ * and test client performance.
16
+ *
17
+ * Client load times may take a few seconds because batch
18
+ * loading is not yet implemented.
19
+ */
20
+
21
+ startServer(world => {
22
+ world.loadMap(worldMap);
23
+
24
+ // Spawn a player entity when a player joins the game.
25
+ world.onPlayerJoin = player => {
26
+ const playerEntity = new PlayerEntity({
27
+ player,
28
+ name: 'Player',
29
+ modelUri: 'models/player.gltf',
30
+ modelLoopedAnimations: [ 'idle' ],
31
+ modelScale: 0.5,
32
+ });
33
+
34
+ playerEntity.spawn(world, { x: 0, y: 10, z: 0 });
35
+ };
36
+
37
+ // Despawn all player entities when a player leaves the game.
38
+ world.onPlayerLeave = player => {
39
+ world.entityManager.getAllPlayerEntities(player).forEach(entity => entity.despawn());
40
+ };
41
+ });
@@ -12,7 +12,10 @@ import worldMap from './assets/map.json';
12
12
 
13
13
  startServer(world => {
14
14
  // Boilerplate
15
- world.simulation.enableDebugRendering(true);
15
+
16
+ // Uncomment this to visualize physics vertices, will cause noticable lag.
17
+ // world.simulation.enableDebugRendering(true);
18
+
16
19
  world.loadMap(worldMap);
17
20
  world.onPlayerJoin = player => {
18
21
  const playerEntity = new PlayerEntity({
@@ -66,7 +69,7 @@ startServer(world => {
66
69
  rigidBodyOptions: {
67
70
  type: RigidBodyType.KINEMATIC_VELOCITY,
68
71
  angularVelocity: { x: 1, y: 1, z: 1 },
69
- }
72
+ },
70
73
  });
71
74
 
72
75
  spinningBlock.spawn(world, { x: 0, y: 10, z: -6 });
@@ -88,7 +91,7 @@ startServer(world => {
88
91
  if (started) {
89
92
  world.chatManager.sendBroadcastMessage('The sand block was pushed!');
90
93
  }
91
- }
94
+ };
92
95
 
93
96
  movableBlock.spawn(world, { x: -4, y: 10, z: -6 });
94
97
 
@@ -103,7 +106,7 @@ startServer(world => {
103
106
  type: RigidBodyType.DYNAMIC,
104
107
  additionalMass: 10,
105
108
  enabledRotations: { x: false, y: false, z: false },
106
- }
109
+ },
107
110
  });
108
111
 
109
112
  heavyBlock.spawn(world, { x: -4, y: 10, z: -1 });
@@ -122,10 +125,10 @@ startServer(world => {
122
125
  {
123
126
  shape: ColliderShape.BLOCK,
124
127
  halfExtents: { x: 0.5, y: 0.5, z: 0.5 },
125
- bounciness: 2
126
- }
127
- ]
128
- }
128
+ bounciness: 2,
129
+ },
130
+ ],
131
+ },
129
132
  });
130
133
 
131
134
  bouncingBlock.spawn(world, { x: 0, y: 10, z: -3 });
@@ -5,6 +5,7 @@ import {
5
5
  Collider,
6
6
  Entity,
7
7
  ColliderShape,
8
+ CoefficientCombineRule,
8
9
  BlockType,
9
10
  } from 'hytopia';
10
11
 
@@ -47,14 +48,14 @@ export default class MyCharacterController extends BaseCharacterController {
47
48
  public get platform(): Entity | undefined { return this._platform; }
48
49
 
49
50
  /**
50
- * Create the sensor colliders for the character controller.
51
+ * Create the colliders for the character controller.
51
52
  */
52
- public createSensorColliders(): Collider[] {
53
+ public createColliders(): Collider[] {
53
54
  if (!this.entity.isSpawned) {
54
55
  throw new Error('CharacterController.createSensorColliders(): Entity is not spawned!');
55
56
  }
56
57
 
57
- const sensorColliders: Collider[] = [];
58
+ const colliders: Collider[] = [];
58
59
 
59
60
  /**
60
61
  * Our ground sensor detects when we're on the ground.
@@ -63,7 +64,7 @@ export default class MyCharacterController extends BaseCharacterController {
63
64
  * by the DEFAULT_ENTITY_RIGID_BODY_OPTIONS constant of
64
65
  * the hytopia package.
65
66
  */
66
- sensorColliders.push(new Collider({
67
+ colliders.push(new Collider({
67
68
  shape: ColliderShape.CYLINDER,
68
69
  radius: 0.30,
69
70
  halfHeight: 0.125,
@@ -95,7 +96,26 @@ export default class MyCharacterController extends BaseCharacterController {
95
96
  },
96
97
  }));
97
98
 
98
- return sensorColliders;
99
+ /**
100
+ * A wall collider slightly larger than our player hitbox with
101
+ * a collision group that only collides with blocks. This prevent
102
+ * sticking and friction to blocks as a player moves, creating
103
+ * a smooth slide effect on walls that we jump into, etc.
104
+ */
105
+ colliders.push(new Collider({
106
+ shape: ColliderShape.CAPSULE,
107
+ halfHeight: 0.30,
108
+ radius: 0.37,
109
+ collisionGroups: {
110
+ belongsTo: [ CollisionGroup.ENTITY_SENSOR ],
111
+ collidesWith: [ CollisionGroup.BLOCK ],
112
+ },
113
+ friction: 0,
114
+ frictionCombineRule: CoefficientCombineRule.Min,
115
+ tag: 'wallCollider',
116
+ }));
117
+
118
+ return colliders;
99
119
  }
100
120
 
101
121
  /**
@@ -8,7 +8,9 @@ import MyCharacterController from './MyCharacterController';
8
8
  import worldMap from './assets/map.json';
9
9
 
10
10
  startServer(world => {
11
- world.simulation.enableDebugRendering(true);
11
+ // Uncomment this to visualize physics vertices, will cause noticable lag.
12
+ // world.simulation.enableDebugRendering(true);
13
+
12
14
  world.loadMap(worldMap);
13
15
 
14
16
  world.onPlayerJoin = player => {
@@ -67,7 +67,9 @@ startServer(world => {
67
67
  * Boilerplate setup for our example
68
68
  */
69
69
  function setup(world: World) {
70
- world.simulation.enableDebugRendering(true);
70
+ // Uncomment this to visualize physics vertices, will cause noticable lag.
71
+ // world.simulation.enableDebugRendering(true);
72
+
71
73
  world.loadMap(worldMap);
72
74
 
73
75
  // Spawn a player entity when a player joins the game.
@@ -34,8 +34,8 @@ import {
34
34
  import type {
35
35
  PlayerInputState,
36
36
  PlayerOrientationState,
37
- Rotation,
38
- Vector3,
37
+ QuaternionLike,
38
+ Vector3Like,
39
39
  } from 'hytopia';
40
40
 
41
41
  import map from './assets/map.json';
@@ -78,7 +78,7 @@ const PAYLOAD_WAYPOINT_ENEMY_SPAWNS = [
78
78
  // Simple game state tracking via globals.
79
79
  const enemyHealth: Record<number, number> = {}; // Entity id -> health
80
80
  const enemyPathfindAccumulators: Record<number, number> = {}; // Entity id -> accumulator, so we don't pathfind each tick
81
- const enemyPathfindingTargets: Record<number, Vector3> = {}; // Entity id -> target coordinate
81
+ const enemyPathfindingTargets: Record<number, Vector3Like> = {}; // Entity id -> target coordinate
82
82
  const playerEntityHealth: Record<number, number> = {}; // Player entity id -> health
83
83
  let started = false; // Game started flag
84
84
  let payloadEntity: Entity | null = null; // Payload entity
@@ -90,8 +90,8 @@ let targetWaypointCoordinateIndex = 0; // Current waypoint coordinate index for
90
90
  startServer(world => { // Perform our game setup logic in the startServer init callback here.
91
91
  const chatManager = world.chatManager;
92
92
 
93
- // Enable debug rendering
94
- // world.simulation.enableDebugRendering(true);
93
+ // Uncomment this to visualize physics vertices, will cause noticable lag.
94
+ // world.simulation.enableDebugRendering(true);
95
95
 
96
96
  // Load Map
97
97
  world.loadMap(map);
@@ -109,7 +109,7 @@ startServer(world => { // Perform our game setup logic in the startServer init c
109
109
  // Setup a first person camera for the player
110
110
  player.camera.setMode(PlayerCameraMode.FIRST_PERSON); // set first person mode
111
111
  player.camera.setOffset({ x: 0, y: 0.4, z: 0 }); // shift camrea up on Y axis so we see from "head" perspective.
112
- player.camera.setHiddenModelNodes([ 'head', 'neck' ]); // hide the head node from the model so we don't see it in the camera, this is just hidden for the controlling player.
112
+ player.camera.setModelHiddenNodes([ 'head', 'neck' ]); // hide the head node from the model so we don't see it in the camera, this is just hidden for the controlling player.
113
113
  player.camera.setForwardOffset(0.3); // Shift the camera forward so we are looking slightly in front of where the player is looking.
114
114
 
115
115
  // Spawn the player entity at a random coordinate
@@ -207,7 +207,7 @@ function startEnemySpawnLoop(world: World) {
207
207
  spawn();
208
208
  }
209
209
 
210
- function spawnBullet(world: World, coordinate: Vector3, direction: Vector3) {
210
+ function spawnBullet(world: World, coordinate: Vector3Like, direction: Vector3Like) {
211
211
  // Spawn a bullet when the player shoots.
212
212
  const bullet = new Entity({
213
213
  name: 'Bullet',
@@ -340,7 +340,7 @@ function spawnPayloadEntity(world: World) {
340
340
  })).play(world);
341
341
  }
342
342
 
343
- function spawnSpider(world: World, coordinate: Vector3) {
343
+ function spawnSpider(world: World, coordinate: Vector3Like) {
344
344
  const baseScale = 0.5;
345
345
  const baseSpeed = 3;
346
346
  const randomScaleMultiplier = Math.random() * 2 + 1; // Random value between 1 and 3 // Random scale multiplier to make each spider a different size
@@ -529,7 +529,7 @@ function damagePlayer(playerEntity: PlayerEntity) {
529
529
  }
530
530
  }
531
531
 
532
- function getDirectionFromOrientation(orientationState: PlayerOrientationState): Vector3 {
532
+ function getDirectionFromOrientation(orientationState: PlayerOrientationState): Vector3Like {
533
533
  const { yaw, pitch } = orientationState;
534
534
  const cosPitch = Math.cos(pitch);
535
535
 
@@ -540,7 +540,7 @@ function getDirectionFromOrientation(orientationState: PlayerOrientationState):
540
540
  };
541
541
  }
542
542
 
543
- function getRotationFromDirection(direction: Vector3): Rotation {
543
+ function getRotationFromDirection(direction: Vector3Like): QuaternionLike {
544
544
  // Calculate yaw (rotation around Y-axis)
545
545
  const yaw = Math.atan2(-direction.x, -direction.z);
546
546
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hytopia",
3
- "version": "0.1.37",
3
+ "version": "0.1.40",
4
4
  "description": "The HYTOPIA SDK makes it easy for developers to create massively multiplayer games using JavaScript or TypeScript.",
5
5
  "main": "server.js",
6
6
  "bin": {