@woosh/meep-engine 2.61.0 → 2.62.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 (36) hide show
  1. package/build/meep.cjs +234 -212
  2. package/build/meep.min.js +1 -1
  3. package/build/meep.module.js +234 -212
  4. package/package.json +1 -1
  5. package/src/core/bvh2/BinaryNode.js +16 -13
  6. package/src/core/bvh2/LeafNode.js +6 -3
  7. package/src/core/bvh2/bvh3/query/bvh_query_user_data_overlaps_sphere.js +81 -0
  8. package/src/core/geom/3d/aabb/AABB3.js +24 -36
  9. package/src/core/geom/3d/aabb/aabb3_array_compute_from_sphere.js +22 -0
  10. package/src/core/geom/3d/aabb/aabb3_array_intersects_sphere.js +22 -0
  11. package/src/core/geom/3d/aabb/aabb3_array_intersects_sphere_array.js +11 -0
  12. package/src/core/geom/3d/aabb/aabb3_signed_distance_to_aabb3.js +28 -0
  13. package/src/core/geom/3d/aabb/serializeAABB3Quantized16Uint.js +19 -10
  14. package/src/core/geom/3d/tetrahedra/delaunay/Cavity.js +3 -4
  15. package/src/engine/ecs/foliage/ecs/Foliage2System.js +3 -0
  16. package/src/engine/ecs/foliage/ecs/InstancedMeshComponent.js +4 -1
  17. package/src/engine/ecs/foliage/ecs/convertInstancedMeshComponents2Entities.js +64 -0
  18. package/src/engine/ecs/foliage/ecs/{InstancedMeshUtils.js → optimizeIndividualMeshesEntitiesToInstances.js} +11 -70
  19. package/src/engine/graphics/camera/testClippingPlaneComputation.js +25 -27
  20. package/src/engine/graphics/ecs/path/testPathDisplaySystem.js +49 -52
  21. package/src/engine/graphics/ecs/path/tube/prototypeAnimatedPathMask.js +40 -42
  22. package/src/engine/graphics/particles/ecs/ParticleEmitterSystem.js +43 -25
  23. package/src/engine/graphics/particles/particular/engine/ParticularEngine.js +10 -6
  24. package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.js +37 -41
  25. package/src/engine/graphics/particles/particular/engine/utils/volume/prototypeParticleVolume.js +44 -46
  26. package/src/engine/graphics/render/buffer/buffers/prototypeNormalFrameBuffer.js +24 -26
  27. package/src/engine/graphics/render/forward_plus/plugin/ptototypeFPPlugin.js +40 -42
  28. package/src/engine/graphics/render/visibility/hiz/prototypeHiZ.js +36 -38
  29. package/src/engine/graphics/shadows/testShadowMapRendering.js +19 -19
  30. package/src/engine/sound/dB2Volume.js +8 -0
  31. package/src/engine/sound/ecs/emitter/SoundEmitter.js +125 -99
  32. package/src/engine/sound/ecs/emitter/SoundEmitterComponentContext.js +4 -42
  33. package/src/engine/sound/ecs/emitter/SoundEmitterSystem.js +31 -121
  34. package/src/engine/sound/volume2dB.js +8 -0
  35. package/src/generation/theme/ThemeEngine.js +19 -53
  36. package/src/engine/graphics/geometry/bvh/buffered/BVHFromBufferGeometry.js +0 -133
