hytopia 0.1.56 → 0.1.57

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 (102) hide show
  1. package/boilerplate/index.ts +1 -1
  2. package/docs/{server.basecharactercontroller.attach.md → server.baseentitycontroller.attach.md} +3 -3
  3. package/docs/{server.basecharactercontroller.despawn.md → server.baseentitycontroller.despawn.md} +3 -3
  4. package/docs/{server.basecharactercontroller.detach.md → server.baseentitycontroller.detach.md} +3 -3
  5. package/docs/{server.basecharactercontroller.md → server.baseentitycontroller.md} +29 -29
  6. package/docs/{server.basecharactercontroller.onattach.md → server.baseentitycontroller.onattach.md} +3 -3
  7. package/docs/server.baseentitycontroller.ondespawn.md +13 -0
  8. package/docs/{server.basecharactercontroller.ondetach.md → server.baseentitycontroller.ondetach.md} +3 -3
  9. package/docs/server.baseentitycontroller.onspawn.md +13 -0
  10. package/docs/server.baseentitycontroller.ontick.md +13 -0
  11. package/docs/{server.basecharactercontroller.ontickwithplayerinput.md → server.baseentitycontroller.ontickwithplayerinput.md} +3 -3
  12. package/docs/{server.basecharactercontroller.spawn.md → server.baseentitycontroller.spawn.md} +3 -3
  13. package/docs/{server.basecharactercontroller.tick.md → server.baseentitycontroller.tick.md} +3 -3
  14. package/docs/{server.basecharactercontroller.tickwithplayerinput.md → server.baseentitycontroller.tickwithplayerinput.md} +3 -3
  15. package/docs/server.entity.controller.md +13 -0
  16. package/docs/server.entity.md +40 -5
  17. package/docs/server.entity.modelanimationsplaybackrate.md +13 -0
  18. package/docs/server.entity.setcontroller.md +53 -0
  19. package/docs/server.entity.setmodelanimationsplaybackrate.md +57 -0
  20. package/docs/server.entityeventpayload.md +9 -0
  21. package/docs/server.entityeventpayload.setmodelanimationsplaybackrate.entity.md +11 -0
  22. package/docs/server.entityeventpayload.setmodelanimationsplaybackrate.md +70 -0
  23. package/docs/server.entityeventpayload.setmodelanimationsplaybackrate.playbackrate.md +11 -0
  24. package/docs/server.entityeventtype.md +14 -0
  25. package/docs/server.entityoptions.controller.md +13 -0
  26. package/docs/server.entityoptions.md +22 -3
  27. package/docs/server.entityoptions.modelanimationsplaybackrate.md +13 -0
  28. package/docs/server.facecallback.md +1 -1
  29. package/docs/server.facecompletecallback.md +1 -1
  30. package/docs/server.faceoptions.md +1 -1
  31. package/docs/server.md +27 -27
  32. package/docs/server.movecallback.md +1 -1
  33. package/docs/server.movecompletecallback.md +1 -1
  34. package/docs/server.moveoptions.md +1 -1
  35. package/docs/server.playerentity.md +1 -1
  36. package/docs/server.playerentitycontroller._constructor_.md +49 -0
  37. package/docs/{server.defaultcharactercontroller.attach.md → server.playerentitycontroller.attach.md} +2 -2
  38. package/docs/server.playerentitycontroller.canjump.md +13 -0
  39. package/docs/server.playerentitycontroller.canrun.md +13 -0
  40. package/docs/server.playerentitycontroller.canwalk.md +13 -0
  41. package/docs/server.playerentitycontroller.isgrounded.md +13 -0
  42. package/docs/server.playerentitycontroller.isonplatform.md +13 -0
  43. package/docs/server.playerentitycontroller.jumpvelocity.md +13 -0
  44. package/docs/server.playerentitycontroller.md +331 -0
  45. package/docs/server.playerentitycontroller.platform.md +13 -0
  46. package/docs/server.playerentitycontroller.runvelocity.md +13 -0
  47. package/docs/server.playerentitycontroller.spawn.md +53 -0
  48. package/docs/{server.defaultcharactercontroller.tickwithplayerinput.md → server.playerentitycontroller.tickwithplayerinput.md} +3 -3
  49. package/docs/server.playerentitycontroller.walkvelocity.md +13 -0
  50. package/docs/server.playerentitycontrolleroptions.canjump.md +13 -0
  51. package/docs/server.playerentitycontrolleroptions.canrun.md +13 -0
  52. package/docs/server.playerentitycontrolleroptions.canwalk.md +13 -0
  53. package/docs/server.playerentitycontrolleroptions.jumpvelocity.md +13 -0
  54. package/docs/{server.defaultcharactercontrolleroptions.md → server.playerentitycontrolleroptions.md} +10 -10
  55. package/docs/server.playerentitycontrolleroptions.runvelocity.md +13 -0
  56. package/docs/server.playerentitycontrolleroptions.walkvelocity.md +13 -0
  57. package/docs/server.playerui.lockpointer.md +53 -0
  58. package/docs/server.playerui.md +14 -0
  59. package/docs/server.playeruieventpayload.lockpointer.lock.md +11 -0
  60. package/docs/server.playeruieventpayload.lockpointer.md +70 -0
  61. package/docs/server.playeruieventpayload.lockpointer.playerui.md +11 -0
  62. package/docs/server.playeruieventpayload.md +9 -0
  63. package/docs/server.playeruieventtype.md +14 -0
  64. package/docs/{server.simplecharactercontroller.face.md → server.simpleentitycontroller.face.md} +2 -2
  65. package/docs/{server.simplecharactercontroller.md → server.simpleentitycontroller.md} +11 -13
  66. package/docs/{server.simplecharactercontroller.move.md → server.simpleentitycontroller.move.md} +2 -2
  67. package/examples/block-entity/index.ts +7 -7
  68. package/examples/{character-controller/MyCharacterController.ts → entity-controller/MyEntityController.ts} +20 -20
  69. package/examples/entity-controller/README.md +4 -0
  70. package/examples/{character-controller → entity-controller}/index.ts +3 -3
  71. package/examples/{character-controller → entity-controller}/package.json +1 -1
  72. package/examples/payload-game/index.ts +15 -15
  73. package/package.json +1 -1
  74. package/server.api.json +4678 -4339
  75. package/server.d.ts +185 -154
  76. package/server.js +76 -76
  77. package/docs/server.basecharactercontroller.ondespawn.md +0 -13
  78. package/docs/server.basecharactercontroller.onspawn.md +0 -13
  79. package/docs/server.basecharactercontroller.ontick.md +0 -13
  80. package/docs/server.defaultcharactercontroller._constructor_.md +0 -49
  81. package/docs/server.defaultcharactercontroller.canjump.md +0 -13
  82. package/docs/server.defaultcharactercontroller.canrun.md +0 -13
  83. package/docs/server.defaultcharactercontroller.canwalk.md +0 -13
  84. package/docs/server.defaultcharactercontroller.isgrounded.md +0 -13
  85. package/docs/server.defaultcharactercontroller.isonplatform.md +0 -13
  86. package/docs/server.defaultcharactercontroller.jumpvelocity.md +0 -13
  87. package/docs/server.defaultcharactercontroller.md +0 -333
  88. package/docs/server.defaultcharactercontroller.platform.md +0 -13
  89. package/docs/server.defaultcharactercontroller.runvelocity.md +0 -13
  90. package/docs/server.defaultcharactercontroller.spawn.md +0 -53
  91. package/docs/server.defaultcharactercontroller.walkvelocity.md +0 -13
  92. package/docs/server.defaultcharactercontrolleroptions.canjump.md +0 -13
  93. package/docs/server.defaultcharactercontrolleroptions.canrun.md +0 -13
  94. package/docs/server.defaultcharactercontrolleroptions.canwalk.md +0 -13
  95. package/docs/server.defaultcharactercontrolleroptions.jumpvelocity.md +0 -13
  96. package/docs/server.defaultcharactercontrolleroptions.runvelocity.md +0 -13
  97. package/docs/server.defaultcharactercontrolleroptions.walkvelocity.md +0 -13
  98. package/docs/server.entity.charactercontroller.md +0 -13
  99. package/docs/server.entity.setcharactercontroller.md +0 -53
  100. package/docs/server.entityoptions.charactercontroller.md +0 -13
  101. package/examples/character-controller/README.md +0 -4
  102. /package/examples/{character-controller → entity-controller}/assets/map.json +0 -0
