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.
- package/boilerplate/index.ts +17 -9
- package/docs/server.modelregistry.md +38 -0
- package/docs/server.modelregistry.optimize.md +13 -0
- package/docs/server.modelregistry.optimizeeverystart.md +13 -0
- package/docs/server.playerui.md +0 -19
- package/docs/server.playeruievent.md +14 -0
- package/docs/server.playeruieventpayloads._player_ui.data_.md +16 -0
- package/docs/server.playeruieventpayloads._player_ui.send_data_.md +2 -2
- package/docs/server.playeruieventpayloads.md +21 -2
- package/examples/custom-ui/index.ts +4 -3
- package/examples/payload-game/assets/models/.optimized/bullet/baseColor.png +0 -0
- package/examples/payload-game/assets/models/.optimized/bullet/bullet-named-nodes.bin +0 -0
- package/examples/payload-game/assets/models/.optimized/bullet/bullet-named-nodes.gltf +308 -0
- package/examples/payload-game/assets/models/.optimized/bullet/bullet.bin +0 -0
- package/examples/payload-game/assets/models/.optimized/bullet/bullet.gltf +142 -0
- package/examples/payload-game/assets/models/.optimized/bullet/bullet.gltf.md5 +1 -0
- package/examples/payload-game/assets/models/.optimized/payload/baseColor.png +0 -0
- package/examples/payload-game/assets/models/.optimized/payload/payload-named-nodes.bin +0 -0
- package/examples/payload-game/assets/models/.optimized/payload/payload-named-nodes.gltf +2868 -0
- package/examples/payload-game/assets/models/.optimized/payload/payload.bin +0 -0
- package/examples/payload-game/assets/models/.optimized/payload/payload.gltf +1109 -0
- package/examples/payload-game/assets/models/.optimized/payload/payload.gltf.md5 +1 -0
- package/examples/payload-game/assets/models/.optimized/player-with-gun/baseColor_1.png +0 -0
- package/examples/payload-game/assets/models/.optimized/player-with-gun/baseColor_2.png +0 -0
- package/examples/payload-game/assets/models/.optimized/player-with-gun/player-with-gun-named-nodes.bin +0 -0
- package/examples/payload-game/assets/models/.optimized/player-with-gun/player-with-gun-named-nodes.gltf +8572 -0
- package/examples/payload-game/assets/models/.optimized/player-with-gun/player-with-gun.bin +0 -0
- package/examples/payload-game/assets/models/.optimized/player-with-gun/player-with-gun.gltf +7849 -0
- package/examples/payload-game/assets/models/.optimized/player-with-gun/player-with-gun.gltf.md5 +1 -0
- package/examples/payload-game/assets/models/.optimized/raygun/baseColor_1.png +0 -0
- package/examples/payload-game/assets/models/.optimized/raygun/baseColor_2.png +0 -0
- package/examples/payload-game/assets/models/.optimized/raygun/raygun-named-nodes.bin +0 -0
- package/examples/payload-game/assets/models/.optimized/raygun/raygun-named-nodes.gltf +7752 -0
- package/examples/payload-game/assets/models/.optimized/raygun/raygun.bin +0 -0
- package/examples/payload-game/assets/models/.optimized/raygun/raygun.gltf +832 -0
- package/examples/payload-game/assets/models/.optimized/raygun/raygun.gltf.md5 +1 -0
- package/examples/payload-game/assets/models/.optimized/soldier-player/baseColor_1.png +0 -0
- package/examples/payload-game/assets/models/.optimized/soldier-player/baseColor_2.png +0 -0
- package/examples/payload-game/assets/models/.optimized/soldier-player/baseColor_3.png +0 -0
- package/examples/payload-game/assets/models/.optimized/soldier-player/baseColor_4.png +0 -0
- package/examples/payload-game/assets/models/.optimized/soldier-player/soldier-player-named-nodes.bin +0 -0
- package/examples/payload-game/assets/models/.optimized/soldier-player/soldier-player-named-nodes.gltf +7679 -0
- package/examples/payload-game/assets/models/.optimized/soldier-player/soldier-player.bin +0 -0
- package/examples/payload-game/assets/models/.optimized/soldier-player/soldier-player.gltf +7774 -0
- package/examples/payload-game/assets/models/.optimized/soldier-player/soldier-player.gltf.md5 +1 -0
- package/examples/payload-game/assets/models/raygun.gltf +1 -0
- package/examples/payload-game/assets/models/soldier-player.gltf +1 -0
- package/examples/payload-game/index.ts +23 -4
- package/examples/zombies-fps/assets/models/environment/.optimized/barbedfence/barbedfence-named-nodes.bin +0 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/barbedfence/barbedfence-named-nodes.gltf +806 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/barbedfence/barbedfence.bin +0 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/barbedfence/barbedfence.gltf +15 -686
- package/examples/zombies-fps/assets/models/environment/.optimized/binoculars/binoculars-named-nodes.bin +0 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/binoculars/binoculars-named-nodes.gltf +1633 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/binoculars/binoculars.bin +0 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/binoculars/binoculars.gltf +86 -1578
- package/examples/zombies-fps/assets/models/environment/.optimized/bombbox/bombbox-named-nodes.bin +0 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/bombbox/bombbox-named-nodes.gltf +2480 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/bombbox/bombbox.bin +0 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/bombbox/bombbox.gltf +88 -2427
- package/examples/zombies-fps/assets/models/environment/.optimized/bullet-hole/bullet-hole-named-nodes.bin +0 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/bullet-hole/bullet-hole-named-nodes.gltf +136 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/bullet-hole/bullet-hole.gltf +1 -1
- package/examples/zombies-fps/assets/models/environment/.optimized/healthkit/healthkit-named-nodes.bin +0 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/healthkit/healthkit-named-nodes.gltf +831 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/healthkit/healthkit.bin +0 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/healthkit/healthkit.gltf +16 -706
- package/examples/zombies-fps/assets/models/environment/.optimized/metalshelf/metalshelf-named-nodes.bin +0 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/metalshelf/metalshelf-named-nodes.gltf +4025 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/metalshelf/metalshelf.bin +0 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/metalshelf/metalshelf.gltf +136 -3944
- package/examples/zombies-fps/assets/models/environment/.optimized/muzzle-flash/muzzle-flash-named-nodes.bin +0 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/muzzle-flash/muzzle-flash-named-nodes.gltf +196 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/muzzle-flash/muzzle-flash.bin +0 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/muzzle-flash/muzzle-flash.gltf +57 -28
- package/examples/zombies-fps/assets/models/environment/.optimized/weaponbox/weaponbox-named-nodes.bin +0 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/weaponbox/weaponbox-named-nodes.gltf +3412 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/weaponbox/weaponbox.bin +0 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/weaponbox/weaponbox.gltf +133 -3323
- package/examples/zombies-fps/assets/models/items/.optimized/ak-47/ak-47-named-nodes.glb +0 -0
- package/examples/zombies-fps/assets/models/items/.optimized/ak-47/ak-47.glb +0 -0
- package/examples/zombies-fps/assets/models/items/.optimized/ar-15/ar-15-named-nodes.glb +0 -0
- package/examples/zombies-fps/assets/models/items/.optimized/ar-15/ar-15.glb +0 -0
- package/examples/zombies-fps/assets/models/items/.optimized/auto-pistol/auto-pistol-named-nodes.glb +0 -0
- package/examples/zombies-fps/assets/models/items/.optimized/auto-pistol/auto-pistol.glb +0 -0
- package/examples/zombies-fps/assets/models/items/.optimized/auto-shotgun/auto-shotgun-named-nodes.glb +0 -0
- package/examples/zombies-fps/assets/models/items/.optimized/auto-shotgun/auto-shotgun.glb +0 -0
- package/examples/zombies-fps/assets/models/items/.optimized/pistol/pistol-named-nodes.glb +0 -0
- package/examples/zombies-fps/assets/models/items/.optimized/pistol/pistol.glb +0 -0
- package/examples/zombies-fps/assets/models/items/.optimized/shotgun/shotgun-named-nodes.glb +0 -0
- package/examples/zombies-fps/assets/models/items/.optimized/shotgun/shotgun.glb +0 -0
- package/examples/zombies-fps/assets/models/npcs/.optimized/ripper-boss/ripper-boss-named-nodes.bin +0 -0
- package/examples/zombies-fps/assets/models/npcs/.optimized/ripper-boss/ripper-boss-named-nodes.gltf +10037 -0
- package/examples/zombies-fps/assets/models/npcs/.optimized/ripper-boss/ripper-boss.bin +0 -0
- package/examples/zombies-fps/assets/models/npcs/.optimized/ripper-boss/ripper-boss.gltf +1262 -4533
- package/examples/zombies-fps/assets/models/players/.optimized/soldier-player/soldier-player-named-nodes.bin +0 -0
- package/examples/zombies-fps/assets/models/players/.optimized/soldier-player/soldier-player-named-nodes.gltf +7679 -0
- package/examples/zombies-fps/assets/models/players/.optimized/soldier-player/soldier-player.bin +0 -0
- package/examples/zombies-fps/assets/models/players/.optimized/soldier-player/soldier-player.gltf +529 -434
- package/examples/zombies-fps/assets/models/projectiles/.optimized/bullet-trace/bullet-trace-named-nodes.bin +0 -0
- package/examples/zombies-fps/assets/models/projectiles/.optimized/bullet-trace/bullet-trace-named-nodes.gltf +136 -0
- package/examples/zombies-fps/assets/models/projectiles/.optimized/bullet-trace/bullet-trace.gltf +1 -1
- package/package.json +5 -2
- package/server.api.json +148 -43
- package/server.d.ts +18 -15
- package/server.js +132 -90
- package/tsdoc-metadata.json +1 -1
- 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
|
111
|
-
modelLoopedAnimations: [ '
|
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
|
-
|
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([ '
|
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;
|