hytopia 0.1.55 → 0.1.56
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/docs/server.basecharactercontroller.attach.md +53 -0
- package/docs/server.basecharactercontroller.despawn.md +53 -0
- package/docs/server.basecharactercontroller.detach.md +53 -0
- package/docs/server.basecharactercontroller.md +91 -28
- package/docs/server.basecharactercontroller.onattach.md +13 -0
- package/docs/server.basecharactercontroller.ondespawn.md +13 -0
- package/docs/server.basecharactercontroller.ondetach.md +13 -0
- package/docs/server.basecharactercontroller.onspawn.md +13 -0
- package/docs/server.basecharactercontroller.ontick.md +2 -2
- package/docs/server.basecharactercontroller.ontickwithplayerinput.md +2 -2
- package/docs/server.basecharactercontroller.spawn.md +53 -0
- package/docs/server.basecharactercontroller.tick.md +15 -1
- package/docs/server.basecharactercontroller.tickwithplayerinput.md +17 -1
- package/docs/server.defaultcharactercontroller._constructor_.md +1 -17
- package/docs/server.defaultcharactercontroller.attach.md +53 -0
- package/docs/server.defaultcharactercontroller.md +18 -4
- package/docs/server.defaultcharactercontroller.spawn.md +53 -0
- package/docs/server.defaultcharactercontroller.tickwithplayerinput.md +17 -1
- package/docs/server.entity.md +0 -19
- package/docs/server.entity.setcharactercontroller.md +2 -2
- package/docs/server.entityoptions.charactercontroller.md +13 -0
- package/docs/server.entityoptions.md +3 -3
- package/examples/block-entity/index.ts +1 -1
- package/examples/character-controller/MyCharacterController.ts +190 -119
- package/examples/character-controller/index.ts +5 -10
- package/examples/custom-ui/index.ts +1 -1
- package/examples/payload-game/index.ts +6 -7
- package/package.json +1 -1
- package/server.api.json +468 -176
- package/server.d.ts +71 -40
- package/server.js +81 -81
- package/docs/server.basecharactercontroller._constructor_.md +0 -65
- package/docs/server.basecharactercontroller.createcolliders.md +0 -19
- package/docs/server.basecharactercontroller.entity.md +0 -13
- package/docs/server.defaultcharactercontroller.createcolliders.md +0 -19
- package/docs/server.entity.createcustomcharactercontroller.md +0 -13
- package/docs/server.entityoptions.createcustomcharactercontroller.md +0 -13
@@ -11,6 +11,10 @@ startServer(world => {
|
|
11
11
|
// Uncomment this to visualize physics vertices, will cause noticable lag.
|
12
12
|
// world.simulation.enableDebugRendering(true);
|
13
13
|
|
14
|
+
// Visualize raycasts, like block breaking for our
|
15
|
+
// character controller.
|
16
|
+
world.simulation.enableDebugRaycasting(true);
|
17
|
+
|
14
18
|
world.loadMap(worldMap);
|
15
19
|
|
16
20
|
world.onPlayerJoin = player => {
|
@@ -20,18 +24,9 @@ startServer(world => {
|
|
20
24
|
modelUri: 'models/player.gltf',
|
21
25
|
modelLoopedAnimations: [ 'idle' ],
|
22
26
|
modelScale: 0.5,
|
27
|
+
characterController: new MyCharacterController(), // attach our character controller
|
23
28
|
});
|
24
29
|
|
25
|
-
// Assign a custom character controller factory to the player entity.
|
26
|
-
// This must be assigned before spawning the entity.
|
27
|
-
// createCustomCharacterController if set will be handled internally when
|
28
|
-
// .spawn() is called.
|
29
|
-
playerEntity.createCustomCharacterController = () => {
|
30
|
-
console.log('Creating custom player entity character controller...');
|
31
|
-
|
32
|
-
return new MyCharacterController(playerEntity);
|
33
|
-
};
|
34
|
-
|
35
30
|
playerEntity.spawn(world, { x: 0, y: 10, z: 0 });
|
36
31
|
console.log('Spawned player entity!');
|
37
32
|
|
@@ -45,7 +45,7 @@ startServer(world => {
|
|
45
45
|
const randomY = Math.random() * 13 + 2; // Random between 2 and 15
|
46
46
|
const randomZ = Math.random() * 40 - 20; // Random between -20 and 20
|
47
47
|
|
48
|
-
playerEntity.
|
48
|
+
playerEntity.setPosition({ x: randomX, y: randomY, z: randomZ });
|
49
49
|
}
|
50
50
|
};
|
51
51
|
};
|
@@ -293,7 +293,7 @@ function spawnPayloadEntity(world: World) {
|
|
293
293
|
}
|
294
294
|
|
295
295
|
payloadEntity = new Entity({
|
296
|
-
|
296
|
+
characterController: new SimpleCharacterController(),
|
297
297
|
name: 'Payload',
|
298
298
|
modelUri: 'models/payload.gltf',
|
299
299
|
modelScale: 0.7,
|
@@ -350,7 +350,7 @@ function spawnSpider(world: World, coordinate: Vector3Like) {
|
|
350
350
|
const targetPlayers = new Set<PlayerEntity>();
|
351
351
|
|
352
352
|
const spider = new Entity({
|
353
|
-
|
353
|
+
characterController: new SimpleCharacterController(),
|
354
354
|
name: 'Spider',
|
355
355
|
modelUri: 'models/spider.gltf',
|
356
356
|
modelLoopedAnimations: [ 'walk' ],
|
@@ -495,12 +495,11 @@ function onTickPathfindEnemy(entity: Entity, targetPlayers: Set<PlayerEntity>, s
|
|
495
495
|
enemyPathfindAccumulators[entityId]++;
|
496
496
|
}
|
497
497
|
|
498
|
-
function onTickWithPlayerInput(this: DefaultCharacterController, input: PlayerInput, cameraOrientation: PlayerCameraOrientation, _deltaTimeMs: number) {
|
499
|
-
if (!
|
498
|
+
function onTickWithPlayerInput(this: DefaultCharacterController, entity: PlayerEntity, input: PlayerInput, cameraOrientation: PlayerCameraOrientation, _deltaTimeMs: number) {
|
499
|
+
if (!entity.world) return;
|
500
500
|
|
501
501
|
if (input.ml) {
|
502
|
-
const world =
|
503
|
-
const entity = this.entity;
|
502
|
+
const world = entity.world;
|
504
503
|
const direction = Vector3.fromVector3Like(entity.directionFromRotation);
|
505
504
|
|
506
505
|
direction.y = Math.sin(cameraOrientation.pitch);
|
@@ -513,7 +512,7 @@ function onTickWithPlayerInput(this: DefaultCharacterController, input: PlayerIn
|
|
513
512
|
// Normalize the direction vector to unit length
|
514
513
|
direction.normalize();
|
515
514
|
|
516
|
-
|
515
|
+
entity.startModelOneshotAnimations([ 'shoot' ]);
|
517
516
|
|
518
517
|
// Adjust bullet origin roughly for camera offset so crosshair is accurate
|
519
518
|
const bulletOrigin = entity.position;
|