@hytopia.com/examples 1.0.2 → 1.0.3

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 (273) hide show
  1. package/ai-agents/package.json +2 -2
  2. package/big-world/package.json +2 -2
  3. package/block-entity/package.json +2 -2
  4. package/child-entity/package.json +2 -2
  5. package/custom-ui/package.json +2 -2
  6. package/entity-animations/package.json +2 -2
  7. package/entity-controller/package.json +2 -2
  8. package/entity-spawn/package.json +2 -2
  9. package/frontiers-rpg-game/assets/maps/{city.json → stalkhaven.json} +1 -0
  10. package/frontiers-rpg-game/assets/models/enemies/.optimized/rodent-brute/baseColor.png +0 -0
  11. package/frontiers-rpg-game/assets/models/enemies/.optimized/rodent-brute/rodent-brute-named-nodes.bin +0 -0
  12. package/frontiers-rpg-game/assets/models/enemies/.optimized/rodent-brute/rodent-brute-named-nodes.gltf +4634 -0
  13. package/frontiers-rpg-game/assets/models/enemies/.optimized/rodent-brute/rodent-brute.bin +0 -0
  14. package/frontiers-rpg-game/assets/models/enemies/.optimized/rodent-brute/rodent-brute.gltf +3322 -0
  15. package/frontiers-rpg-game/assets/models/enemies/.optimized/rodent-brute/rodent-brute.gltf.md5 +1 -0
  16. package/frontiers-rpg-game/assets/models/enemies/.optimized/rodent-ranger/baseColor.png +0 -0
  17. package/frontiers-rpg-game/assets/models/enemies/.optimized/rodent-ranger/rodent-ranger-named-nodes.bin +0 -0
  18. package/frontiers-rpg-game/assets/models/enemies/.optimized/rodent-ranger/rodent-ranger-named-nodes.gltf +4057 -0
  19. package/frontiers-rpg-game/assets/models/enemies/.optimized/rodent-ranger/rodent-ranger.bin +0 -0
  20. package/frontiers-rpg-game/assets/models/enemies/.optimized/rodent-ranger/rodent-ranger.gltf +3084 -0
  21. package/frontiers-rpg-game/assets/models/enemies/.optimized/rodent-ranger/rodent-ranger.gltf.md5 +1 -0
  22. package/frontiers-rpg-game/assets/models/enemies/.optimized/rodent-spellcaster/baseColor.png +0 -0
  23. package/frontiers-rpg-game/assets/models/enemies/.optimized/rodent-spellcaster/rodent-spellcaster-named-nodes.bin +0 -0
  24. package/frontiers-rpg-game/assets/models/enemies/.optimized/rodent-spellcaster/rodent-spellcaster-named-nodes.gltf +3562 -0
  25. package/frontiers-rpg-game/assets/models/enemies/.optimized/rodent-spellcaster/rodent-spellcaster.bin +0 -0
  26. package/frontiers-rpg-game/assets/models/enemies/.optimized/rodent-spellcaster/rodent-spellcaster.gltf +2577 -0
  27. package/frontiers-rpg-game/assets/models/enemies/.optimized/rodent-spellcaster/rodent-spellcaster.gltf.md5 +1 -0
  28. package/frontiers-rpg-game/assets/models/enemies/.optimized/rodent-warrior/baseColor.png +0 -0
  29. package/frontiers-rpg-game/assets/models/enemies/.optimized/rodent-warrior/rodent-warrior-named-nodes.bin +0 -0
  30. package/frontiers-rpg-game/assets/models/enemies/.optimized/rodent-warrior/rodent-warrior-named-nodes.gltf +3699 -0
  31. package/frontiers-rpg-game/assets/models/enemies/.optimized/rodent-warrior/rodent-warrior.bin +0 -0
  32. package/frontiers-rpg-game/assets/models/enemies/.optimized/rodent-warrior/rodent-warrior.gltf +2721 -0
  33. package/frontiers-rpg-game/assets/models/enemies/.optimized/rodent-warrior/rodent-warrior.gltf.md5 +1 -0
  34. package/frontiers-rpg-game/assets/models/enemies/rodent-brute.gltf +1 -0
  35. package/frontiers-rpg-game/assets/models/enemies/rodent-ranger.gltf +1 -0
  36. package/frontiers-rpg-game/assets/models/enemies/rodent-spellcaster.gltf +1 -0
  37. package/frontiers-rpg-game/assets/models/enemies/rodent-warrior.gltf +1 -0
  38. package/frontiers-rpg-game/assets/models/environment/.optimized/clouds-test/clouds-test-named-nodes.glb +0 -0
  39. package/frontiers-rpg-game/assets/models/environment/.optimized/clouds-test/clouds-test.glb +0 -0
  40. package/frontiers-rpg-game/assets/models/environment/.optimized/clouds-test/clouds-test.glb.md5 +1 -0
  41. package/frontiers-rpg-game/assets/models/environment/clouds-test.glb +0 -0
  42. package/frontiers-rpg-game/assets/models/npcs/.optimized/adventurer/adventurer-named-nodes.bin +0 -0
  43. package/frontiers-rpg-game/assets/models/npcs/.optimized/adventurer/adventurer-named-nodes.gltf +5390 -0
  44. package/frontiers-rpg-game/assets/models/npcs/.optimized/adventurer/adventurer.bin +0 -0
  45. package/frontiers-rpg-game/assets/models/npcs/.optimized/adventurer/adventurer.gltf +1752 -0
  46. package/frontiers-rpg-game/assets/models/npcs/.optimized/adventurer/adventurer.gltf.md5 +1 -0
  47. package/frontiers-rpg-game/assets/models/npcs/.optimized/adventurer/baseColor.png +0 -0
  48. package/frontiers-rpg-game/assets/models/npcs/.optimized/auctioneer/auctioneer-named-nodes.bin +0 -0
  49. package/frontiers-rpg-game/assets/models/npcs/.optimized/auctioneer/auctioneer-named-nodes.gltf +3049 -0
  50. package/frontiers-rpg-game/assets/models/npcs/.optimized/auctioneer/auctioneer.bin +0 -0
  51. package/frontiers-rpg-game/assets/models/npcs/.optimized/auctioneer/auctioneer.gltf +1647 -0
  52. package/frontiers-rpg-game/assets/models/npcs/.optimized/auctioneer/auctioneer.gltf.md5 +1 -0
  53. package/frontiers-rpg-game/assets/models/npcs/.optimized/auctioneer/baseColor.png +0 -0
  54. package/frontiers-rpg-game/assets/models/npcs/.optimized/banker/banker-named-nodes.bin +0 -0
  55. package/frontiers-rpg-game/assets/models/npcs/.optimized/banker/banker-named-nodes.gltf +3120 -0
  56. package/frontiers-rpg-game/assets/models/npcs/.optimized/banker/banker.bin +0 -0
  57. package/frontiers-rpg-game/assets/models/npcs/.optimized/banker/banker.gltf +1415 -0
  58. package/frontiers-rpg-game/assets/models/npcs/.optimized/banker/banker.gltf.md5 +1 -0
  59. package/frontiers-rpg-game/assets/models/npcs/.optimized/banker/baseColor.png +0 -0
  60. package/frontiers-rpg-game/assets/models/npcs/.optimized/blacksmith/baseColor.png +0 -0
  61. package/frontiers-rpg-game/assets/models/npcs/.optimized/blacksmith/blacksmith-named-nodes.bin +0 -0
  62. package/frontiers-rpg-game/assets/models/npcs/.optimized/blacksmith/blacksmith-named-nodes.gltf +2830 -0
  63. package/frontiers-rpg-game/assets/models/npcs/.optimized/blacksmith/blacksmith.bin +0 -0
  64. package/frontiers-rpg-game/assets/models/npcs/.optimized/blacksmith/blacksmith.gltf +1076 -0
  65. package/frontiers-rpg-game/assets/models/npcs/.optimized/blacksmith/blacksmith.gltf.md5 +1 -0
  66. package/frontiers-rpg-game/assets/models/npcs/.optimized/cook/baseColor.png +0 -0
  67. package/frontiers-rpg-game/assets/models/npcs/.optimized/cook/cook-named-nodes.bin +0 -0
  68. package/frontiers-rpg-game/assets/models/npcs/.optimized/cook/cook-named-nodes.gltf +2526 -0
  69. package/frontiers-rpg-game/assets/models/npcs/.optimized/cook/cook.bin +0 -0
  70. package/frontiers-rpg-game/assets/models/npcs/.optimized/cook/cook.gltf +1329 -0
  71. package/frontiers-rpg-game/assets/models/npcs/.optimized/cook/cook.gltf.md5 +1 -0
  72. package/frontiers-rpg-game/assets/models/npcs/.optimized/farmer/baseColor.png +0 -0
  73. package/frontiers-rpg-game/assets/models/npcs/.optimized/farmer/farmer-named-nodes.bin +0 -0
  74. package/frontiers-rpg-game/assets/models/npcs/.optimized/farmer/farmer-named-nodes.gltf +3609 -0
  75. package/frontiers-rpg-game/assets/models/npcs/.optimized/farmer/farmer.bin +0 -0
  76. package/frontiers-rpg-game/assets/models/npcs/.optimized/farmer/farmer.gltf +1914 -0
  77. package/frontiers-rpg-game/assets/models/npcs/.optimized/farmer/farmer.gltf.md5 +1 -0
  78. package/frontiers-rpg-game/assets/models/npcs/.optimized/farmer2/baseColor_1.png +0 -0
  79. package/frontiers-rpg-game/assets/models/npcs/.optimized/farmer2/baseColor_2.png +0 -0
  80. package/frontiers-rpg-game/assets/models/npcs/.optimized/farmer2/farmer2-named-nodes.bin +0 -0
  81. package/frontiers-rpg-game/assets/models/npcs/.optimized/farmer2/farmer2-named-nodes.gltf +3609 -0
  82. package/frontiers-rpg-game/assets/models/npcs/.optimized/farmer2/farmer2.bin +0 -0
  83. package/frontiers-rpg-game/assets/models/npcs/.optimized/farmer2/farmer2.gltf +1946 -0
  84. package/frontiers-rpg-game/assets/models/npcs/.optimized/farmer2/farmer2.gltf.md5 +1 -0
  85. package/frontiers-rpg-game/assets/models/npcs/.optimized/farmer3/baseColor_1.png +0 -0
  86. package/frontiers-rpg-game/assets/models/npcs/.optimized/farmer3/baseColor_2.png +0 -0
  87. package/frontiers-rpg-game/assets/models/npcs/.optimized/farmer3/farmer3-named-nodes.bin +0 -0
  88. package/frontiers-rpg-game/assets/models/npcs/.optimized/farmer3/farmer3-named-nodes.gltf +4296 -0
  89. package/frontiers-rpg-game/assets/models/npcs/.optimized/farmer3/farmer3.bin +0 -0
  90. package/frontiers-rpg-game/assets/models/npcs/.optimized/farmer3/farmer3.gltf +1836 -0
  91. package/frontiers-rpg-game/assets/models/npcs/.optimized/farmer3/farmer3.gltf.md5 +1 -0
  92. package/frontiers-rpg-game/assets/models/npcs/.optimized/fisherman/baseColor.png +0 -0
  93. package/frontiers-rpg-game/assets/models/npcs/.optimized/fisherman/fisherman-named-nodes.bin +0 -0
  94. package/frontiers-rpg-game/assets/models/npcs/.optimized/fisherman/fisherman-named-nodes.gltf +3444 -0
  95. package/frontiers-rpg-game/assets/models/npcs/.optimized/fisherman/fisherman.bin +0 -0
  96. package/frontiers-rpg-game/assets/models/npcs/.optimized/fisherman/fisherman.gltf +1708 -0
  97. package/frontiers-rpg-game/assets/models/npcs/.optimized/fisherman/fisherman.gltf.md5 +1 -0
  98. package/frontiers-rpg-game/assets/models/npcs/.optimized/hunter/baseColor.png +0 -0
  99. package/frontiers-rpg-game/assets/models/npcs/.optimized/hunter/hunter-named-nodes.bin +0 -0
  100. package/frontiers-rpg-game/assets/models/npcs/.optimized/hunter/hunter-named-nodes.gltf +3825 -0
  101. package/frontiers-rpg-game/assets/models/npcs/.optimized/hunter/hunter.bin +0 -0
  102. package/frontiers-rpg-game/assets/models/npcs/.optimized/hunter/hunter.gltf +1740 -0
  103. package/frontiers-rpg-game/assets/models/npcs/.optimized/hunter/hunter.gltf.md5 +1 -0
  104. package/frontiers-rpg-game/assets/models/npcs/.optimized/king/baseColor.png +0 -0
  105. package/frontiers-rpg-game/assets/models/npcs/.optimized/king/king-named-nodes.bin +0 -0
  106. package/frontiers-rpg-game/assets/models/npcs/.optimized/king/king-named-nodes.gltf +3905 -0
  107. package/frontiers-rpg-game/assets/models/npcs/.optimized/king/king.bin +0 -0
  108. package/frontiers-rpg-game/assets/models/npcs/.optimized/king/king.gltf +1560 -0
  109. package/frontiers-rpg-game/assets/models/npcs/.optimized/king/king.gltf.md5 +1 -0
  110. package/frontiers-rpg-game/assets/models/npcs/.optimized/knight/baseColor.png +0 -0
  111. package/frontiers-rpg-game/assets/models/npcs/.optimized/knight/knight-named-nodes.bin +0 -0
  112. package/frontiers-rpg-game/assets/models/npcs/.optimized/knight/knight-named-nodes.gltf +4313 -0
  113. package/frontiers-rpg-game/assets/models/npcs/.optimized/knight/knight.bin +0 -0
  114. package/frontiers-rpg-game/assets/models/npcs/.optimized/knight/knight.gltf +2706 -0
  115. package/frontiers-rpg-game/assets/models/npcs/.optimized/knight/knight.gltf.md5 +1 -0
  116. package/frontiers-rpg-game/assets/models/npcs/.optimized/knight-commander/baseColor.png +0 -0
  117. package/frontiers-rpg-game/assets/models/npcs/.optimized/knight-commander/knight-commander-named-nodes.bin +0 -0
  118. package/frontiers-rpg-game/assets/models/npcs/.optimized/knight-commander/knight-commander-named-nodes.gltf +3761 -0
  119. package/frontiers-rpg-game/assets/models/npcs/.optimized/knight-commander/knight-commander.bin +0 -0
  120. package/frontiers-rpg-game/assets/models/npcs/.optimized/knight-commander/knight-commander.gltf +2023 -0
  121. package/frontiers-rpg-game/assets/models/npcs/.optimized/knight-commander/knight-commander.gltf.md5 +1 -0
  122. package/frontiers-rpg-game/assets/models/npcs/.optimized/librarian/baseColor.png +0 -0
  123. package/frontiers-rpg-game/assets/models/npcs/.optimized/librarian/librarian-named-nodes.bin +0 -0
  124. package/frontiers-rpg-game/assets/models/npcs/.optimized/librarian/librarian-named-nodes.gltf +4109 -0
  125. package/frontiers-rpg-game/assets/models/npcs/.optimized/librarian/librarian.bin +0 -0
  126. package/frontiers-rpg-game/assets/models/npcs/.optimized/librarian/librarian.gltf +1562 -0
  127. package/frontiers-rpg-game/assets/models/npcs/.optimized/librarian/librarian.gltf.md5 +1 -0
  128. package/frontiers-rpg-game/assets/models/npcs/.optimized/lumberjack/baseColor.png +0 -0
  129. package/frontiers-rpg-game/assets/models/npcs/.optimized/lumberjack/lumberjack-named-nodes.bin +0 -0
  130. package/frontiers-rpg-game/assets/models/npcs/.optimized/lumberjack/lumberjack-named-nodes.gltf +3259 -0
  131. package/frontiers-rpg-game/assets/models/npcs/.optimized/lumberjack/lumberjack.bin +0 -0
  132. package/frontiers-rpg-game/assets/models/npcs/.optimized/lumberjack/lumberjack.gltf +1615 -0
  133. package/frontiers-rpg-game/assets/models/npcs/.optimized/lumberjack/lumberjack.gltf.md5 +1 -0
  134. package/frontiers-rpg-game/assets/models/npcs/.optimized/mage/baseColor.png +0 -0
  135. package/frontiers-rpg-game/assets/models/npcs/.optimized/mage/mage-named-nodes.bin +0 -0
  136. package/frontiers-rpg-game/assets/models/npcs/.optimized/mage/mage-named-nodes.gltf +4417 -0
  137. package/frontiers-rpg-game/assets/models/npcs/.optimized/mage/mage.bin +0 -0
  138. package/frontiers-rpg-game/assets/models/npcs/.optimized/mage/mage.gltf +1766 -0
  139. package/frontiers-rpg-game/assets/models/npcs/.optimized/mage/mage.gltf.md5 +1 -0
  140. package/frontiers-rpg-game/assets/models/npcs/.optimized/mechanic/baseColor.png +0 -0
  141. package/frontiers-rpg-game/assets/models/npcs/.optimized/mechanic/mechanic-named-nodes.bin +0 -0
  142. package/frontiers-rpg-game/assets/models/npcs/.optimized/mechanic/mechanic-named-nodes.gltf +4322 -0
  143. package/frontiers-rpg-game/assets/models/npcs/.optimized/mechanic/mechanic.bin +0 -0
  144. package/frontiers-rpg-game/assets/models/npcs/.optimized/mechanic/mechanic.gltf +1647 -0
  145. package/frontiers-rpg-game/assets/models/npcs/.optimized/mechanic/mechanic.gltf.md5 +1 -0
  146. package/frontiers-rpg-game/assets/models/npcs/.optimized/merchant/baseColor.png +0 -0
  147. package/frontiers-rpg-game/assets/models/npcs/.optimized/merchant/merchant-named-nodes.bin +0 -0
  148. package/frontiers-rpg-game/assets/models/npcs/.optimized/merchant/merchant-named-nodes.gltf +4109 -0
  149. package/frontiers-rpg-game/assets/models/npcs/.optimized/merchant/merchant.bin +0 -0
  150. package/frontiers-rpg-game/assets/models/npcs/.optimized/merchant/merchant.gltf +1562 -0
  151. package/frontiers-rpg-game/assets/models/npcs/.optimized/merchant/merchant.gltf.md5 +1 -0
  152. package/frontiers-rpg-game/assets/models/npcs/.optimized/miner/baseColor.png +0 -0
  153. package/frontiers-rpg-game/assets/models/npcs/.optimized/miner/miner-named-nodes.bin +0 -0
  154. package/frontiers-rpg-game/assets/models/npcs/.optimized/miner/miner-named-nodes.gltf +4579 -0
  155. package/frontiers-rpg-game/assets/models/npcs/.optimized/miner/miner.bin +0 -0
  156. package/frontiers-rpg-game/assets/models/npcs/.optimized/miner/miner.gltf +1790 -0
  157. package/frontiers-rpg-game/assets/models/npcs/.optimized/miner/miner.gltf.md5 +1 -0
  158. package/frontiers-rpg-game/assets/models/npcs/.optimized/miner2/baseColor_1.png +0 -0
  159. package/frontiers-rpg-game/assets/models/npcs/.optimized/miner2/baseColor_2.png +0 -0
  160. package/frontiers-rpg-game/assets/models/npcs/.optimized/miner2/miner2-named-nodes.bin +0 -0
  161. package/frontiers-rpg-game/assets/models/npcs/.optimized/miner2/miner2-named-nodes.gltf +4836 -0
  162. package/frontiers-rpg-game/assets/models/npcs/.optimized/miner2/miner2.bin +0 -0
  163. package/frontiers-rpg-game/assets/models/npcs/.optimized/miner2/miner2.gltf +1871 -0
  164. package/frontiers-rpg-game/assets/models/npcs/.optimized/miner2/miner2.gltf.md5 +1 -0
  165. package/frontiers-rpg-game/assets/models/npcs/.optimized/miner3/baseColor.png +0 -0
  166. package/frontiers-rpg-game/assets/models/npcs/.optimized/miner3/miner3-named-nodes.bin +0 -0
  167. package/frontiers-rpg-game/assets/models/npcs/.optimized/miner3/miner3-named-nodes.gltf +4532 -0
  168. package/frontiers-rpg-game/assets/models/npcs/.optimized/miner3/miner3.bin +0 -0
  169. package/frontiers-rpg-game/assets/models/npcs/.optimized/miner3/miner3.gltf +1748 -0
  170. package/frontiers-rpg-game/assets/models/npcs/.optimized/miner3/miner3.gltf.md5 +1 -0
  171. package/frontiers-rpg-game/assets/models/npcs/.optimized/mushroom-boy/baseColor.png +0 -0
  172. package/frontiers-rpg-game/assets/models/npcs/.optimized/mushroom-boy/mushroom-boy-named-nodes.bin +0 -0
  173. package/frontiers-rpg-game/assets/models/npcs/.optimized/mushroom-boy/mushroom-boy-named-nodes.gltf +2164 -0
  174. package/frontiers-rpg-game/assets/models/npcs/.optimized/mushroom-boy/mushroom-boy.bin +0 -0
  175. package/frontiers-rpg-game/assets/models/npcs/.optimized/mushroom-boy/mushroom-boy.gltf +1623 -0
  176. package/frontiers-rpg-game/assets/models/npcs/.optimized/mushroom-boy/mushroom-boy.gltf.md5 +1 -0
  177. package/frontiers-rpg-game/assets/models/npcs/.optimized/mushroom-elder/baseColor.png +0 -0
  178. package/frontiers-rpg-game/assets/models/npcs/.optimized/mushroom-elder/mushroom-elder-named-nodes.bin +0 -0
  179. package/frontiers-rpg-game/assets/models/npcs/.optimized/mushroom-elder/mushroom-elder-named-nodes.gltf +2438 -0
  180. package/frontiers-rpg-game/assets/models/npcs/.optimized/mushroom-elder/mushroom-elder.bin +0 -0
  181. package/frontiers-rpg-game/assets/models/npcs/.optimized/mushroom-elder/mushroom-elder.gltf +1407 -0
  182. package/frontiers-rpg-game/assets/models/npcs/.optimized/mushroom-elder/mushroom-elder.gltf.md5 +1 -0
  183. package/frontiers-rpg-game/assets/models/npcs/.optimized/mushroom-knight/baseColor.png +0 -0
  184. package/frontiers-rpg-game/assets/models/npcs/.optimized/mushroom-knight/mushroom-knight-named-nodes.bin +0 -0
  185. package/frontiers-rpg-game/assets/models/npcs/.optimized/mushroom-knight/mushroom-knight-named-nodes.gltf +2844 -0
  186. package/frontiers-rpg-game/assets/models/npcs/.optimized/mushroom-knight/mushroom-knight.bin +0 -0
  187. package/frontiers-rpg-game/assets/models/npcs/.optimized/mushroom-knight/mushroom-knight.gltf +1500 -0
  188. package/frontiers-rpg-game/assets/models/npcs/.optimized/mushroom-knight/mushroom-knight.gltf.md5 +1 -0
  189. package/frontiers-rpg-game/assets/models/npcs/.optimized/mushroom-man/baseColor.png +0 -0
  190. package/frontiers-rpg-game/assets/models/npcs/.optimized/mushroom-man/mushroom-man-named-nodes.bin +0 -0
  191. package/frontiers-rpg-game/assets/models/npcs/.optimized/mushroom-man/mushroom-man-named-nodes.gltf +2376 -0
  192. package/frontiers-rpg-game/assets/models/npcs/.optimized/mushroom-man/mushroom-man.bin +0 -0
  193. package/frontiers-rpg-game/assets/models/npcs/.optimized/mushroom-man/mushroom-man.gltf +1506 -0
  194. package/frontiers-rpg-game/assets/models/npcs/.optimized/mushroom-man/mushroom-man.gltf.md5 +1 -0
  195. package/frontiers-rpg-game/assets/models/npcs/.optimized/repairman/baseColor.png +0 -0
  196. package/frontiers-rpg-game/assets/models/npcs/.optimized/repairman/repairman-named-nodes.bin +0 -0
  197. package/frontiers-rpg-game/assets/models/npcs/.optimized/repairman/repairman-named-nodes.gltf +2872 -0
  198. package/frontiers-rpg-game/assets/models/npcs/.optimized/repairman/repairman.bin +0 -0
  199. package/frontiers-rpg-game/assets/models/npcs/.optimized/repairman/repairman.gltf +1582 -0
  200. package/frontiers-rpg-game/assets/models/npcs/.optimized/repairman/repairman.gltf.md5 +1 -0
  201. package/frontiers-rpg-game/assets/models/npcs/.optimized/villager/baseColor.png +0 -0
  202. package/frontiers-rpg-game/assets/models/npcs/.optimized/villager/villager-named-nodes.bin +0 -0
  203. package/frontiers-rpg-game/assets/models/npcs/.optimized/villager/villager-named-nodes.gltf +2530 -0
  204. package/frontiers-rpg-game/assets/models/npcs/.optimized/villager/villager.bin +0 -0
  205. package/frontiers-rpg-game/assets/models/npcs/.optimized/villager/villager.gltf +1503 -0
  206. package/frontiers-rpg-game/assets/models/npcs/.optimized/villager/villager.gltf.md5 +1 -0
  207. package/frontiers-rpg-game/assets/models/npcs/.optimized/witch/baseColor.png +0 -0
  208. package/frontiers-rpg-game/assets/models/npcs/.optimized/witch/witch-named-nodes.bin +0 -0
  209. package/frontiers-rpg-game/assets/models/npcs/.optimized/witch/witch-named-nodes.gltf +4015 -0
  210. package/frontiers-rpg-game/assets/models/npcs/.optimized/witch/witch.bin +0 -0
  211. package/frontiers-rpg-game/assets/models/npcs/.optimized/witch/witch.gltf +1381 -0
  212. package/frontiers-rpg-game/assets/models/npcs/.optimized/witch/witch.gltf.md5 +1 -0
  213. package/frontiers-rpg-game/assets/models/npcs/adventurer.gltf +1 -0
  214. package/frontiers-rpg-game/assets/models/npcs/auctioneer.gltf +1 -0
  215. package/frontiers-rpg-game/assets/models/npcs/banker.gltf +1 -0
  216. package/frontiers-rpg-game/assets/models/npcs/blacksmith.gltf +1 -0
  217. package/frontiers-rpg-game/assets/models/npcs/cook.gltf +1 -0
  218. package/frontiers-rpg-game/assets/models/npcs/farmer.gltf +1 -0
  219. package/frontiers-rpg-game/assets/models/npcs/farmer2.gltf +1 -0
  220. package/frontiers-rpg-game/assets/models/npcs/farmer3.gltf +1 -0
  221. package/frontiers-rpg-game/assets/models/npcs/fisherman.gltf +1 -0
  222. package/frontiers-rpg-game/assets/models/npcs/hunter.gltf +1 -0
  223. package/frontiers-rpg-game/assets/models/npcs/king.gltf +1 -0
  224. package/frontiers-rpg-game/assets/models/npcs/knight-commander.gltf +1 -0
  225. package/frontiers-rpg-game/assets/models/npcs/knight.gltf +1 -0
  226. package/frontiers-rpg-game/assets/models/npcs/lumberjack.gltf +1 -0
  227. package/frontiers-rpg-game/assets/models/npcs/mage.gltf +1 -0
  228. package/frontiers-rpg-game/assets/models/npcs/mechanic.gltf +1 -0
  229. package/frontiers-rpg-game/assets/models/npcs/merchant.gltf +1 -0
  230. package/frontiers-rpg-game/assets/models/npcs/miner.gltf +1 -0
  231. package/frontiers-rpg-game/assets/models/npcs/miner2.gltf +1 -0
  232. package/frontiers-rpg-game/assets/models/npcs/miner3.gltf +1 -0
  233. package/frontiers-rpg-game/assets/models/npcs/mushroom-boy.gltf +1 -0
  234. package/frontiers-rpg-game/assets/models/npcs/mushroom-elder.gltf +1 -0
  235. package/frontiers-rpg-game/assets/models/npcs/mushroom-knight.gltf +1 -0
  236. package/frontiers-rpg-game/assets/models/npcs/mushroom-man.gltf +1 -0
  237. package/frontiers-rpg-game/assets/models/npcs/repairman.gltf +1 -0
  238. package/frontiers-rpg-game/assets/models/npcs/villager.gltf +1 -0
  239. package/frontiers-rpg-game/assets/models/npcs/witch.gltf +1 -0
  240. package/frontiers-rpg-game/index.ts +4 -27
  241. package/frontiers-rpg-game/package.json +2 -2
  242. package/frontiers-rpg-game/src/GameClock.ts +96 -0
  243. package/frontiers-rpg-game/src/GameManager.ts +30 -0
  244. package/frontiers-rpg-game/src/GameRegion.ts +53 -0
  245. package/frontiers-rpg-game/src/entities/BaseEntity.ts +103 -0
  246. package/frontiers-rpg-game/src/entities/npcs/AdventurerEntity.ts +13 -0
  247. package/frontiers-rpg-game/src/entities/npcs/BankerEntity.ts +13 -0
  248. package/frontiers-rpg-game/src/entities/npcs/BlacksmithEntity.ts +13 -0
  249. package/frontiers-rpg-game/src/entities/npcs/CapfolkElderEntity.ts +17 -0
  250. package/frontiers-rpg-game/src/entities/npcs/CapfolkKnightEntity.ts +17 -0
  251. package/frontiers-rpg-game/src/entities/npcs/CapfolkVillagerEntity.ts +17 -0
  252. package/frontiers-rpg-game/src/entities/npcs/FarmerEntity.ts +13 -0
  253. package/frontiers-rpg-game/src/entities/npcs/MerchantEntity.ts +13 -0
  254. package/frontiers-rpg-game/src/regions/StalkhavenRegion.ts +77 -0
  255. package/hole-in-wall-game/index.ts +4 -1
  256. package/hole-in-wall-game/package.json +2 -2
  257. package/hygrounds/classes/GamePlayerEntity.ts +2 -0
  258. package/hygrounds/package.json +2 -2
  259. package/lighting/package.json +2 -2
  260. package/mobile-controls/package.json +2 -2
  261. package/package.json +1 -1
  262. package/pathfinding/index.ts +4 -1
  263. package/pathfinding/package.json +2 -2
  264. package/payload-game/index.ts +2 -0
  265. package/payload-game/package.json +2 -2
  266. package/player-persistence/package.json +2 -2
  267. package/wall-dodge-game/index.ts +2 -0
  268. package/wall-dodge-game/package.json +2 -2
  269. package/world-switching/package.json +2 -2
  270. package/zombies-fps/classes/GamePlayerEntity.ts +2 -0
  271. package/zombies-fps/package.json +2 -2
  272. package/frontiers-rpg-game/classes/GameClock.ts +0 -166
  273. /package/frontiers-rpg-game/{classes/GameManager.ts → src/config.ts} +0 -0