@@ -0,0 +1,70 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [server](./server.md) &gt; [PlayerUIEventPayload](./server.playeruieventpayload.md) &gt; [LockPointer](./server.playeruieventpayload.lockpointer.md)
4
+
5
+ ## PlayerUIEventPayload.LockPointer interface
6
+
7
+ **Signature:**
8
+
9
+ ```typescript
10
+ interface LockPointer
11
+ ```
12
+
13
+ ## Properties
14
+
15
+ <table><thead><tr><th>
16
+
17
+ Property
18
+
19
+
20
+ </th><th>
21
+
22
+ Modifiers
23
+
24
+
25
+ </th><th>
26
+
27
+ Type
28
+
29
+
30
+ </th><th>
31
+
32
+ Description
33
+
34
+
35
+ </th></tr></thead>
36
+ <tbody><tr><td>
37
+
38
+ [lock](./server.playeruieventpayload.lockpointer.lock.md)
39
+
40
+
41
+ </td><td>
42
+
43
+
44
+ </td><td>
45
+
46
+ boolean
47
+
48
+
49
+ </td><td>
50
+
51
+
52
+ </td></tr>
53
+ <tr><td>
54
+
55
+ [playerUI](./server.playeruieventpayload.lockpointer.playerui.md)
56
+
57
+
58
+ </td><td>
59
+
60
+
61
+ </td><td>
62
+
63
+ [PlayerUI](./server.playerui.md)
64
+
65
+
66
+ </td><td>
67
+
68
+
69
+ </td></tr>
70
+ </tbody></table>
@@ -0,0 +1,11 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [server](./server.md) &gt; [PlayerUIEventPayload](./server.playeruieventpayload.md) &gt; [LockPointer](./server.playeruieventpayload.lockpointer.md) &gt; [playerUI](./server.playeruieventpayload.lockpointer.playerui.md)
4
+
5
+ ## PlayerUIEventPayload.LockPointer.playerUI property
6
+
7
+ **Signature:**
8
+
9
+ ```typescript
10
+ playerUI: PlayerUI;
11
+ ```
@@ -33,6 +33,15 @@ Description
33
33
  </td><td>
