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.
Files changed (113) hide show
  1. package/docs/server.light._constructor_.md +49 -0
  2. package/docs/server.light.angle.md +13 -0
  3. package/docs/server.light.attachedtoentity.md +13 -0
  4. package/docs/server.light.color.md +13 -0
  5. package/docs/server.light.despawn.md +17 -0
  6. package/docs/server.light.distance.md +13 -0
  7. package/docs/server.light.id.md +13 -0
  8. package/docs/server.light.intensity.md +13 -0
  9. package/docs/server.light.isspawned.md +13 -0
  10. package/docs/server.light.md +573 -0
  11. package/docs/server.light.offset.md +13 -0
  12. package/docs/server.light.penumbra.md +13 -0
  13. package/docs/server.light.position.md +13 -0
  14. package/docs/server.light.setangle.md +53 -0
  15. package/docs/server.light.setattachedtoentity.md +53 -0
  16. package/docs/server.light.setcolor.md +53 -0
  17. package/docs/server.light.setdistance.md +53 -0
  18. package/docs/server.light.setintensity.md +53 -0
  19. package/docs/server.light.setoffset.md +53 -0
  20. package/docs/server.light.setpenumbra.md +53 -0
  21. package/docs/server.light.setposition.md +53 -0
  22. package/docs/server.light.settrackedentity.md +53 -0
  23. package/docs/server.light.settrackedposition.md +53 -0
  24. package/docs/server.light.spawn.md +53 -0
  25. package/docs/server.light.trackedentity.md +13 -0
  26. package/docs/server.light.trackedposition.md +13 -0
  27. package/docs/server.light.type.md +13 -0
  28. package/docs/server.light.world.md +13 -0
  29. package/docs/server.lighteventpayload.despawn.light.md +11 -0
  30. package/docs/server.lighteventpayload.despawn.md +53 -0
  31. package/docs/server.lighteventpayload.md +136 -0
  32. package/docs/server.lighteventpayload.setangle.angle.md +11 -0
  33. package/docs/server.lighteventpayload.setangle.light.md +11 -0
  34. package/docs/server.lighteventpayload.setangle.md +70 -0
  35. package/docs/server.lighteventpayload.setattachedtoentity.entity.md +11 -0
  36. package/docs/server.lighteventpayload.setattachedtoentity.light.md +11 -0
  37. package/docs/server.lighteventpayload.setattachedtoentity.md +70 -0
  38. package/docs/server.lighteventpayload.setcolor.color.md +11 -0
  39. package/docs/server.lighteventpayload.setcolor.light.md +11 -0
  40. package/docs/server.lighteventpayload.setcolor.md +70 -0
  41. package/docs/server.lighteventpayload.setdistance.distance.md +11 -0
  42. package/docs/server.lighteventpayload.setdistance.light.md +11 -0
  43. package/docs/server.lighteventpayload.setdistance.md +70 -0
  44. package/docs/server.lighteventpayload.setintensity.intensity.md +11 -0
  45. package/docs/server.lighteventpayload.setintensity.light.md +11 -0
  46. package/docs/server.lighteventpayload.setintensity.md +70 -0
  47. package/docs/server.lighteventpayload.setoffset.light.md +11 -0
  48. package/docs/server.lighteventpayload.setoffset.md +70 -0
  49. package/docs/server.lighteventpayload.setoffset.offset.md +11 -0
  50. package/docs/server.lighteventpayload.setpenumbra.light.md +11 -0
  51. package/docs/server.lighteventpayload.setpenumbra.md +70 -0
  52. package/docs/server.lighteventpayload.setpenumbra.penumbra.md +11 -0
  53. package/docs/server.lighteventpayload.setposition.light.md +11 -0
  54. package/docs/server.lighteventpayload.setposition.md +70 -0
  55. package/docs/server.lighteventpayload.setposition.position.md +11 -0
  56. package/docs/server.lighteventpayload.settrackedentity.entity.md +11 -0
  57. package/docs/server.lighteventpayload.settrackedentity.light.md +11 -0
  58. package/docs/server.lighteventpayload.settrackedentity.md +70 -0
  59. package/docs/server.lighteventpayload.settrackedposition.light.md +11 -0
  60. package/docs/server.lighteventpayload.settrackedposition.md +70 -0
  61. package/docs/server.lighteventpayload.settrackedposition.position.md +11 -0
  62. package/docs/server.lighteventpayload.spawn.light.md +11 -0
  63. package/docs/server.lighteventpayload.spawn.md +53 -0
  64. package/docs/server.lighteventtype.md +215 -0
  65. package/docs/server.lightmanager.getallentityattachedlights.md +55 -0
  66. package/docs/server.lightmanager.getalllights.md +19 -0
  67. package/docs/server.lightmanager.md +113 -0
  68. package/docs/server.lightmanager.world.md +13 -0
  69. package/docs/server.lightoptions.angle.md +13 -0
  70. package/docs/server.lightoptions.attachedtoentity.md +13 -0
  71. package/docs/server.lightoptions.color.md +13 -0
  72. package/docs/server.lightoptions.distance.md +13 -0
  73. package/docs/server.lightoptions.intensity.md +13 -0
  74. package/docs/server.lightoptions.md +247 -0
  75. package/docs/server.lightoptions.offset.md +13 -0
  76. package/docs/server.lightoptions.penumbra.md +13 -0
  77. package/docs/server.lightoptions.position.md +13 -0
  78. package/docs/server.lightoptions.trackedentity.md +13 -0
  79. package/docs/server.lightoptions.trackedposition.md +13 -0
  80. package/docs/server.lightoptions.type.md +13 -0
  81. package/docs/server.lighttype.md +61 -0
  82. package/docs/server.md +66 -0
  83. package/docs/server.sceneui.attachedtoentity.md +2 -0
  84. package/docs/server.sceneui.id.md +2 -0
  85. package/docs/server.sceneui.isloaded.md +2 -0
  86. package/docs/server.sceneui.md +18 -0
  87. package/docs/server.sceneui.offset.md +2 -0
  88. package/docs/server.sceneui.position.md +2 -0
  89. package/docs/server.sceneui.state.md +2 -0
  90. package/docs/server.sceneui.templateid.md +2 -0
  91. package/docs/server.sceneui.viewdistance.md +2 -0
  92. package/docs/server.sceneui.world.md +2 -0
  93. package/docs/server.world.lightmanager.md +13 -0
  94. package/docs/server.world.md +26 -5
  95. package/docs/server.world.setambientlightcolor.md +1 -1
  96. package/docs/server.world.setambientlightintensity.md +1 -1
  97. package/docs/server.world.setdirectionallightcolor.md +1 -1
  98. package/docs/server.world.setdirectionallightintensity.md +1 -1
  99. package/docs/server.world.setdirectionallightposition.md +1 -1
  100. package/docs/server.worldoptions.ambientlightcolor.md +1 -1
  101. package/docs/server.worldoptions.ambientlightintensity.md +1 -1
  102. package/docs/server.worldoptions.directionallightcolor.md +1 -1
  103. package/docs/server.worldoptions.directionallightintensity.md +1 -1
  104. package/docs/server.worldoptions.directionallightposition.md +1 -1
  105. package/docs/server.worldoptions.md +5 -5
  106. package/examples/lighting/README.md +3 -0
  107. package/examples/lighting/assets/map.json +13153 -0
  108. package/examples/lighting/index.ts +120 -0
  109. package/examples/lighting/package.json +16 -0
  110. package/package.json +1 -1
  111. package/server.api.json +2778 -19
  112. package/server.d.ts +299 -11
  113. 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
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hytopia",
3
- "version": "0.1.69",
3
+ "version": "0.1.70",
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": {