@@ -0,0 +1,30 @@
1
+ import { WorldManager } from 'hytopia';
2
+ import type GameRegion from './GameRegion';
3
+
4
+ // Regions
5
+ import StalkhavenRegion from './regions/StalkhavenRegion';
6
+
7
+ export default class GameManager {
8
+ public static readonly instance = new GameManager();
9
+
10
+ private _regions: Map<string, GameRegion> = new Map(); // tag -> region
11
+ private _startRegion: GameRegion;
12
+
13
+ public get startRegion(): GameRegion { return this._startRegion; }
14
+
15
+ public getRegion(tag: string): GameRegion | undefined {
16
+ return this._regions.get(tag);
17
+ }
18
+
19
+ public loadRegions(): void {
20
+ // Stalkhaven, Main City (Start)
21
+ const stalkhavenRegion = new StalkhavenRegion();
22
+ this._regions.set(stalkhavenRegion.tag!, stalkhavenRegion);
23
+ this._startRegion = stalkhavenRegion;
24
+
25
+ // Other regions...
26
+
27
+ // Set Stalkhaven as the region/world players automatically join when they connect to the game.
28
+ WorldManager.instance.setDefaultWorld(stalkhavenRegion.world);
29
+ }
30
+ }
@@ -0,0 +1,53 @@
1
+ import {
2
+ DefaultPlayerEntity,
3
+ ErrorHandler,
4
+ Player,
5
+ PlayerEvent,
6
+ World,
7
+ WorldManager,
8
+ WorldOptions,
9
+ Vector3Like,
10
+ } from 'hytopia';
11
+
12
+ export type GameRegionOptions = {
13
+ spawnPoint?: Vector3Like,
14
+ } & Omit<WorldOptions, 'id'>;
15
+
16
+ export default class GameRegion {
17
+ private _isSetup: boolean = false;
18
+ private _spawnPoint: Vector3Like;
19
+ private readonly _world: World;
20
+
21
+ public constructor(options: GameRegionOptions) {
22
+ this._spawnPoint = options.spawnPoint ?? { x: 0, y: 10, z: 0 };
23
+
24
+ this._world = WorldManager.instance.createWorld(options);
25
+ this._world.on(PlayerEvent.JOINED_WORLD, ({ player }) => this._onPlayerJoin(player));
26
+ this._world.on(PlayerEvent.LEFT_WORLD, ({ player }) => this._onPlayerLeave(player));
27
+
28
+ this._setup();
29
+ }
30
+
31
+ public get name(): string { return this._world.name; }
32
+ public get spawnPoint(): Vector3Like { return this._spawnPoint; }
33
+ public get tag(): string | undefined { return this._world.tag; }
34
+ public get world(): World { return this._world; }
35
+
36
+ protected _setup(): void { // intended to be overridden by subclasses
37
+ if (this._isSetup) {
38
+ return ErrorHandler.warning(`GameRegion.setup(): ${this.name} already setup.`);
39
+ }
40
+
41
+ this._isSetup = true;
42
+ }
43
+
44
+ protected _onPlayerJoin(player: Player) {
45
+ (new DefaultPlayerEntity({ player })).spawn(this._world, this._spawnPoint);
46
+ }
47
+
48
+ protected _onPlayerLeave(player: Player) {
49
+ this._world.entityManager.getPlayerEntitiesByPlayer(player).forEach(entity => {
50
+ entity.despawn()
51
+ });
52
+ }
53
+ }
@@ -0,0 +1,103 @@
1
+ import {
2
+ Entity,
3
+ EntityOptions,
4
+ MoveOptions,
5
+ PathfindingEntityController,
6
+ PathfindingOptions,
7
+ Quaternion,
8
+ RigidBodyType,
9
+ Vector3Like,
10
+ } from 'hytopia';
11
+
12
+ export type BaseEntityOptions = {
13
+ controller?: PathfindingEntityController;
14
+ facingAngle?: number;
15
+ facingPosition?: Vector3Like;
16
+ idleAnimations?: string[];
17
+ idleAnimationSpeed?: number;
18
+ moveAnimations?: string[];
19
+ moveAnimationSpeed?: number;
20
+ moveSpeed?: number;
21
+ pushable?: boolean;
22
+ } & EntityOptions;
23
+
24
+ export type WanderOptions = {
25
+ idleMinMs: number;
26
+ idleMaxMs: number;
27
+ moveOptions?: MoveOptions;
28
+ pathfindOptions?: PathfindingOptions;
29
+ }
30
+
31
+ export default class BaseEntity extends Entity {
32
+ private _moveSpeed: number;
33
+ private _wanderAccumulatorMs: number = 0;
34
+
35
+ public constructor(options: BaseEntityOptions) {
36
+ super({
37
+ ...options,
38
+ controller: new PathfindingEntityController(),
39
+ rigidBodyOptions: {
40
+ ...options.rigidBodyOptions,
41
+ type: RigidBodyType.DYNAMIC,
42
+ enabledRotations: { x: false, y: true, z: false },
43
+ rotation: Quaternion.fromEuler(0, options.facingAngle ?? 0, 0),
44
+ additionalMass: !options.pushable ? 1000 : 0,
45
+ }
46
+ });
47
+
48
+ this._moveSpeed = options.moveSpeed ?? 2;
49
+
50
+ this.pathfindingController.idleLoopedAnimations = options.idleAnimations ?? [];
51
+ this.pathfindingController.idleLoopedAnimationsSpeed = options.idleAnimationSpeed ?? undefined;
52
+ this.pathfindingController.moveLoopedAnimations = options.moveAnimations ?? [];
53
+ this.pathfindingController.moveLoopedAnimationsSpeed = options.moveAnimationSpeed ?? undefined;
54
+
55
+ if (options.facingPosition) {
56
+ this.pathfindingController.face(options.facingPosition, this._moveSpeed);
57
+ }
58
+ }
59
+
60
+ public get idleAnimations(): string[] { return this.pathfindingController.idleLoopedAnimations; }
61
+ public get idleAnimationsSpeed(): number | undefined { return this.pathfindingController.idleLoopedAnimationsSpeed; }
62
+ public get moveAnimations(): string[] { return this.pathfindingController.moveLoopedAnimations; }
63
+ public get moveAnimationsSpeed(): number | undefined { return this.pathfindingController.moveLoopedAnimationsSpeed; }
64
+ public get moveSpeed(): number { return this._moveSpeed; }
65
+ public get pathfindingController(): PathfindingEntityController { return this.controller as PathfindingEntityController; }
66
+
67
+ public faceTowards(target: Vector3Like, faceSpeed: number) {
68
+ this.pathfindingController.face(target, faceSpeed);
69
+ }
70
+
71
+ public jump(height: number) {
72
+ this.pathfindingController.jump(height);
73
+ }
74
+
75
+ public pathfindTo(target: Vector3Like, speed: number = this._moveSpeed, options?: PathfindingOptions) {
76
+ this.pathfindingController.pathfind(target, speed, options);
77
+ }
78
+
79
+ public moveTo(target: Vector3Like, speed: number = this._moveSpeed, options?: MoveOptions) {
80
+ this.pathfindingController.move(target, speed, options);
81
+ }
82
+
83
+ public stopMoving() {
84
+ // reset & cancels all movements.
85
+ this.pathfindingController.pathfind(this.position, 1);
86
+ }
87
+
88
+ public wander(targets: Vector3Like[], speed: number = this._moveSpeed, options?: WanderOptions) {
89
+ const randomIndex = Math.floor(Math.random() * targets.length);
90
+ const target = targets[randomIndex];
91
+ this.pathfindTo(target, speed, {
92
+ debug: true,
93
+ maxFall: 5,
94
+ maxJump: 0,
95
+ maxOpenSetIterations: 400,
96
+ waypointTimeoutMs: 500,
97
+ pathfindCompleteCallback: () => {
98
+ setTimeout(() => this.wander(targets, speed, options), 2000);
99
+ }
100
+ });
101
+ console.log('wandering to', target);
102
+ }
103
+ }
@@ -0,0 +1,13 @@
1
+ import BaseEntity, { BaseEntityOptions } from '../BaseEntity';
2
+
3
+ export default class AdventurerEntity extends BaseEntity {
4
+ public constructor(options?: BaseEntityOptions) {
5
+ super({
6
+ idleAnimations: [ 'idle' ],
7
+ modelUri: 'models/npcs/adventurer.gltf',
8
+ modelScale: 0.75,
9
+ name: 'Adventurer',
10
+ ...options,
11
+ });
12
+ }
13
+ }
@@ -0,0 +1,13 @@
1
+ import BaseEntity, { BaseEntityOptions } from '../BaseEntity';
2
+
3
+ export default class BankerEntity extends BaseEntity {
4
+ public constructor(options?: BaseEntityOptions) {
5
+ super({
6
+ idleAnimations: [ 'idle' ],
7
+ modelUri: 'models/npcs/banker.gltf',
8
+ modelScale: 0.75,
9
+ name: 'Banker',
10
+ ...options,
11
+ });
12
+ }
13
+ }
@@ -0,0 +1,13 @@
1
+ import BaseEntity, { BaseEntityOptions } from '../BaseEntity';
2
+
3
+ export default class BlacksmithEntity extends BaseEntity {
4
+ public constructor(options?: BaseEntityOptions) {
5
+ super({
6
+ idleAnimations: [ 'idle' ],
7
+ modelUri: 'models/npcs/blacksmith.gltf',
8
+ modelScale: 0.75,
9
+ name: 'Blacksmith',
10
+ ...options,
11
+ });
12
+ }
13
+ }
@@ -0,0 +1,17 @@
1
+ import BaseEntity, { BaseEntityOptions } from '../BaseEntity';
2
+
3
+ export default class CapfolkElderEntity extends BaseEntity {
4
+ public constructor(options?: BaseEntityOptions) {
5
+ super({
6
+ idleAnimations: [ 'idle' ],
7
+ modelUri: 'models/npcs/mushroom-elder.gltf',
8
+ modelScale: 0.6,
9
+ moveAnimations: [ 'walk' ],
10
+ moveAnimationSpeed: 2,
11
+ moveSpeed: 3,
12
+ name: 'Capfolk Elder',
13
+ pushable: false,
14
+ ...options,
15
+ });
16
+ }
17
+ }
@@ -0,0 +1,17 @@
1
+ import BaseEntity, { BaseEntityOptions } from '../BaseEntity';
2
+
3
+ export default class CapfolkKnightEntity extends BaseEntity {
4
+ public constructor(options?: BaseEntityOptions) {
5
+ super({
6
+ idleAnimations: [ 'idle' ],
7
+ modelUri: 'models/npcs/mushroom-knight.gltf',
8
+ modelScale: 0.5 + Math.random() * 0.2,
9
+ moveAnimations: [ 'walk' ],
10
+ moveAnimationSpeed: 2,
11
+ moveSpeed: 3,
12
+ name: 'Capfolk Knight',
13
+ pushable: false,
14
+ ...options,
15
+ });
16
+ }
17
+ }
@@ -0,0 +1,17 @@
1
+ import BaseEntity, { BaseEntityOptions } from '../BaseEntity';
2
+
3
+ export default class CapfolkBoyEntity extends BaseEntity {
4
+ public constructor(options?: BaseEntityOptions) {
5
+ super({
6
+ idleAnimations: [ 'idle' ],
7
+ modelUri: 'models/npcs/mushroom-boy.gltf',
8
+ modelScale: 0.5 + Math.random() * 0.15,
9
+ moveAnimations: [ 'walk' ],
10
+ moveAnimationSpeed: 2,
11
+ moveSpeed: 3,
12
+ name: 'Capfolk Boy',
13
+ pushable: false,
14
+ ...options,
15
+ });
16
+ }
17
+ }
@@ -0,0 +1,13 @@
1
+ import BaseEntity, { BaseEntityOptions } from '../BaseEntity';
2
+
3
+ export default class BankerEntity extends BaseEntity {
4
+ public constructor(options?: BaseEntityOptions) {
5
+ super({
6
+ idleAnimations: [ 'idle' ],
7
+ modelUri: 'models/npcs/farmer2.gltf',
8
+ modelScale: 0.75,
9
+ name: 'Farmer',
10
+ ...options,
11
+ });
12
+ }
13
+ }
@@ -0,0 +1,13 @@
1
+ import BaseEntity, { BaseEntityOptions } from '../BaseEntity';
2
+
3
+ export default class MerchantEntity extends BaseEntity {
4
+ public constructor(options?: BaseEntityOptions) {
5
+ super({
6
+ idleAnimations: [ 'idle' ],
7
+ modelUri: 'models/npcs/merchant.gltf',
8
+ modelScale: 0.75,
9
+ name: 'Merchant',
10
+ ...options,
11
+ });
12
+ }
13
+ }
@@ -0,0 +1,77 @@
1
+ import { Quaternion } from 'hytopia';
2
+
3
+ import GameRegion from '../GameRegion';
4
+ import stalkhavenMap from '../../assets/maps/stalkhaven.json';
5
+
6
+ import AdventurerEntity from '../entities/npcs/AdventurerEntity';
7
+ import BankerEntity from '../entities/npcs/BankerEntity';
8
+ import BlacksmithEntity from '../entities/npcs/BlacksmithEntity';
9
+ import FarmerEntity from '../entities/npcs/FarmerEntity';
10
+ import MerchantEntity from '../entities/npcs/MerchantEntity';
11
+ import CapfolkVillagerEntity from '../entities/npcs/CapfolkVillagerEntity';
12
+ import CapfolkElderEntity from '../entities/npcs/CapfolkElderEntity';
13
+ import CapfolkKnightEntity from '../entities/npcs/CapfolkKnightEntity';
14
+
15
+ export default class StalkhavenRegion extends GameRegion {
16
+ public constructor() {
17
+ super({
18
+ name: 'Stalkhaven',
19
+ map: stalkhavenMap,
20
+ skyboxUri: 'skyboxes/partly-cloudy',
21
+ spawnPoint: { x: 1, y: 5, z: 40 },
22
+ });
23
+ }
24
+
25
+ protected override _setup(): void {
26
+ super._setup();
27
+
28
+ (new AdventurerEntity({ facingAngle: 90 })).spawn(this.world, { x: 30, y: 2, z: 22 });
29
+ (new BankerEntity({ facingAngle: 90 })).spawn(this.world, { x: 12, y: 3, z: 41 });
30
+ (new BlacksmithEntity({ facingAngle: -120 })).spawn(this.world, { x: -25.5, y: 3, z: -12.5 });
31
+ (new CapfolkElderEntity({ facingAngle: 180 })).spawn(this.world, { x: -13.5, y: 2, z: -30 });
32
+ (new FarmerEntity({ facingAngle: -90 })).spawn(this.world, { x: -32, y: 3, z: 1 });
33
+ (new MerchantEntity({ facingAngle: 90 })).spawn(this.world, { x: 13, y: 3, z: 26.5 });
34
+
35
+ (new CapfolkVillagerEntity({ facingAngle: -30 })).spawn(this.world, { x: -1.5, y: 2, z: 45.5 });
36
+ (new CapfolkVillagerEntity({ facingAngle: 15 })).spawn(this.world, { x: 3, y: 2, z: 45.5 });
37
+ (new CapfolkKnightEntity({ modelScale: 0.7 })).spawn(this.world, { x: 0.75, y: 2, z: 45 });
38
+
39
+
40
+ const wonderDestinations = [
41
+ { x: -16.5, y: 1.5, z: -30 }, // church 1
42
+ { x: -12.5, y: 1.5, z: -27 }, // church 2
43
+ { x: -14, y: 1.5, z: -24 }, // church 3
44
+ { x: -27, y: 1.5, z: -22.5 }, // cemetary 1
45
+ { x: -22, y: 1.5, z: -12 }, // blacksmith
46
+ { x: -11, y: 1.5, z: -12.5 }, // town square 1
47
+ { x: 2, y: 1.5, z: -10.5 }, // town square 2
48
+ { x: 12.5, y: 1.5, z: 3 }, // town square 3
49
+ { x: -10, y: 1.5, z: -15 }, // town square 4
50
+ { x: 10.5, y: 1.5, z: 26.5 }, // merchant
51
+ { x: 9, y: 1.5, z: 41 }, // banker
52
+ { x: 22, y: 1.5, z: 41 }, // well 1
53
+ { x: 30, y: 1.5, z: 42 }, // well 2
54
+ { x: 28, y: 1.5, z: 36 }, // well 3
55
+ { x: 32, y: 1.5, z: 40 }, // well 4
56
+ { x: 28, y: 1.5, z: 25 }, // inn 1
57
+ { x: 29, y: 1.5, z: 18.5 }, // inn 2
58
+ { x: 26, y: 1.5, z: 16.5 }, // inn 3
59
+ { x: 22, y: 1.5, z: 9.5 }, // inn garden
60
+ { x: 28, y: 1.5, z: -6 }, // market 1
61
+ { x: 27, y: 1.5, z: -20 }, // market 2
62
+ { x: 29.5, y: 1.5, z: -29 }, // market 3
63
+ { x: 28, y: 1.5, z: -32 }, // market 3
64
+ { x: 16, y: 1.5, z: -25 }, // market 4
65
+ { x: 17, y: 1.5, z: -15 }, // market 5
66
+ ];
67
+
68
+ for (let i = 0; i < 20; i++) {
69
+ const spawnPoint = wonderDestinations[Math.floor(Math.random() * wonderDestinations.length)];
70
+ const villager = new CapfolkVillagerEntity();
71
+ villager.spawn(this.world, spawnPoint);
72
+ setTimeout(() => {
73
+ villager.wander(wonderDestinations, 1 + Math.random() * 3);
74
+ }, 5000);
75
+ }
76
+ }
77
+ }
@@ -15,6 +15,7 @@ import {
15
15
  World,
16
16
  CollisionGroup,
17
17
  PlayerEntity,
18
+ DefaultPlayerEntityController,
18
19
  } from 'hytopia';