34
34
 
35
35
 
36
+ </td></tr>
37
+ <tr><td>
38
+
39
+ [LockPointer](./server.playeruieventpayload.lockpointer.md)
40
+
41
+
42
+ </td><td>
43
+
44
+
36
45
  </td></tr>
37
46
  <tr><td>
38
47
 
@@ -43,6 +43,20 @@ LOAD
43
43
  </td><td>
44
44
 
45
45
 
46
+ </td></tr>
47
+ <tr><td>
48
+
49
+ LOCK\_POINTER
50
+
51
+
52
+ </td><td>
53
+
54
+ `"PLAYER_UI.LOCK_POINTER"`
55
+
56
+
57
+ </td><td>
58
+
59
+
46
60
  </td></tr>
47
61
  <tr><td>
48
62
 
@@ -1,8 +1,8 @@
1
1
  <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
2
 
3
- [Home](./index.md) &gt; [server](./server.md) &gt; [SimpleCharacterController](./server.simplecharactercontroller.md) &gt; [face](./server.simplecharactercontroller.face.md)
3
+ [Home](./index.md) &gt; [server](./server.md) &gt; [SimpleEntityController](./server.simpleentitycontroller.md) &gt; [face](./server.simpleentitycontroller.face.md)
4
4
 
5
- ## SimpleCharacterController.face() method
5
+ ## SimpleEntityController.face() method
6
6
 
7
7
  Rotates the entity at a given speed to face a target coordinate.
8
8
 
@@ -1,30 +1,28 @@
1
1
  <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
2
 
3
- [Home](./index.md) &gt; [server](./server.md) &gt; [SimpleCharacterController](./server.simplecharactercontroller.md)
3
+ [Home](./index.md) &gt; [server](./server.md) &gt; [SimpleEntityController](./server.simpleentitycontroller.md)
4
4
 
5
- ## SimpleCharacterController class
5
+ ## SimpleEntityController class
6
6
 
