@woosh/meep-engine 3.2.0 → 3.3.0

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 (50) hide show
  1. package/package.json +1 -1
  2. package/src/avif/encoder_worker.js +5 -18
  3. package/src/core/color/PQ/PQ_constants.d.ts +43 -0
  4. package/src/core/color/PQ/PQ_constants.d.ts.map +1 -0
  5. package/src/core/color/PQ/PQ_constants.js +50 -0
  6. package/src/core/color/PQ/PQ_to_linear.d.ts +24 -0
  7. package/src/core/color/PQ/PQ_to_linear.d.ts.map +1 -0
  8. package/src/core/color/PQ/PQ_to_linear.js +35 -0
  9. package/src/core/color/PQ/linear_to_PQ.d.ts +27 -0
  10. package/src/core/color/PQ/linear_to_PQ.d.ts.map +1 -0
  11. package/src/core/color/PQ/linear_to_PQ.js +32 -0
  12. package/src/core/geom/3d/topology/struct/binary/query/bt_edge_other_face.d.ts +32 -0
  13. package/src/core/geom/3d/topology/struct/binary/query/bt_edge_other_face.d.ts.map +1 -0
  14. package/src/core/geom/3d/topology/struct/binary/query/bt_edge_other_face.js +59 -0
  15. package/src/core/geom/3d/topology/struct/binary/query/bt_face_third_vertex.d.ts +26 -0
  16. package/src/core/geom/3d/topology/struct/binary/query/bt_face_third_vertex.d.ts.map +1 -0
  17. package/src/core/geom/3d/topology/struct/binary/query/bt_face_third_vertex.js +55 -0
  18. package/src/engine/ecs/storage/populateEngineSerializationRegistry.d.ts.map +1 -1
  19. package/src/engine/ecs/storage/populateEngineSerializationRegistry.js +269 -265
  20. package/src/engine/graphics3/VolumetricLightMap.d.ts +90 -0
  21. package/src/engine/graphics3/VolumetricLightMap.d.ts.map +1 -0
  22. package/src/engine/graphics3/VolumetricLightMap.js +160 -0
  23. package/src/engine/graphics3/VolumetricLightMapSerializationAdapter.d.ts +32 -0
  24. package/src/engine/graphics3/VolumetricLightMapSerializationAdapter.d.ts.map +1 -0
  25. package/src/engine/graphics3/VolumetricLightMapSerializationAdapter.js +67 -0
  26. package/src/engine/graphics3/VolumetricLightMapSystem3.d.ts +98 -0
  27. package/src/engine/graphics3/VolumetricLightMapSystem3.d.ts.map +1 -0
  28. package/src/engine/graphics3/VolumetricLightMapSystem3.js +261 -0
  29. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
  30. package/src/shade/renderer/global_illumination/brick4/cpu/brick4_empty_gpu_structure.d.ts +23 -0
  31. package/src/shade/renderer/global_illumination/brick4/cpu/brick4_empty_gpu_structure.d.ts.map +1 -0
  32. package/src/shade/renderer/global_illumination/brick4/cpu/brick4_empty_gpu_structure.js +34 -0
  33. package/src/shade/renderer/scene/optimization/geometry/internal/anchor_grow_topological.d.ts.map +1 -1
  34. package/src/shade/renderer/scene/optimization/geometry/internal/anchor_grow_topological.js +12 -3
  35. package/src/shade/renderer/scene/optimization/geometry/internal/match_validate_topology.js +3 -3
  36. package/src/shade/renderer/scene/optimization/geometry/internal/seed_correspondence_from_window.js +3 -3
  37. package/src/shade/renderer/scene/serialization/deserialize_scene.d.ts.map +1 -1
  38. package/src/shade/renderer/scene/serialization/deserialize_scene.js +0 -2
  39. package/src/shade/renderer/scene/optimization/geometry/internal/bt_face_loop_helpers.d.ts +0 -32
  40. package/src/shade/renderer/scene/optimization/geometry/internal/bt_face_loop_helpers.d.ts.map +0 -1
  41. package/src/shade/renderer/scene/optimization/geometry/internal/bt_face_loop_helpers.js +0 -77
  42. package/src/shade/renderer/scene/optimization/geometry/internal/bt_find_edge_between.d.ts +0 -12
  43. package/src/shade/renderer/scene/optimization/geometry/internal/bt_find_edge_between.d.ts.map +0 -1
  44. package/src/shade/renderer/scene/optimization/geometry/internal/bt_find_edge_between.js +0 -35
  45. package/src/shade/renderer/scene/serialization/linear_to_pq.d.ts +0 -2
  46. package/src/shade/renderer/scene/serialization/linear_to_pq.d.ts.map +0 -1
  47. package/src/shade/renderer/scene/serialization/linear_to_pq.js +0 -14
  48. package/src/shade/renderer/scene/serialization/pq_to_linear.d.ts +0 -9
  49. package/src/shade/renderer/scene/serialization/pq_to_linear.d.ts.map +0 -1
  50. package/src/shade/renderer/scene/serialization/pq_to_linear.js +0 -30
