hytopia 0.14.24 → 0.14.26

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 (32) hide show
  1. package/bin/scripts.js +3 -3
  2. package/docs/server.blocktype.interact.md +73 -0
  3. package/docs/server.blocktype.md +34 -0
  4. package/docs/server.blocktypeevent.md +14 -0
  5. package/docs/server.blocktypeeventpayloads._block_type.interact_.md +17 -0
  6. package/docs/server.blocktypeeventpayloads.md +19 -0
  7. package/docs/server.entity.interact.md +73 -0
  8. package/docs/server.entity.isenvironmental.md +1 -1
  9. package/docs/server.entity.md +15 -1
  10. package/docs/server.entityevent.md +14 -0
  11. package/docs/server.entityeventpayloads._entity.interact_.md +17 -0
  12. package/docs/server.entityeventpayloads.md +19 -0
  13. package/docs/server.player.interactenabled.md +13 -0
  14. package/docs/server.player.maxinteractdistance.md +13 -0
  15. package/docs/server.player.md +70 -0
  16. package/docs/server.player.setinteractenabled.md +53 -0
  17. package/docs/server.player.setmaxinteractdistance.md +53 -0
  18. package/docs/server.playerevent.md +14 -0
  19. package/docs/server.playereventpayloads._player.interact_.md +18 -0
  20. package/docs/server.playereventpayloads.md +19 -0
  21. package/docs/server.playerui.freezepointerlock.md +53 -0
  22. package/docs/server.playerui.lockpointer.md +5 -1
  23. package/docs/server.playerui.md +15 -1
  24. package/docs/server.playeruievent.md +14 -0
  25. package/docs/server.playeruieventpayloads._player_ui.freeze_pointer_lock_.md +16 -0
  26. package/docs/server.playeruieventpayloads.md +19 -0
  27. package/docs/server.raycasthit.md +2 -0
  28. package/docs/server.supported_inputs.md +1 -1
  29. package/package.json +1 -1
  30. package/server.api.json +686 -5
  31. package/server.d.ts +85 -5
  32. package/server.mjs +86 -86