7
- A simple character controller with basic movement functions.
7
+ A simple entity controller with basic movement functions.
8
8
 
9
9
  **Signature:**
10
10
 
11
11
  ```typescript
12
- export default class SimpleCharacterController extends BaseCharacterController
12
+ export default class SimpleEntityController extends BaseEntityController
13
13
  ```
14
- **Extends:** [BaseCharacterController](./server.basecharactercontroller.md)
14
+ **Extends:** [BaseEntityController](./server.baseentitycontroller.md)
15
15
 
16
16
  ## Remarks
17
17
 
18
- This class implements simple movement methods that serve as a way to add realistic movement and rotational facing functionality to an entity. This is also a great base to extend for your own more complex character controller that implements things like pathfinding. Compatible with entities that have kinematic or dynamic rigid body types.
18
+ This class implements simple movement methods that serve as a way to add realistic movement and rotational facing functionality to an entity. This is also a great base to extend for your own more complex entity controller that implements things like pathfinding. Compatible with entities that have kinematic or dynamic rigid body types.
19
19
 
20
20
  ## Example
21
21
 
22
22
 
23
23
  ```typescript
24
- // Create a custom character controller for myEntity, prior to spawning it.
25
- myEntity.createCustomCharacterController = () => {
26
- return new SimpleCharacterController(myEntity);
27
- };
24
+ // Create a custom entity controller for myEntity, prior to spawning it.
25
+ myEntity.setController(new SimpleEntityController());
28
26
 
29
27
  // Spawn the entity in the world.
30
28
  myEntity.spawn(world, { x: 53, y: 10, z: 23 });
@@ -32,7 +30,7 @@ myEntity.spawn(world, { x: 53, y: 10, z: 23 });
32
30
  // Move the entity at a speed of 4 blocks
33
31
  // per second to the coordinate (10, 1, 10).
34
32
  // console.log when we reach the target.
35
- myEntity.characterController.move({ x: 10, y: 1, z: 10 }, 4, {
33
+ myEntity.controller.move({ x: 10, y: 1, z: 10 }, 4, {
36
34
  moveCompleteCallback: endPosition => {
37
35
  console.log('Finished moving to', endPosition);
38
36
  },
@@ -59,7 +57,7 @@ Description
59
57
  </th></tr></thead>
60
58
  <tbody><tr><td>
61
59
 
62
- [face(target, speed, options)](./server.simplecharactercontroller.face.md)
60
+ [face(target, speed, options)](./server.simpleentitycontroller.face.md)
63
61
 
64
62
 
65
63
  </td><td>
@@ -73,7 +71,7 @@ Rotates the entity at a given speed to face a target coordinate.
73
71
  </td></tr>
74
72
  <tr><td>
75
73
 
76
- [move(target, speed, options)](./server.simplecharactercontroller.move.md)
74
+ [move(target, speed, options)](./server.simpleentitycontroller.move.md)
77
75
 
78
76
 
79
77
  </td><td>
@@ -1,8 +1,8 @@
1
1
  <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
2
 
3
- [Home](./index.md) &gt; [server](./server.md) &gt; [SimpleCharacterController](./server.simplecharactercontroller.md) &gt; [move](./server.simplecharactercontroller.move.md)
3
+ [Home](./index.md) &gt; [server](./server.md) &gt; [SimpleEntityController](./server.simpleentitycontroller.md) &gt; [move](./server.simpleentitycontroller.move.md)
4
4
 
5
- ## SimpleCharacterController.move() method
5
+ ## SimpleEntityController.move() method
6
6
 
7
7
  Moves the entity at a given speed in a straight line to a target coordinate.
8
8
 
@@ -5,7 +5,7 @@ import {
5
5
  Entity,
6
6
  RigidBodyType,
7
7
  GameServer,
8
- SimpleCharacterController,
8
+ SimpleEntityController,
9
9
  } from 'hytopia';
10
10
 
11
11
  import worldMap from './assets/map.json';
@@ -140,9 +140,9 @@ startServer(world => {
140
140
  const blockPet = new Entity({
141
141
  blockTextureUri: 'textures/bricks.png',
142
142
  blockHalfExtents: { x: 0.5, y: 0.5, z: 0.5 },
143
- // attach a simple character controller so we can pathfind,
144
- // the character controller will be created and associated when we spawn the entity
145
- characterController: new SimpleCharacterController(),
143
+ // attach a simple entity controller so we can pathfind,
144
+ // the entity controller will be created and associated when we spawn the entity
145
+ controller: new SimpleEntityController(),
146
146
  });
147
147
 
148
148
  blockPet.spawn(world, { x: 0, y: 10, z: -6 });
@@ -167,10 +167,10 @@ startServer(world => {
167
167
  if (!targetPlayerEntity) { return; } // if the player doesn't have an entity, don't pathfind.
168
168
 
169
169
  // pathfind to the player's entity
170
- const blockPetCharacterController = blockPet.characterController as SimpleCharacterController;
170
+ const blockPetEntityController = blockPet.controller as SimpleEntityController;
171
171
  const targetPosition = targetPlayerEntity.position;
172
- blockPetCharacterController.move(targetPosition, 3);
173
- blockPetCharacterController.face(targetPosition, 1);
172
+ blockPetEntityController.move(targetPosition, 3);
173
+ blockPetEntityController.face(targetPosition, 1);
174
174
  }
175
175
  };
176
176
  });
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Audio,
3
- BaseCharacterController,
3
+ BaseEntityController,
4
4
  ColliderShape,
5
5
  CoefficientCombineRule,
6
6
  CollisionGroup,
@@ -14,8 +14,8 @@ import type {
14
14
  PlayerCameraOrientation,
15
15
  } from 'hytopia';
16
16
 
17
- /** Options for creating a MyCharacterController instance. @public */
18
- export interface MyCharacterControllerOptions {
17
+ /** Options for creating a MyEntityController instance. @public */
18
+ export interface MyEntityControllerOptions {
19
19
  /** The upward velocity applied to the entity when it jumps. */
20
20
  jumpVelocity?: number;
21
21
 
@@ -36,16 +36,16 @@ export interface MyCharacterControllerOptions {
36
36
  }
37
37
 
38
38
  /**
39
- * A custom character controller implementation.
39
+ * A custom entity controller implementation.
40
40
  *
41
41
  * @remarks
42
- * This class extends {@link BaseCharacterController}
42
+ * This class extends {@link BaseEntityController}
43
43
  * and implements the default movement logic for a
44
- * character entity.
44
+ * entity.
45
45
  *
46
46
  * @public
47
47
  */
48
- export default class MyCharacterController extends BaseCharacterController {
48
+ export default class MyEntityController extends BaseEntityController {
49
49
  /** The upward velocity applied to the entity when it jumps. */
50
50
  public jumpVelocity: number = 10;
51
51
 
@@ -57,24 +57,24 @@ export default class MyCharacterController extends BaseCharacterController {
57
57
 
58
58
  /**
59
59
  * A function allowing custom logic to determine if the entity can walk.
60
- * @param myCharacterController - The character controller instance.
61
- * @returns Whether the entity of the character controller can walk.
60
+ * @param myEntityController - The entity controller instance.
61
+ * @returns Whether the entity of the entity controller can walk.
62
62
  */
63
- public canWalk: (myCharacterController: MyCharacterController) => boolean = () => true;
63
+ public canWalk: (myEntityController: MyEntityController) => boolean = () => true;
64
64
 
65
65
  /**
66
66
  * A function allowing custom logic to determine if the entity can run.
67
- * @param myCharacterController - The character controller instance.
68
- * @returns Whether the entity of the character controller can run.
67
+ * @param myEntityController - The entity controller instance.
68
+ * @returns Whether the entity of the entity controller can run.
69
69
  */
70
- public canRun: (myCharacterController: MyCharacterController) => boolean = () => true;
70
+ public canRun: (myEntityController: MyEntityController) => boolean = () => true;
71
71
 
72
72
  /**
73
73
  * A function allowing custom logic to determine if the entity can jump.
74
- * @param myCharacterController - The character controller instance.
75
- * @returns Whether the entity of the character controller can jump.
74
+ * @param myEntityController - The entity controller instance.
75
+ * @returns Whether the entity of the entity controller can jump.
76
76
  */
77
- public canJump: (myCharacterController: MyCharacterController) => boolean = () => true;
77
+ public canJump: (myEntityController: MyEntityController) => boolean = () => true;
78
78
 
79
79
  /** @internal */
80
80
  private _stepAudio: Audio | undefined;
@@ -88,7 +88,7 @@ export default class MyCharacterController extends BaseCharacterController {
88
88
  /**
89
89
  * @param options - Options for the controller.
90
90
  */
91
- public constructor(options: MyCharacterControllerOptions = {}) {
91
+ public constructor(options: MyEntityControllerOptions = {}) {
92
92
  super();
93
93
 
94
94
  this.jumpVelocity = options.jumpVelocity ?? this.jumpVelocity;
@@ -125,13 +125,13 @@ export default class MyCharacterController extends BaseCharacterController {
125
125
 
126
126
  /**
127
127
  * Called when the controlled entity is spawned.
128
- * In MyCharacterController, this function is used to create
128
+ * In MyEntityController, this function is used to create
129
129
  * the colliders for the entity for wall and ground detection.
130
130
  * @param entity - The entity that is spawned.
131
131
  */
132
132
  public spawn(entity: Entity) {
133
133
  if (!entity.isSpawned) {
134
- throw new Error('CharacterController.createColliders(): Entity is not spawned!');
134
+ throw new Error('MyEntityController.createColliders(): Entity is not spawned!');
135
135
  }
136
136
 
137
137
  // Ground sensor
@@ -184,7 +184,7 @@ export default class MyCharacterController extends BaseCharacterController {
184
184
  };
185
185
 
186
186
  /**
187
- * Ticks the player movement for the character controller,
187
+ * Ticks the player movement for the entity controller,
188
188
  * overriding the default implementation.
189
189
  *
190
190
  * @param entity - The entity to tick.
@@ -0,0 +1,4 @@
1
+ # entity-controller
2
+
3
+ This is a simple demonstration of how you can create your own entity controller. This demonstration
4
+ uses much of the same code as the default entity controller that ships with the SDK.
@@ -3,7 +3,7 @@ import {
3
3
  PlayerEntity,
4
4
  } from 'hytopia';
5
5
 
6
- import MyCharacterController from './MyCharacterController';
6
+ import MyEntityController from './MyEntityController';
7
7
 
8
8
  import worldMap from './assets/map.json';
9
9
 
@@ -12,7 +12,7 @@ startServer(world => {
12
12
  // world.simulation.enableDebugRendering(true);
13
13
 
14
14
  // Visualize raycasts, like block breaking for our
15
- // character controller.
15
+ // entity controller.
16
16
  world.simulation.enableDebugRaycasting(true);
17
17
 
18
18
  world.loadMap(worldMap);
@@ -24,7 +24,7 @@ startServer(world => {
24
24
  modelUri: 'models/player.gltf',
25
25
  modelLoopedAnimations: [ 'idle' ],
26
26
  modelScale: 0.5,
27
- characterController: new MyCharacterController(), // attach our character controller
27
+ controller: new MyEntityController(), // attach our entity controller
28
28
  });
29
29
 
30
30
  playerEntity.spawn(world, { x: 0, y: 10, z: 0 });
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "character-controller",
2
+ "name": "entity-controller",
3
3
  "version": "1.0.0",
4
4
  "description": "",
5
5
  "main": "index.js",
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * payload-game is a simple game that encompasses a number of core HYTOPIA SDK systems.
3
3
  * This example utilizes entities, spawning, rigid body, colliders and sensors,
4
- * collision groups, audio, character controller hooks, and more.
4
+ * collision groups, audio, entity controller hooks, and more.
5
5
  *
6
6
  * This example is a quick and dirty implementation of an overwatch style push the payload
7
7
  * in a multiplayer PvE style. Players start the game around the payload and must stay near it
@@ -22,11 +22,11 @@ import {
22
22
  PlayerCameraMode,
23
23
  ColliderShape,
24
24
  CollisionGroup,
25
- DefaultCharacterController,
25
+ PlayerEntityController,
26
26
  Entity,
27
27
  PlayerEntity,
28
28
  RigidBodyType,
29
- SimpleCharacterController,
29
+ SimpleEntityController,
30
30
  Vector3,
31
31
  World,
32
32
  startServer,
@@ -120,7 +120,7 @@ startServer(world => { // Perform our game setup logic in the startServer init c
120
120
  playerEntity.spawn(world, randomSpawnCoordinate);
121
121
 
122
122
  // We need to do some custom logic for player inputs, so let's assign custom onTick handler to the default player controller.
123
- playerEntity.characterController!.onTickWithPlayerInput = onTickWithPlayerInput;
123
+ playerEntity.controller!.onTickWithPlayerInput = onTickWithPlayerInput;
124
124
 
125
125
  // Set custom collision groups for the player entity, this is so we can reference the PLAYER collision group
126
126
  // specifically in enemy collision sensors.
@@ -293,7 +293,7 @@ function spawnPayloadEntity(world: World) {
293
293
  }
294
294
 
295
295
  payloadEntity = new Entity({
296
- characterController: new SimpleCharacterController(),
296
+ controller: new SimpleEntityController(),
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
- characterController: new SimpleCharacterController(),
353
+ controller: new SimpleEntityController(),
354
354
  name: 'Spider',
355
355
  modelUri: 'models/spider.gltf',
356
356
  modelLoopedAnimations: [ 'walk' ],
@@ -444,16 +444,16 @@ function onTickPathfindPayload(entity: Entity) { // Movement logic for the paylo
444
444
  return console.warn('Payload destination reached!! Game won!!');
445
445
  }
446
446
 
447
- if (!(entity.characterController instanceof SimpleCharacterController)) { // type guard
448
- return console.warn('Payload entity does not have a SimpleCharacterController!');
447
+ if (!(entity.controller instanceof SimpleEntityController)) { // type guard
448
+ return console.warn('Payload entity does not have a SimpleEntityController!');
449
449
  }
450
450
 
451
- entity.characterController.move(targetWaypointCoordinate, speed, {
451
+ entity.controller.move(targetWaypointCoordinate, speed, {
452
452
  moveCompleteCallback: () => targetWaypointCoordinateIndex++,
453
453
  moveIgnoreAxes: { y: true },
454
454
  });
455
455
 
456
- entity.characterController.face(targetWaypointCoordinate, speed / 2);
456
+ entity.controller.face(targetWaypointCoordinate, speed / 2);
457
457
  }
458
458
 
459
459
  function onTickPathfindEnemy(entity: Entity, targetPlayers: Set<PlayerEntity>, speed: number, _tickDeltaMs: number) {
@@ -483,19 +483,19 @@ function onTickPathfindEnemy(entity: Entity, targetPlayers: Set<PlayerEntity>, s
483
483
  }
484
484
 
485
485
  // Handle Movement
486
- if (!(entity.characterController instanceof SimpleCharacterController)) {
487
- return console.warn('Enemy entity does not have a SimpleCharacterController!');
486
+ if (!(entity.controller instanceof SimpleEntityController)) {
487
+ return console.warn('Enemy entity does not have a SimpleEntityController!');
488
488
  }
489
489
 
490
490
  const targetPosition = enemyPathfindingTargets[entityId];
491
- entity.characterController.move(targetPosition, speed, { moveIgnoreAxes: { y: true } });
492
- entity.characterController.face(targetPosition, speed / 2);
491
+ entity.controller.move(targetPosition, speed, { moveIgnoreAxes: { y: true } });
492
+ entity.controller.face(targetPosition, speed / 2);
493
493
  }
494
494
 
495
495
  enemyPathfindAccumulators[entityId]++;
496
496
  }
497
497
 
498
- function onTickWithPlayerInput(this: DefaultCharacterController, entity: PlayerEntity, input: PlayerInput, cameraOrientation: PlayerCameraOrientation, _deltaTimeMs: number) {
498
+ function onTickWithPlayerInput(this: PlayerEntityController, entity: PlayerEntity, input: PlayerInput, cameraOrientation: PlayerCameraOrientation, _deltaTimeMs: number) {
499
499
  if (!entity.world) return;
500
500
 
501
501
  if (input.ml) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hytopia",
3
- "version": "0.1.56",
3
+ "version": "0.1.57",
4
4
  "description": "The HYTOPIA SDK makes it easy for developers to create massively multiplayer games using JavaScript or TypeScript.",
5
5
  "main": "server.js",
6
6
  "bin": {