@@ -1,265 +1,269 @@
1
- import { AnimationSerializationAdapter } from "../animation/AnimationSerializationAdapter.js";
2
- import { PropertySetSerializationAdapter } from "../components/PropertySetSerializationAdapter.js";
3
- import {
4
- SerializationMetadataSerializationAdapter
5
- } from "../components/SerializationMetadataSerializationAdapter.js";
6
- import { Tag } from "../components/Tag.js";
7
- import { TagSerializationAdapter } from "../components/TagSerializationAdapter.js";
8
- import { TagSerializationUpgrader_0_1 } from "../components/TagSerializationUpgrader_0_1.js";
9
- import { FogOfWar } from "../fow/FogOfWar.js";
10
- import {
11
- FogOfWarRevealerSerializationAdapter
12
- } from "../fow/serialization/FogOfWarRevealerSerializationAdapter.js";
13
- import { FogOfWarSerializationAdapter } from "../fow/serialization/FogOfWarSerializationAdapter.js";
14
- import { FogOfWarSerializationUpdater_0_1 } from "../fow/serialization/FogOfWarSerializationUpdater_0_1.js";
15
- import { GUIElementSerializationAdapter } from "../gui/GUIElementSerializationAdapter.js";
16
- import { HeadsUpDisplaySerializationAdapter } from "../gui/hud/HeadsUpDisplaySerializationAdapter.js";
17
- import {
18
- ViewportPositionSerializationAdapter
19
- } from "../gui/position/ViewportPositionSerializationAdapter.js";
20
- import { InverseKinematicsSerializationAdapter } from "../ik/InverseKinematicsSerializationAdapter.js";
21
- import { NameSerializationAdapter } from "../name/NameSerializationAdapter.js";
22
- import { TeamSerializationAdapter } from "../team/TeamSerializationAdapter.js";
23
- import ClingToTerrain from "../terrain/ecs/cling/ClingToTerrain.js";
24
- import {
25
- ClingToTerrainSerializationAdapter
26
- } from "../terrain/ecs/cling/ClingToTerrainSerializationAdapter.js";
27
- import {
28
- ClingToTerrainSerializationUpgrader_0_1
29
- } from "../terrain/ecs/cling/ClingToTerrainSerializationUpgrader_0_1.js";
30
- import Terrain from "../terrain/ecs/Terrain.js";
31
- import { TerrainSerializationAdapter } from "../terrain/serialization/TerrainSerializationAdapter.js";
32
- import {
33
- TerrainSerializationUpgrader_0_1
34
- } from "../terrain/serialization/TerrainSerializationUpgrader_0_1.js";
35
- import {
36
- TerrainSerializationUpgrader_1_2
37
- } from "../terrain/serialization/TerrainSerializationUpgrader_1_2.js";
38
- import { TooltipComponentSerializationAdapter } from "../tooltip/TooltipComponentSerializationAdapter.js";
39
- import { PickableSerializationAdapter } from "../../graphics3/Pickable.js";
40
- import { Transform } from "../transform/Transform.js";
41
- import { TransformSerializationAdapter } from "../transform/TransformSerializationAdapter.js";
42
- import { TransformSerializationUpgrader_0_1 } from "../transform/TransformSerializationUpgrader_0_1.js";
43
- import {
44
- AnimationControllerSerializationAdapter
45
- } from "../../graphics/ecs/animation/AnimationControllerSerializationAdapter.js";
46
- import { Camera } from "../../graphics/ecs/camera/Camera.js";
47
- import {
48
- CameraSerializationAdapter
49
- } from "../../graphics/ecs/camera/serialization/CameraSerializationAdapter.js";
50
- import {
51
- CameraSerializationUpgrader_0_1
52
- } from "../../graphics/ecs/camera/serialization/CameraSerializationUpgrader_0_1.js";
53
- import TopDownCameraController from "../../graphics/ecs/camera/topdown/TopDownCameraController.js";
54
- import {
55
- TopDownCameraControllerSerializationAdapter
56
- } from "../../graphics/ecs/camera/topdown/TopDownCameraControllerSerializationAdapter.js";
57
- import {
58
- TopDownCameraControllerSerializationUpgrader_0_1
59
- } from "../../graphics/ecs/camera/topdown/TopDownCameraControllerSerializationUpgrader_0_1.js";
60
- import {
61
- TopDownCameraLanderSerializationAdapter
62
- } from "../../graphics/ecs/camera/topdown/TopDownCameraLander.js";
63
- import { Decal } from "../../graphics/ecs/decal/v2/Decal.js";
64
- import { DecalSerializationAdapter } from "../../graphics/ecs/decal/v2/DecalSerializationAdapter.js";
65
- import {
66
- DecalSerializationUpgrader_0_1
67
- } from "../../graphics/ecs/decal/v2/DecalSerializationUpgrader_0_1.js";
68
- import Highlight from "../../graphics/ecs/highlight/Highlight.js";
69
- import { HighlightSerializationAdapter } from "../../graphics/ecs/highlight/HighlightSerializationAdapter.js";
70
- import {
71
- HighlightSerializationUpgrader_0_1
72
- } from "../../graphics/ecs/highlight/HighlightSerializationUpgrader_0_1.js";
73
- import { LightSerializationAdapter } from "../../graphics/ecs/light/LightSerializationAdapter.js";
74
- import {
75
- SGMeshSerializationAdapter
76
- } from "../../graphics/ecs/mesh-v2/aggregate/serialization/SGMeshSerializationAdapter.js";
77
- import Water from "../../graphics/ecs/water/Water.js";
78
- import { WaterSerializationAdapter } from "../../graphics/ecs/water/WaterSerializationAdapter.js";
79
- import { WaterSerializationUpgrader_0_1 } from "../../graphics/ecs/water/WaterSerializationUpgrader_0_1.js";
80
- import { ParticleEmitter } from "../../graphics/particles/particular/engine/emitter/ParticleEmitter.js";
81
- import {
82
- ParticleEmitterSerializationAdapter
83
- } from "../../graphics/particles/particular/engine/emitter/serde/ParticleEmitterSerializationAdapter.js";
84
- import {
85
- ParticleEmitterSerializationUpgrader_0_1
86
- } from "../../graphics/particles/particular/engine/emitter/serde/ParticleEmitterSerializationUpgrader_0_1.js";
87
- import { GridPosition2Transform } from "../../grid/grid2transform/GridPosition2Transform.js";
88
- import {
89
- GridPosition2TransformSerializationAdapter
90
- } from "../../grid/grid2transform/GridPosition2TransformSerializationAdapter.js";
91
- import {
92
- GridPosition2TransformSerializationUpgrader_0_1
93
- } from "../../grid/grid2transform/GridPosition2TransformSerializationUpgrader_0_1.js";
94
- import { GridObstacleSerializationAdapter } from "../../grid/obstacle/GridObstacleSerializationAdapter.js";
95
- import GridPosition from "../../grid/position/GridPosition.js";
96
- import { GridPositionSerializationAdapter } from "../../grid/position/GridPositionSerializationAdapter.js";
97
- import {
98
- GridPositionSerializationUpdater_0_1
99
- } from "../../grid/position/GridPositionSerializationUpdater_0_1.js";
100
- import {
101
- ParallelBehaviorSerializationAdapter
102
- } from "../../intelligence/behavior/composite/ParallelBehaviorSerializationAdapter.js";
103
- import {
104
- SequenceBehaviorSerializationAdapter
105
- } from "../../intelligence/behavior/composite/SequenceBehaviorSerializationAdapter.js";
106
- import {
107
- InvertStatusBehaviorSerializationAdapter
108
- } from "../../intelligence/behavior/decorator/InvertStatusBehaviorSerializationAdapter.js";
109
- import {
110
- RepeatBehaviorSerializationAdapter
111
- } from "../../intelligence/behavior/decorator/RepeatBehaviorSerializationAdapter.js";
112
- import {
113
- BehaviorComponentSerializationAdapter
114
- } from "../../intelligence/behavior/ecs/BehaviorComponentSerializationAdapter.js";
115
- import {
116
- WaitForEventBehaviorSerializationAdapter
117
- } from "../../intelligence/behavior/ecs/WaitForEventBehaviorSerializationAdapter.js";
118
- import {
119
- FailingBehaviorSerializationAdapter
120
- } from "../../intelligence/behavior/primitive/FailingBehaviorSerializationAdapter.js";
121
- import {
122
- SucceedingBehaviorSerializationAdapter
123
- } from "../../intelligence/behavior/primitive/SucceedingBehaviorSerializationAdapter.js";
124
- import { BlackboardSerializationAdapter } from "../../intelligence/blackboard/BlackboardSerializationAdapter.js";
125
- import Path from "../../navigation/ecs/components/Path.js";
126
- import { PathSerializationAdapter } from "../../navigation/ecs/components/PathSerializationAdapter.js";
127
- import {
128
- PathSerializationUpgrader_0_1
129
- } from "../../navigation/ecs/components/PathSerializationUpgrader_0_1.js";
130
- import {
131
- PathSerializationUpgrader_1_2
132
- } from "../../navigation/ecs/components/PathSerializationUpgrader_1_2.js";
133
- import {
134
- PathSerializationUpgrader_2_3
135
- } from "../../navigation/ecs/components/PathSerializationUpgrader_2_3.js";
136
- import PathFollower from "../../navigation/ecs/path_following/PathFollower.js";
137
- import {
138
- PathFollowerSerializationAdapter
139
- } from "../../navigation/ecs/path_following/PathFollowerSerializationAdapter.js";
140
- import {
141
- PathFollowerSerializationUpgrader_0_1
142
- } from "../../navigation/ecs/path_following/PathFollowerSerializationUpgrader_0_1.js";
143
- import {
144
- PathFollowerSerializationUpgrader_1_2
145
- } from "../../navigation/ecs/path_following/PathFollowerSerializationUpgrader_1_2.js";
146
- import {
147
- PathFollowerSerializationUpgrader_2_3
148
- } from "../../navigation/ecs/path_following/PathFollowerSerializationUpgrader_2_3.js";
149
- import {
150
- PathFollowerSerializationUpgrader_3_4
151
- } from "../../navigation/ecs/path_following/PathFollowerSerializationUpgrader_3_4.js";
152
- import { SoundEmitter } from "../../sound/ecs/emitter/SoundEmitter.js";
153
- import { SoundEmitterSerializationAdapter } from "../../sound/ecs/emitter/SoundEmitterSerializationAdapter.js";
154
- import {
155
- SoundEmitterSerializationUpgrader_0_1
156
- } from "../../sound/ecs/emitter/SoundEmitterSerializationUpgrader_0_1.js";
157
- import {
158
- SoundEmitterSerializationUpgrader_1_2
159
- } from "../../sound/ecs/emitter/SoundEmitterSerializationUpgrader_1_2.js";
160
- import { SoundControllerSerializationAdapter } from "../../sound/ecs/SoundController.js";
161
- import { SoundListenerSerializationAdapter } from "../../sound/ecs/SoundListener.js";
162
-
163
- /**
164
- * Registers the serialization adapters and upgraders for every engine-side component type.
165
- *
166
- * This is the single source of truth for engine serialization coverage: hosts layer their own
167
- * component adapters on top and must not re-register engine types (the registry keeps the first
168
- * registration and warns on duplicates).
169
- *
170
- * @param {BinarySerializationRegistry} registry
171
- */
172
- export function populateEngineSerializationRegistry(registry) {
173
-
174
- registry.registerAdapters([
175
- new TransformSerializationAdapter(),
176
- new NameSerializationAdapter(),
177
- new TeamSerializationAdapter(),
178
- new PathFollowerSerializationAdapter(),
179
- new PathSerializationAdapter(),
180
- new TagSerializationAdapter(),
181
- new ParticleEmitterSerializationAdapter(),
182
- new SoundEmitterSerializationAdapter(),
183
- new SoundControllerSerializationAdapter(),
184
- new SoundListenerSerializationAdapter(),
185
- new AnimationSerializationAdapter(),
186
- new SGMeshSerializationAdapter(),
187
- new TopDownCameraControllerSerializationAdapter(),
188
- new TopDownCameraLanderSerializationAdapter(),
189
- new CameraSerializationAdapter(),
190
- new ClingToTerrainSerializationAdapter(),
191
- new TerrainSerializationAdapter(),
192
- new WaterSerializationAdapter(),
193
- new GridPosition2TransformSerializationAdapter(),
194
- new GridObstacleSerializationAdapter(),
195
- new GridPositionSerializationAdapter(),
196
- new HighlightSerializationAdapter(),
197
- new LightSerializationAdapter(),
198
- new AnimationControllerSerializationAdapter(),
199
- new PropertySetSerializationAdapter(),
200
- new FogOfWarSerializationAdapter(),
201
- new FogOfWarRevealerSerializationAdapter(),
202
- new BlackboardSerializationAdapter(),
203
- new SerializationMetadataSerializationAdapter(),
204
- new ViewportPositionSerializationAdapter(),
205
- new GUIElementSerializationAdapter(),
206
- new HeadsUpDisplaySerializationAdapter(),
207
- new BehaviorComponentSerializationAdapter(),
208
- new InverseKinematicsSerializationAdapter(),
209
- new TooltipComponentSerializationAdapter(),
210
- new DecalSerializationAdapter(),
211
- new PickableSerializationAdapter()
212
- ]);
213
-
214
- // behaviors
215
- registry.registerAdapters([
216
- //primitives
217
- new FailingBehaviorSerializationAdapter(),
218
- new SucceedingBehaviorSerializationAdapter(),
219
-
220
- //composite
221
- new SequenceBehaviorSerializationAdapter(),
222
- new ParallelBehaviorSerializationAdapter(),
223
-
224
- //decorators
225
- new InvertStatusBehaviorSerializationAdapter(),
226
- new RepeatBehaviorSerializationAdapter(),
227
-
228
- //ECS
229
- new WaitForEventBehaviorSerializationAdapter()
230
- ]);
231
-
232
- //upgraders
233
- registry.registerUpgrader(GridPosition2Transform.typeName, new GridPosition2TransformSerializationUpgrader_0_1());
234
- registry.registerUpgrader(GridPosition.typeName, new GridPositionSerializationUpdater_0_1());
235
- registry.registerUpgrader(Transform.typeName, new TransformSerializationUpgrader_0_1());
236
- registry.registerUpgrader(Tag.typeName, new TagSerializationUpgrader_0_1());
237
- registry.registerUpgrader(Decal.typeName, new DecalSerializationUpgrader_0_1());
238
-
239
- registry.registerUpgrader(FogOfWar.typeName, new FogOfWarSerializationUpdater_0_1());
240
-
241
- registry.registerUpgrader(Camera.typeName, new CameraSerializationUpgrader_0_1());
242
-
243
- registry.registerUpgrader(Path.typeName, new PathSerializationUpgrader_0_1());
244
- registry.registerUpgrader(Path.typeName, new PathSerializationUpgrader_1_2());
245
- registry.registerUpgrader(Path.typeName, new PathSerializationUpgrader_2_3());
246
-
247
- registry.registerUpgrader(PathFollower.typeName, new PathFollowerSerializationUpgrader_0_1());
248
- registry.registerUpgrader(PathFollower.typeName, new PathFollowerSerializationUpgrader_1_2());
249
- registry.registerUpgrader(PathFollower.typeName, new PathFollowerSerializationUpgrader_2_3());
250
- registry.registerUpgrader(PathFollower.typeName, new PathFollowerSerializationUpgrader_3_4());
251
-
252
- registry.registerUpgrader(Terrain.typeName, new TerrainSerializationUpgrader_0_1());
253
- registry.registerUpgrader(Terrain.typeName, new TerrainSerializationUpgrader_1_2());
254
- registry.registerUpgrader(Highlight.typeName, new HighlightSerializationUpgrader_0_1());
255
- registry.registerUpgrader(Water.typeName, new WaterSerializationUpgrader_0_1());
256
-
257
- registry.registerUpgrader(SoundEmitter.typeName, new SoundEmitterSerializationUpgrader_0_1());
258
- registry.registerUpgrader(SoundEmitter.typeName, new SoundEmitterSerializationUpgrader_1_2());
259
-
260
- registry.registerUpgrader(ParticleEmitter.typeName, new ParticleEmitterSerializationUpgrader_0_1());
261
-
262
- registry.registerUpgrader(TopDownCameraController.typeName, new TopDownCameraControllerSerializationUpgrader_0_1());
263
-
264
- registry.registerUpgrader(ClingToTerrain.typeName, new ClingToTerrainSerializationUpgrader_0_1());
265
- }
1
+ import { AnimationSerializationAdapter } from "../animation/AnimationSerializationAdapter.js";
2
+ import { PropertySetSerializationAdapter } from "../components/PropertySetSerializationAdapter.js";
3
+ import {
4
+ SerializationMetadataSerializationAdapter
5
+ } from "../components/SerializationMetadataSerializationAdapter.js";
6
+ import { Tag } from "../components/Tag.js";
7
+ import { TagSerializationAdapter } from "../components/TagSerializationAdapter.js";
8
+ import { TagSerializationUpgrader_0_1 } from "../components/TagSerializationUpgrader_0_1.js";
9
+ import { FogOfWar } from "../fow/FogOfWar.js";
10
+ import {
11
+ FogOfWarRevealerSerializationAdapter
12
+ } from "../fow/serialization/FogOfWarRevealerSerializationAdapter.js";
13
+ import { FogOfWarSerializationAdapter } from "../fow/serialization/FogOfWarSerializationAdapter.js";
14
+ import { FogOfWarSerializationUpdater_0_1 } from "../fow/serialization/FogOfWarSerializationUpdater_0_1.js";
15
+ import { GUIElementSerializationAdapter } from "../gui/GUIElementSerializationAdapter.js";
16
+ import { HeadsUpDisplaySerializationAdapter } from "../gui/hud/HeadsUpDisplaySerializationAdapter.js";
17
+ import {
18
+ ViewportPositionSerializationAdapter
19
+ } from "../gui/position/ViewportPositionSerializationAdapter.js";
20
+ import { InverseKinematicsSerializationAdapter } from "../ik/InverseKinematicsSerializationAdapter.js";
21
+ import { NameSerializationAdapter } from "../name/NameSerializationAdapter.js";
22
+ import { TeamSerializationAdapter } from "../team/TeamSerializationAdapter.js";
23
+ import ClingToTerrain from "../terrain/ecs/cling/ClingToTerrain.js";
24
+ import {
25
+ ClingToTerrainSerializationAdapter
26
+ } from "../terrain/ecs/cling/ClingToTerrainSerializationAdapter.js";
27
+ import {
28
+ ClingToTerrainSerializationUpgrader_0_1
29
+ } from "../terrain/ecs/cling/ClingToTerrainSerializationUpgrader_0_1.js";
30
+ import Terrain from "../terrain/ecs/Terrain.js";
31
+ import { TerrainSerializationAdapter } from "../terrain/serialization/TerrainSerializationAdapter.js";
32
+ import {
33
+ TerrainSerializationUpgrader_0_1
34
+ } from "../terrain/serialization/TerrainSerializationUpgrader_0_1.js";
35
+ import {
36
+ TerrainSerializationUpgrader_1_2
37
+ } from "../terrain/serialization/TerrainSerializationUpgrader_1_2.js";
38
+ import { TooltipComponentSerializationAdapter } from "../tooltip/TooltipComponentSerializationAdapter.js";
39
+ import { PickableSerializationAdapter } from "../../graphics3/Pickable.js";
40
+ import {
41
+ VolumetricLightMapSerializationAdapter
42
+ } from "../../graphics3/VolumetricLightMapSerializationAdapter.js";
43
+ import { Transform } from "../transform/Transform.js";
44
+ import { TransformSerializationAdapter } from "../transform/TransformSerializationAdapter.js";
45
+ import { TransformSerializationUpgrader_0_1 } from "../transform/TransformSerializationUpgrader_0_1.js";
46
+ import {
47
+ AnimationControllerSerializationAdapter
48
+ } from "../../graphics/ecs/animation/AnimationControllerSerializationAdapter.js";
49
+ import { Camera } from "../../graphics/ecs/camera/Camera.js";
50
+ import {
51
+ CameraSerializationAdapter
52
+ } from "../../graphics/ecs/camera/serialization/CameraSerializationAdapter.js";
53
+ import {
54
+ CameraSerializationUpgrader_0_1
55
+ } from "../../graphics/ecs/camera/serialization/CameraSerializationUpgrader_0_1.js";
56
+ import TopDownCameraController from "../../graphics/ecs/camera/topdown/TopDownCameraController.js";
57
+ import {
58
+ TopDownCameraControllerSerializationAdapter
59
+ } from "../../graphics/ecs/camera/topdown/TopDownCameraControllerSerializationAdapter.js";
60
+ import {
61
+ TopDownCameraControllerSerializationUpgrader_0_1
62
+ } from "../../graphics/ecs/camera/topdown/TopDownCameraControllerSerializationUpgrader_0_1.js";
63
+ import {
64
+ TopDownCameraLanderSerializationAdapter
65
+ } from "../../graphics/ecs/camera/topdown/TopDownCameraLander.js";
66
+ import { Decal } from "../../graphics/ecs/decal/v2/Decal.js";
67
+ import { DecalSerializationAdapter } from "../../graphics/ecs/decal/v2/DecalSerializationAdapter.js";
68
+ import {
69
+ DecalSerializationUpgrader_0_1
70
+ } from "../../graphics/ecs/decal/v2/DecalSerializationUpgrader_0_1.js";
71
+ import Highlight from "../../graphics/ecs/highlight/Highlight.js";
72
+ import { HighlightSerializationAdapter } from "../../graphics/ecs/highlight/HighlightSerializationAdapter.js";
73
+ import {
74
+ HighlightSerializationUpgrader_0_1
75
+ } from "../../graphics/ecs/highlight/HighlightSerializationUpgrader_0_1.js";
76
+ import { LightSerializationAdapter } from "../../graphics/ecs/light/LightSerializationAdapter.js";
77
+ import {
78
+ SGMeshSerializationAdapter
79
+ } from "../../graphics/ecs/mesh-v2/aggregate/serialization/SGMeshSerializationAdapter.js";
80
+ import Water from "../../graphics/ecs/water/Water.js";
81
+ import { WaterSerializationAdapter } from "../../graphics/ecs/water/WaterSerializationAdapter.js";
82
+ import { WaterSerializationUpgrader_0_1 } from "../../graphics/ecs/water/WaterSerializationUpgrader_0_1.js";
83
+ import { ParticleEmitter } from "../../graphics/particles/particular/engine/emitter/ParticleEmitter.js";
84
+ import {
85
+ ParticleEmitterSerializationAdapter
86
+ } from "../../graphics/particles/particular/engine/emitter/serde/ParticleEmitterSerializationAdapter.js";
87
+ import {
88
+ ParticleEmitterSerializationUpgrader_0_1
89
+ } from "../../graphics/particles/particular/engine/emitter/serde/ParticleEmitterSerializationUpgrader_0_1.js";
90
+ import { GridPosition2Transform } from "../../grid/grid2transform/GridPosition2Transform.js";
91
+ import {
92
+ GridPosition2TransformSerializationAdapter
93
+ } from "../../grid/grid2transform/GridPosition2TransformSerializationAdapter.js";
94
+ import {
95
+ GridPosition2TransformSerializationUpgrader_0_1
96
+ } from "../../grid/grid2transform/GridPosition2TransformSerializationUpgrader_0_1.js";
97
+ import { GridObstacleSerializationAdapter } from "../../grid/obstacle/GridObstacleSerializationAdapter.js";
98
+ import GridPosition from "../../grid/position/GridPosition.js";
99
+ import { GridPositionSerializationAdapter } from "../../grid/position/GridPositionSerializationAdapter.js";
100
+ import {
101
+ GridPositionSerializationUpdater_0_1
102
+ } from "../../grid/position/GridPositionSerializationUpdater_0_1.js";
103
+ import {
104
+ ParallelBehaviorSerializationAdapter
105
+ } from "../../intelligence/behavior/composite/ParallelBehaviorSerializationAdapter.js";
106
+ import {
107
+ SequenceBehaviorSerializationAdapter
108
+ } from "../../intelligence/behavior/composite/SequenceBehaviorSerializationAdapter.js";
109
+ import {
110
+ InvertStatusBehaviorSerializationAdapter
111
+ } from "../../intelligence/behavior/decorator/InvertStatusBehaviorSerializationAdapter.js";
112
+ import {
113
+ RepeatBehaviorSerializationAdapter
114
+ } from "../../intelligence/behavior/decorator/RepeatBehaviorSerializationAdapter.js";
115
+ import {
116
+ BehaviorComponentSerializationAdapter
117
+ } from "../../intelligence/behavior/ecs/BehaviorComponentSerializationAdapter.js";
118
+ import {
119
+ WaitForEventBehaviorSerializationAdapter
120
+ } from "../../intelligence/behavior/ecs/WaitForEventBehaviorSerializationAdapter.js";
121
+ import {
122
+ FailingBehaviorSerializationAdapter
123
+ } from "../../intelligence/behavior/primitive/FailingBehaviorSerializationAdapter.js";
124
+ import {
125
+ SucceedingBehaviorSerializationAdapter
126
+ } from "../../intelligence/behavior/primitive/SucceedingBehaviorSerializationAdapter.js";
127
+ import { BlackboardSerializationAdapter } from "../../intelligence/blackboard/BlackboardSerializationAdapter.js";
128
+ import Path from "../../navigation/ecs/components/Path.js";
129
+ import { PathSerializationAdapter } from "../../navigation/ecs/components/PathSerializationAdapter.js";
130
+ import {
131
+ PathSerializationUpgrader_0_1
132
+ } from "../../navigation/ecs/components/PathSerializationUpgrader_0_1.js";
133
+ import {
134
+ PathSerializationUpgrader_1_2
135
+ } from "../../navigation/ecs/components/PathSerializationUpgrader_1_2.js";
136
+ import {
137
+ PathSerializationUpgrader_2_3
138
+ } from "../../navigation/ecs/components/PathSerializationUpgrader_2_3.js";
139
+ import PathFollower from "../../navigation/ecs/path_following/PathFollower.js";
140
+ import {
141
+ PathFollowerSerializationAdapter
142
+ } from "../../navigation/ecs/path_following/PathFollowerSerializationAdapter.js";
143
+ import {
144
+ PathFollowerSerializationUpgrader_0_1
145
+ } from "../../navigation/ecs/path_following/PathFollowerSerializationUpgrader_0_1.js";
146
+ import {
147
+ PathFollowerSerializationUpgrader_1_2
148
+ } from "../../navigation/ecs/path_following/PathFollowerSerializationUpgrader_1_2.js";
149
+ import {
150
+ PathFollowerSerializationUpgrader_2_3
151
+ } from "../../navigation/ecs/path_following/PathFollowerSerializationUpgrader_2_3.js";
152
+ import {
153
+ PathFollowerSerializationUpgrader_3_4
154
+ } from "../../navigation/ecs/path_following/PathFollowerSerializationUpgrader_3_4.js";
155
+ import { SoundEmitter } from "../../sound/ecs/emitter/SoundEmitter.js";
156
+ import { SoundEmitterSerializationAdapter } from "../../sound/ecs/emitter/SoundEmitterSerializationAdapter.js";
157
+ import {
158
+ SoundEmitterSerializationUpgrader_0_1
159
+ } from "../../sound/ecs/emitter/SoundEmitterSerializationUpgrader_0_1.js";
160
+ import {
161
+ SoundEmitterSerializationUpgrader_1_2
162
+ } from "../../sound/ecs/emitter/SoundEmitterSerializationUpgrader_1_2.js";
163
+ import { SoundControllerSerializationAdapter } from "../../sound/ecs/SoundController.js";
164
+ import { SoundListenerSerializationAdapter } from "../../sound/ecs/SoundListener.js";
165
+
166
+ /**
167
+ * Registers the serialization adapters and upgraders for every engine-side component type.
168
+ *
169
+ * This is the single source of truth for engine serialization coverage: hosts layer their own
170
+ * component adapters on top and must not re-register engine types (the registry keeps the first
171
+ * registration and warns on duplicates).
172
+ *
173
+ * @param {BinarySerializationRegistry} registry
174
+ */
175
+ export function populateEngineSerializationRegistry(registry) {
176
+
177
+ registry.registerAdapters([
178
+ new TransformSerializationAdapter(),
179
+ new NameSerializationAdapter(),
180
+ new TeamSerializationAdapter(),
181
+ new PathFollowerSerializationAdapter(),
182
+ new PathSerializationAdapter(),
183
+ new TagSerializationAdapter(),
184
+ new ParticleEmitterSerializationAdapter(),
185
+ new SoundEmitterSerializationAdapter(),
186
+ new SoundControllerSerializationAdapter(),
187
+ new SoundListenerSerializationAdapter(),
188
+ new AnimationSerializationAdapter(),
189
+ new SGMeshSerializationAdapter(),
190
+ new TopDownCameraControllerSerializationAdapter(),
191
+ new TopDownCameraLanderSerializationAdapter(),
192
+ new CameraSerializationAdapter(),
193
+ new ClingToTerrainSerializationAdapter(),
194
+ new TerrainSerializationAdapter(),
195
+ new WaterSerializationAdapter(),
196
+ new GridPosition2TransformSerializationAdapter(),
197
+ new GridObstacleSerializationAdapter(),
198
+ new GridPositionSerializationAdapter(),
199
+ new HighlightSerializationAdapter(),
200
+ new LightSerializationAdapter(),
201
+ new AnimationControllerSerializationAdapter(),
202
+ new PropertySetSerializationAdapter(),
203
+ new FogOfWarSerializationAdapter(),
204
+ new FogOfWarRevealerSerializationAdapter(),
205
+ new BlackboardSerializationAdapter(),
206
+ new SerializationMetadataSerializationAdapter(),
207
+ new ViewportPositionSerializationAdapter(),
208
+ new GUIElementSerializationAdapter(),
209
+ new HeadsUpDisplaySerializationAdapter(),
210
+ new BehaviorComponentSerializationAdapter(),
211
+ new InverseKinematicsSerializationAdapter(),
212
+ new TooltipComponentSerializationAdapter(),
213
+ new DecalSerializationAdapter(),
214
+ new PickableSerializationAdapter(),
215
+ new VolumetricLightMapSerializationAdapter()
216
+ ]);
217
+
218
+ // behaviors
219
+ registry.registerAdapters([
220
+ //primitives
221
+ new FailingBehaviorSerializationAdapter(),
222
+ new SucceedingBehaviorSerializationAdapter(),
223
+
224
+ //composite
225
+ new SequenceBehaviorSerializationAdapter(),
226
+ new ParallelBehaviorSerializationAdapter(),
227
+
228
+ //decorators
229
+ new InvertStatusBehaviorSerializationAdapter(),
230
+ new RepeatBehaviorSerializationAdapter(),
231
+
232
+ //ECS
233
+ new WaitForEventBehaviorSerializationAdapter()
234
+ ]);
235
+
236
+ //upgraders
237
+ registry.registerUpgrader(GridPosition2Transform.typeName, new GridPosition2TransformSerializationUpgrader_0_1());
238
+ registry.registerUpgrader(GridPosition.typeName, new GridPositionSerializationUpdater_0_1());
239
+ registry.registerUpgrader(Transform.typeName, new TransformSerializationUpgrader_0_1());
240
+ registry.registerUpgrader(Tag.typeName, new TagSerializationUpgrader_0_1());
241
+ registry.registerUpgrader(Decal.typeName, new DecalSerializationUpgrader_0_1());
242
+
243
+ registry.registerUpgrader(FogOfWar.typeName, new FogOfWarSerializationUpdater_0_1());
244
+
245
+ registry.registerUpgrader(Camera.typeName, new CameraSerializationUpgrader_0_1());
246
+
247
+ registry.registerUpgrader(Path.typeName, new PathSerializationUpgrader_0_1());
248
+ registry.registerUpgrader(Path.typeName, new PathSerializationUpgrader_1_2());
249
+ registry.registerUpgrader(Path.typeName, new PathSerializationUpgrader_2_3());
250
+
251
+ registry.registerUpgrader(PathFollower.typeName, new PathFollowerSerializationUpgrader_0_1());
252
+ registry.registerUpgrader(PathFollower.typeName, new PathFollowerSerializationUpgrader_1_2());
253
+ registry.registerUpgrader(PathFollower.typeName, new PathFollowerSerializationUpgrader_2_3());
254
+ registry.registerUpgrader(PathFollower.typeName, new PathFollowerSerializationUpgrader_3_4());
255
+
256
+ registry.registerUpgrader(Terrain.typeName, new TerrainSerializationUpgrader_0_1());
257
+ registry.registerUpgrader(Terrain.typeName, new TerrainSerializationUpgrader_1_2());
258
+ registry.registerUpgrader(Highlight.typeName, new HighlightSerializationUpgrader_0_1());
259
+ registry.registerUpgrader(Water.typeName, new WaterSerializationUpgrader_0_1());
260
+
261
+ registry.registerUpgrader(SoundEmitter.typeName, new SoundEmitterSerializationUpgrader_0_1());
262
+ registry.registerUpgrader(SoundEmitter.typeName, new SoundEmitterSerializationUpgrader_1_2());
263
+
264
+ registry.registerUpgrader(ParticleEmitter.typeName, new ParticleEmitterSerializationUpgrader_0_1());
265
+
266
+ registry.registerUpgrader(TopDownCameraController.typeName, new TopDownCameraControllerSerializationUpgrader_0_1());
267
+
268
+ registry.registerUpgrader(ClingToTerrain.typeName, new ClingToTerrainSerializationUpgrader_0_1());
269
+ }
@@ -0,0 +1,90 @@
1
+ /**
2
+ * A baked volumetric lightmap, as the bytes the GPU wants and nothing else.
3
+ *
4
+ * **The scene has one of these, and this component is which one.** Shade keeps a single
5
+ * `Brick4LightMap` per scene — one buffer, read by every indirect-lighting pass while the renderer
6
+ * is in Brick4 mode — so a level's lightmap is a property of the level, not of a thing standing in
7
+ * it. Making it a component is what gives it a lifetime an entity already has: it arrives when the
8
+ * level's entity is built, it is saved with it, and it goes away when the entity does. See
9
+ * {@link VolumetricLightMapSystem3} for what happens when two entities claim the scene at once.
10
+ *
11
+ * **The payload is opaque here on purpose.** It is brick4's own GPU structure — the format
12
+ * `brick4_to_gpu_structure` writes and the indirect-lighting shaders read — and everything inside
13
+ * it, the node layout, the probe section, the SH encoding, is the renderer's business. This
14
+ * component neither validates it nor knows how to make one; a bake writes it, a load reads it off
15
+ * disk, and this carries it.
16
+ *
17
+ * **It is not placed by the entity's transform, and does not need one.** A brick4 structure begins
18
+ * with the world-space bounds it was baked against, so the map already knows where it is. Moving
19
+ * the entity that carries it moves nothing.
20
+ *
21
+ * @see VolumetricLightMapSystem3
22
+ * @see Brick4LightMap
23
+ */
24
+ export class VolumetricLightMap {
25
+ /**
26
+ * @param {*} json
27
+ * @returns {VolumetricLightMap}
28
+ */
29
+ static fromJSON(json: any): VolumetricLightMap;
30
+ /**
31
+ * @param {ArrayBuffer|null} value
32
+ */
33
+ set data(arg: ArrayBuffer);
34
+ /**
35
+ * The baked structure, or `null` while there isn't one.
36
+ *
37
+ * `null` is a normal state, not a broken one: the component says the entity carries the scene's
38
+ * lightmap, and the bytes may still be loading. A `null` map lights the scene with nothing.
39
+ *
40
+ * @returns {ArrayBuffer|null}
41
+ */
42
+ get data(): ArrayBuffer;
43
+ /**
44
+ * Bumped every time {@link data} is assigned.
45
+ *
46
+ * What the system watches to decide whether the GPU is behind. A megabyte-scale upload per frame
47
+ * would be the alternative, and comparing the buffers to avoid it costs a full read of both.
48
+ *
49
+ * **Assignment is the only thing that moves this.** Writing into the `ArrayBuffer` in place goes
50
+ * unnoticed — publish such a change by assigning `data` again, even to the same buffer.
51
+ *
52
+ * @returns {number}
53
+ */
54
+ get version(): number;
55
+ /**
56
+ * The bytes, base64'd.
57
+ *
58
+ * A lightmap runs to megabytes and base64 adds a third on top of that, so this is the expensive
59
+ * way to move one and the binary adapter is the cheap one. It exists because a blueprint that
60
+ * silently dropped the map would be worse than a large blueprint.
61
+ *
62
+ * @see VolumetricLightMapSerializationAdapter
63
+ */
64
+ toJSON(): {
65
+ data: string;
66
+ };
67
+ /**
68
+ * @param {string|null} [data]
69
+ */
70
+ fromJSON({ data }?: string | null): void;
71
+ /**
72
+ * The byte length, and deliberately not the bytes.
73
+ *
74
+ * Hashing megabytes to answer "are these two the same component" is not a trade worth making,
75
+ * and a hash is allowed to collide. {@link equals} is the one that reads the buffer.
76
+ *
77
+ * @returns {number}
78
+ */
79
+ hash(): number;
80
+ /**
81
+ * @param {VolumetricLightMap} other
82
+ * @returns {boolean}
83
+ */
84
+ equals(other: VolumetricLightMap): boolean;
85
+ #private;
86
+ }
87
+ export namespace VolumetricLightMap {
88
+ let typeName: string;
89
+ }
90
+ //# sourceMappingURL=VolumetricLightMap.d.ts.map