hytopia 0.1.69 → 0.1.70
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.light._constructor_.md +49 -0
- package/docs/server.light.angle.md +13 -0
- package/docs/server.light.attachedtoentity.md +13 -0
- package/docs/server.light.color.md +13 -0
- package/docs/server.light.despawn.md +17 -0
- package/docs/server.light.distance.md +13 -0
- package/docs/server.light.id.md +13 -0
- package/docs/server.light.intensity.md +13 -0
- package/docs/server.light.isspawned.md +13 -0
- package/docs/server.light.md +573 -0
- package/docs/server.light.offset.md +13 -0
- package/docs/server.light.penumbra.md +13 -0
- package/docs/server.light.position.md +13 -0
- package/docs/server.light.setangle.md +53 -0
- package/docs/server.light.setattachedtoentity.md +53 -0
- package/docs/server.light.setcolor.md +53 -0
- package/docs/server.light.setdistance.md +53 -0
- package/docs/server.light.setintensity.md +53 -0
- package/docs/server.light.setoffset.md +53 -0
- package/docs/server.light.setpenumbra.md +53 -0
- package/docs/server.light.setposition.md +53 -0
- package/docs/server.light.settrackedentity.md +53 -0
- package/docs/server.light.settrackedposition.md +53 -0
- package/docs/server.light.spawn.md +53 -0
- package/docs/server.light.trackedentity.md +13 -0
- package/docs/server.light.trackedposition.md +13 -0
- package/docs/server.light.type.md +13 -0
- package/docs/server.light.world.md +13 -0
- package/docs/server.lighteventpayload.despawn.light.md +11 -0
- package/docs/server.lighteventpayload.despawn.md +53 -0
- package/docs/server.lighteventpayload.md +136 -0
- package/docs/server.lighteventpayload.setangle.angle.md +11 -0
- package/docs/server.lighteventpayload.setangle.light.md +11 -0
- package/docs/server.lighteventpayload.setangle.md +70 -0
- package/docs/server.lighteventpayload.setattachedtoentity.entity.md +11 -0
- package/docs/server.lighteventpayload.setattachedtoentity.light.md +11 -0
- package/docs/server.lighteventpayload.setattachedtoentity.md +70 -0
- package/docs/server.lighteventpayload.setcolor.color.md +11 -0
- package/docs/server.lighteventpayload.setcolor.light.md +11 -0
- package/docs/server.lighteventpayload.setcolor.md +70 -0
- package/docs/server.lighteventpayload.setdistance.distance.md +11 -0
- package/docs/server.lighteventpayload.setdistance.light.md +11 -0
- package/docs/server.lighteventpayload.setdistance.md +70 -0
- package/docs/server.lighteventpayload.setintensity.intensity.md +11 -0
- package/docs/server.lighteventpayload.setintensity.light.md +11 -0
- package/docs/server.lighteventpayload.setintensity.md +70 -0
- package/docs/server.lighteventpayload.setoffset.light.md +11 -0
- package/docs/server.lighteventpayload.setoffset.md +70 -0
- package/docs/server.lighteventpayload.setoffset.offset.md +11 -0
- package/docs/server.lighteventpayload.setpenumbra.light.md +11 -0
- package/docs/server.lighteventpayload.setpenumbra.md +70 -0
- package/docs/server.lighteventpayload.setpenumbra.penumbra.md +11 -0
- package/docs/server.lighteventpayload.setposition.light.md +11 -0
- package/docs/server.lighteventpayload.setposition.md +70 -0
- package/docs/server.lighteventpayload.setposition.position.md +11 -0
- package/docs/server.lighteventpayload.settrackedentity.entity.md +11 -0
- package/docs/server.lighteventpayload.settrackedentity.light.md +11 -0
- package/docs/server.lighteventpayload.settrackedentity.md +70 -0
- package/docs/server.lighteventpayload.settrackedposition.light.md +11 -0
- package/docs/server.lighteventpayload.settrackedposition.md +70 -0
- package/docs/server.lighteventpayload.settrackedposition.position.md +11 -0
- package/docs/server.lighteventpayload.spawn.light.md +11 -0
- package/docs/server.lighteventpayload.spawn.md +53 -0
- package/docs/server.lighteventtype.md +215 -0
- package/docs/server.lightmanager.getallentityattachedlights.md +55 -0
- package/docs/server.lightmanager.getalllights.md +19 -0
- package/docs/server.lightmanager.md +113 -0
- package/docs/server.lightmanager.world.md +13 -0
- package/docs/server.lightoptions.angle.md +13 -0
- package/docs/server.lightoptions.attachedtoentity.md +13 -0
- package/docs/server.lightoptions.color.md +13 -0
- package/docs/server.lightoptions.distance.md +13 -0
- package/docs/server.lightoptions.intensity.md +13 -0
- package/docs/server.lightoptions.md +247 -0
- package/docs/server.lightoptions.offset.md +13 -0
- package/docs/server.lightoptions.penumbra.md +13 -0
- package/docs/server.lightoptions.position.md +13 -0
- package/docs/server.lightoptions.trackedentity.md +13 -0
- package/docs/server.lightoptions.trackedposition.md +13 -0
- package/docs/server.lightoptions.type.md +13 -0
- package/docs/server.lighttype.md +61 -0
- package/docs/server.md +66 -0
- package/docs/server.sceneui.attachedtoentity.md +2 -0
- package/docs/server.sceneui.id.md +2 -0
- package/docs/server.sceneui.isloaded.md +2 -0
- package/docs/server.sceneui.md +18 -0
- package/docs/server.sceneui.offset.md +2 -0
- package/docs/server.sceneui.position.md +2 -0
- package/docs/server.sceneui.state.md +2 -0
- package/docs/server.sceneui.templateid.md +2 -0
- package/docs/server.sceneui.viewdistance.md +2 -0
- package/docs/server.sceneui.world.md +2 -0
- package/docs/server.world.lightmanager.md +13 -0
- package/docs/server.world.md +26 -5
- package/docs/server.world.setambientlightcolor.md +1 -1
- package/docs/server.world.setambientlightintensity.md +1 -1
- package/docs/server.world.setdirectionallightcolor.md +1 -1
- package/docs/server.world.setdirectionallightintensity.md +1 -1
- package/docs/server.world.setdirectionallightposition.md +1 -1
- package/docs/server.worldoptions.ambientlightcolor.md +1 -1
- package/docs/server.worldoptions.ambientlightintensity.md +1 -1
- package/docs/server.worldoptions.directionallightcolor.md +1 -1
- package/docs/server.worldoptions.directionallightintensity.md +1 -1
- package/docs/server.worldoptions.directionallightposition.md +1 -1
- package/docs/server.worldoptions.md +5 -5
- package/examples/lighting/README.md +3 -0
- package/examples/lighting/assets/map.json +13153 -0
- package/examples/lighting/index.ts +120 -0
- package/examples/lighting/package.json +16 -0
- package/package.json +1 -1
- package/server.api.json +2778 -19
- package/server.d.ts +299 -11
- package/server.js +87 -87
@@ -0,0 +1,120 @@
|
|
1
|
+
import {
|
2
|
+
Audio,
|
3
|
+
startServer,
|
4
|
+
Light,
|
5
|
+
LightType,
|
6
|
+
PlayerEntity,
|
7
|
+
} from 'hytopia';
|
8
|
+
|
9
|
+
import worldMap from './assets/map.json';
|
10
|
+
|
11
|
+
startServer(world => {
|
12
|
+
world.loadMap(worldMap);
|
13
|
+
|
14
|
+
world.setAmbientLightIntensity(0.2); // Reduce ambient light intensity
|
15
|
+
world.setAmbientLightColor({ r: 218, g: 112, b: 214 }); // slightly purple
|
16
|
+
world.setDirectionalLightIntensity(0); // turn diretional light (sun light) off
|
17
|
+
|
18
|
+
// Create purple point lights
|
19
|
+
const purpleLightPositions = [
|
20
|
+
{ x: 12, y: 5, z: -9 },
|
21
|
+
{ x: 10, y: 3, z: -10 },
|
22
|
+
{ x: 10, y: 3, z: -8 },
|
23
|
+
{ x: 12, y: 3, z: -8 },
|
24
|
+
{ x: 12, y: 3, z: -10 },
|
25
|
+
{ x: 11, y: 2, z: -7 },
|
26
|
+
{ x: 9, y: 2, z: -9 },
|
27
|
+
{ x: -10, y: 2, z: 20 },
|
28
|
+
{ x: -18, y: 3, z: -15 },
|
29
|
+
];
|
30
|
+
|
31
|
+
purpleLightPositions.forEach(position => {
|
32
|
+
(new Light({
|
33
|
+
color: { r: 138, g: 43, b: 226 },
|
34
|
+
intensity: 10,
|
35
|
+
position,
|
36
|
+
})).spawn(world);
|
37
|
+
});
|
38
|
+
|
39
|
+
// large ceiling spotlight
|
40
|
+
(new Light({
|
41
|
+
type: LightType.SPOTLIGHT,
|
42
|
+
angle: Math.PI / 8,
|
43
|
+
color: { r: 255, g: 255, b: 255 },
|
44
|
+
intensity: 40,
|
45
|
+
penumbra: 0.5,
|
46
|
+
position: { x: 0, y: 15, z: 0 },
|
47
|
+
trackedPosition: { x: 0, y: 0, z: 0 },
|
48
|
+
})).spawn(world);
|
49
|
+
|
50
|
+
|
51
|
+
// wall spotlight 1
|
52
|
+
(new Light({
|
53
|
+
type: LightType.SPOTLIGHT,
|
54
|
+
angle: Math.PI / 8,
|
55
|
+
color: { r: 255, g: 255, b: 255 },
|
56
|
+
intensity: 40,
|
57
|
+
penumbra: 0.5,
|
58
|
+
position: { x: 13, y: 7, z: -20 },
|
59
|
+
trackedPosition: { x: 13, y: 0, z: -15 },
|
60
|
+
})).spawn(world);
|
61
|
+
|
62
|
+
// wall spotlight 2
|
63
|
+
(new Light({
|
64
|
+
type: LightType.SPOTLIGHT,
|
65
|
+
angle: Math.PI / 8,
|
66
|
+
color: { r: 255, g: 255, b: 255 },
|
67
|
+
intensity: 20,
|
68
|
+
penumbra: 0.5,
|
69
|
+
position: { x: 27, y: 3, z: -13 },
|
70
|
+
trackedPosition: { x: 19, y: 0, z: -13 },
|
71
|
+
})).spawn(world);
|
72
|
+
|
73
|
+
// wall spotlight 3
|
74
|
+
(new Light({
|
75
|
+
type: LightType.SPOTLIGHT,
|
76
|
+
angle: Math.PI / 8,
|
77
|
+
color: { r: 255, g: 255, b: 255 },
|
78
|
+
intensity: 20,
|
79
|
+
penumbra: 0.5,
|
80
|
+
position: { x: -7, y: 4, z: -20 },
|
81
|
+
trackedPosition: { x: -7, y: 0, z: -11 },
|
82
|
+
})).spawn(world);
|
83
|
+
|
84
|
+
|
85
|
+
// Spawn a player entity when a player joins the game.
|
86
|
+
world.onPlayerJoin = player => {
|
87
|
+
const playerEntity = new PlayerEntity({
|
88
|
+
player,
|
89
|
+
name: 'Player',
|
90
|
+
modelUri: 'models/player.gltf',
|
91
|
+
modelLoopedAnimations: [ 'idle' ],
|
92
|
+
modelScale: 0.5,
|
93
|
+
});
|
94
|
+
|
95
|
+
playerEntity.spawn(world, { x: 0, y: 10, z: 0 });
|
96
|
+
|
97
|
+
// Attach a subtle spotlight that follows the player
|
98
|
+
(new Light({
|
99
|
+
type: LightType.SPOTLIGHT,
|
100
|
+
attachedToEntity: playerEntity,
|
101
|
+
angle: Math.PI / 8,
|
102
|
+
color: { r: 255, g: 200, b: 200 },
|
103
|
+
intensity: 8,
|
104
|
+
offset: { x: 0, y: 7, z: 0 },
|
105
|
+
penumbra: 1,
|
106
|
+
trackedEntity: playerEntity,
|
107
|
+
})).spawn(world);
|
108
|
+
};
|
109
|
+
|
110
|
+
// Despawn all player entities when a player leaves the game.
|
111
|
+
world.onPlayerLeave = player => {
|
112
|
+
world.entityManager.getAllPlayerEntities(player).forEach(entity => entity.despawn());
|
113
|
+
};
|
114
|
+
|
115
|
+
// Play some music on game start
|
116
|
+
(new Audio({
|
117
|
+
uri: 'audio/music/cave.mp3',
|
118
|
+
loop: true,
|
119
|
+
})).play(world);
|
120
|
+
});
|
@@ -0,0 +1,16 @@
|
|
1
|
+
{
|
2
|
+
"name": "lighting",
|
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
|
+
}
|