package/bin/scripts.js CHANGED
@@ -76,7 +76,7 @@ async function start() {
76
76
  const projectRoot = process.cwd();
77
77
  const entryFile = path.join(projectRoot, 'index.mjs');
78
78
  const buildCmd = 'hytopia build-dev';
79
- const runCmd = `"${process.execPath}" "${entryFile}"`;
79
+ const runCmd = `"${process.execPath}" --enable-source-maps "${entryFile}"`;
80
80
 
81
81
  // Start nodemon to watch for changes, rebuild, then run the server
82
82
  nodemon({
@@ -470,9 +470,9 @@ async function packageProject() {
470
470
 
471
471
 
472
472
  async function build(devMode = false) {
473
- let envFlags = devMode ? '' : '--minify-whitespace --minify-syntax --sourcemap=inline';
473
+ let envFlags = devMode ? '' : '--minify-whitespace --minify-syntax';
474
474
 
475
- execSync(`npx --yes bun build --target=node --env=disable --format=esm ${envFlags} --external=@fails-components/webtransport --external=@fails-components/webtransport-transport-http3-quiche --outfile=index.mjs index.ts`, { stdio: 'inherit' });
475
+ execSync(`npx --yes bun build --target=node --env=disable --format=esm ${envFlags} --sourcemap=inline --external=@fails-components/webtransport --external=@fails-components/webtransport-transport-http3-quiche --outfile=index.mjs index.ts`, { stdio: 'inherit' });
476
476
  }
477
477
 
478
478
  /**
@@ -0,0 +1,73 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [server](./server.md) &gt; [BlockType](./server.blocktype.md) &gt; [interact](./server.blocktype.interact.md)
4
+
5
+ ## BlockType.interact() method
6
+
7
+ Triggers an interaction on the block type from a player.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ interact(player: Player, raycastHit?: RaycastHit): void;
13
+ ```
14
+
15
+ ## Parameters
16
+
17
+ <table><thead><tr><th>
18
+
19
+ Parameter
20
+
21
+
22
+ </th><th>
23
+
24
+ Type
25
+
26
+
27
+ </th><th>
28
+
29
+ Description
30
+
31
+
32
+ </th></tr></thead>
33
+ <tbody><tr><td>
34
+
35
+ player
36
+
37
+
38
+ </td><td>
39
+
40
+ [Player](./server.player.md)
41
+
42
+
43
+ </td><td>
44
+
45
+ The player interacting with the block type.
46
+
47
+
48
+ </td></tr>
49
+ <tr><td>
50
+
51
+ raycastHit
52
+
53
+
54
+ </td><td>
55
+
56
+ [RaycastHit](./server.raycasthit.md)
57
+
58
+
59
+ </td><td>
60
+
61
+ _(Optional)_ The raycast hit result, if the interaction was triggered by a client-side click/tap.
62
+
63
+
64
+ </td></tr>
65
+ </tbody></table>
66
+ **Returns:**
67
+
68
+ void
69
+
70
+ ## Remarks
71
+
72
+ This is automatically called when a player clicks or taps a block of this block type, but can also be called directly for programmatic interactions. Emits [BlockTypeEvent.INTERACT](./server.blocktypeevent.md)<!-- -->.
73
+
@@ -283,5 +283,39 @@ string
283
283
  The URI of the texture for the block type.
284
284
 
285
285
 
286
+ </td></tr>
287
+ </tbody></table>
288
+
289
+ ## Methods
290
+
291
+ <table><thead><tr><th>
292
+
293
+ Method
294
+
295
+
296
+ </th><th>
297
+
298
+ Modifiers
299
+
300
+
301
+ </th><th>
302
+
303
+ Description
304
+
305
+
306
+ </th></tr></thead>
307
+ <tbody><tr><td>
308
+
309
+ [interact(player, raycastHit)](./server.blocktype.interact.md)
310
+
311
+
312
+ </td><td>
313
+
314
+
315
+ </td><td>
316
+
317
+ Triggers an interaction on the block type from a player.
318
+
319
+
286
320
  </td></tr>
287
321
  </tbody></table>
@@ -57,5 +57,19 @@ ENTITY\_CONTACT\_FORCE
57
57
  </td><td>
58
58
 
59
59
 
60
+ </td></tr>
61
+ <tr><td>
62
+
63
+ INTERACT
64
+
65
+
66
+ </td><td>
67
+
68
+ `"BLOCK_TYPE.INTERACT"`
69
+
70
+
71
+ </td><td>
72
+
73
+
60
74
  </td></tr>
61
75
  </tbody></table>
@@ -0,0 +1,17 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [server](./server.md) &gt; [BlockTypeEventPayloads](./server.blocktypeeventpayloads.md) &gt; ["BLOCK\_TYPE.INTERACT"](./server.blocktypeeventpayloads._block_type.interact_.md)
4
+
5
+ ## BlockTypeEventPayloads."BLOCK\_TYPE.INTERACT" property
6
+
7
+ Emitted when a player interacts with a block type.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ [BlockTypeEvent.INTERACT]: {
13
+ blockType: BlockType;
14
+ player: Player;
15
+ raycastHit?: RaycastHit;
16
+ };
17
+ ```
@@ -72,5 +72,24 @@ Emitted when an entity collides with a block type.
72
72
  Emitted when an entity's contact force is applied to a block type.
73
73
 
74
74
 
75
+ </td></tr>
76
+ <tr><td>
77
+
78
+ ["BLOCK\_TYPE.INTERACT"](./server.blocktypeeventpayloads._block_type.interact_.md)
79
+
80
+
81
+ </td><td>
82
+
83
+
84
+ </td><td>
85
+
86
+ { blockType: [BlockType](./server.blocktype.md)<!-- -->; player: [Player](./server.player.md)<!-- -->; raycastHit?: [RaycastHit](./server.raycasthit.md)<!-- -->; }
87
+
88
+
89
+ </td><td>
90
+
91
+ Emitted when a player interacts with a block type.
92
+
93
+
75
94
  </td></tr>
76
95
  </tbody></table>
@@ -0,0 +1,73 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [server](./server.md) &gt; [Entity](./server.entity.md) &gt; [interact](./server.entity.interact.md)
4
+
5
+ ## Entity.interact() method
6
+
7
+ Triggers an interaction on the entity from a player.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ interact(player: Player, raycastHit?: RaycastHit): void;
13
+ ```
14
+
15
+ ## Parameters
16
+
17
+ <table><thead><tr><th>
18
+
19
+ Parameter
20
+
21
+
22
+ </th><th>
23
+
24
+ Type
25
+
26
+
27
+ </th><th>
28
+
29
+ Description
30
+
31
+
32
+ </th></tr></thead>
33
+ <tbody><tr><td>
34
+
35
+ player
36
+
37
+
38
+ </td><td>
39
+
40
+ [Player](./server.player.md)
41
+
42
+
43
+ </td><td>
44
+
45
+ The player interacting with the entity.
46
+
47
+
48
+ </td></tr>
49
+ <tr><td>
50
+
51
+ raycastHit
52
+
53
+
54
+ </td><td>
55
+
56
+ [RaycastHit](./server.raycasthit.md)
57
+
58
+
59
+ </td><td>
60
+
61
+ _(Optional)_ The raycast hit result, if the interaction was triggered by a client-side click/tap.
62
+
63
+
64
+ </td></tr>
65
+ </tbody></table>
66
+ **Returns:**
67
+
68
+ void
69
+
70
+ ## Remarks
71
+
72
+ This is automatically called when a player clicks or taps the entity, but can also be called directly for programmatic interactions. Emits [EntityEvent.INTERACT](./server.entityevent.md)<!-- -->.
73
+
@@ -4,7 +4,7 @@
4
4
 
5
5
  ## Entity.isEnvironmental property
6
6
 
7
- Whether the entity is environmental, if true it will not invoke its tick function or change position.
7
+ Whether the entity is environmental, if true it will not invoke its tick function or change position. It also cannot be animated or removed after spawning.
8
8
 
9
9
  **Signature:**
10
10
 
@@ -270,7 +270,7 @@ boolean
270
270
 
271
271
  </td><td>
272
272
 
273
- Whether the entity is environmental, if true it will not invoke its tick function or change position.
273
+ Whether the entity is environmental, if true it will not invoke its tick function or change position. It also cannot be animated or removed after spawning.
274
274
 
275
275
 
276
276
  </td></tr>
@@ -685,6 +685,20 @@ Description
685
685
  Despawns the entity and all children from the world.
686
686
 
687
687
 
688
+ </td></tr>
689
+ <tr><td>
690
+
691
+ [interact(player, raycastHit)](./server.entity.interact.md)
692
+
693
+
694
+ </td><td>
695
+
696
+
697
+ </td><td>
698
+
699
+ Triggers an interaction on the entity from a player.
700
+
701
+
688
702
  </td></tr>
689
703
  <tr><td>
690
704
 
@@ -99,6 +99,20 @@ ENTITY\_CONTACT\_FORCE
99
99
  </td><td>
100
100
 
101
101
 
102
+ </td></tr>
103
+ <tr><td>
104
+
105
+ INTERACT
106
+
107
+
108
+ </td><td>
109
+
110
+ `"ENTITY.INTERACT"`
111
+
112
+
113
+ </td><td>
114
+
115
+
102
116
  </td></tr>
103
117
  <tr><td>
104
118
 
@@ -0,0 +1,17 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [server](./server.md) &gt; [EntityEventPayloads](./server.entityeventpayloads.md) &gt; ["ENTITY.INTERACT"](./server.entityeventpayloads._entity.interact_.md)
4
+
5
+ ## EntityEventPayloads."ENTITY.INTERACT" property
6
+
7
+ Emitted when a player interacts with the entity by clicking or tapping it.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ [EntityEvent.INTERACT]: {
13
+ entity: Entity;
14
+ player: Player;
15
+ raycastHit?: RaycastHit;
16
+ };
17
+ ```
@@ -129,6 +129,25 @@ Emitted when an entity collides with another entity.
129
129
  Emitted when an entity's contact force is applied to another entity.
130
130
 
131
131
 
132
+ </td></tr>
133
+ <tr><td>
134
+
135
+ ["ENTITY.INTERACT"](./server.entityeventpayloads._entity.interact_.md)
136
+
137
+
138
+ </td><td>
139
+
140
+
141
+ </td><td>
142
+
143
+ { entity: [Entity](./server.entity.md)<!-- -->; player: [Player](./server.player.md)<!-- -->; raycastHit?: [RaycastHit](./server.raycasthit.md)<!-- -->; }
144
+
145
+
146
+ </td><td>
147
+
148
+ Emitted when a player interacts with the entity by clicking or tapping it.
149
+
150
+
132
151
  </td></tr>
133
152
  <tr><td>
134
153
 
@@ -0,0 +1,13 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [server](./server.md) &gt; [Player](./server.player.md) &gt; [interactEnabled](./server.player.interactenabled.md)
4
+
5
+ ## Player.interactEnabled property
6
+
7
+ Whether the players click/taps will cause interacts with blocks or entities. Defaults to true.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ get interactEnabled(): boolean;
13
+ ```
@@ -0,0 +1,13 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [server](./server.md) &gt; [Player](./server.player.md) &gt; [maxInteractDistance](./server.player.maxinteractdistance.md)
4
+
5
+ ## Player.maxInteractDistance property
6
+
7
+ The maximum distance a player can interact with entities or blocks. The raycast distance in blocks for interactions. Defaults to 20.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ get maxInteractDistance(): number;
13
+ ```
@@ -131,6 +131,48 @@ The unique HYTOPIA UUID for the player.
131
131
  The current [PlayerInput](./server.playerinput.md) of the player.
132
132
 
133
133
 
134
+ </td></tr>
135
+ <tr><td>
136
+
137
+ [interactEnabled](./server.player.interactenabled.md)
138
+
139
+
140
+ </td><td>
141
+
142
+ `readonly`
143
+
144
+
145
+ </td><td>
146
+
147
+ boolean
148
+
149
+
150
+ </td><td>
151
+
152
+ Whether the players click/taps will cause interacts with blocks or entities. Defaults to true.
153
+
154
+
155
+ </td></tr>
156
+ <tr><td>
157
+
158
+ [maxInteractDistance](./server.player.maxinteractdistance.md)
159
+
160
+
161
+ </td><td>
162
+
163
+ `readonly`
164
+
165
+
166
+ </td><td>
167
+
168
+ number
169
+
170
+
171
+ </td><td>
172
+
173
+ The maximum distance a player can interact with entities or blocks. The raycast distance in blocks for interactions. Defaults to 20.
174
+
175
+
134
176
  </td></tr>
135
177
  <tr><td>
136
178
 
@@ -305,6 +347,34 @@ Resets all inputs keys
305
347
  Schedule a notification the player at a point in time in the future. This will automatically handle prompting a player (if necessary) for notification permissions in-game.
306
348
 
307
349
 
350
+ </td></tr>
351
+ <tr><td>
352
+
353
+ [setInteractEnabled(enabled)](./server.player.setinteractenabled.md)
354
+
355
+
356
+ </td><td>
357
+
358
+
359
+ </td><td>
360
+
361
+ Sets whether the players click/taps will cause interacts with blocks or entities.
362
+
363
+
364
+ </td></tr>
365
+ <tr><td>
366
+
367
+ [setMaxInteractDistance(distance)](./server.player.setmaxinteractdistance.md)
368
+
369
+
370
+ </td><td>
371
+
372
+
373
+ </td><td>
374
+
375
+ Sets the maximum distance a player can interact with entities or blocks.
376
+
377
+
308
378
  </td></tr>
309
379
  <tr><td>
310
380
 
@@ -0,0 +1,53 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [server](./server.md) &gt; [Player](./server.player.md) &gt; [setInteractEnabled](./server.player.setinteractenabled.md)
4
+
5
+ ## Player.setInteractEnabled() method
6
+
7
+ Sets whether the players click/taps will cause interacts with blocks or entities.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ setInteractEnabled(enabled: boolean): void;
13
+ ```
14
+
15
+ ## Parameters
16
+
17
+ <table><thead><tr><th>
18
+
19
+ Parameter
20
+
21
+
22
+ </th><th>
23
+
24
+ Type
25
+
26
+
27
+ </th><th>
28
+
29
+ Description
30
+
31
+
32
+ </th></tr></thead>
33
+ <tbody><tr><td>
34
+
35
+ enabled
36
+
37
+
38
+ </td><td>
39
+
40
+ boolean
41
+
42
+
43
+ </td><td>
44
+
45
+ Whether the players click/taps will cause interacts with blocks or entities.
46
+
47
+
48
+ </td></tr>
49
+ </tbody></table>
50
+ **Returns:**
51
+
52
+ void
53
+
@@ -0,0 +1,53 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [server](./server.md) &gt; [Player](./server.player.md) &gt; [setMaxInteractDistance](./server.player.setmaxinteractdistance.md)
4
+
5
+ ## Player.setMaxInteractDistance() method
6
+
7
+ Sets the maximum distance a player can interact with entities or blocks.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ setMaxInteractDistance(distance: number): void;
13
+ ```
14
+
15
+ ## Parameters
16
+
17
+ <table><thead><tr><th>
18
+
19
+ Parameter
20
+
21
+
22
+ </th><th>
23
+
24
+ Type
25
+
26
+
27
+ </th><th>
28
+
29
+ Description
30
+
31
+
32
+ </th></tr></thead>
33
+ <tbody><tr><td>
34
+
35
+ distance
36
+
37
+
38
+ </td><td>
39
+
40
+ number
41
+
42
+
43
+ </td><td>
44
+
45
+ The maximum distance in blocks used for the interact raycast. Default is 20.
46
+
47
+
48
+ </td></tr>
49
+ </tbody></table>
50
+ **Returns:**
51
+
52
+ void
53
+
@@ -43,6 +43,20 @@ CHAT\_MESSAGE\_SEND
43
43
  </td><td>
44
44
 
45
45
 
46
+ </td></tr>
47
+ <tr><td>
48
+
49
+ INTERACT
50
+
51
+
52
+ </td><td>
53
+
54
+ `"PLAYER.INTERACT"`
55
+
56
+
57
+ </td><td>
58
+
59
+
46
60
  </td></tr>
47
61
  <tr><td>
48
62
 
@@ -0,0 +1,18 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [server](./server.md) &gt; [PlayerEventPayloads](./server.playereventpayloads.md) &gt; ["PLAYER.INTERACT"](./server.playereventpayloads._player.interact_.md)
4
+
5
+ ## PlayerEventPayloads."PLAYER.INTERACT" property
6
+
7
+ Emitted when a player interacts the world.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ [PlayerEvent.INTERACT]: {
13
+ player: Player;
14
+ interactOrigin: Vector3Like;
15
+ interactDirection: Vector3Like;
16
+ raycastHit?: RaycastHit;
17
+ };
18
+ ```
@@ -53,6 +53,25 @@ Description
53
53
  Emitted when a player sends a chat message.
54
54
 
55
55
 
56
+ </td></tr>
57
+ <tr><td>
58
+
59
+ ["PLAYER.INTERACT"](./server.playereventpayloads._player.interact_.md)
60
+
61
+
62
+ </td><td>
63
+
64
+
65
+ </td><td>
66
+
67
+ { player: [Player](./server.player.md)<!-- -->; interactOrigin: [Vector3Like](./server.vector3like.md)<!-- -->; interactDirection: [Vector3Like](./server.vector3like.md)<!-- -->; raycastHit?: [RaycastHit](./server.raycasthit.md)<!-- -->; }
68
+
69
+
70
+ </td><td>
71
+
72
+ Emitted when a player interacts the world.
73
+
74
+
56
75
  </td></tr>
57
76
  <tr><td>
58
77