hytopia 0.3.0-dev.2 → 0.3.1

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 (108) hide show
  1. package/boilerplate/index.ts +17 -9
  2. package/docs/server.modelregistry.md +38 -0
  3. package/docs/server.modelregistry.optimize.md +13 -0
  4. package/docs/server.modelregistry.optimizeeverystart.md +13 -0
  5. package/docs/server.playerui.md +0 -19
  6. package/docs/server.playeruievent.md +14 -0
  7. package/docs/server.playeruieventpayloads._player_ui.data_.md +16 -0
  8. package/docs/server.playeruieventpayloads._player_ui.send_data_.md +2 -2
  9. package/docs/server.playeruieventpayloads.md +21 -2
  10. package/examples/custom-ui/index.ts +4 -3
  11. package/examples/payload-game/assets/models/.optimized/bullet/baseColor.png +0 -0
  12. package/examples/payload-game/assets/models/.optimized/bullet/bullet-named-nodes.bin +0 -0
  13. package/examples/payload-game/assets/models/.optimized/bullet/bullet-named-nodes.gltf +308 -0
  14. package/examples/payload-game/assets/models/.optimized/bullet/bullet.bin +0 -0
  15. package/examples/payload-game/assets/models/.optimized/bullet/bullet.gltf +142 -0
  16. package/examples/payload-game/assets/models/.optimized/bullet/bullet.gltf.md5 +1 -0
  17. package/examples/payload-game/assets/models/.optimized/payload/baseColor.png +0 -0
  18. package/examples/payload-game/assets/models/.optimized/payload/payload-named-nodes.bin +0 -0
  19. package/examples/payload-game/assets/models/.optimized/payload/payload-named-nodes.gltf +2868 -0
  20. package/examples/payload-game/assets/models/.optimized/payload/payload.bin +0 -0
  21. package/examples/payload-game/assets/models/.optimized/payload/payload.gltf +1109 -0
  22. package/examples/payload-game/assets/models/.optimized/payload/payload.gltf.md5 +1 -0
  23. package/examples/payload-game/assets/models/.optimized/player-with-gun/baseColor_1.png +0 -0
  24. package/examples/payload-game/assets/models/.optimized/player-with-gun/baseColor_2.png +0 -0
  25. package/examples/payload-game/assets/models/.optimized/player-with-gun/player-with-gun-named-nodes.bin +0 -0
  26. package/examples/payload-game/assets/models/.optimized/player-with-gun/player-with-gun-named-nodes.gltf +8572 -0
  27. package/examples/payload-game/assets/models/.optimized/player-with-gun/player-with-gun.bin +0 -0
  28. package/examples/payload-game/assets/models/.optimized/player-with-gun/player-with-gun.gltf +7849 -0
  29. package/examples/payload-game/assets/models/.optimized/player-with-gun/player-with-gun.gltf.md5 +1 -0
  30. package/examples/payload-game/assets/models/.optimized/raygun/baseColor_1.png +0 -0
  31. package/examples/payload-game/assets/models/.optimized/raygun/baseColor_2.png +0 -0
  32. package/examples/payload-game/assets/models/.optimized/raygun/raygun-named-nodes.bin +0 -0
  33. package/examples/payload-game/assets/models/.optimized/raygun/raygun-named-nodes.gltf +7752 -0
  34. package/examples/payload-game/assets/models/.optimized/raygun/raygun.bin +0 -0
  35. package/examples/payload-game/assets/models/.optimized/raygun/raygun.gltf +832 -0
  36. package/examples/payload-game/assets/models/.optimized/raygun/raygun.gltf.md5 +1 -0
  37. package/examples/payload-game/assets/models/.optimized/soldier-player/baseColor_1.png +0 -0
  38. package/examples/payload-game/assets/models/.optimized/soldier-player/baseColor_2.png +0 -0
  39. package/examples/payload-game/assets/models/.optimized/soldier-player/baseColor_3.png +0 -0
  40. package/examples/payload-game/assets/models/.optimized/soldier-player/baseColor_4.png +0 -0
  41. package/examples/payload-game/assets/models/.optimized/soldier-player/soldier-player-named-nodes.bin +0 -0
  42. package/examples/payload-game/assets/models/.optimized/soldier-player/soldier-player-named-nodes.gltf +7679 -0
  43. package/examples/payload-game/assets/models/.optimized/soldier-player/soldier-player.bin +0 -0
  44. package/examples/payload-game/assets/models/.optimized/soldier-player/soldier-player.gltf +7774 -0
  45. package/examples/payload-game/assets/models/.optimized/soldier-player/soldier-player.gltf.md5 +1 -0
  46. package/examples/payload-game/assets/models/raygun.gltf +1 -0
  47. package/examples/payload-game/assets/models/soldier-player.gltf +1 -0
  48. package/examples/payload-game/index.ts +23 -4
  49. package/examples/zombies-fps/assets/models/environment/.optimized/barbedfence/barbedfence-named-nodes.bin +0 -0
  50. package/examples/zombies-fps/assets/models/environment/.optimized/barbedfence/barbedfence-named-nodes.gltf +806 -0
  51. package/examples/zombies-fps/assets/models/environment/.optimized/barbedfence/barbedfence.bin +0 -0
  52. package/examples/zombies-fps/assets/models/environment/.optimized/barbedfence/barbedfence.gltf +15 -686
  53. package/examples/zombies-fps/assets/models/environment/.optimized/binoculars/binoculars-named-nodes.bin +0 -0
  54. package/examples/zombies-fps/assets/models/environment/.optimized/binoculars/binoculars-named-nodes.gltf +1633 -0
  55. package/examples/zombies-fps/assets/models/environment/.optimized/binoculars/binoculars.bin +0 -0
  56. package/examples/zombies-fps/assets/models/environment/.optimized/binoculars/binoculars.gltf +86 -1578
  57. package/examples/zombies-fps/assets/models/environment/.optimized/bombbox/bombbox-named-nodes.bin +0 -0
  58. package/examples/zombies-fps/assets/models/environment/.optimized/bombbox/bombbox-named-nodes.gltf +2480 -0
  59. package/examples/zombies-fps/assets/models/environment/.optimized/bombbox/bombbox.bin +0 -0
  60. package/examples/zombies-fps/assets/models/environment/.optimized/bombbox/bombbox.gltf +88 -2427
  61. package/examples/zombies-fps/assets/models/environment/.optimized/bullet-hole/bullet-hole-named-nodes.bin +0 -0
  62. package/examples/zombies-fps/assets/models/environment/.optimized/bullet-hole/bullet-hole-named-nodes.gltf +136 -0
  63. package/examples/zombies-fps/assets/models/environment/.optimized/bullet-hole/bullet-hole.gltf +1 -1
  64. package/examples/zombies-fps/assets/models/environment/.optimized/healthkit/healthkit-named-nodes.bin +0 -0
  65. package/examples/zombies-fps/assets/models/environment/.optimized/healthkit/healthkit-named-nodes.gltf +831 -0
  66. package/examples/zombies-fps/assets/models/environment/.optimized/healthkit/healthkit.bin +0 -0
  67. package/examples/zombies-fps/assets/models/environment/.optimized/healthkit/healthkit.gltf +16 -706
  68. package/examples/zombies-fps/assets/models/environment/.optimized/metalshelf/metalshelf-named-nodes.bin +0 -0
  69. package/examples/zombies-fps/assets/models/environment/.optimized/metalshelf/metalshelf-named-nodes.gltf +4025 -0
  70. package/examples/zombies-fps/assets/models/environment/.optimized/metalshelf/metalshelf.bin +0 -0
  71. package/examples/zombies-fps/assets/models/environment/.optimized/metalshelf/metalshelf.gltf +136 -3944
  72. package/examples/zombies-fps/assets/models/environment/.optimized/muzzle-flash/muzzle-flash-named-nodes.bin +0 -0
  73. package/examples/zombies-fps/assets/models/environment/.optimized/muzzle-flash/muzzle-flash-named-nodes.gltf +196 -0
  74. package/examples/zombies-fps/assets/models/environment/.optimized/muzzle-flash/muzzle-flash.bin +0 -0
  75. package/examples/zombies-fps/assets/models/environment/.optimized/muzzle-flash/muzzle-flash.gltf +57 -28
  76. package/examples/zombies-fps/assets/models/environment/.optimized/weaponbox/weaponbox-named-nodes.bin +0 -0
  77. package/examples/zombies-fps/assets/models/environment/.optimized/weaponbox/weaponbox-named-nodes.gltf +3412 -0
  78. package/examples/zombies-fps/assets/models/environment/.optimized/weaponbox/weaponbox.bin +0 -0
  79. package/examples/zombies-fps/assets/models/environment/.optimized/weaponbox/weaponbox.gltf +133 -3323
  80. package/examples/zombies-fps/assets/models/items/.optimized/ak-47/ak-47-named-nodes.glb +0 -0
  81. package/examples/zombies-fps/assets/models/items/.optimized/ak-47/ak-47.glb +0 -0
  82. package/examples/zombies-fps/assets/models/items/.optimized/ar-15/ar-15-named-nodes.glb +0 -0
  83. package/examples/zombies-fps/assets/models/items/.optimized/ar-15/ar-15.glb +0 -0
  84. package/examples/zombies-fps/assets/models/items/.optimized/auto-pistol/auto-pistol-named-nodes.glb +0 -0
  85. package/examples/zombies-fps/assets/models/items/.optimized/auto-pistol/auto-pistol.glb +0 -0
  86. package/examples/zombies-fps/assets/models/items/.optimized/auto-shotgun/auto-shotgun-named-nodes.glb +0 -0
  87. package/examples/zombies-fps/assets/models/items/.optimized/auto-shotgun/auto-shotgun.glb +0 -0
  88. package/examples/zombies-fps/assets/models/items/.optimized/pistol/pistol-named-nodes.glb +0 -0
  89. package/examples/zombies-fps/assets/models/items/.optimized/pistol/pistol.glb +0 -0
  90. package/examples/zombies-fps/assets/models/items/.optimized/shotgun/shotgun-named-nodes.glb +0 -0
  91. package/examples/zombies-fps/assets/models/items/.optimized/shotgun/shotgun.glb +0 -0
  92. package/examples/zombies-fps/assets/models/npcs/.optimized/ripper-boss/ripper-boss-named-nodes.bin +0 -0
  93. package/examples/zombies-fps/assets/models/npcs/.optimized/ripper-boss/ripper-boss-named-nodes.gltf +10037 -0
  94. package/examples/zombies-fps/assets/models/npcs/.optimized/ripper-boss/ripper-boss.bin +0 -0
  95. package/examples/zombies-fps/assets/models/npcs/.optimized/ripper-boss/ripper-boss.gltf +1262 -4533
  96. package/examples/zombies-fps/assets/models/players/.optimized/soldier-player/soldier-player-named-nodes.bin +0 -0
  97. package/examples/zombies-fps/assets/models/players/.optimized/soldier-player/soldier-player-named-nodes.gltf +7679 -0
  98. package/examples/zombies-fps/assets/models/players/.optimized/soldier-player/soldier-player.bin +0 -0
  99. package/examples/zombies-fps/assets/models/players/.optimized/soldier-player/soldier-player.gltf +529 -434
  100. package/examples/zombies-fps/assets/models/projectiles/.optimized/bullet-trace/bullet-trace-named-nodes.bin +0 -0
  101. package/examples/zombies-fps/assets/models/projectiles/.optimized/bullet-trace/bullet-trace-named-nodes.gltf +136 -0
  102. package/examples/zombies-fps/assets/models/projectiles/.optimized/bullet-trace/bullet-trace.gltf +1 -1
  103. package/package.json +5 -2
  104. package/server.api.json +148 -43
  105. package/server.d.ts +18 -15
  106. package/server.js +132 -90
  107. package/tsdoc-metadata.json +1 -1
  108. package/docs/server.playerui.ondata.md +0 -18
