@hytopia.com/examples 1.0.57 → 1.0.59
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/frontiers-rpg-game/dev/persistence/player-player-1.json +1 -1
- package/frontiers-rpg-game/dev/persistence/player-player-11.json +1 -31
- package/frontiers-rpg-game/dev/persistence/player-player-2.json +1 -1
- package/frontiers-rpg-game/dev/persistence/player-player-3.json +1 -1
- package/frontiers-rpg-game/dev/persistence/player-player-4.json +1 -0
- package/frontiers-rpg-game/dev/persistence/player-player-42.json +1 -0
- package/frontiers-rpg-game/dev/persistence/player-player-5.json +1 -0
- package/frontiers-rpg-game/dev/persistence/player-player-56.json +1 -0
- package/frontiers-rpg-game/dev/persistence/player-player-6.json +1 -31
- package/frontiers-rpg-game/dev/persistence/player-player-9.json +1 -31
- package/frontiers-rpg-game/src/GamePlayer.ts +16 -1
- package/package.json +1 -1
- package/tutorial-arrows/README.md +3 -0
- package/tutorial-arrows/assets/arrows/double-arrow.png +0 -0
- package/tutorial-arrows/assets/audio/sfx/step/stone/stone-step-04.mp3 +0 -0
- package/tutorial-arrows/assets/blocks/.atlas/atlas.json +4612 -0
- package/tutorial-arrows/assets/blocks/.atlas/atlas.ktx2 +0 -0
- package/tutorial-arrows/assets/blocks/.atlas/atlas.png +0 -0
- package/tutorial-arrows/assets/blocks/bamboo-slats.png +0 -0
- package/tutorial-arrows/assets/blocks/bricks.png +0 -0
- package/tutorial-arrows/assets/blocks/clay.png +0 -0
- package/tutorial-arrows/assets/blocks/coal-ore.png +0 -0
- package/tutorial-arrows/assets/blocks/cobblestone-dark.png +0 -0
- package/tutorial-arrows/assets/blocks/cobblestone-large-dark.png +0 -0
- package/tutorial-arrows/assets/blocks/cobblestone-mossy.png +0 -0
- package/tutorial-arrows/assets/blocks/cobblestone.png +0 -0
- package/tutorial-arrows/assets/blocks/cracked_sand/+x.png +0 -0
- package/tutorial-arrows/assets/blocks/cracked_sand/+y.png +0 -0
- package/tutorial-arrows/assets/blocks/cracked_sand/+z.png +0 -0
- package/tutorial-arrows/assets/blocks/cracked_sand/-x.png +0 -0
- package/tutorial-arrows/assets/blocks/cracked_sand/-y.png +0 -0
- package/tutorial-arrows/assets/blocks/cracked_sand/-z.png +0 -0
- package/tutorial-arrows/assets/blocks/creep.png +0 -0
- package/tutorial-arrows/assets/blocks/diamond-block.png +0 -0
- package/tutorial-arrows/assets/blocks/diamond-ore.png +0 -0
- package/tutorial-arrows/assets/blocks/dirt.png +0 -0
- package/tutorial-arrows/assets/blocks/dragon_block/+x.png +0 -0
- package/tutorial-arrows/assets/blocks/dragon_block/+y.png +0 -0
- package/tutorial-arrows/assets/blocks/dragon_block/+z.png +0 -0
- package/tutorial-arrows/assets/blocks/dragon_block/-x.png +0 -0
- package/tutorial-arrows/assets/blocks/dragon_block/-y.png +0 -0
- package/tutorial-arrows/assets/blocks/dragon_block/-z.png +0 -0
- package/tutorial-arrows/assets/blocks/dragons-stone.png +0 -0
- package/tutorial-arrows/assets/blocks/emerald-block.png +0 -0
- package/tutorial-arrows/assets/blocks/emerald-ore.png +0 -0
- package/tutorial-arrows/assets/blocks/error.png +0 -0
- package/tutorial-arrows/assets/blocks/ghost-dirt.png +0 -0
- package/tutorial-arrows/assets/blocks/glass-window-divided.png +0 -0
- package/tutorial-arrows/assets/blocks/glass-window.png +0 -0
- package/tutorial-arrows/assets/blocks/glass.png +0 -0
- package/tutorial-arrows/assets/blocks/gold-ore.png +0 -0
- package/tutorial-arrows/assets/blocks/grass/+x.png +0 -0
- package/tutorial-arrows/assets/blocks/grass/+y.png +0 -0
- package/tutorial-arrows/assets/blocks/grass/+z.png +0 -0
- package/tutorial-arrows/assets/blocks/grass/-x.png +0 -0
- package/tutorial-arrows/assets/blocks/grass/-y.png +0 -0
- package/tutorial-arrows/assets/blocks/grass/-z.png +0 -0
- package/tutorial-arrows/assets/blocks/gravel.png +0 -0
- package/tutorial-arrows/assets/blocks/ice-block.png +0 -0
- package/tutorial-arrows/assets/blocks/ice.png +0 -0
- package/tutorial-arrows/assets/blocks/infected-shadowrock-core.png +0 -0
- package/tutorial-arrows/assets/blocks/infected-shadowrock.png +0 -0
- package/tutorial-arrows/assets/blocks/iron-ore.png +0 -0
- package/tutorial-arrows/assets/blocks/jungle-block-damaged.png +0 -0
- package/tutorial-arrows/assets/blocks/jungle-block-face.png +0 -0
- package/tutorial-arrows/assets/blocks/jungle-block-mossy.png +0 -0
- package/tutorial-arrows/assets/blocks/jungle-block.png +0 -0
- package/tutorial-arrows/assets/blocks/jungle-dirt-roots.png +0 -0
- package/tutorial-arrows/assets/blocks/jungle-dirt-trampled.png +0 -0
- package/tutorial-arrows/assets/blocks/jungle-dirt.png +0 -0
- package/tutorial-arrows/assets/blocks/lava-dirt-cracked.png +0 -0
- package/tutorial-arrows/assets/blocks/lava-dirt.png +0 -0
- package/tutorial-arrows/assets/blocks/lava-rocky-cracked.png +0 -0
- package/tutorial-arrows/assets/blocks/lava-rocky.png +0 -0
- package/tutorial-arrows/assets/blocks/lava.png +0 -0
- package/tutorial-arrows/assets/blocks/log/+x.png +0 -0
- package/tutorial-arrows/assets/blocks/log/+y.png +0 -0
- package/tutorial-arrows/assets/blocks/log/+z.png +0 -0
- package/tutorial-arrows/assets/blocks/log/-x.png +0 -0
- package/tutorial-arrows/assets/blocks/log/-y.png +0 -0
- package/tutorial-arrows/assets/blocks/log/-z.png +0 -0
- package/tutorial-arrows/assets/blocks/mossy-coblestone.png +0 -0
- package/tutorial-arrows/assets/blocks/nuit-leaves.png +0 -0
- package/tutorial-arrows/assets/blocks/nuit.png +0 -0
- package/tutorial-arrows/assets/blocks/oak-leaves.png +0 -0
- package/tutorial-arrows/assets/blocks/oak-planks-dark-knotty.png +0 -0
- package/tutorial-arrows/assets/blocks/oak-planks-dark.png +0 -0
- package/tutorial-arrows/assets/blocks/oak-planks-leafy.png +0 -0
- package/tutorial-arrows/assets/blocks/oak-planks-leafyer.png +0 -0
- package/tutorial-arrows/assets/blocks/oak-planks-leafyerer.png +0 -0
- package/tutorial-arrows/assets/blocks/oak-planks-vertical.png +0 -0
- package/tutorial-arrows/assets/blocks/oak-planks.png +0 -0
- package/tutorial-arrows/assets/blocks/oak-slats-dark.png +0 -0
- package/tutorial-arrows/assets/blocks/oak-slats.png +0 -0
- package/tutorial-arrows/assets/blocks/sand-light.png +0 -0
- package/tutorial-arrows/assets/blocks/sand.png +0 -0
- package/tutorial-arrows/assets/blocks/sandstone-light-waterlogged.png +0 -0
- package/tutorial-arrows/assets/blocks/sandstone-light.png +0 -0
- package/tutorial-arrows/assets/blocks/sandstone.png +0 -0
- package/tutorial-arrows/assets/blocks/shadow-pebble.png +0 -0
- package/tutorial-arrows/assets/blocks/shadowrock.png +0 -0
- package/tutorial-arrows/assets/blocks/shale-cliff-bottom/+x.png +0 -0
- package/tutorial-arrows/assets/blocks/shale-cliff-bottom/+y.png +0 -0
- package/tutorial-arrows/assets/blocks/shale-cliff-bottom/+z.png +0 -0
- package/tutorial-arrows/assets/blocks/shale-cliff-bottom/-x.png +0 -0
- package/tutorial-arrows/assets/blocks/shale-cliff-bottom/-y.png +0 -0
- package/tutorial-arrows/assets/blocks/shale-cliff-bottom/-z.png +0 -0
- package/tutorial-arrows/assets/blocks/shale-cliff-top/+x.png +0 -0
- package/tutorial-arrows/assets/blocks/shale-cliff-top/+y.png +0 -0
- package/tutorial-arrows/assets/blocks/shale-cliff-top/+z.png +0 -0
- package/tutorial-arrows/assets/blocks/shale-cliff-top/-x.png +0 -0
- package/tutorial-arrows/assets/blocks/shale-cliff-top/-y.png +0 -0
- package/tutorial-arrows/assets/blocks/shale-cliff-top/-z.png +0 -0
- package/tutorial-arrows/assets/blocks/shale-rock.png +0 -0
- package/tutorial-arrows/assets/blocks/snow-icy.png +0 -0
- package/tutorial-arrows/assets/blocks/snow-pebbles.png +0 -0
- package/tutorial-arrows/assets/blocks/snow-rocks.png +0 -0
- package/tutorial-arrows/assets/blocks/snow-rough.png +0 -0
- package/tutorial-arrows/assets/blocks/snow.png +0 -0
- package/tutorial-arrows/assets/blocks/stone-bricks.png +0 -0
- package/tutorial-arrows/assets/blocks/stone.png +0 -0
- package/tutorial-arrows/assets/blocks/swirl-rune.png +0 -0
- package/tutorial-arrows/assets/blocks/void-sand.png +0 -0
- package/tutorial-arrows/assets/blocks/void_grass/+x.png +0 -0
- package/tutorial-arrows/assets/blocks/void_grass/+y.png +0 -0
- package/tutorial-arrows/assets/blocks/void_grass/+z.png +0 -0
- package/tutorial-arrows/assets/blocks/void_grass/-x.png +0 -0
- package/tutorial-arrows/assets/blocks/void_grass/-y.png +0 -0
- package/tutorial-arrows/assets/blocks/void_grass/-z.png +0 -0
- package/tutorial-arrows/assets/blocks/voidsoil.png +0 -0
- package/tutorial-arrows/assets/blocks/water-flow.png +0 -0
- package/tutorial-arrows/assets/blocks/water-still.png +0 -0
- package/tutorial-arrows/assets/map.json +2623 -0
- package/tutorial-arrows/assets/models/.optimized/bookshelf/bookshelf-named-nodes.glb +0 -0
- package/tutorial-arrows/assets/models/.optimized/bookshelf/bookshelf-no-animations.glb +0 -0
- package/tutorial-arrows/assets/models/.optimized/bookshelf/bookshelf.glb +0 -0
- package/tutorial-arrows/assets/models/.optimized/bookshelf/bookshelf.gltf.data.json +1 -0
- package/tutorial-arrows/assets/models/.optimized/bookshelf/bookshelf.gltf.md5 +1 -0
- package/tutorial-arrows/assets/models/.optimized/portal/portal-named-nodes.glb +0 -0
- package/tutorial-arrows/assets/models/.optimized/portal/portal-no-animations.glb +0 -0
- package/tutorial-arrows/assets/models/.optimized/portal/portal.glb +0 -0
- package/tutorial-arrows/assets/models/.optimized/portal/portal.gltf.data.json +1 -0
- package/tutorial-arrows/assets/models/.optimized/portal/portal.gltf.md5 +1 -0
- package/tutorial-arrows/assets/models/bookshelf.gltf +1 -0
- package/tutorial-arrows/assets/models/players/.optimized/player/player-named-nodes.glb +0 -0
- package/tutorial-arrows/assets/models/players/.optimized/player/player-no-animations.glb +0 -0
- package/tutorial-arrows/assets/models/players/.optimized/player/player.glb +0 -0
- package/tutorial-arrows/assets/models/players/.optimized/player/player.gltf.data.json +1 -0
- package/tutorial-arrows/assets/models/players/.optimized/player/player.gltf.md5 +1 -0
- package/tutorial-arrows/assets/models/players/player.gltf +1 -0
- package/tutorial-arrows/assets/models/portal.gltf +1 -0
- package/tutorial-arrows/assets/skyboxes/partly-cloudy/+x.png +0 -0
- package/tutorial-arrows/assets/skyboxes/partly-cloudy/+y.png +0 -0
- package/tutorial-arrows/assets/skyboxes/partly-cloudy/+z.png +0 -0
- package/tutorial-arrows/assets/skyboxes/partly-cloudy/-x.png +0 -0
- package/tutorial-arrows/assets/skyboxes/partly-cloudy/-y.png +0 -0
- package/tutorial-arrows/assets/skyboxes/partly-cloudy/-z.png +0 -0
- package/tutorial-arrows/assets/ui/index.html +17 -0
- package/tutorial-arrows/index.ts +53 -0
- package/tutorial-arrows/package.json +21 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"health":
|
|
1
|
+
{"health":58,"currentRegionId":"stalkhaven","currentRegionSpawnFacingAngle":0,"currentRegionSpawnPoint":{"x":1,"y":2,"z":40},"skillExperience":[["agility",29]],"backpack":{"items":[]},"hotbar":{"items":[{"position":0,"itemId":"toy_sword"}]},"questLog":{"quests":[]},"storage":{"items":[]},"wearables":{"items":[]},"__version":471}
|
|
@@ -1,31 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"health": 100,
|
|
3
|
-
"currentRegionId": "stalkhaven",
|
|
4
|
-
"currentRegionSpawnFacingAngle": 90,
|
|
5
|
-
"currentRegionSpawnPoint": {
|
|
6
|
-
"x": 32,
|
|
7
|
-
"y": 2,
|
|
8
|
-
"z": 1
|
|
9
|
-
},
|
|
10
|
-
"skillExperience": [],
|
|
11
|
-
"backpack": {
|
|
12
|
-
"items": []
|
|
13
|
-
},
|
|
14
|
-
"hotbar": {
|
|
15
|
-
"items": [
|
|
16
|
-
{
|
|
17
|
-
"position": 0,
|
|
18
|
-
"itemId": "toy_sword"
|
|
19
|
-
}
|
|
20
|
-
]
|
|
21
|
-
},
|
|
22
|
-
"questLog": {
|
|
23
|
-
"quests": []
|
|
24
|
-
},
|
|
25
|
-
"storage": {
|
|
26
|
-
"items": []
|
|
27
|
-
},
|
|
28
|
-
"wearables": {
|
|
29
|
-
"items": []
|
|
30
|
-
}
|
|
31
|
-
}
|
|
1
|
+
{"health":30,"currentRegionId":"stalkhaven","currentRegionSpawnFacingAngle":0,"currentRegionSpawnPoint":{"x":1,"y":2,"z":40},"skillExperience":[],"backpack":{"items":[]},"hotbar":{"items":[{"position":0,"itemId":"toy_sword"}]},"questLog":{"quests":[]},"storage":{"items":[]},"wearables":{"items":[]},"__version":21}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"health":63,"currentRegionId":"
|
|
1
|
+
{"health":63,"currentRegionId":"chitter-forest","currentRegionSpawnFacingAngle":120,"currentRegionSpawnPoint":{"x":145,"y":2,"z":-14},"skillExperience":[],"backpack":{"items":[]},"hotbar":{"items":[{"position":0,"itemId":"toy_sword"}]},"questLog":{"quests":[]},"storage":{"items":[]},"wearables":{"items":[]},"__version":71}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"__version":
|
|
1
|
+
{"__version":61,"health":61,"currentRegionId":"chitter-forest","currentRegionSpawnFacingAngle":120,"currentRegionSpawnPoint":{"x":145,"y":2,"z":-14},"skillExperience":[],"backpack":{"items":[]},"hotbar":{"items":[{"position":0,"itemId":"toy_sword"}]},"questLog":{"quests":[]},"storage":{"items":[]},"wearables":{"items":[]}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"__version":31,"health":85,"currentRegionId":"ratkin-nest","currentRegionSpawnFacingAngle":180,"currentRegionSpawnPoint":{"x":-31,"y":23,"z":-67},"skillExperience":[],"backpack":{"items":[]},"hotbar":{"items":[{"position":0,"itemId":"toy_sword"}]},"questLog":{"quests":[]},"storage":{"items":[]},"wearables":{"items":[]}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"__version":11,"health":100,"currentRegionId":"stalkhaven","currentRegionSpawnFacingAngle":90,"currentRegionSpawnPoint":{"x":32,"y":2,"z":1},"skillExperience":[],"backpack":{"items":[]},"hotbar":{"items":[{"position":0,"itemId":"toy_sword"}]},"questLog":{"quests":[]},"storage":{"items":[]},"wearables":{"items":[]}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"__version":21,"health":100,"currentRegionId":"stalkhaven-port","currentRegionSpawnFacingAngle":180,"currentRegionSpawnPoint":{"x":-6,"y":8,"z":-28},"skillExperience":[],"backpack":{"items":[]},"hotbar":{"items":[{"position":0,"itemId":"toy_sword"}]},"questLog":{"quests":[]},"storage":{"items":[]},"wearables":{"items":[]}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"__version":11,"health":100,"currentRegionId":"stalkhaven","currentRegionSpawnFacingAngle":90,"currentRegionSpawnPoint":{"x":32,"y":2,"z":1},"skillExperience":[],"backpack":{"items":[]},"hotbar":{"items":[{"position":0,"itemId":"toy_sword"}]},"questLog":{"quests":[]},"storage":{"items":[]},"wearables":{"items":[]}}
|
|
@@ -1,31 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"health": 52,
|
|
3
|
-
"currentRegionId": "hearthwilds",
|
|
4
|
-
"currentRegionSpawnFacingAngle": 90,
|
|
5
|
-
"currentRegionSpawnPoint": {
|
|
6
|
-
"x": 249,
|
|
7
|
-
"y": 22,
|
|
8
|
-
"z": -89
|
|
9
|
-
},
|
|
10
|
-
"skillExperience": [],
|
|
11
|
-
"backpack": {
|
|
12
|
-
"items": []
|
|
13
|
-
},
|
|
14
|
-
"hotbar": {
|
|
15
|
-
"items": [
|
|
16
|
-
{
|
|
17
|
-
"position": 0,
|
|
18
|
-
"itemId": "toy_sword"
|
|
19
|
-
}
|
|
20
|
-
]
|
|
21
|
-
},
|
|
22
|
-
"questLog": {
|
|
23
|
-
"quests": []
|
|
24
|
-
},
|
|
25
|
-
"storage": {
|
|
26
|
-
"items": []
|
|
27
|
-
},
|
|
28
|
-
"wearables": {
|
|
29
|
-
"items": []
|
|
30
|
-
}
|
|
31
|
-
}
|
|
1
|
+
{"health":52,"currentRegionId":"chitter-forest","currentRegionSpawnFacingAngle":120,"currentRegionSpawnPoint":{"x":145,"y":2,"z":-14},"skillExperience":[],"backpack":{"items":[]},"hotbar":{"items":[{"position":0,"itemId":"toy_sword"}]},"questLog":{"quests":[]},"storage":{"items":[]},"wearables":{"items":[]},"__version":11}
|
|
@@ -1,31 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"health": 100,
|
|
3
|
-
"currentRegionId": "stalkhaven",
|
|
4
|
-
"currentRegionSpawnFacingAngle": 90,
|
|
5
|
-
"currentRegionSpawnPoint": {
|
|
6
|
-
"x": 32,
|
|
7
|
-
"y": 2,
|
|
8
|
-
"z": 1
|
|
9
|
-
},
|
|
10
|
-
"skillExperience": [],
|
|
11
|
-
"backpack": {
|
|
12
|
-
"items": []
|
|
13
|
-
},
|
|
14
|
-
"hotbar": {
|
|
15
|
-
"items": [
|
|
16
|
-
{
|
|
17
|
-
"position": 0,
|
|
18
|
-
"itemId": "toy_sword"
|
|
19
|
-
}
|
|
20
|
-
]
|
|
21
|
-
},
|
|
22
|
-
"questLog": {
|
|
23
|
-
"quests": []
|
|
24
|
-
},
|
|
25
|
-
"storage": {
|
|
26
|
-
"items": []
|
|
27
|
-
},
|
|
28
|
-
"wearables": {
|
|
29
|
-
"items": []
|
|
30
|
-
}
|
|
31
|
-
}
|
|
1
|
+
{"health":100,"currentRegionId":"stalkhaven-port","currentRegionSpawnFacingAngle":180,"currentRegionSpawnPoint":{"x":-6,"y":8,"z":-28},"skillExperience":[],"backpack":{"items":[]},"hotbar":{"items":[{"position":0,"itemId":"toy_sword"}]},"questLog":{"quests":[]},"storage":{"items":[]},"wearables":{"items":[]},"__version":11}
|
|
@@ -329,7 +329,11 @@ export default class GamePlayer {
|
|
|
329
329
|
this.setCurrentRegion(region);
|
|
330
330
|
this.setCurrentRegionSpawnFacingAngle(facingAngle);
|
|
331
331
|
this.setCurrentRegionSpawnPoint(spawnPoint);
|
|
332
|
-
|
|
332
|
+
// IMPORTANT:
|
|
333
|
+
// World switching triggers PLAYER.LEFT_WORLD and our GameRegion handler currently drops the in-memory
|
|
334
|
+
// GamePlayer instance. The destination world then reconstructs GamePlayer from persisted data.
|
|
335
|
+
// If we debounce saves here, the persisted spawn point can be stale, causing "random" teleports.
|
|
336
|
+
this.flushSave();
|
|
333
337
|
this.player.joinWorld(region.world);
|
|
334
338
|
}
|
|
335
339
|
|
|
@@ -437,6 +441,17 @@ export default class GamePlayer {
|
|
|
437
441
|
}, 500);
|
|
438
442
|
}
|
|
439
443
|
|
|
444
|
+
/**
|
|
445
|
+
* Immediately persists player state, bypassing the debounce used by {@link save}.
|
|
446
|
+
*
|
|
447
|
+
* This is critical before operations that might recreate the player state
|
|
448
|
+
* (e.g. switching worlds/regions) to prevent stale region spawn data.
|
|
449
|
+
*/
|
|
450
|
+
public flushSave(): void {
|
|
451
|
+
clearTimeout(this._saveTimeout);
|
|
452
|
+
this.player.setPersistedData(this._serialize());
|
|
453
|
+
}
|
|
454
|
+
|
|
440
455
|
public showNotification(message: string, notificationType: NotificationType): void {
|
|
441
456
|
this.player.ui.sendData({
|
|
442
457
|
type: 'showNotification',
|
package/package.json
CHANGED
|
Binary file
|
|
Binary file
|