19
20
 
20
21
  import GAME_WALL_SHAPES from './wall-shapes';
@@ -93,7 +94,7 @@ function onPlayerJoin(world: World, player: Player) {
93
94
  const playerEntity = new DefaultPlayerEntity({
94
95
  player,
95
96
  name: 'Player',
96
- modelUri: 'models/players/soldier-player.gltf',
97
+ modelUri: 'models/players/player.gltf',
97
98
  });
98
99
 
99
100
  playerEntity.spawn(world, GAME_CONFIG.POSITIONS.PLAYER_SPAWN);
@@ -113,6 +114,8 @@ function onPlayerJoin(world: World, player: Player) {
113
114
  killPlayer(playerEntity);
114
115
  }
115
116
  });
117
+
118
+ (playerEntity.controller as DefaultPlayerEntityController).canSwim = () => false;
116
119
  }
117
120
 
118
121
  function onPlayerLeave(world: World, player: Player) {
@@ -10,8 +10,8 @@
10
10
  "author": "",
11
11
  "license": "ISC",
12
12
  "dependencies": {
13
- "@hytopia.com/assets": "^0.2.21",
14
- "hytopia": "^0.5.20"
13
+ "@hytopia.com/assets": "latest",
14
+ "hytopia": "latest"
15
15
  },
16
16
  "trustedDependencies": [
17
17
  "mediasoup",
@@ -84,6 +84,7 @@ export default class GamePlayerEntity extends DefaultPlayerEntity {
84
84
  player,
85
85
  name: 'Player',
86
86
  modelUri: 'models/players/soldier-player.gltf',
87
+ modelScale: 0.5,
87
88
  });
88
89
 
89
90
  this._setupPlayerController();
@@ -370,6 +371,7 @@ export default class GamePlayerEntity extends DefaultPlayerEntity {
370
371
  }
371
372
 
372
373
  private _setupPlayerController(): void {
374
+ this.playerController.applyDirectionalMovementRotations = false;
373
375
  this.playerController.autoCancelMouseLeftClick = false;
374
376
 
375
377
  this.resetAnimations();
@@ -10,8 +10,8 @@
10
10
  "author": "",
11
11
  "license": "ISC",
12
12
  "dependencies": {
13
- "@hytopia.com/assets": "^0.2.21",
14
- "hytopia": "^0.5.20"
13
+ "@hytopia.com/assets": "latest",
14
+ "hytopia": "latest"
15
15
  },
16
16
  "trustedDependencies": [
17
17
  "mediasoup",
@@ -10,8 +10,8 @@
10
10
  "author": "",
11
11
  "license": "ISC",
12
12
  "dependencies": {
13
- "@hytopia.com/assets": "^0.2.21",
14
- "hytopia": "^0.5.20"
13
+ "@hytopia.com/assets": "latest",
14
+ "hytopia": "latest"
15
15
  },
16
16
  "trustedDependencies": [
17
17
  "mediasoup",
@@ -9,8 +9,8 @@
9
9
  "author": "",
10
10
  "license": "ISC",
11
11
  "dependencies": {
12
- "@hytopia.com/assets": "^0.2.21",
13
- "hytopia": "^0.5.20"
12
+ "@hytopia.com/assets": "latest",
13
+ "hytopia": "latest"
14
14
  },
15
15
  "trustedDependencies": [
16
16
  "mediasoup",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hytopia.com/examples",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "",
5
5
  "license": "ISC",
6
6
  "author": "",
@@ -19,7 +19,6 @@ startServer(world => {
19
19
  controller: new PathfindingEntityController(),
20
20
  name: 'Zombie',
21
21
  modelUri: 'models/npcs/zombie.gltf',
22
- modelLoopedAnimations: [ 'walk' ],
23
22
  modelScale: 0.5,
24
23
  rigidBodyOptions: {
25
24
  enabledRotations: { x: false, y: true, z: false },
@@ -27,6 +26,10 @@ startServer(world => {
27
26
  },
28
27
  });
29
28
 
29
+ const pathfindingController = zombie.controller as PathfindingEntityController;
30
+ pathfindingController.idleLoopedAnimations = [ 'walk' ];
31
+ pathfindingController.moveLoopedAnimations = [ 'run' ];
32
+
30
33
  // Spawn somewhere in front of the player
31
34
  zombie.spawn(world, { x: 4, y: 3, z: -6 }, Quaternion.fromEuler(0, 180, 0)); // rotate 180 degrees around Y, facing the player spawn point.
32
35
 
@@ -10,8 +10,8 @@
10
10
  "author": "",
11
11
  "license": "ISC",
12
12
  "dependencies": {
13
- "@hytopia.com/assets": "^0.2.21",
14
- "hytopia": "^0.5.20"
13
+ "@hytopia.com/assets": "latest",
14
+ "hytopia": "latest"
15
15
  },
16
16
  "trustedDependencies": [
17
17
  "mediasoup",
@@ -109,6 +109,7 @@ startServer(world => { // Perform our game setup logic in the startServer init c
109
109
  player,
110
110
  name: 'Player',
111
111
  modelUri: 'models/soldier-player.gltf',
112
+ modelScale: 0.5,
112
113
  });
113
114
 
114
115
 
@@ -126,6 +127,7 @@ startServer(world => { // Perform our game setup logic in the startServer init c
126
127
 
127
128
  // Override default model animations
128
129
  const playerController = playerEntity.controller as DefaultPlayerEntityController;
130
+ playerController.applyDirectionalMovementRotations = false;
129
131
  playerController.idleLoopedAnimations = [ 'idle_lower', 'idle_gun_right' ];
130
132
  playerController.interactOneshotAnimations = [];
131
133
  playerController.walkLoopedAnimations = ['walk_lower', 'idle_gun_right' ];
@@ -10,8 +10,8 @@
10
10
  "author": "",
11
11
  "license": "ISC",
12
12
  "dependencies": {
13
- "@hytopia.com/assets": "^0.2.21",
14
- "hytopia": "^0.5.20"
13
+ "@hytopia.com/assets": "latest",
14
+ "hytopia": "latest"
15
15
  },
16
16
  "trustedDependencies": [
17
17
  "mediasoup",
@@ -10,8 +10,8 @@
10
10
  "author": "",
11
11
  "license": "ISC",
12
12
  "dependencies": {
13
- "@hytopia.com/assets": "^0.2.21",
14
- "hytopia": "^0.5.20"
13
+ "@hytopia.com/assets": "latest",
14
+ "hytopia": "latest"
15
15
  },
16
16
  "trustedDependencies": [
17
17
  "mediasoup",
@@ -15,6 +15,7 @@ import {
15
15
  SimpleEntityController,
16
16
  World,
17
17
  Collider,
18
+ DefaultPlayerEntityController,
18
19
  } from 'hytopia';
19
20
 
20
21
  import worldMap from './assets/map.json';
@@ -276,6 +277,7 @@ function onPlayerJoin(world: World, player: Player) {
276
277
 
277
278
  // Spawn with a random X coordinate to spread players out a bit.
278
279
  playerEntity.spawn(world, getRandomSpawnCoordinate());
280
+ (playerEntity.controller as DefaultPlayerEntityController).canSwim = () => false;
279
281
  }
280
282
 
281
283
  /**
@@ -10,8 +10,8 @@
10
10
  "author": "",
11
11
  "license": "ISC",
12
12
  "dependencies": {
13
- "@hytopia.com/assets": "^0.2.21",
14
- "hytopia": "^0.5.20"
13
+ "@hytopia.com/assets": "latest",
14
+ "hytopia": "latest"
15
15
  },
16
16
  "trustedDependencies": [
17
17
  "mediasoup",
@@ -10,8 +10,8 @@
10
10
  "author": "",
11
11
  "license": "ISC",
12
12
  "dependencies": {
13
- "@hytopia.com/assets": "^0.2.21",
14
- "hytopia": "^0.5.20"
13
+ "@hytopia.com/assets": "latest",
14
+ "hytopia": "latest"
15
15
  },
16
16
  "trustedDependencies": [
17
17
  "mediasoup",
@@ -53,10 +53,12 @@ export default class GamePlayerEntity extends DefaultPlayerEntity {
53
53
  player,
54
54
  name: 'Player',
55
55
  modelUri: 'models/players/soldier-player.gltf',
56
+ modelScale: 0.5,
56
57
  });
57
58
 
58
59
  // Prevent mouse left click from being cancelled, required
59
60
  // for auto-fire and semi-auto fire mechanics, etc.
61
+ this.playerController.applyDirectionalMovementRotations = false;
60
62
  this.playerController.autoCancelMouseLeftClick = false;
61
63
 
62
64
  // Setup player animations
@@ -10,8 +10,8 @@
10
10
  "author": "",
11
11
  "license": "ISC",
12
12
  "dependencies": {
13
- "@hytopia.com/assets": "^0.2.21",
14
- "hytopia": "^0.5.20"
13
+ "@hytopia.com/assets": "latest",
14
+ "hytopia": "latest"
15
15
  },
16
16
  "trustedDependencies": [
17
17
  "mediasoup",