hytopia 0.1.79 → 0.1.80
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/examples/child-entity/README.md +3 -0
- package/examples/child-entity/assets/map.json +2623 -0
- package/examples/child-entity/assets/models/sword.gltf +1 -0
- package/examples/child-entity/index.ts +42 -0
- package/examples/child-entity/package.json +16 -0
- package/examples/entity-controller/MyEntityController.ts +12 -9
- package/package.json +1 -1
- package/server.js +8 -8
@@ -0,0 +1 @@
|
|
1
|
+
{"asset":{"version":"2.0","generator":"Blockbench 4.11.2 glTF exporter"},"scenes":[{"nodes":[6],"name":"blockbench_export"}],"scene":0,"nodes":[{"translation":[0.015625,-0.0859375,0.03125],"name":"cube","mesh":0},{"translation":[-2.7755575615628914e-17,-0.8125,0],"name":"cube","mesh":1},{"translation":[0.031249999999999972,-0.34218749999999987,0],"name":"cube","mesh":2},{"translation":[-2.7755575610105143e-17,1.71875,-3.4694469961437686e-18],"name":"cube","mesh":3},{"translation":[-0.17187500001243847,0.45468750000000013,0.046875],"name":"cube","mesh":4},{"rotation":[0,7.960590520106338e-10,0,1],"translation":[2.7755575615628914e-17,0.4375,0],"name":"sword","children":[0,1,2,3,4]},{"children":[5]}],"bufferViews":[{"buffer":0,"byteOffset":0,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":288,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":576,"byteLength":192,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":768,"byteLength":72,"target":34963},{"buffer":0,"byteOffset":840,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":1128,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":1416,"byteLength":192,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":1608,"byteLength":72,"target":34963},{"buffer":0,"byteOffset":1680,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":1968,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":2256,"byteLength":192,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":2448,"byteLength":72,"target":34963},{"buffer":0,"byteOffset":2520,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":2808,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":3096,"byteLength":192,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":3288,"byteLength":72,"target":34963},{"buffer":0,"byteOffset":3360,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":3648,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":3936,"byteLength":192,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":4128,"byteLength":72,"target":34963}],"buffers":[{"byteLength":4200,"uri":"data:application/octet-stream;base64,AAAQPgAA2z8AAAA9AAAQPgAA2z8AAMC9AAAQPgAABj8AAAA9AAAQPgAABj8AAMC9AAAwvgAA2z8AAMC9AAAwvgAA2z8AAAA9AAAwvgAABj8AAMC9AAAwvgAABj8AAAA9AAAwvgAA2z8AAMC9AAAQPgAA2z8AAMC9AAAwvgAA2z8AAAA9AAAQPgAA2z8AAAA9AAAwvgAABj8AAAA9AAAQPgAABj8AAAA9AAAwvgAABj8AAMC9AAAQPgAABj8AAMC9AAAwvgAA2z8AAAA9AAAQPgAA2z8AAAA9AAAwvgAABj8AAAA9AAAQPgAABj8AAAA9AAAQPgAA2z8AAMC9AAAwvgAA2z8AAMC9AAAQPgAABj8AAMC9AAAwvgAABj8AAMC9AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAOgAAgT0AAH49AACBPQAAADoA4Cc/AAB+PQDgJz8AgGA+AACBPQDAjz4AAIE9AIBgPgDgJz8AwI8+AOAnPwCAXz4AAH49AACBPQAAfj0AgF8+AAAAOgAAgT0AAAA6AMC/PgAAADoAgGA+AAAAOgDAvz4AAH49AIBgPgAAfj0AQJA+AACBPQDA3z4AAIE9AECQPgDgJz8AwN8+AOAnPwAAgT0AAIE9AIBfPgAAgT0AAIE9AOAnPwCAXz4A4Cc/AAACAAEAAgADAAEABAAGAAUABgAHAAUACAAKAAkACgALAAkADAAOAA0ADgAPAA0AEAASABEAEgATABEAFAAWABUAFgAXABUAAACAPQAAiD8AAIA9AACAPQAAiD8AAIC9AACAPQAAID8AAIA9AACAPQAAID8AAIC9AACAvQAAiD8AAIC9AACAvQAAiD8AAIA9AACAvQAAID8AAIC9AACAvQAAID8AAIA9AACAvQAAiD8AAIC9AACAPQAAiD8AAIC9AACAvQAAiD8AAIA9AACAPQAAiD8AAIA9AACAvQAAID8AAIA9AACAPQAAID8AAIA9AACAvQAAID8AAIC9AACAPQAAID8AAIC9AACAvQAAiD8AAIA9AACAPQAAiD8AAIA9AACAvQAAID8AAIA9AACAPQAAID8AAIA9AACAPQAAiD8AAIC9AACAvQAAiD8AAIC9AACAPQAAID8AAIC9AACAvQAAID8AAIC9AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AEDwPgBA4D4A4Ac/AEDgPgBA8D4A4Cc/AOAHPwDgJz8AIBg/AEDgPgDgJz8AQOA+ACAYPwDgJz8A4Cc/AOAnPwDgFz8AwN8+ACAIPwDA3z4A4Bc/AEDAPgAgCD8AQMA+AOAnPwBAwD4AIBg/AEDAPgDgJz8AwN8+ACAYPwDA3z4AICg/AEDgPgDgNz8AQOA+ACAoPwDgJz8A4Dc/AOAnPwAgCD8AQOA+AOAXPwBA4D4AIAg/AOAnPwDgFz8A4Cc/AAACAAEAAgADAAEABAAGAAUABgAHAAUACAAKAAkACgALAAkADAAOAA0ADgAPAA0AEAASABEAEgATABEAFAAWABUAFgAXABUAAADAPQAAID4AAMA9AADAPQAAID4AAMC9AADAPQAAwL0AAMA9AADAPQAAwL0AAMC9AAAgvgAAID4AAMC9AAAgvgAAID4AAMA9AAAgvgAAwL0AAMC9AAAgvgAAwL0AAMA9AAAgvgAAID4AAMC9AADAPQAAID4AAMC9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"}],"accessors":[{"bufferView":0,"componentType":5126,"count":24,"max":[0.140625,1.7109375,0.03125],"min":[-0.171875,0.5234375,-0.09375],"type":"VEC3"},{"bufferView":1,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":2,"componentType":5126,"count":24,"max":[0.43701171875,0.65576171875],"min":[0.00048828125,0.00048828125],"type":"VEC2"},{"bufferView":3,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"},{"bufferView":4,"componentType":5126,"count":24,"max":[0.0625,1.0625,0.0625],"min":[-0.0625,0.625,-0.0625],"type":"VEC3"},{"bufferView":5,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":6,"componentType":5126,"count":24,"max":[0.71826171875,0.65576171875],"min":[0.46923828125,0.37548828125],"type":"VEC2"},{"bufferView":7,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"},{"bufferView":8,"componentType":5126,"count":24,"max":[0.09375,0.15625,0.09375],"min":[-0.15625,-0.09375,-0.09375],"type":"VEC3"},{"bufferView":9,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":10,"componentType":5126,"count":24,"max":[0.87451171875,0.21826171875],"min":[0.43798828125,0.00048828125],"type":"VEC2"},{"bufferView":11,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"},{"bufferView":12,"componentType":5126,"count":24,"max":[0.15625,0.09375,0.0000625000029685907],"min":[-0.15625,-0.09375,3.469446951953614e-18],"type":"VEC3"},{"bufferView":13,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":14,"componentType":5126,"count":24,"max":[0.74951171875,0.31201171875],"min":[0.43701171875,0.21826171875],"type":"VEC2"},{"bufferView":15,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"},{"bufferView":16,"componentType":5126,"count":24,"max":[0.515625,-0.01718750037252903,0.046875],"min":[-0.171875,-0.20468750596046448,-0.140625],"type":"VEC3"},{"bufferView":17,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":18,"componentType":5126,"count":24,"max":[0.87451171875,0.84326171875],"min":[0.00048828125,0.65673828125],"type":"VEC2"},{"bufferView":19,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"}],"materials":[{"pbrMetallicRoughness":{"metallicFactor":0,"roughnessFactor":1,"baseColorTexture":{"index":0}},"alphaMode":"MASK","alphaCutoff":0.05,"doubleSided":true}],"textures":[{"sampler":0,"source":0,"name":"sword.png"}],"samplers":[{"magFilter":9728,"minFilter":9728,"wrapS":33071,"wrapT":33071}],"images":[{"mimeType":"image/png","uri":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAUtJREFUWEdjZICCc5dW/QcxVaRVGRZs3AkTxqDzkioY0QU/vT0P1gsDd57eRlFipBeGoQemAC4xYA6AWQxzEb4QSPB3Z4D5DtlXFIUAuQ4AOZQcwCdsiBIdjOQ6AN3yI2fugYVsTJQw3IUsh54eho8DiI0OqoUAzCBQFOLLZoQcRnYUgCwFWQ5KjKCcQa4jyHYAerYFJT5yHEG2A8ixDFt0DA8HpFoZodQFs4+dw1n2o4cCVUJgwByAbjG674gJCYpCYG9mMErQozvAefpaglExtB2AHAVaAtwoAXDtw1eG0SggKg1MmteBkpBARSqs/kZPVMhyoLYhVaIA2RJsjRNcDU10RyI3RNDlsDVkMRqlIIGR6QB0XyNHCXLDE72tj6+hgU8fRosIPREiGwxrhhPqrKA7Bp8+9PTAOOAOINRmo7U8wcpi1AHDPgQAgqx2MAXdOiQAAAAASUVORK5CYII="}],"meshes":[{"primitives":[{"mode":4,"attributes":{"POSITION":0,"NORMAL":1,"TEXCOORD_0":2},"indices":3,"material":0}]},{"primitives":[{"mode":4,"attributes":{"POSITION":4,"NORMAL":5,"TEXCOORD_0":6},"indices":7,"material":0}]},{"primitives":[{"mode":4,"attributes":{"POSITION":8,"NORMAL":9,"TEXCOORD_0":10},"indices":11,"material":0}]},{"primitives":[{"mode":4,"attributes":{"POSITION":12,"NORMAL":13,"TEXCOORD_0":14},"indices":15,"material":0}]},{"primitives":[{"mode":4,"attributes":{"POSITION":16,"NORMAL":17,"TEXCOORD_0":18},"indices":19,"material":0}]}]}
|
@@ -0,0 +1,42 @@
|
|
1
|
+
import {
|
2
|
+
startServer,
|
3
|
+
Entity,
|
4
|
+
PlayerEntity,
|
5
|
+
} from 'hytopia';
|
6
|
+
|
7
|
+
import worldMap from './assets/map.json';
|
8
|
+
|
9
|
+
startServer(world => {
|
10
|
+
world.loadMap(worldMap);
|
11
|
+
|
12
|
+
// Spawn a player entity when a player joins the game.
|
13
|
+
world.onPlayerJoin = player => {
|
14
|
+
const playerEntity = new PlayerEntity({
|
15
|
+
player,
|
16
|
+
name: 'Player',
|
17
|
+
modelUri: 'models/player.gltf',
|
18
|
+
modelLoopedAnimations: [ 'idle' ],
|
19
|
+
modelScale: 0.5,
|
20
|
+
});
|
21
|
+
|
22
|
+
playerEntity.spawn(world, { x: 0, y: 10, z: 0 });
|
23
|
+
|
24
|
+
// Spawn a sword entity as a child of the player entity.
|
25
|
+
const swordChildEntity = new Entity({
|
26
|
+
name: 'sword',
|
27
|
+
modelUri: 'models/sword.gltf',
|
28
|
+
parent: playerEntity,
|
29
|
+
parentNodeName: 'hand_right_anchor',
|
30
|
+
});
|
31
|
+
|
32
|
+
swordChildEntity.spawn(
|
33
|
+
world,
|
34
|
+
{ x: 0, y: 0.3, z: 0.5 }, // spawn with a position relative to the parent node
|
35
|
+
{ x: -Math.PI / 3, y: 0, z: 0, w: 1 } // spawn with a rotation so it looks correct in the hand
|
36
|
+
);
|
37
|
+
};
|
38
|
+
|
39
|
+
world.onPlayerLeave = player => {
|
40
|
+
world.entityManager.getPlayerEntitiesByPlayer(player).forEach(entity => entity.despawn());
|
41
|
+
};
|
42
|
+
});
|
@@ -0,0 +1,16 @@
|
|
1
|
+
{
|
2
|
+
"name": "child-entity",
|
3
|
+
"version": "1.0.0",
|
4
|
+
"description": "",
|
5
|
+
"main": "index.js",
|
6
|
+
"scripts": {
|
7
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
8
|
+
},
|
9
|
+
"keywords": [],
|
10
|
+
"author": "",
|
11
|
+
"license": "ISC",
|
12
|
+
"dependencies": {
|
13
|
+
"hytopia": "latest",
|
14
|
+
"@hytopia.com/assets": "latest"
|
15
|
+
}
|
16
|
+
}
|
@@ -144,7 +144,7 @@ export default class MyEntityController extends BaseEntityController {
|
|
144
144
|
collidesWith: [ CollisionGroup.BLOCK, CollisionGroup.ENTITY ],
|
145
145
|
},
|
146
146
|
isSensor: true,
|
147
|
-
|
147
|
+
relativePosition: { x: 0, y: -0.75, z: 0 },
|
148
148
|
tag: 'groundSensor',
|
149
149
|
onCollision: (_other: BlockType | Entity, started: boolean) => {
|
150
150
|
// Ground contact
|
@@ -206,20 +206,23 @@ export default class MyEntityController extends BaseEntityController {
|
|
206
206
|
// Temporary, animations
|
207
207
|
if (this.isGrounded && (w || a || s || d)) {
|
208
208
|
if (isRunning) {
|
209
|
-
|
210
|
-
entity.
|
211
|
-
|
209
|
+
const runAnimations = [ 'run_upper', 'run_lower' ];
|
210
|
+
entity.stopModelAnimations(Array.from(entity.modelLoopedAnimations).filter(v => !runAnimations.includes(v)));
|
211
|
+
entity.startModelLoopedAnimations(runAnimations);
|
212
|
+
this._stepAudio?.setPlaybackRate(0.81);
|
212
213
|
} else {
|
213
|
-
|
214
|
-
entity.
|
215
|
-
|
214
|
+
const walkAnimations = [ 'walk_upper', 'walk_lower' ];
|
215
|
+
entity.stopModelAnimations(Array.from(entity.modelLoopedAnimations).filter(v => !walkAnimations.includes(v)));
|
216
|
+
entity.startModelLoopedAnimations(walkAnimations);
|
217
|
+
this._stepAudio?.setPlaybackRate(0.55);
|
216
218
|
}
|
217
219
|
|
218
220
|
this._stepAudio?.play(entity.world, !this._stepAudio?.isPlaying);
|
219
221
|
} else {
|
220
222
|
this._stepAudio?.pause();
|
221
|
-
|
222
|
-
entity.
|
223
|
+
const idleAnimations = [ 'idle_upper', 'idle_lower' ];
|
224
|
+
entity.stopModelAnimations(Array.from(entity.modelLoopedAnimations).filter(v => !idleAnimations.includes(v)));
|
225
|
+
entity.startModelLoopedAnimations(idleAnimations);
|
223
226
|
}
|
224
227
|
|
225
228
|
if (ml) {
|