@woosh/meep-engine 3.11.0 → 3.11.2

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 (86) hide show
  1. package/package.json +1 -1
  2. package/src/engine/ecs/storage/populateEngineSerializationRegistry.d.ts.map +1 -1
  3. package/src/engine/ecs/storage/populateEngineSerializationRegistry.js +294 -290
  4. package/src/engine/graphics3/ParticipatingMedia.d.ts +111 -0
  5. package/src/engine/graphics3/ParticipatingMedia.d.ts.map +1 -0
  6. package/src/engine/graphics3/ParticipatingMedia.js +203 -0
  7. package/src/engine/graphics3/ParticipatingMediaSerializationAdapter.d.ts +34 -0
  8. package/src/engine/graphics3/ParticipatingMediaSerializationAdapter.d.ts.map +1 -0
  9. package/src/engine/graphics3/ParticipatingMediaSerializationAdapter.js +73 -0
  10. package/src/engine/graphics3/ParticipatingMediaSystem3.d.ts +87 -0
  11. package/src/engine/graphics3/ParticipatingMediaSystem3.d.ts.map +1 -0
  12. package/src/engine/graphics3/ParticipatingMediaSystem3.js +184 -0
  13. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
  14. package/src/shade/playground/volumetrics_froxel/README.md +191 -0
  15. package/src/shade/playground/volumetrics_froxel/index.html +270 -0
  16. package/src/shade/playground/volumetrics_froxel/main.d.ts +2 -0
  17. package/src/shade/playground/volumetrics_froxel/main.d.ts.map +1 -0
  18. package/src/shade/playground/volumetrics_froxel/main.js +917 -0
  19. package/src/shade/playground/volumetrics_froxel/measure.d.ts +119 -0
  20. package/src/shade/playground/volumetrics_froxel/measure.d.ts.map +1 -0
  21. package/src/shade/playground/volumetrics_froxel/measure.js +559 -0
  22. package/src/shade/renderer/Renderer.d.ts +13 -0
  23. package/src/shade/renderer/Renderer.d.ts.map +1 -1
  24. package/src/shade/renderer/Renderer.js +45 -18
  25. package/src/shade/renderer/postprocess/nss/NSS.d.ts +1 -1
  26. package/src/shade/renderer/shadow/map/shader/chunk_shadowmap_sample_point2.d.ts +14 -13
  27. package/src/shade/renderer/shadow/map/shader/chunk_shadowmap_sample_point2.d.ts.map +1 -1
  28. package/src/shade/renderer/shadow/map/shader/chunk_shadowmap_sample_point2.js +133 -129
  29. package/src/shade/renderer/volumetrics/GPUViewVolumetrics.d.ts.map +1 -1
  30. package/src/shade/renderer/volumetrics/GPUViewVolumetrics.js +480 -315
  31. package/src/shade/renderer/volumetrics/NOTES.md +691 -9
  32. package/src/shade/renderer/volumetrics/ParticipatingMediaVolume.d.ts +5 -0
  33. package/src/shade/renderer/volumetrics/ParticipatingMediaVolume.d.ts.map +1 -1
  34. package/src/shade/renderer/volumetrics/ParticipatingMediaVolume.js +21 -2
  35. package/src/shade/renderer/volumetrics/SceneVolumetrics.d.ts +26 -0
  36. package/src/shade/renderer/volumetrics/SceneVolumetrics.d.ts.map +1 -1
  37. package/src/shade/renderer/volumetrics/SceneVolumetrics.js +64 -21
  38. package/src/shade/renderer/volumetrics/VOLUMETRICS_METADATA_STRUCT.d.ts.map +1 -1
  39. package/src/shade/renderer/volumetrics/VOLUMETRICS_METADATA_STRUCT.js +84 -28
  40. package/src/shade/renderer/volumetrics/VOLUMETRICS_SUN_SHADOW_RESOLUTION.d.ts +98 -0
  41. package/src/shade/renderer/volumetrics/VOLUMETRICS_SUN_SHADOW_RESOLUTION.d.ts.map +1 -0
  42. package/src/shade/renderer/volumetrics/VOLUMETRICS_SUN_SHADOW_RESOLUTION.js +111 -0
  43. package/src/shade/renderer/volumetrics/build_volumetrics_sun_shadow_transform.d.ts +84 -0
  44. package/src/shade/renderer/volumetrics/build_volumetrics_sun_shadow_transform.d.ts.map +1 -0
  45. package/src/shade/renderer/volumetrics/build_volumetrics_sun_shadow_transform.js +252 -0
  46. package/src/shade/renderer/volumetrics/chunk_camera_ray_planar_depth_scale.d.ts +21 -0
  47. package/src/shade/renderer/volumetrics/chunk_camera_ray_planar_depth_scale.d.ts.map +1 -0
  48. package/src/shade/renderer/volumetrics/chunk_camera_ray_planar_depth_scale.js +47 -0
  49. package/src/shade/renderer/volumetrics/chunk_integrate_optical_depth.d.ts.map +1 -1
  50. package/src/shade/renderer/volumetrics/chunk_integrate_optical_depth.js +75 -64
  51. package/src/shade/renderer/volumetrics/chunk_volumetrics_froxel_content_offset.d.ts +37 -0
  52. package/src/shade/renderer/volumetrics/chunk_volumetrics_froxel_content_offset.d.ts.map +1 -0
  53. package/src/shade/renderer/volumetrics/chunk_volumetrics_froxel_content_offset.js +56 -0
  54. package/src/shade/renderer/volumetrics/chunk_volumetrics_local_light_shadow.d.ts +43 -0
  55. package/src/shade/renderer/volumetrics/chunk_volumetrics_local_light_shadow.d.ts.map +1 -0
  56. package/src/shade/renderer/volumetrics/chunk_volumetrics_local_light_shadow.js +145 -0
  57. package/src/shade/renderer/volumetrics/chunk_volumetrics_sample_froxel_extinction.d.ts +20 -0
  58. package/src/shade/renderer/volumetrics/chunk_volumetrics_sample_froxel_extinction.d.ts.map +1 -0
  59. package/src/shade/renderer/volumetrics/chunk_volumetrics_sample_froxel_extinction.js +48 -0
  60. package/src/shade/renderer/volumetrics/chunk_volumetrics_sun_optical_depth.d.ts +38 -0
  61. package/src/shade/renderer/volumetrics/chunk_volumetrics_sun_optical_depth.d.ts.map +1 -0
  62. package/src/shade/renderer/volumetrics/chunk_volumetrics_sun_optical_depth.js +107 -0
  63. package/src/shade/renderer/volumetrics/graph_build_volumetrics.d.ts +4 -1
  64. package/src/shade/renderer/volumetrics/graph_build_volumetrics.d.ts.map +1 -1
  65. package/src/shade/renderer/volumetrics/graph_build_volumetrics.js +577 -465
  66. package/src/shade/renderer/volumetrics/shader_volumetrics_build_lighting.d.ts.map +1 -1
  67. package/src/shade/renderer/volumetrics/shader_volumetrics_build_lighting.js +418 -324
  68. package/src/shade/renderer/volumetrics/shader_volumetrics_build_scattering_lut.d.ts.map +1 -1
  69. package/src/shade/renderer/volumetrics/shader_volumetrics_build_scattering_lut.js +14 -3
  70. package/src/shade/renderer/volumetrics/shader_volumetrics_build_sun_shadow_volume.d.ts +8 -0
  71. package/src/shade/renderer/volumetrics/shader_volumetrics_build_sun_shadow_volume.d.ts.map +1 -0
  72. package/src/shade/renderer/volumetrics/shader_volumetrics_build_sun_shadow_volume.js +174 -0
  73. package/src/shade/renderer/volumetrics/volumetrics_position_world_to_froxel_uvw.d.ts.map +1 -1
  74. package/src/shade/renderer/volumetrics/volumetrics_position_world_to_froxel_uvw.js +48 -36
  75. package/src/shade/wgsl/emulator/CPUBitmapData.d.ts +25 -0
  76. package/src/shade/wgsl/emulator/CPUBitmapData.d.ts.map +1 -1
  77. package/src/shade/wgsl/emulator/CPUBitmapData.js +33 -0
  78. package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.js +2221 -2215
  79. package/src/shade/wgsl/emulator/WGSLLanguageCore.d.ts.map +1 -1
  80. package/src/shade/wgsl/emulator/WGSLLanguageCore.js +1297 -1117
  81. package/src/shade/wgsl/emulator/cpu_texture_gather.d.ts +69 -0
  82. package/src/shade/wgsl/emulator/cpu_texture_gather.d.ts.map +1 -0
  83. package/src/shade/wgsl/emulator/cpu_texture_gather.js +148 -0
  84. package/src/shade/wgsl/emulator/cpu_texture_sample.d.ts +16 -0
  85. package/src/shade/wgsl/emulator/cpu_texture_sample.d.ts.map +1 -1
  86. package/src/shade/wgsl/emulator/cpu_texture_sample.js +176 -172
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "description": "Pure JavaScript game engine. Fully featured and production ready.",
7
7
  "type": "module",