@@ -1,14 +1,14 @@
1
- import {mat4} from "gl-matrix";
2
- import {LineBasicMaterial} from "three";
3
- import {TransformControls} from "three/examples/jsm/controls/TransformControls.js";
4
- import {makeEngineOptionsModel} from "../../../../../../../../../model/game/options/makeEngineOptionsModel.js";
5
- import {enableEditor} from "../../../../../../../../editor/enableEditor.js";
6
- import {makeHelperBoxGeometry} from "../../../../../../../../editor/process/symbolic/makeHelperBoxGeometry.js";
7
- import {AABB3} from "../../../../../../../core/geom/3d/aabb/AABB3.js";
8
- import {TransformedShape3D} from "../../../../../../../core/geom/3d/shape/TransformedShape3D.js";
9
- import {UnionShape3D} from "../../../../../../../core/geom/3d/shape/UnionShape3D.js";
10
- import {UnitCubeShape3D} from "../../../../../../../core/geom/3d/shape/UnitCubeShape3D.js";
11
- import {UnitSphereShape3D} from "../../../../../../../core/geom/3d/shape/UnitSphereShape3D.js";
1
+ import { mat4 } from "gl-matrix";
2
+ import { LineBasicMaterial } from "three";
3
+ import { TransformControls } from "three/examples/jsm/controls/TransformControls.js";
4
+ import { makeEngineOptionsModel } from "../../../../../../../../../model/game/options/makeEngineOptionsModel.js";
5
+ import { enableEditor } from "../../../../../../../../editor/enableEditor.js";
6
+ import { makeHelperBoxGeometry } from "../../../../../../../../editor/process/symbolic/makeHelperBoxGeometry.js";
7
+ import { AABB3 } from "../../../../../../../core/geom/3d/aabb/AABB3.js";
8
+ import { TransformedShape3D } from "../../../../../../../core/geom/3d/shape/TransformedShape3D.js";
9
+ import { UnionShape3D } from "../../../../../../../core/geom/3d/shape/UnionShape3D.js";
10
+ import { UnitCubeShape3D } from "../../../../../../../core/geom/3d/shape/UnitCubeShape3D.js";
11
+ import { UnitSphereShape3D } from "../../../../../../../core/geom/3d/shape/UnitSphereShape3D.js";
12
12
  import {
13
13
  shape_to_visual_entity,
14
14
  SHAPE_VISUAL_ENTITY_TAG
@@ -16,19 +16,18 @@ import {
16
16
  import Vector1 from "../../../../../../../core/geom/Vector1.js";
17
17
  import Vector2 from "../../../../../../../core/geom/Vector2.js";
18
18
  import Vector3 from "../../../../../../../core/geom/Vector3.js";
19
- import {clamp01} from "../../../../../../../core/math/clamp01.js";
20
- import {pingpong} from "../../../../../../../core/math/pingpong.js";
21
- import {randomFloatBetween} from "../../../../../../../core/math/random/randomFloatBetween.js";
22
- import {randomFromArray} from "../../../../../../../core/math/random/randomFromArray.js";
23
- import {seededRandom} from "../../../../../../../core/math/random/seededRandom.js";
24
- import {computeStatisticalMean} from "../../../../../../../core/math/statistics/computeStatisticalMean.js";
19
+ import { clamp01 } from "../../../../../../../core/math/clamp01.js";
20
+ import { pingpong } from "../../../../../../../core/math/pingpong.js";
21
+ import { randomFloatBetween } from "../../../../../../../core/math/random/randomFloatBetween.js";
22
+ import { randomFromArray } from "../../../../../../../core/math/random/randomFromArray.js";
23
+ import { seededRandom } from "../../../../../../../core/math/random/seededRandom.js";
24
+ import { computeStatisticalMean } from "../../../../../../../core/math/statistics/computeStatisticalMean.js";
25
25
  import ButtonView from "../../../../../../../view/elements/button/ButtonView.js";
26
- import {CanvasView} from "../../../../../../../view/elements/CanvasView.js";
26
+ import { CanvasView } from "../../../../../../../view/elements/CanvasView.js";
27
27
  import EmptyView from "../../../../../../../view/elements/EmptyView.js";
28
- import {AttachmentSystem} from "../../../../../../ecs/attachment/AttachmentSystem.js";
28
+ import { AttachmentSystem } from "../../../../../../ecs/attachment/AttachmentSystem.js";
29
29
  import Entity from "../../../../../../ecs/Entity.js";
30
- import {Foliage2System} from "../../../../../../ecs/foliage/ecs/Foliage2System.js";
31
- import {pick} from "../../../../../../ecs/grid/pick.js";
30
+ import { pick } from "../../../../../../ecs/grid/pick.js";
32
31
  import GUIElement from "../../../../../../ecs/gui/GUIElement.js";
33
32
  import GUIElementSystem from "../../../../../../ecs/gui/GUIElementSystem.js";
34
33
  import HeadsUpDisplay from "../../../../../../ecs/gui/hud/HeadsUpDisplay.js";
@@ -41,44 +40,44 @@ import RenderSystem from "../../../../../../ecs/systems/RenderSystem.js";
41
40
  import TagSystem from "../../../../../../ecs/systems/TagSystem.js";
42
41
  import ClingToTerrainSystem from "../../../../../../ecs/terrain/ecs/cling/ClingToTerrainSystem.js";
43
42
  import TerrainSystem from "../../../../../../ecs/terrain/ecs/TerrainSystem.js";
44
- import {obtainTerrain} from "../../../../../../ecs/terrain/util/obtainTerrain.js";
45
- import {Transform} from "../../../../../../ecs/transform/Transform.js";
46
- import {EngineConfiguration} from "../../../../../../EngineConfiguration.js";
47
- import {EngineHarness} from "../../../../../../EngineHarness.js";
43
+ import { obtainTerrain } from "../../../../../../ecs/terrain/util/obtainTerrain.js";
44
+ import { Transform } from "../../../../../../ecs/transform/Transform.js";
45
+ import { EngineConfiguration } from "../../../../../../EngineConfiguration.js";
46
+ import { EngineHarness } from "../../../../../../EngineHarness.js";
48
47
  import InputController from "../../../../../../input/ecs/components/InputController.js";
49
48
  import InputControllerSystem from "../../../../../../input/ecs/systems/InputControllerSystem.js";
50
- import {InputSystem} from "../../../../../../input/ecs/systems/InputSystem.js";
51
- import {RepeatBehavior} from "../../../../../../intelligence/behavior/decorator/RepeatBehavior.js";
52
- import {BehaviorComponent} from "../../../../../../intelligence/behavior/ecs/BehaviorComponent.js";
53
- import {BehaviorSystem} from "../../../../../../intelligence/behavior/ecs/BehaviorSystem.js";
54
- import {ActionBehavior} from "../../../../../../intelligence/behavior/primitive/ActionBehavior.js";
55
- import {SoundEmitterSystem} from "../../../../../../sound/ecs/emitter/SoundEmitterSystem.js";
49
+ import { InputSystem } from "../../../../../../input/ecs/systems/InputSystem.js";
50
+ import { RepeatBehavior } from "../../../../../../intelligence/behavior/decorator/RepeatBehavior.js";
51
+ import { BehaviorComponent } from "../../../../../../intelligence/behavior/ecs/BehaviorComponent.js";
52
+ import { BehaviorSystem } from "../../../../../../intelligence/behavior/ecs/BehaviorSystem.js";
53
+ import { ActionBehavior } from "../../../../../../intelligence/behavior/primitive/ActionBehavior.js";
54
+ import { SoundEmitterSystem } from "../../../../../../sound/ecs/emitter/SoundEmitterSystem.js";
56
55
  import SoundControllerSystem from "../../../../../../sound/ecs/SoundControllerSystem.js";
57
56
  import SoundListenerSystem from "../../../../../../sound/ecs/SoundListenerSystem.js";
58
- import {CameraSystem} from "../../../../../ecs/camera/CameraSystem.js";
57
+ import { CameraSystem } from "../../../../../ecs/camera/CameraSystem.js";
59
58
  import TopDownCameraController from "../../../../../ecs/camera/topdown/TopDownCameraController.js";
60
59
  import TopDownCameraControllerSystem from "../../../../../ecs/camera/topdown/TopDownCameraControllerSystem.js";
61
60
  import MeshHighlightSystem from "../../../../../ecs/highlight/system/MeshHighlightSystem.js";
62
61
  import LightSystem from "../../../../../ecs/light/LightSystem.js";
63
- import {DrawMode} from "../../../../../ecs/mesh-v2/DrawMode.js";
64
- import {ShadedGeometry} from "../../../../../ecs/mesh-v2/ShadedGeometry.js";
65
- import {ShadedGeometrySystem} from "../../../../../ecs/mesh-v2/ShadedGeometrySystem.js";
62
+ import { DrawMode } from "../../../../../ecs/mesh-v2/DrawMode.js";
63
+ import { ShadedGeometry } from "../../../../../ecs/mesh-v2/ShadedGeometry.js";
64
+ import { ShadedGeometrySystem } from "../../../../../ecs/mesh-v2/ShadedGeometrySystem.js";
66
65
  import Mesh from "../../../../../ecs/mesh/Mesh.js";
67
- import {MeshSystem} from "../../../../../ecs/mesh/MeshSystem.js";
68
- import {PathDisplaySystem} from "../../../../../ecs/path/PathDisplaySystem.js";
66
+ import { MeshSystem } from "../../../../../ecs/mesh/MeshSystem.js";
67
+ import { PathDisplaySystem } from "../../../../../ecs/path/PathDisplaySystem.js";
69
68
  import Trail2DSystem from "../../../../../ecs/trail2d/Trail2DSystem.js";
70
- import {load_and_set_cubemap_v0} from "../../../../../load_and_set_cubemap_v0.js";
69
+ import { load_and_set_cubemap_v0 } from "../../../../../load_and_set_cubemap_v0.js";
71
70
  import {
72
71
  AmbientOcclusionPostProcessEffect
73
72
  } from "../../../../../render/buffer/simple-fx/ao/AmbientOcclusionPostProcessEffect.js";
74
73
  import convertSampler2D2Canvas from "../../../../../texture/sampler/Sampler2D2Canvas.js";
75
- import {threeUpdateTransform} from "../../../../../util/threeUpdateTransform.js";
76
- import {ParticleEmitterSystem} from "../../../../ecs/ParticleEmitterSystem.js";
77
- import {ParameterLookupTable} from "../../parameter/ParameterLookupTable.js";
78
- import {RGBA_LUT_HEATMAP_IR} from "../../parameter/sample/RGBA_LUT_HEATMAP_IR.js";
79
- import {lut_to_sampler} from "./lut_to_sampler.js";
80
- import {ParticleVolume} from "./ParticleVolume.js";
81
- import {SamplingFunctionKind} from "./SamplingFunctionKind.js";
74
+ import { threeUpdateTransform } from "../../../../../util/threeUpdateTransform.js";
75
+ import { ParticleEmitterSystem } from "../../../../ecs/ParticleEmitterSystem.js";
76
+ import { ParameterLookupTable } from "../../parameter/ParameterLookupTable.js";
77
+ import { RGBA_LUT_HEATMAP_IR } from "../../parameter/sample/RGBA_LUT_HEATMAP_IR.js";
78
+ import { lut_to_sampler } from "./lut_to_sampler.js";
79
+ import { ParticleVolume } from "./ParticleVolume.js";
80
+ import { SamplingFunctionKind } from "./SamplingFunctionKind.js";
82
81
 
83
82
  const engineHarness = new EngineHarness();
84
83
 
@@ -112,7 +111,6 @@ function makeConfig(engine) {
112
111
  new ClingToTerrainSystem(),
113
112
  new TerrainSystem(graphics, assetManager),
114
113
  new Trail2DSystem(engine),
115
- new Foliage2System(assetManager, graphics),
116
114
  new ViewportPositionSystem(graphics.viewport.size),
117
115
  new InputControllerSystem(devices),
118
116
  new InputSystem(devices),
@@ -9,22 +9,21 @@ import {
9
9
  UniformsUtils,
10
10
  WebGLRenderTarget
11
11
  } from "three";
12
- import {CopyShader} from "three/examples/jsm/shaders/CopyShader.js";
12
+ import { CopyShader } from "three/examples/jsm/shaders/CopyShader.js";
13
13
  import FacingDirectionSystem from "../../../../../../../model/game/ecs/system/FacingDirectionSystem.js";
14
- import {makeEngineOptionsModel} from "../../../../../../../model/game/options/makeEngineOptionsModel.js";
15
- import {enableEditor} from "../../../../../../editor/enableEditor.js";
14
+ import { makeEngineOptionsModel } from "../../../../../../../model/game/options/makeEngineOptionsModel.js";
15
+ import { enableEditor } from "../../../../../../editor/enableEditor.js";
16
16
  import Vector2 from "../../../../../core/geom/Vector2.js";
17
17
  import Vector3 from "../../../../../core/geom/Vector3.js";
18
- import {CanvasView} from "../../../../../view/elements/CanvasView.js";
19
- import {AttachmentSystem} from "../../../../ecs/attachment/AttachmentSystem.js";
18
+ import { CanvasView } from "../../../../../view/elements/CanvasView.js";
19
+ import { AttachmentSystem } from "../../../../ecs/attachment/AttachmentSystem.js";
20
20
  import Entity from "../../../../ecs/Entity.js";
21
- import {Foliage2System} from "../../../../ecs/foliage/ecs/Foliage2System.js";
22
- import {FogOfWarRevealerSystem} from "../../../../ecs/fow/FogOfWarRevealerSystem.js";
23
- import {FogOfWarSystem} from "../../../../ecs/fow/FogOfWarSystem.js";
21
+ import { FogOfWarRevealerSystem } from "../../../../ecs/fow/FogOfWarRevealerSystem.js";
22
+ import { FogOfWarSystem } from "../../../../ecs/fow/FogOfWarSystem.js";
24
23
  import GUIElementSystem from "../../../../ecs/gui/GUIElementSystem.js";
25
24
  import HeadsUpDisplaySystem from "../../../../ecs/gui/hud/HeadsUpDisplaySystem.js";
26
25
  import ViewportPositionSystem from "../../../../ecs/gui/position/ViewportPositionSystem.js";
27
- import {InverseKinematicsSystem} from "../../../../ecs/ik/InverseKinematicsSystem.js";
26
+ import { InverseKinematicsSystem } from "../../../../ecs/ik/InverseKinematicsSystem.js";
28
27
  import AnimationSystem from "../../../../ecs/systems/AnimationSystem.js";
29
28
  import MotionSystem from "../../../../ecs/systems/MotionSystem.js";
30
29
  import RenderSystem from "../../../../ecs/systems/RenderSystem.js";
@@ -34,34 +33,34 @@ import TagSystem from "../../../../ecs/systems/TagSystem.js";
34
33
  import TimerSystem from "../../../../ecs/systems/TimerSystem.js";
35
34
  import ClingToTerrainSystem from "../../../../ecs/terrain/ecs/cling/ClingToTerrainSystem.js";
36
35
  import TerrainSystem from "../../../../ecs/terrain/ecs/TerrainSystem.js";
37
- import {Transform} from "../../../../ecs/transform/Transform.js";
38
- import {EngineConfiguration} from "../../../../EngineConfiguration.js";
39
- import {EngineHarness} from "../../../../EngineHarness.js";
40
- import {GridPosition2TransformSystem} from "../../../../grid/grid2transform/GridPosition2TransformSystem.js";
36
+ import { Transform } from "../../../../ecs/transform/Transform.js";
37
+ import { EngineConfiguration } from "../../../../EngineConfiguration.js";
38
+ import { EngineHarness } from "../../../../EngineHarness.js";
39
+ import { GridPosition2TransformSystem } from "../../../../grid/grid2transform/GridPosition2TransformSystem.js";
41
40
  import GridPositionSystem from "../../../../grid/position/GridPositionSystem.js";
42
- import {Transform2GridPositionSystem} from "../../../../grid/transform2grid/Transform2GridPositionSystem.js";
41
+ import { Transform2GridPositionSystem } from "../../../../grid/transform2grid/Transform2GridPositionSystem.js";
43
42
  import InputControllerSystem from "../../../../input/ecs/systems/InputControllerSystem.js";
44
- import {InputSystem} from "../../../../input/ecs/systems/InputSystem.js";
45
- import {BehaviorSystem} from "../../../../intelligence/behavior/ecs/BehaviorSystem.js";
43
+ import { InputSystem } from "../../../../input/ecs/systems/InputSystem.js";
44
+ import { BehaviorSystem } from "../../../../intelligence/behavior/ecs/BehaviorSystem.js";
46
45
  import PathFollowingSystem from "../../../../navigation/ecs/path_following/PathFollowingSystem.js";
47
- import {SoundEmitterSystem} from "../../../../sound/ecs/emitter/SoundEmitterSystem.js";
46
+ import { SoundEmitterSystem } from "../../../../sound/ecs/emitter/SoundEmitterSystem.js";
48
47
  import SoundControllerSystem from "../../../../sound/ecs/SoundControllerSystem.js";
49
48
  import SoundListenerSystem from "../../../../sound/ecs/SoundListenerSystem.js";
50
49
  import AnimationControllerSystem from "../../../ecs/animation/AnimationControllerSystem.js";
51
- import {AnimationGraphSystem} from "../../../ecs/animation/animator/AnimationGraphSystem.js";
52
- import {CameraSystem} from "../../../ecs/camera/CameraSystem.js";
50
+ import { AnimationGraphSystem } from "../../../ecs/animation/animator/AnimationGraphSystem.js";
51
+ import { CameraSystem } from "../../../ecs/camera/CameraSystem.js";
53
52
  import TopDownCameraControllerSystem from "../../../ecs/camera/topdown/TopDownCameraControllerSystem.js";
54
- import {TopDownCameraLanderSystem} from "../../../ecs/camera/topdown/TopDownCameraLanderSystem.js";
53
+ import { TopDownCameraLanderSystem } from "../../../ecs/camera/topdown/TopDownCameraLanderSystem.js";
55
54
  import MeshHighlightSystem from "../../../ecs/highlight/system/MeshHighlightSystem.js";
56
55
  import LightSystem from "../../../ecs/light/LightSystem.js";
57
56
  import Mesh from "../../../ecs/mesh/Mesh.js";
58
- import {MeshSystem} from "../../../ecs/mesh/MeshSystem.js";
59
- import {PathDisplaySystem} from "../../../ecs/path/PathDisplaySystem.js";
57
+ import { MeshSystem } from "../../../ecs/mesh/MeshSystem.js";
58
+ import { PathDisplaySystem } from "../../../ecs/path/PathDisplaySystem.js";
60
59
  import Trail2DSystem from "../../../ecs/trail2d/Trail2DSystem.js";
61
60
  import WaterSystem from "../../../ecs/water/WaterSystem.js";
62
- import {load_and_set_cubemap_v0} from "../../../load_and_set_cubemap_v0.js";
63
- import {StandardFrameBuffers} from "../../../StandardFrameBuffers.js";
64
- import {AmbientOcclusionPostProcessEffect} from "../simple-fx/ao/AmbientOcclusionPostProcessEffect.js";
61
+ import { load_and_set_cubemap_v0 } from "../../../load_and_set_cubemap_v0.js";
62
+ import { StandardFrameBuffers } from "../../../StandardFrameBuffers.js";
63
+ import { AmbientOcclusionPostProcessEffect } from "../simple-fx/ao/AmbientOcclusionPostProcessEffect.js";
65
64
 
66
65
  const engineHarness = new EngineHarness();
67
66
 
@@ -103,7 +102,6 @@ function makeConfig(engine) {
103
102
  new TerrainSystem(graphics, assetManager),
104
103
  new WaterSystem(graphics),
105
104
  new Trail2DSystem(engine),
106
- new Foliage2System(assetManager, graphics),
107
105
  new ViewportPositionSystem(graphics.viewport.size),
108
106
  new GridPosition2TransformSystem(),
109
107
  new Transform2GridPositionSystem(),
@@ -8,31 +8,30 @@ import {
8
8
  TorusKnotBufferGeometry
9
9
  } from "three";
10
10
  import FacingDirectionSystem from "../../../../../../../model/game/ecs/system/FacingDirectionSystem.js";
11
- import {makeEngineOptionsModel} from "../../../../../../../model/game/options/makeEngineOptionsModel.js";
12
- import {OrbitingBehavior} from "../../../../../../../model/game/util/behavior/OrbitingBehavior.js";
13
- import {enableEditor} from "../../../../../../editor/enableEditor.js";
14
- import {makeHelperSphereGeometry} from "../../../../../../editor/process/symbolic/makeHelperSphereGeometry.js";
15
- import {parse_color} from "../../../../../core/color/parse_color.js";
11
+ import { makeEngineOptionsModel } from "../../../../../../../model/game/options/makeEngineOptionsModel.js";
12
+ import { OrbitingBehavior } from "../../../../../../../model/game/util/behavior/OrbitingBehavior.js";
13
+ import { enableEditor } from "../../../../../../editor/enableEditor.js";
14
+ import { makeHelperSphereGeometry } from "../../../../../../editor/process/symbolic/makeHelperSphereGeometry.js";
15
+ import { parse_color } from "../../../../../core/color/parse_color.js";
16
16
  import Vector2 from "../../../../../core/geom/Vector2.js";
17
17
  import Vector3 from "../../../../../core/geom/Vector3.js";
18
- import {randomFloatBetween} from "../../../../../core/math/random/randomFloatBetween.js";
19
- import {seededRandom} from "../../../../../core/math/random/seededRandom.js";
20
- import {GameAssetType} from "../../../../asset/GameAssetType.js";
21
- import {GLTFAssetLoader} from "../../../../asset/loaders/GLTFAssetLoader.js";
22
- import {ImageRGBADataLoader} from "../../../../asset/loaders/image/ImageRGBADataLoader.js";
23
- import {JsonAssetLoader} from "../../../../asset/loaders/JsonAssetLoader.js";
24
- import {TextureAssetLoader} from "../../../../asset/loaders/texture/TextureAssetLoader.js";
25
- import {AttachmentSystem} from "../../../../ecs/attachment/AttachmentSystem.js";
18
+ import { randomFloatBetween } from "../../../../../core/math/random/randomFloatBetween.js";
19
+ import { seededRandom } from "../../../../../core/math/random/seededRandom.js";
20
+ import { GameAssetType } from "../../../../asset/GameAssetType.js";
21
+ import { GLTFAssetLoader } from "../../../../asset/loaders/GLTFAssetLoader.js";
22
+ import { ImageRGBADataLoader } from "../../../../asset/loaders/image/ImageRGBADataLoader.js";
23
+ import { JsonAssetLoader } from "../../../../asset/loaders/JsonAssetLoader.js";
24
+ import { TextureAssetLoader } from "../../../../asset/loaders/texture/TextureAssetLoader.js";
25
+ import { AttachmentSystem } from "../../../../ecs/attachment/AttachmentSystem.js";
26
26
  import Entity from "../../../../ecs/Entity.js";
27
- import {Foliage2System} from "../../../../ecs/foliage/ecs/Foliage2System.js";
28
- import {FogOfWar} from "../../../../ecs/fow/FogOfWar.js";
29
- import {FogOfWarRevealer} from "../../../../ecs/fow/FogOfWarRevealer.js";
30
- import {FogOfWarRevealerSystem} from "../../../../ecs/fow/FogOfWarRevealerSystem.js";
31
- import {FogOfWarSystem} from "../../../../ecs/fow/FogOfWarSystem.js";
27
+ import { FogOfWar } from "../../../../ecs/fow/FogOfWar.js";
28
+ import { FogOfWarRevealer } from "../../../../ecs/fow/FogOfWarRevealer.js";
29
+ import { FogOfWarRevealerSystem } from "../../../../ecs/fow/FogOfWarRevealerSystem.js";
30
+ import { FogOfWarSystem } from "../../../../ecs/fow/FogOfWarSystem.js";
32
31
  import GUIElementSystem from "../../../../ecs/gui/GUIElementSystem.js";
33
32
  import HeadsUpDisplaySystem from "../../../../ecs/gui/hud/HeadsUpDisplaySystem.js";
34
33
  import ViewportPositionSystem from "../../../../ecs/gui/position/ViewportPositionSystem.js";
35
- import {InverseKinematicsSystem} from "../../../../ecs/ik/InverseKinematicsSystem.js";
34
+ import { InverseKinematicsSystem } from "../../../../ecs/ik/InverseKinematicsSystem.js";
36
35
  import Renderable from "../../../../ecs/renderable/Renderable.js";
37
36
  import AnimationSystem from "../../../../ecs/systems/AnimationSystem.js";
38
37
  import MotionSystem from "../../../../ecs/systems/MotionSystem.js";
@@ -44,42 +43,42 @@ import TimerSystem from "../../../../ecs/systems/TimerSystem.js";
44
43
  import Team from "../../../../ecs/team/Team.js";
45
44
  import ClingToTerrainSystem from "../../../../ecs/terrain/ecs/cling/ClingToTerrainSystem.js";
46
45
  import TerrainSystem from "../../../../ecs/terrain/ecs/TerrainSystem.js";
47
- import {obtainTerrain} from "../../../../ecs/terrain/util/obtainTerrain.js";
48
- import {Transform} from "../../../../ecs/transform/Transform.js";
49
- import {EngineConfiguration} from "../../../../EngineConfiguration.js";
50
- import {EngineHarness} from "../../../../EngineHarness.js";
51
- import {GridPosition2TransformSystem} from "../../../../grid/grid2transform/GridPosition2TransformSystem.js";
46
+ import { obtainTerrain } from "../../../../ecs/terrain/util/obtainTerrain.js";
47
+ import { Transform } from "../../../../ecs/transform/Transform.js";
48
+ import { EngineConfiguration } from "../../../../EngineConfiguration.js";
49
+ import { EngineHarness } from "../../../../EngineHarness.js";
50
+ import { GridPosition2TransformSystem } from "../../../../grid/grid2transform/GridPosition2TransformSystem.js";
52
51
  import GridPositionSystem from "../../../../grid/position/GridPositionSystem.js";
53
- import {Transform2GridPositionSystem} from "../../../../grid/transform2grid/Transform2GridPositionSystem.js";
52
+ import { Transform2GridPositionSystem } from "../../../../grid/transform2grid/Transform2GridPositionSystem.js";
54
53
  import InputControllerSystem from "../../../../input/ecs/systems/InputControllerSystem.js";
55
- import {InputSystem} from "../../../../input/ecs/systems/InputSystem.js";
56
- import {BehaviorComponent} from "../../../../intelligence/behavior/ecs/BehaviorComponent.js";
57
- import {BehaviorSystem} from "../../../../intelligence/behavior/ecs/BehaviorSystem.js";
54
+ import { InputSystem } from "../../../../input/ecs/systems/InputSystem.js";
55
+ import { BehaviorComponent } from "../../../../intelligence/behavior/ecs/BehaviorComponent.js";
56
+ import { BehaviorSystem } from "../../../../intelligence/behavior/ecs/BehaviorSystem.js";
58
57
  import PathFollowingSystem from "../../../../navigation/ecs/path_following/PathFollowingSystem.js";
59
- import {SoundEmitterSystem} from "../../../../sound/ecs/emitter/SoundEmitterSystem.js";
58
+ import { SoundEmitterSystem } from "../../../../sound/ecs/emitter/SoundEmitterSystem.js";
60
59
  import SoundControllerSystem from "../../../../sound/ecs/SoundControllerSystem.js";
61
60
  import SoundListenerSystem from "../../../../sound/ecs/SoundListenerSystem.js";
62
61
  import AnimationControllerSystem from "../../../ecs/animation/AnimationControllerSystem.js";
63
- import {AnimationGraphSystem} from "../../../ecs/animation/animator/AnimationGraphSystem.js";
64
- import {CameraSystem} from "../../../ecs/camera/CameraSystem.js";
62
+ import { AnimationGraphSystem } from "../../../ecs/animation/animator/AnimationGraphSystem.js";
63
+ import { CameraSystem } from "../../../ecs/camera/CameraSystem.js";
65
64
  import TopDownCameraController from "../../../ecs/camera/topdown/TopDownCameraController.js";
66
65
  import TopDownCameraControllerSystem from "../../../ecs/camera/topdown/TopDownCameraControllerSystem.js";
67
- import {TopDownCameraLanderSystem} from "../../../ecs/camera/topdown/TopDownCameraLanderSystem.js";
66
+ import { TopDownCameraLanderSystem } from "../../../ecs/camera/topdown/TopDownCameraLanderSystem.js";
68
67
  import MeshHighlightSystem from "../../../ecs/highlight/system/MeshHighlightSystem.js";
69
- import {Light} from "../../../ecs/light/Light.js";
68
+ import { Light } from "../../../ecs/light/Light.js";
70
69
  import LightSystem from "../../../ecs/light/LightSystem.js";
71
- import {LightType} from "../../../ecs/light/LightType.js";
72
- import {ShadedGeometrySystem} from "../../../ecs/mesh-v2/ShadedGeometrySystem.js";
70
+ import { LightType } from "../../../ecs/light/LightType.js";
71
+ import { ShadedGeometrySystem } from "../../../ecs/mesh-v2/ShadedGeometrySystem.js";
73
72
  import Mesh from "../../../ecs/mesh/Mesh.js";
74
- import {MeshSystem} from "../../../ecs/mesh/MeshSystem.js";
75
- import {PathDisplaySystem} from "../../../ecs/path/PathDisplaySystem.js";
73
+ import { MeshSystem } from "../../../ecs/mesh/MeshSystem.js";
74
+ import { PathDisplaySystem } from "../../../ecs/path/PathDisplaySystem.js";
76
75
  import Trail2DSystem from "../../../ecs/trail2d/Trail2DSystem.js";
77
76
  import WaterSystem from "../../../ecs/water/WaterSystem.js";
78
- import {ParticleEmitterSystem} from "../../../particles/ecs/ParticleEmitterSystem.js";
79
- import {ParticleEmitter} from "../../../particles/particular/engine/emitter/ParticleEmitter.js";
77
+ import { ParticleEmitterSystem } from "../../../particles/ecs/ParticleEmitterSystem.js";
78
+ import { ParticleEmitter } from "../../../particles/particular/engine/emitter/ParticleEmitter.js";
80
79
  import ThreeFactory from "../../../three/ThreeFactory.js";
81
- import {AmbientOcclusionPostProcessEffect} from "../../buffer/simple-fx/ao/AmbientOcclusionPostProcessEffect.js";
82
- import {ForwardPlusRenderingPlugin} from "./ForwardPlusRenderingPlugin.js";
80
+ import { AmbientOcclusionPostProcessEffect } from "../../buffer/simple-fx/ao/AmbientOcclusionPostProcessEffect.js";
81
+ import { ForwardPlusRenderingPlugin } from "./ForwardPlusRenderingPlugin.js";
83
82
 
84
83
  const geo_light_center_octahedron = new BoxBufferGeometry(0.1, 0.1, 0.1);
85
84
  const engineHarness = new EngineHarness();
@@ -131,7 +130,6 @@ function makeConfig(engine) {
131
130
  new TerrainSystem(graphics, assetManager),
132
131
  new WaterSystem(graphics),
133
132
  new Trail2DSystem(engine),
134
- new Foliage2System(assetManager, graphics),
135
133
  new ViewportPositionSystem(graphics.viewport.size),
136
134
  new GridPosition2TransformSystem(),
137
135
  new Transform2GridPositionSystem(),
@@ -1,32 +1,31 @@
1
- import {mat4} from "gl-matrix";
1
+ import { mat4 } from "gl-matrix";
2
2
  import FacingDirectionSystem from "../../../../../../../model/game/ecs/system/FacingDirectionSystem.js";
3
- import {makeEngineOptionsModel} from "../../../../../../../model/game/options/makeEngineOptionsModel.js";
4
- import {enableEditor} from "../../../../../../editor/enableEditor.js";
5
- import {AABB3} from "../../../../../core/geom/3d/aabb/AABB3.js";
3
+ import { makeEngineOptionsModel } from "../../../../../../../model/game/options/makeEngineOptionsModel.js";
4
+ import { enableEditor } from "../../../../../../editor/enableEditor.js";
5
+ import { AABB3 } from "../../../../../core/geom/3d/aabb/AABB3.js";
6
6
  import Vector2 from "../../../../../core/geom/Vector2.js";
7
7
  import Vector3 from "../../../../../core/geom/Vector3.js";
8
- import {clamp} from "../../../../../core/math/clamp.js";
9
- import {inverseLerp} from "../../../../../core/math/inverseLerp.js";
10
- import {max2} from "../../../../../core/math/max2.js";
11
- import {min2} from "../../../../../core/math/min2.js";
12
- import {randomFloatBetween} from "../../../../../core/math/random/randomFloatBetween.js";
13
- import {seededRandom} from "../../../../../core/math/random/seededRandom.js";
14
- import {number_pretty_print} from "../../../../../core/primitives/numbers/number_pretty_print.js";
8
+ import { clamp } from "../../../../../core/math/clamp.js";
9
+ import { inverseLerp } from "../../../../../core/math/inverseLerp.js";
10
+ import { max2 } from "../../../../../core/math/max2.js";
11
+ import { min2 } from "../../../../../core/math/min2.js";
12
+ import { randomFloatBetween } from "../../../../../core/math/random/randomFloatBetween.js";
13
+ import { seededRandom } from "../../../../../core/math/random/seededRandom.js";
14
+ import { number_pretty_print } from "../../../../../core/primitives/numbers/number_pretty_print.js";
15
15
  import LabelView from "../../../../../view/common/LabelView.js";
16
- import {MetricCollection} from "../../../../development/performance/MetricCollection.js";
17
- import {MetricStatistics} from "../../../../development/performance/MetricStatistics.js";
18
- import {AttachmentSystem} from "../../../../ecs/attachment/AttachmentSystem.js";
16
+ import { MetricCollection } from "../../../../development/performance/MetricCollection.js";
17
+ import { MetricStatistics } from "../../../../development/performance/MetricStatistics.js";
18
+ import { AttachmentSystem } from "../../../../ecs/attachment/AttachmentSystem.js";
19
19
  import Entity from "../../../../ecs/Entity.js";
20
- import {Foliage2System} from "../../../../ecs/foliage/ecs/Foliage2System.js";
21
- import {FogOfWarRevealerSystem} from "../../../../ecs/fow/FogOfWarRevealerSystem.js";
22
- import {FogOfWarSystem} from "../../../../ecs/fow/FogOfWarSystem.js";
20
+ import { FogOfWarRevealerSystem } from "../../../../ecs/fow/FogOfWarRevealerSystem.js";
21
+ import { FogOfWarSystem } from "../../../../ecs/fow/FogOfWarSystem.js";
23
22
  import GUIElement from "../../../../ecs/gui/GUIElement.js";
24
23
  import GUIElementSystem from "../../../../ecs/gui/GUIElementSystem.js";
25
24
  import HeadsUpDisplay from "../../../../ecs/gui/hud/HeadsUpDisplay.js";
26
25
  import HeadsUpDisplaySystem from "../../../../ecs/gui/hud/HeadsUpDisplaySystem.js";
27
26
  import ViewportPosition from "../../../../ecs/gui/position/ViewportPosition.js";
28
27
  import ViewportPositionSystem from "../../../../ecs/gui/position/ViewportPositionSystem.js";
29
- import {InverseKinematicsSystem} from "../../../../ecs/ik/InverseKinematicsSystem.js";
28
+ import { InverseKinematicsSystem } from "../../../../ecs/ik/InverseKinematicsSystem.js";
30
29
  import AnimationSystem from "../../../../ecs/systems/AnimationSystem.js";
31
30
  import MotionSystem from "../../../../ecs/systems/MotionSystem.js";
32
31
  import RenderSystem from "../../../../ecs/systems/RenderSystem.js";
@@ -36,37 +35,37 @@ import TagSystem from "../../../../ecs/systems/TagSystem.js";
36
35
  import TimerSystem from "../../../../ecs/systems/TimerSystem.js";
37
36
  import ClingToTerrainSystem from "../../../../ecs/terrain/ecs/cling/ClingToTerrainSystem.js";
38
37
  import TerrainSystem from "../../../../ecs/terrain/ecs/TerrainSystem.js";
39
- import {Transform} from "../../../../ecs/transform/Transform.js";
40
- import {EngineConfiguration} from "../../../../EngineConfiguration.js";
41
- import {EngineHarness} from "../../../../EngineHarness.js";
42
- import {GridPosition2TransformSystem} from "../../../../grid/grid2transform/GridPosition2TransformSystem.js";
38
+ import { Transform } from "../../../../ecs/transform/Transform.js";
39
+ import { EngineConfiguration } from "../../../../EngineConfiguration.js";
40
+ import { EngineHarness } from "../../../../EngineHarness.js";
41
+ import { GridPosition2TransformSystem } from "../../../../grid/grid2transform/GridPosition2TransformSystem.js";
43
42
  import GridPositionSystem from "../../../../grid/position/GridPositionSystem.js";
44
- import {Transform2GridPositionSystem} from "../../../../grid/transform2grid/Transform2GridPositionSystem.js";
43
+ import { Transform2GridPositionSystem } from "../../../../grid/transform2grid/Transform2GridPositionSystem.js";
45
44
  import InputControllerSystem from "../../../../input/ecs/systems/InputControllerSystem.js";
46
- import {InputSystem} from "../../../../input/ecs/systems/InputSystem.js";
47
- import {BehaviorSystem} from "../../../../intelligence/behavior/ecs/BehaviorSystem.js";
45
+ import { InputSystem } from "../../../../input/ecs/systems/InputSystem.js";
46
+ import { BehaviorSystem } from "../../../../intelligence/behavior/ecs/BehaviorSystem.js";
48
47
  import PathFollowingSystem from "../../../../navigation/ecs/path_following/PathFollowingSystem.js";
49
- import {SoundEmitterSystem} from "../../../../sound/ecs/emitter/SoundEmitterSystem.js";
48
+ import { SoundEmitterSystem } from "../../../../sound/ecs/emitter/SoundEmitterSystem.js";
50
49
  import SoundControllerSystem from "../../../../sound/ecs/SoundControllerSystem.js";
51
50
  import SoundListenerSystem from "../../../../sound/ecs/SoundListenerSystem.js";
52
51
  import AnimationControllerSystem from "../../../ecs/animation/AnimationControllerSystem.js";
53
- import {AnimationGraphSystem} from "../../../ecs/animation/animator/AnimationGraphSystem.js";
54
- import {CameraSystem} from "../../../ecs/camera/CameraSystem.js";
52
+ import { AnimationGraphSystem } from "../../../ecs/animation/animator/AnimationGraphSystem.js";
53
+ import { CameraSystem } from "../../../ecs/camera/CameraSystem.js";
55
54
  import TopDownCameraControllerSystem from "../../../ecs/camera/topdown/TopDownCameraControllerSystem.js";
56
- import {TopDownCameraLanderSystem} from "../../../ecs/camera/topdown/TopDownCameraLanderSystem.js";
55
+ import { TopDownCameraLanderSystem } from "../../../ecs/camera/topdown/TopDownCameraLanderSystem.js";
57
56
  import MeshHighlightSystem from "../../../ecs/highlight/system/MeshHighlightSystem.js";
58
57
  import LightSystem from "../../../ecs/light/LightSystem.js";
59
58
  import Mesh from "../../../ecs/mesh/Mesh.js";
60
- import {MeshSystem} from "../../../ecs/mesh/MeshSystem.js";
61
- import {PathDisplaySystem} from "../../../ecs/path/PathDisplaySystem.js";
59
+ import { MeshSystem } from "../../../ecs/mesh/MeshSystem.js";
60
+ import { PathDisplaySystem } from "../../../ecs/path/PathDisplaySystem.js";
62
61
  import Trail2DSystem from "../../../ecs/trail2d/Trail2DSystem.js";
63
62
  import WaterSystem from "../../../ecs/water/WaterSystem.js";
64
- import {load_and_set_cubemap_v0} from "../../../load_and_set_cubemap_v0.js";
65
- import {StandardFrameBuffers} from "../../../StandardFrameBuffers.js";
66
- import {Sampler2D} from "../../../texture/sampler/Sampler2D.js";
67
- import {HierarchicalZBuffer} from "./buffer/HierarchicalZBuffer.js";
68
- import {buildCanvasViewFromTexture} from "./buildCanvasViewFromTexture.js";
69
- import {BatchOcclusionQuery} from "./query/BatchOcclusionQuery.js";
63
+ import { load_and_set_cubemap_v0 } from "../../../load_and_set_cubemap_v0.js";
64
+ import { StandardFrameBuffers } from "../../../StandardFrameBuffers.js";
65
+ import { Sampler2D } from "../../../texture/sampler/Sampler2D.js";
66
+ import { HierarchicalZBuffer } from "./buffer/HierarchicalZBuffer.js";
67
+ import { buildCanvasViewFromTexture } from "./buildCanvasViewFromTexture.js";
68
+ import { BatchOcclusionQuery } from "./query/BatchOcclusionQuery.js";
70
69
 
71
70
  const engineHarness = new EngineHarness();
72
71
 
@@ -108,7 +107,6 @@ function makeConfig(engine) {
108
107
  new TerrainSystem(graphics, assetManager),
109
108
  new WaterSystem(graphics),
110
109
  new Trail2DSystem(engine),
111
- new Foliage2System(assetManager, graphics),
112
110
  new ViewportPositionSystem(graphics.viewport.size),
113
111
  new GridPosition2TransformSystem(),
114
112
  new Transform2GridPositionSystem(),
@@ -1,12 +1,13 @@
1
1
  import Army from "../../../../../model/game/ecs/component/army/Army.js";
2
- import {initializeGameBinarySerializationRegistry} from "../../../../../model/game/GameBinarySerializationRegistry.js";
3
- import {enableEditor} from "../../../../editor/enableEditor.js";
2
+ import {
3
+ initializeGameBinarySerializationRegistry
4
+ } from "../../../../../model/game/GameBinarySerializationRegistry.js";
5
+ import { enableEditor } from "../../../../editor/enableEditor.js";
4
6
  import Vector2 from "../../../core/geom/Vector2.js";
5
- import {ArrayBufferLoader} from "../../asset/loaders/ArrayBufferLoader.js";
6
- import {AttachmentSystem} from "../../ecs/attachment/AttachmentSystem.js";
7
- import {SerializationMetadata} from "../../ecs/components/SerializationMetadata.js";
7
+ import { ArrayBufferLoader } from "../../asset/loaders/ArrayBufferLoader.js";
8
+ import { AttachmentSystem } from "../../ecs/attachment/AttachmentSystem.js";
9
+ import { SerializationMetadata } from "../../ecs/components/SerializationMetadata.js";
8
10
  import Entity from "../../ecs/Entity.js";
9
- import {Foliage2System} from "../../ecs/foliage/ecs/Foliage2System.js";
10
11
  import GUIElement from "../../ecs/gui/GUIElement.js";
11
12
  import GUIElementSystem from "../../ecs/gui/GUIElementSystem.js";
12
13
  import HeadsUpDisplaySystem from "../../ecs/gui/hud/HeadsUpDisplaySystem.js";
@@ -16,27 +17,27 @@ import AnimationSystem from "../../ecs/systems/AnimationSystem.js";
16
17
  import TagSystem from "../../ecs/systems/TagSystem.js";
17
18
  import ClingToTerrainSystem from "../../ecs/terrain/ecs/cling/ClingToTerrainSystem.js";
18
19
  import TerrainSystem from "../../ecs/terrain/ecs/TerrainSystem.js";
19
- import {EngineConfiguration} from "../../EngineConfiguration.js";
20
- import {EngineHarness} from "../../EngineHarness.js";
20
+ import { EngineConfiguration } from "../../EngineConfiguration.js";
21
+ import { EngineHarness } from "../../EngineHarness.js";
21
22
  import InputControllerSystem from "../../input/ecs/systems/InputControllerSystem.js";
22
- import {InputSystem} from "../../input/ecs/systems/InputSystem.js";
23
- import {BehaviorSystem} from "../../intelligence/behavior/ecs/BehaviorSystem.js";
24
- import {loadSerializedScene} from "../../scene/SerializedScene.js";
25
- import {SoundEmitterSystem} from "../../sound/ecs/emitter/SoundEmitterSystem.js";
23
+ import { InputSystem } from "../../input/ecs/systems/InputSystem.js";
24
+ import { BehaviorSystem } from "../../intelligence/behavior/ecs/BehaviorSystem.js";
25
+ import { loadSerializedScene } from "../../scene/SerializedScene.js";
26
+ import { SoundEmitterSystem } from "../../sound/ecs/emitter/SoundEmitterSystem.js";
26
27
  import SoundControllerSystem from "../../sound/ecs/SoundControllerSystem.js";
27
28
  import SoundListenerSystem from "../../sound/ecs/SoundListenerSystem.js";
28
- import {CameraSystem} from "../ecs/camera/CameraSystem.js";
29
+ import { CameraSystem } from "../ecs/camera/CameraSystem.js";
29
30
  import TopDownCameraControllerSystem from "../ecs/camera/topdown/TopDownCameraControllerSystem.js";
30
31
  import MeshHighlightSystem from "../ecs/highlight/system/MeshHighlightSystem.js";
31
32
  import LightSystem from "../ecs/light/LightSystem.js";
32
- import {ShadedGeometrySystem} from "../ecs/mesh-v2/ShadedGeometrySystem.js";
33
+ import { ShadedGeometrySystem } from "../ecs/mesh-v2/ShadedGeometrySystem.js";
33
34
  import Mesh from "../ecs/mesh/Mesh.js";
34
- import {MeshSystem} from "../ecs/mesh/MeshSystem.js";
35
- import {PathDisplaySystem} from "../ecs/path/PathDisplaySystem.js";
35
+ import { MeshSystem } from "../ecs/mesh/MeshSystem.js";
36
+ import { PathDisplaySystem } from "../ecs/path/PathDisplaySystem.js";
36
37
  import Trail2DSystem from "../ecs/trail2d/Trail2DSystem.js";
37
38
  import WaterSystem from "../ecs/water/WaterSystem.js";
38
- import {ParticleEmitterSystem} from "../particles/ecs/ParticleEmitterSystem.js";
39
- import {buildCanvasViewFromTexture} from "../render/visibility/hiz/buildCanvasViewFromTexture.js";
39
+ import { ParticleEmitterSystem } from "../particles/ecs/ParticleEmitterSystem.js";
40
+ import { buildCanvasViewFromTexture } from "../render/visibility/hiz/buildCanvasViewFromTexture.js";
40
41
 
41
42
  const eh = new EngineHarness();
42
43
 
@@ -81,7 +82,6 @@ function makeConfig(engine) {
81
82
  new ClingToTerrainSystem(),
82
83
  new TerrainSystem(graphics, assetManager),
83
84
  new Trail2DSystem(engine),
84
- new Foliage2System(assetManager, graphics),
85
85
  new ViewportPositionSystem(graphics.viewport.size),
86
86
  new InputControllerSystem(devices),
87
87
  new InputSystem(devices),
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Convert decibel to percentage volume
3
+ * @param {number} dB
4
+ * @returns {number}
5
+ */
6
+ function dB2Volume(dB) {
7
+ return Math.pow(10, 0.05 * dB);
8
+ }