@@ -34,6 +34,7 @@ import {
34
34
  World,
35
35
  startServer,
36
36
  Collider,
37
+ Quaternion,
37
38
  } from 'hytopia';
38
39
 
39
40
  import type {
@@ -107,11 +108,12 @@ startServer(world => { // Perform our game setup logic in the startServer init c
107
108
  const playerEntity = new PlayerEntity({ // Create an entity our newly joined player controls
108
109
  player,
109
110
  name: 'Player',
110
- modelUri: 'models/player-with-gun.gltf',
111
- modelLoopedAnimations: [ 'idle' ],
111
+ modelUri: 'models/soldier-player.gltf',
112
+ modelLoopedAnimations: [ 'idle_lower', 'idle_gun_right' ],
112
113
  modelScale: 0.5,
113
114
  });
114
115
 
116
+
115
117
  player.ui.load('ui/index.html');
116
118
 
117
119
  // Setup a first person camera for the player
@@ -124,8 +126,15 @@ startServer(world => { // Perform our game setup logic in the startServer init c
124
126
  const randomSpawnCoordinate = PLAYER_SPAWN_COORDINATES[Math.floor(Math.random() * PLAYER_SPAWN_COORDINATES.length)];
125
127
  playerEntity.spawn(world, randomSpawnCoordinate);
126
128
 
129
+ // Override default model animations
130
+ const playerController = playerEntity.controller as PlayerEntityController;
131
+ playerController.idleLoopedAnimations = [ 'idle_lower', 'idle_gun_right' ];
132
+ playerController.interactOneshotAnimations = [];
133
+ playerController.walkLoopedAnimations = ['walk_lower', 'idle_gun_right' ];
134
+ playerController.runLoopedAnimations = [ 'run_lower', 'idle_gun_right' ];
135
+
127
136
  // We need to do some custom logic for player inputs, so let's assign custom onTick handler to the default player controller.
128
- playerEntity.controller!.on(BaseEntityControllerEvent.TICK_WITH_PLAYER_INPUT, onTickWithPlayerInput);
137
+ playerController.on(BaseEntityControllerEvent.TICK_WITH_PLAYER_INPUT, onTickWithPlayerInput);
129
138
 
130
139
  // Set custom collision groups for the player entity, this is so we can reference the PLAYER collision group
131
140
  // specifically in enemy collision sensors.
@@ -134,6 +143,16 @@ startServer(world => { // Perform our game setup logic in the startServer init c
134
143
  collidesWith: [ CollisionGroup.ALL ],
135
144
  });
136
145
 
146
+ // Spawn gun as child entity
147
+ const gun = new Entity({
148
+ modelUri: 'models/raygun.gltf',
149
+ modelScale: 0.04,
150
+ parent: playerEntity,
151
+ parentNodeName: 'hand_right_anchor',
152
+ });
153
+
154
+ gun.spawn(world, { x: 0, y: 0, z: 0.1 }, Quaternion.fromEuler(-90, 0, 0));
155
+
137
156
  // Initialize player health
138
157
  playerEntityHealth[playerEntity.id!] = 20;
139
158
 
@@ -493,7 +512,7 @@ function onTickWithPlayerInput(payload: EventPayloads[BaseEntityControllerEvent.
493
512
  // Normalize the direction vector to unit length
494
513
  direction.normalize();
495
514
 
496
- entity.startModelOneshotAnimations([ 'shoot' ]);
515
+ entity.startModelOneshotAnimations([ 'shoot_gun_right' ]);
497
516
 
498
517
  // Adjust bullet origin roughly for camera offset so crosshair is accurate
499
518
  const bulletOrigin = entity.position;