8
8
  "author": "Alexander Goldring",
9
- "version": "3.11.0",
9
+ "version": "3.11.2",
10
10
  "exports": {
11
11
  "./build/*": "./build/*",
12
12
  "./src/*": "./src/*",
@@ -1 +1 @@
1
- {"version":3,"file":"populateEngineSerializationRegistry.d.ts","sourceRoot":"","sources":["../../../../../src/engine/ecs/storage/populateEngineSerializationRegistry.js"],"names":[],"mappings":"AA+KA;;;;;;;;GAQG;AACH,iGAyGC"}
1
+ {"version":3,"file":"populateEngineSerializationRegistry.d.ts","sourceRoot":"","sources":["../../../../../src/engine/ecs/storage/populateEngineSerializationRegistry.js"],"names":[],"mappings":"AAkLA;;;;;;;;GAQG;AACH,iGA0GC"}
@@ -1,290 +1,294 @@
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/sopra/legacy/SoundEmitter.js";
156
- import { SoundEmitterSerializationAdapter } from "../../sound/sopra/legacy/SoundEmitterSerializationAdapter.js";
157
- import {
158
- SoundEmitterSerializationUpgrader_0_1
159
- } from "../../sound/sopra/legacy/SoundEmitterSerializationUpgrader_0_1.js";
160
- import {
161
- SoundEmitterSerializationUpgrader_1_2
162
- } from "../../sound/sopra/legacy/SoundEmitterSerializationUpgrader_1_2.js";
163
- import { SoundControllerSerializationAdapter } from "../../sound/sopra/legacy/SoundController.js";
164
- import { SoundListenerSerializationAdapter } from "../../sound/ecs/SoundListener.js";
165
- import { AudioEmitterSerializationAdapter } from "../../sound/ecs/audio/AudioEmitterSerializationAdapter.js";
166
- import {
167
- AudioEventTriggerSerializationAdapter
168
- } from "../../sound/ecs/trigger/AudioEventTriggerSerializationAdapter.js";
169
- import {
170
- populateAcousticSerializationRegistry
171
- } from "../../sound/simulation/serialization/populateAcousticSerializationRegistry.js";
172
- import {
173
- populateSopraSerializationRegistry
174
- } from "../../sound/sopra/serialization/populateSopraSerializationRegistry.js";
175
-
176
- /**
177
- * Registers the serialization adapters and upgraders for every engine-side component type.
178
- *
179
- * This is the single source of truth for engine serialization coverage: hosts layer their own
180
- * component adapters on top and must not re-register engine types (the registry keeps the first
181
- * registration and warns on duplicates).
182
- *
183
- * @param {BinarySerializationRegistry} registry
184
- */
185
- export function populateEngineSerializationRegistry(registry) {
186
-
187
- // Value types the component adapters below reach through the engine's BinaryObjectSerializationAdapter,
188
- // which is built from THIS registry: an AudioEmitter's EventDescription owns a polymorphic clip graph
189
- // (sample / sequence / random / switch / blend) plus effects, and the acoustic components carry
190
- // materials / media / directivity. Without these the object adapter cannot name those types and an
191
- // AudioEmitter cannot be written at all. Registered first so a host that also calls one of them gets the
192
- // engine's registration rather than a duplicate warning.
193
- populateSopraSerializationRegistry(registry);
194
- populateAcousticSerializationRegistry(registry);
195
-
196
- registry.registerAdapters([
197
- new TransformSerializationAdapter(),
198
- new NameSerializationAdapter(),
199
- new TeamSerializationAdapter(),
200
- new PathFollowerSerializationAdapter(),
201
- new PathSerializationAdapter(),
202
- new TagSerializationAdapter(),
203
- new ParticleEmitterSerializationAdapter(),
204
- new SoundEmitterSerializationAdapter(),
205
- new SoundControllerSerializationAdapter(),
206
- new SoundListenerSerializationAdapter(),
207
- new AudioEmitterSerializationAdapter(),
208
- new AudioEventTriggerSerializationAdapter(),
209
- new AnimationSerializationAdapter(),
210
- new SGMeshSerializationAdapter(),
211
- new TopDownCameraControllerSerializationAdapter(),
212
- new TopDownCameraLanderSerializationAdapter(),
213
- new CameraSerializationAdapter(),
214
- new ClingToTerrainSerializationAdapter(),
215
- new TerrainSerializationAdapter(),
216
- new WaterSerializationAdapter(),
217
- new GridPosition2TransformSerializationAdapter(),
218
- new GridObstacleSerializationAdapter(),
219
- new GridPositionSerializationAdapter(),
220
- new HighlightSerializationAdapter(),
221
- new LightSerializationAdapter(),
222
- new AnimationControllerSerializationAdapter(),
223
- new PropertySetSerializationAdapter(),
224
- new FogOfWarSerializationAdapter(),
225
- new FogOfWarRevealerSerializationAdapter(),
226
- new BlackboardSerializationAdapter(),
227
- new SerializationMetadataSerializationAdapter(),
228
- new ViewportPositionSerializationAdapter(),
229
- new GUIElementSerializationAdapter(),
230
- new HeadsUpDisplaySerializationAdapter(),
231
- new BehaviorComponentSerializationAdapter(),
232
- new InverseKinematicsSerializationAdapter(),
233
- new TooltipComponentSerializationAdapter(),
234
- new DecalSerializationAdapter(),
235
- new PickableSerializationAdapter(),
236
- new VolumetricLightMapSerializationAdapter()
237
- ]);
238
-
239
- // behaviors
240
- registry.registerAdapters([
241
- //primitives
242
- new FailingBehaviorSerializationAdapter(),
243
- new SucceedingBehaviorSerializationAdapter(),
244
-
245
- //composite
246
- new SequenceBehaviorSerializationAdapter(),
247
- new ParallelBehaviorSerializationAdapter(),
248
-
249
- //decorators
250
- new InvertStatusBehaviorSerializationAdapter(),
251
- new RepeatBehaviorSerializationAdapter(),
252
-
253
- //ECS
254
- new WaitForEventBehaviorSerializationAdapter()
255
- ]);
256
-
257
- //upgraders
258
- registry.registerUpgrader(GridPosition2Transform.typeName, new GridPosition2TransformSerializationUpgrader_0_1());
259
- registry.registerUpgrader(GridPosition.typeName, new GridPositionSerializationUpdater_0_1());
260
- registry.registerUpgrader(Transform.typeName, new TransformSerializationUpgrader_0_1());
261
- registry.registerUpgrader(Tag.typeName, new TagSerializationUpgrader_0_1());
262
- registry.registerUpgrader(Decal.typeName, new DecalSerializationUpgrader_0_1());
263
-
264
- registry.registerUpgrader(FogOfWar.typeName, new FogOfWarSerializationUpdater_0_1());
265
-
266
- registry.registerUpgrader(Camera.typeName, new CameraSerializationUpgrader_0_1());
267
-
268
- registry.registerUpgrader(Path.typeName, new PathSerializationUpgrader_0_1());
269
- registry.registerUpgrader(Path.typeName, new PathSerializationUpgrader_1_2());
270
- registry.registerUpgrader(Path.typeName, new PathSerializationUpgrader_2_3());
271
-
272
- registry.registerUpgrader(PathFollower.typeName, new PathFollowerSerializationUpgrader_0_1());
273
- registry.registerUpgrader(PathFollower.typeName, new PathFollowerSerializationUpgrader_1_2());
274
- registry.registerUpgrader(PathFollower.typeName, new PathFollowerSerializationUpgrader_2_3());
275
- registry.registerUpgrader(PathFollower.typeName, new PathFollowerSerializationUpgrader_3_4());
276
-
277
- registry.registerUpgrader(Terrain.typeName, new TerrainSerializationUpgrader_0_1());
278
- registry.registerUpgrader(Terrain.typeName, new TerrainSerializationUpgrader_1_2());
279
- registry.registerUpgrader(Highlight.typeName, new HighlightSerializationUpgrader_0_1());
280
- registry.registerUpgrader(Water.typeName, new WaterSerializationUpgrader_0_1());
281
-
282
- registry.registerUpgrader(SoundEmitter.typeName, new SoundEmitterSerializationUpgrader_0_1());
283
- registry.registerUpgrader(SoundEmitter.typeName, new SoundEmitterSerializationUpgrader_1_2());
284
-
285
- registry.registerUpgrader(ParticleEmitter.typeName, new ParticleEmitterSerializationUpgrader_0_1());
286
-
287
- registry.registerUpgrader(TopDownCameraController.typeName, new TopDownCameraControllerSerializationUpgrader_0_1());
288
-
289
- registry.registerUpgrader(ClingToTerrain.typeName, new ClingToTerrainSerializationUpgrader_0_1());
290
- }
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
+ ParticipatingMediaSerializationAdapter
42
+ } from "../../graphics3/ParticipatingMediaSerializationAdapter.js";
43
+ import {
44
+ VolumetricLightMapSerializationAdapter
45
+ } from "../../graphics3/VolumetricLightMapSerializationAdapter.js";
46
+ import { Transform } from "../transform/Transform.js";
47
+ import { TransformSerializationAdapter } from "../transform/TransformSerializationAdapter.js";
48
+ import { TransformSerializationUpgrader_0_1 } from "../transform/TransformSerializationUpgrader_0_1.js";
49
+ import {
50
+ AnimationControllerSerializationAdapter
51
+ } from "../../graphics/ecs/animation/AnimationControllerSerializationAdapter.js";
52
+ import { Camera } from "../../graphics/ecs/camera/Camera.js";
53
+ import {
54
+ CameraSerializationAdapter
55
+ } from "../../graphics/ecs/camera/serialization/CameraSerializationAdapter.js";
56
+ import {
57
+ CameraSerializationUpgrader_0_1
58
+ } from "../../graphics/ecs/camera/serialization/CameraSerializationUpgrader_0_1.js";
59
+ import TopDownCameraController from "../../graphics/ecs/camera/topdown/TopDownCameraController.js";
60
+ import {
61
+ TopDownCameraControllerSerializationAdapter
62
+ } from "../../graphics/ecs/camera/topdown/TopDownCameraControllerSerializationAdapter.js";
63
+ import {
64
+ TopDownCameraControllerSerializationUpgrader_0_1
65
+ } from "../../graphics/ecs/camera/topdown/TopDownCameraControllerSerializationUpgrader_0_1.js";
66
+ import {
67
+ TopDownCameraLanderSerializationAdapter
68
+ } from "../../graphics/ecs/camera/topdown/TopDownCameraLander.js";
69
+ import { Decal } from "../../graphics/ecs/decal/v2/Decal.js";
70
+ import { DecalSerializationAdapter } from "../../graphics/ecs/decal/v2/DecalSerializationAdapter.js";
71
+ import {
72
+ DecalSerializationUpgrader_0_1
73
+ } from "../../graphics/ecs/decal/v2/DecalSerializationUpgrader_0_1.js";
74
+ import Highlight from "../../graphics/ecs/highlight/Highlight.js";
75
+ import { HighlightSerializationAdapter } from "../../graphics/ecs/highlight/HighlightSerializationAdapter.js";
76
+ import {
77
+ HighlightSerializationUpgrader_0_1
78
+ } from "../../graphics/ecs/highlight/HighlightSerializationUpgrader_0_1.js";
79
+ import { LightSerializationAdapter } from "../../graphics/ecs/light/LightSerializationAdapter.js";
80
+ import {
81
+ SGMeshSerializationAdapter
82
+ } from "../../graphics/ecs/mesh-v2/aggregate/serialization/SGMeshSerializationAdapter.js";
83
+ import Water from "../../graphics/ecs/water/Water.js";
84
+ import { WaterSerializationAdapter } from "../../graphics/ecs/water/WaterSerializationAdapter.js";
85
+ import { WaterSerializationUpgrader_0_1 } from "../../graphics/ecs/water/WaterSerializationUpgrader_0_1.js";
86
+ import { ParticleEmitter } from "../../graphics/particles/particular/engine/emitter/ParticleEmitter.js";
87
+ import {
88
+ ParticleEmitterSerializationAdapter
89
+ } from "../../graphics/particles/particular/engine/emitter/serde/ParticleEmitterSerializationAdapter.js";
90
+ import {
91
+ ParticleEmitterSerializationUpgrader_0_1
92
+ } from "../../graphics/particles/particular/engine/emitter/serde/ParticleEmitterSerializationUpgrader_0_1.js";
93
+ import { GridPosition2Transform } from "../../grid/grid2transform/GridPosition2Transform.js";
94
+ import {
95
+ GridPosition2TransformSerializationAdapter
96
+ } from "../../grid/grid2transform/GridPosition2TransformSerializationAdapter.js";
97
+ import {
98
+ GridPosition2TransformSerializationUpgrader_0_1
99
+ } from "../../grid/grid2transform/GridPosition2TransformSerializationUpgrader_0_1.js";
100
+ import { GridObstacleSerializationAdapter } from "../../grid/obstacle/GridObstacleSerializationAdapter.js";
101
+ import GridPosition from "../../grid/position/GridPosition.js";
102
+ import { GridPositionSerializationAdapter } from "../../grid/position/GridPositionSerializationAdapter.js";
103
+ import {
104
+ GridPositionSerializationUpdater_0_1
105
+ } from "../../grid/position/GridPositionSerializationUpdater_0_1.js";
106
+ import {
107
+ ParallelBehaviorSerializationAdapter
108
+ } from "../../intelligence/behavior/composite/ParallelBehaviorSerializationAdapter.js";
109
+ import {
110
+ SequenceBehaviorSerializationAdapter
111
+ } from "../../intelligence/behavior/composite/SequenceBehaviorSerializationAdapter.js";
112
+ import {
113
+ InvertStatusBehaviorSerializationAdapter
114
+ } from "../../intelligence/behavior/decorator/InvertStatusBehaviorSerializationAdapter.js";
115
+ import {
116
+ RepeatBehaviorSerializationAdapter
117
+ } from "../../intelligence/behavior/decorator/RepeatBehaviorSerializationAdapter.js";
118
+ import {
119
+ BehaviorComponentSerializationAdapter
120
+ } from "../../intelligence/behavior/ecs/BehaviorComponentSerializationAdapter.js";
121
+ import {
122
+ WaitForEventBehaviorSerializationAdapter
123
+ } from "../../intelligence/behavior/ecs/WaitForEventBehaviorSerializationAdapter.js";
124
+ import {
125
+ FailingBehaviorSerializationAdapter
126
+ } from "../../intelligence/behavior/primitive/FailingBehaviorSerializationAdapter.js";
127
+ import {
128
+ SucceedingBehaviorSerializationAdapter
129
+ } from "../../intelligence/behavior/primitive/SucceedingBehaviorSerializationAdapter.js";
130
+ import { BlackboardSerializationAdapter } from "../../intelligence/blackboard/BlackboardSerializationAdapter.js";
131
+ import Path from "../../navigation/ecs/components/Path.js";
132
+ import { PathSerializationAdapter } from "../../navigation/ecs/components/PathSerializationAdapter.js";
133
+ import {
134
+ PathSerializationUpgrader_0_1
135
+ } from "../../navigation/ecs/components/PathSerializationUpgrader_0_1.js";
136
+ import {
137
+ PathSerializationUpgrader_1_2
138
+ } from "../../navigation/ecs/components/PathSerializationUpgrader_1_2.js";
139
+ import {
140
+ PathSerializationUpgrader_2_3
141
+ } from "../../navigation/ecs/components/PathSerializationUpgrader_2_3.js";
142
+ import PathFollower from "../../navigation/ecs/path_following/PathFollower.js";
143
+ import {
144
+ PathFollowerSerializationAdapter
145
+ } from "../../navigation/ecs/path_following/PathFollowerSerializationAdapter.js";
146
+ import {
147
+ PathFollowerSerializationUpgrader_0_1
148
+ } from "../../navigation/ecs/path_following/PathFollowerSerializationUpgrader_0_1.js";
149
+ import {
150
+ PathFollowerSerializationUpgrader_1_2
151
+ } from "../../navigation/ecs/path_following/PathFollowerSerializationUpgrader_1_2.js";
152
+ import {
153
+ PathFollowerSerializationUpgrader_2_3
154
+ } from "../../navigation/ecs/path_following/PathFollowerSerializationUpgrader_2_3.js";
155
+ import {
156
+ PathFollowerSerializationUpgrader_3_4
157
+ } from "../../navigation/ecs/path_following/PathFollowerSerializationUpgrader_3_4.js";
158
+ import { SoundEmitter } from "../../sound/sopra/legacy/SoundEmitter.js";
159
+ import { SoundEmitterSerializationAdapter } from "../../sound/sopra/legacy/SoundEmitterSerializationAdapter.js";
160
+ import {
161
+ SoundEmitterSerializationUpgrader_0_1
162
+ } from "../../sound/sopra/legacy/SoundEmitterSerializationUpgrader_0_1.js";
163
+ import {
164
+ SoundEmitterSerializationUpgrader_1_2
165
+ } from "../../sound/sopra/legacy/SoundEmitterSerializationUpgrader_1_2.js";
166
+ import { SoundControllerSerializationAdapter } from "../../sound/sopra/legacy/SoundController.js";
167
+ import { SoundListenerSerializationAdapter } from "../../sound/ecs/SoundListener.js";
168
+ import { AudioEmitterSerializationAdapter } from "../../sound/ecs/audio/AudioEmitterSerializationAdapter.js";
169
+ import {
170
+ AudioEventTriggerSerializationAdapter
171
+ } from "../../sound/ecs/trigger/AudioEventTriggerSerializationAdapter.js";
172
+ import {
173
+ populateAcousticSerializationRegistry
174
+ } from "../../sound/simulation/serialization/populateAcousticSerializationRegistry.js";
175
+ import {
176
+ populateSopraSerializationRegistry
177
+ } from "../../sound/sopra/serialization/populateSopraSerializationRegistry.js";
178
+
179
+ /**
180
+ * Registers the serialization adapters and upgraders for every engine-side component type.
181
+ *
182
+ * This is the single source of truth for engine serialization coverage: hosts layer their own
183
+ * component adapters on top and must not re-register engine types (the registry keeps the first
184
+ * registration and warns on duplicates).
185
+ *
186
+ * @param {BinarySerializationRegistry} registry
187
+ */
188
+ export function populateEngineSerializationRegistry(registry) {
189
+
190
+ // Value types the component adapters below reach through the engine's BinaryObjectSerializationAdapter,
191
+ // which is built from THIS registry: an AudioEmitter's EventDescription owns a polymorphic clip graph
192
+ // (sample / sequence / random / switch / blend) plus effects, and the acoustic components carry
193
+ // materials / media / directivity. Without these the object adapter cannot name those types and an
194
+ // AudioEmitter cannot be written at all. Registered first so a host that also calls one of them gets the
195
+ // engine's registration rather than a duplicate warning.
196
+ populateSopraSerializationRegistry(registry);
197
+ populateAcousticSerializationRegistry(registry);
198
+
199
+ registry.registerAdapters([
200
+ new TransformSerializationAdapter(),
201
+ new NameSerializationAdapter(),
202
+ new TeamSerializationAdapter(),
203
+ new PathFollowerSerializationAdapter(),
204
+ new PathSerializationAdapter(),
205
+ new TagSerializationAdapter(),
206
+ new ParticleEmitterSerializationAdapter(),
207
+ new SoundEmitterSerializationAdapter(),
208
+ new SoundControllerSerializationAdapter(),
209
+ new SoundListenerSerializationAdapter(),
210
+ new AudioEmitterSerializationAdapter(),
211
+ new AudioEventTriggerSerializationAdapter(),
212
+ new AnimationSerializationAdapter(),
213
+ new SGMeshSerializationAdapter(),
214
+ new TopDownCameraControllerSerializationAdapter(),
215
+ new TopDownCameraLanderSerializationAdapter(),
216
+ new CameraSerializationAdapter(),
217
+ new ClingToTerrainSerializationAdapter(),
218
+ new TerrainSerializationAdapter(),
219
+ new WaterSerializationAdapter(),
220
+ new GridPosition2TransformSerializationAdapter(),
221
+ new GridObstacleSerializationAdapter(),
222
+ new GridPositionSerializationAdapter(),
223
+ new HighlightSerializationAdapter(),
224
+ new LightSerializationAdapter(),
225
+ new AnimationControllerSerializationAdapter(),
226
+ new PropertySetSerializationAdapter(),
227
+ new FogOfWarSerializationAdapter(),
228
+ new FogOfWarRevealerSerializationAdapter(),
229
+ new BlackboardSerializationAdapter(),
230
+ new SerializationMetadataSerializationAdapter(),
231
+ new ViewportPositionSerializationAdapter(),
232
+ new GUIElementSerializationAdapter(),
233
+ new HeadsUpDisplaySerializationAdapter(),
234
+ new BehaviorComponentSerializationAdapter(),
235
+ new InverseKinematicsSerializationAdapter(),
236
+ new TooltipComponentSerializationAdapter(),
237
+ new DecalSerializationAdapter(),
238
+ new PickableSerializationAdapter(),
239
+ new VolumetricLightMapSerializationAdapter(),
240
+ new ParticipatingMediaSerializationAdapter()
241
+ ]);
242
+
243
+ // behaviors
244
+ registry.registerAdapters([
245
+ //primitives
246
+ new FailingBehaviorSerializationAdapter(),
247
+ new SucceedingBehaviorSerializationAdapter(),
248
+
249
+ //composite
250
+ new SequenceBehaviorSerializationAdapter(),
251
+ new ParallelBehaviorSerializationAdapter(),
252
+
253
+ //decorators
254
+ new InvertStatusBehaviorSerializationAdapter(),
255
+ new RepeatBehaviorSerializationAdapter(),
256
+
257
+ //ECS
258
+ new WaitForEventBehaviorSerializationAdapter()
259
+ ]);
260
+
261
+ //upgraders
262
+ registry.registerUpgrader(GridPosition2Transform.typeName, new GridPosition2TransformSerializationUpgrader_0_1());
263
+ registry.registerUpgrader(GridPosition.typeName, new GridPositionSerializationUpdater_0_1());
264
+ registry.registerUpgrader(Transform.typeName, new TransformSerializationUpgrader_0_1());
265
+ registry.registerUpgrader(Tag.typeName, new TagSerializationUpgrader_0_1());
266
+ registry.registerUpgrader(Decal.typeName, new DecalSerializationUpgrader_0_1());
267
+
268
+ registry.registerUpgrader(FogOfWar.typeName, new FogOfWarSerializationUpdater_0_1());
269
+
270
+ registry.registerUpgrader(Camera.typeName, new CameraSerializationUpgrader_0_1());
271
+
272
+ registry.registerUpgrader(Path.typeName, new PathSerializationUpgrader_0_1());
273
+ registry.registerUpgrader(Path.typeName, new PathSerializationUpgrader_1_2());
274
+ registry.registerUpgrader(Path.typeName, new PathSerializationUpgrader_2_3());
275
+
276
+ registry.registerUpgrader(PathFollower.typeName, new PathFollowerSerializationUpgrader_0_1());
277
+ registry.registerUpgrader(PathFollower.typeName, new PathFollowerSerializationUpgrader_1_2());
278
+ registry.registerUpgrader(PathFollower.typeName, new PathFollowerSerializationUpgrader_2_3());
279
+ registry.registerUpgrader(PathFollower.typeName, new PathFollowerSerializationUpgrader_3_4());
280
+
281
+ registry.registerUpgrader(Terrain.typeName, new TerrainSerializationUpgrader_0_1());
282
+ registry.registerUpgrader(Terrain.typeName, new TerrainSerializationUpgrader_1_2());
283
+ registry.registerUpgrader(Highlight.typeName, new HighlightSerializationUpgrader_0_1());
284
+ registry.registerUpgrader(Water.typeName, new WaterSerializationUpgrader_0_1());
285
+
286
+ registry.registerUpgrader(SoundEmitter.typeName, new SoundEmitterSerializationUpgrader_0_1());
287
+ registry.registerUpgrader(SoundEmitter.typeName, new SoundEmitterSerializationUpgrader_1_2());
288
+
289
+ registry.registerUpgrader(ParticleEmitter.typeName, new ParticleEmitterSerializationUpgrader_0_1());
290
+
291
+ registry.registerUpgrader(TopDownCameraController.typeName, new TopDownCameraControllerSerializationUpgrader_0_1());
292
+
293
+ registry.registerUpgrader(ClingToTerrain.typeName, new ClingToTerrainSerializationUpgrader_0_1());
294
+ }