@woosh/meep-engine 2.57.0 → 2.58.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 (102) hide show
  1. package/editor/Editor.js +4 -4
  2. package/editor/process/symbolic/buildThreeJSHelperEntity.js +3 -3
  3. package/editor/process/symbolic/makeGridPositionSymbolDisplay.js +3 -3
  4. package/editor/process/symbolic/makePositionedIconDisplaySymbol.js +3 -3
  5. package/editor/tools/v2/prototypeTransformControls.js +3 -3
  6. package/editor/view/ecs/ComponentControlView.js +2 -1
  7. package/package.json +1 -1
  8. package/samples/generation/main.js +2 -2
  9. package/samples/terrain/from_image.js +2 -2
  10. package/samples/terrain/from_image_2.js +4 -4
  11. package/src/core/binary/byteArrayToString.js +28 -0
  12. package/src/core/binary/downloadAsFile.js +28 -0
  13. package/src/core/binary/downloadUrlAsFile.js +14 -0
  14. package/src/core/binary/jsonToStringToByteArray.js +27 -0
  15. package/src/core/binary/stringToByteArray.js +24 -0
  16. package/src/core/bvh2/BinaryNode.spec.js +2 -1
  17. package/src/core/color/Color.spec.js +27 -1
  18. package/src/core/color/parse_color.js +1 -1
  19. package/src/core/fsm/simple/SimpleStateMachine.spec.js +34 -2
  20. package/src/core/geom/3d/matrix/m4_multiply.js +2 -2
  21. package/src/core/geom/3d/matrix/m4_multiply.spec.js +11 -0
  22. package/src/core/geom/3d/matrix/m4_multiply_alphatensor.spec.js +11 -0
  23. package/src/core/geom/3d/morton/split_by_2.js +1 -1
  24. package/src/core/geom/3d/shape/util/shape_to_visual_entity.js +10 -10
  25. package/src/core/geom/3d/tetrahedra/prototypeTetrahedraBuilder.js +2 -2
  26. package/src/core/geom/3d/topology/samples/sampleFloodFill.js +3 -3
  27. package/src/core/process/action/AsynchronousDelayAction.js +2 -2
  28. package/src/core/process/executor/profile/ConcurrentExecutorProfiler.js +1 -1
  29. package/src/engine/EngineHarness.js +7 -7
  30. package/src/engine/EntityCreator.js +5 -5
  31. package/src/engine/__module.js +1 -1
  32. package/src/engine/achievements/AchievementManager.js +2 -2
  33. package/src/engine/animation/AnimationUtils.js +4 -4
  34. package/src/engine/animation/behavior/animateProperty.js +2 -2
  35. package/src/engine/animation/curve/draw/build_plot_entity_from_array.js +3 -3
  36. package/src/engine/animation/playAnimationTrack.js +3 -3
  37. package/src/engine/animation/playTrackRealTime.js +3 -3
  38. package/src/engine/animation/removeEntityWithMeshParticlesEffect.js +2 -2
  39. package/src/engine/control/ControlContext.js +7 -7
  40. package/src/engine/ecs/{EntityBuilder.d.ts → Entity.d.ts} +5 -5
  41. package/src/engine/ecs/{EntityBuilder.js → Entity.js} +29 -29
  42. package/src/engine/ecs/{EntityBuilder.spec.js → Entity.spec.js} +17 -17
  43. package/src/engine/ecs/EntityBlueprint.d.ts +2 -2
  44. package/src/engine/ecs/EntityBlueprint.js +3 -3
  45. package/src/engine/ecs/EntityBlueprint.spec.js +2 -2
  46. package/src/engine/ecs/{EntityBuilderFlags.js → EntityFlags.js} +1 -1
  47. package/src/engine/ecs/EntityObserver.spec.js +8 -8
  48. package/src/engine/ecs/dynamic_actions/DynamicActorSystem.js +5 -5
  49. package/src/engine/ecs/foliage/ecs/InstancedMeshUtils.js +3 -3
  50. package/src/engine/ecs/gui/menu/radial/RadialContextMenu.d.ts +2 -2
  51. package/src/engine/ecs/gui/menu/radial/RadialContextMenu.js +5 -5
  52. package/src/engine/ecs/parent/EntityNode.d.ts +3 -3
  53. package/src/engine/ecs/parent/EntityNode.js +5 -5
  54. package/src/engine/ecs/parent/testHuDPerf.js +2 -2
  55. package/src/engine/ecs/speaker/VoiceSystem.js +5 -5
  56. package/src/engine/ecs/tooltip/testTooltipComponentSystem.js +3 -3
  57. package/src/engine/graphics/camera/makeOrbitalCameraController.js +3 -3
  58. package/src/engine/graphics/camera/testClippingPlaneComputation.js +3 -3
  59. package/src/engine/graphics/debug/createDebugLabel.js +3 -3
  60. package/src/engine/graphics/ecs/camera/filter/setup_filtered_camera_controller.js +3 -3
  61. package/src/engine/graphics/ecs/decal/v2/prototypeDecalEditor.js +3 -3
  62. package/src/engine/graphics/ecs/decal/v2/prototypeDecalSystem.js +14 -14
  63. package/src/engine/graphics/ecs/mesh-v2/aggregate/prototypeSGMesh.js +3 -3
  64. package/src/engine/graphics/ecs/mesh-v2/sample/prototypeShadedGeometry.js +5 -5
  65. package/src/engine/graphics/ecs/mesh-v2/sample/prototype_sg_raycast.js +6 -6
  66. package/src/engine/graphics/ecs/path/ribbon/RibbonPathBuilder.js +3 -3
  67. package/src/engine/graphics/ecs/path/testPathDisplaySystem.js +3 -3
  68. package/src/engine/graphics/ecs/path/tube/build/TubePathBuilder.js +3 -3
  69. package/src/engine/graphics/ecs/path/tube/prototypeAnimatedPathMask.js +3 -3
  70. package/src/engine/graphics/ecs/sprite/SpriteSystemPE.js +2 -2
  71. package/src/engine/graphics/ecs/sprite/prototypeSpriteSystem.js +2 -2
  72. package/src/engine/graphics/geometry/optimization/merge/prototypeGeometryMerge.js +4 -4
  73. package/src/engine/graphics/impostors/octahedral/prototypeBaker.js +7 -7
  74. package/src/engine/graphics/particles/node-based/editor/ParticleSpecificationEditorView.js +1 -1
  75. package/src/engine/graphics/particles/particular/engine/renderers/billboard/prototypeBillboardRenderer.js +2 -2
  76. package/src/engine/graphics/particles/particular/engine/utils/volume/ParticleVolume.d.ts +2 -2
  77. package/src/engine/graphics/particles/particular/engine/utils/volume/ParticleVolume.js +3 -3
  78. package/src/engine/graphics/particles/particular/engine/utils/volume/prototypeParticleVolume.js +10 -10
  79. package/src/engine/graphics/render/buffer/buffers/prototypeNormalFrameBuffer.js +2 -2
  80. package/src/engine/graphics/render/buffer/simple-fx/taa/prototypeTAA.js +2 -2
  81. package/src/engine/graphics/render/forward_plus/plugin/ptototypeFPPlugin.js +11 -11
  82. package/src/engine/graphics/render/visibility/hiz/prototypeHiZ.js +5 -5
  83. package/src/engine/graphics/sh3/LightProbeVolume.js +2 -2
  84. package/src/engine/graphics/sh3/prototypeSH3Probe.js +3 -3
  85. package/src/engine/graphics/sh3/visualise_probe.js +3 -3
  86. package/src/engine/graphics/shadows/testShadowMapRendering.js +3 -3
  87. package/src/engine/graphics/texture/sampler/downloadSamplerAsPNG.js +1 -1
  88. package/src/engine/graphics/texture/sprite/prototypeSpriteCutoutGeometry.js +2 -2
  89. package/src/engine/input/ecs/controllers/KeyboardCameraController.js +2 -2
  90. package/src/engine/input/ecs/util/TopDownCameraControllerHelper.js +2 -2
  91. package/src/engine/intelligence/behavior/composite/ParallelBehavior.spec.js +13 -12
  92. package/src/engine/physics/fluid/prototype.js +3 -3
  93. package/src/engine/save/storage/JsonStringCodec.js +1 -1
  94. package/src/engine/save/storage/LocalStorage.js +2 -1
  95. package/src/engine/ui/GUIEngine.js +4 -4
  96. package/src/engine/ui/notification/NotificationManager.js +3 -3
  97. package/src/generation/markers/debug/visualizeMarkers.js +2 -2
  98. package/src/generation/markers/prototypeGridCellActionPlaceMarker.js +2 -2
  99. package/src/core/binary/ByteArrayTools.js +0 -137
  100. package/src/core/binary/NaiveBitSet.js +0 -69
  101. package/src/core/binary/objects/StandardTypeBuilder.js +0 -126
  102. package/src/core/binary/serde/JsonSerializer.js +0 -113
@@ -1,6 +1,6 @@
1
1
  import { EngineHarness } from "../../../../EngineHarness.js";
2
2
  import { FPDecalSystem } from "./FPDecalSystem.js";
3
- import EntityBuilder from "../../../../ecs/EntityBuilder.js";
3
+ import Entity from "../../../../ecs/Entity.js";
4
4
  import { Decal } from "./Decal.js";
5
5
  import { Transform } from "../../../../ecs/transform/Transform.js";
6
6
  import { randomFloatBetween } from "../../../../../core/math/random/randomFloatBetween.js";
@@ -31,7 +31,7 @@ import { GizmoRenderingPlugin } from "../../../render/gizmo/GizmoRenderingPlugin
31
31
  import { Gizmo } from "../../../render/gizmo/Gizmo.js";
32
32
  import { ForwardPlusRenderingPlugin } from "../../../render/forward_plus/plugin/ForwardPlusRenderingPlugin.js";
33
33
  import { TaskLoadingScreen } from "../../../../../view/task/TaskLoadingScreen.js";
34
- import { EntityBuilderFlags } from "../../../../ecs/EntityBuilderFlags.js";
34
+ import { EntityFlags } from "../../../../ecs/EntityFlags.js";
35
35
 
36
36
  const decal_urls = `data/textures/icons/FantasyIconsMegaPack/MagicItems/MagicItems_png/transparent/x64/staff_13_t.png
37
37
  data/textures/icons/FantasyIconsMegaPack/MagicItems/MagicItems_png/transparent/x64/artifact_01_t.png
@@ -244,9 +244,9 @@ function grid(ecd, offset_x, offset_y, x, y, size_x, size_y, spacing, textures)
244
244
 
245
245
  decal.uri = randomFromArray(random, textures);
246
246
 
247
- const entity = new EntityBuilder();
247
+ const entity = new Entity();
248
248
 
249
- entity.clearFlag(EntityBuilderFlags.WatchDestruction);
249
+ entity.clearFlag(EntityFlags.WatchDestruction);
250
250
 
251
251
  const transform = new Transform();
252
252
  transform.position.set(
@@ -300,9 +300,9 @@ function makeNormalTestGridDecal(ecd, root_transform = new Transform()) {
300
300
  // decal.uri = decal_urls[1];
301
301
  decal.uri = 'moicon/ISO 7010 - Safety Signs (3)/ISO 7010 - Safety Signs/Emergency/400px/E001 – Emergency exit (left hand).png';
302
302
 
303
- const entity = new EntityBuilder();
303
+ const entity = new Entity();
304
304
 
305
- entity.clearFlag(EntityBuilderFlags.WatchDestruction);
305
+ entity.clearFlag(EntityFlags.WatchDestruction);
306
306
 
307
307
  const transform = new Transform();
308
308
  transform.position.set(
@@ -336,7 +336,7 @@ function makeNormalTestGridDecal(ecd, root_transform = new Transform()) {
336
336
  });
337
337
  arrow_transform.multiplyTransforms(transform, arrow_transform);
338
338
 
339
- new EntityBuilder()
339
+ new Entity()
340
340
  .add(ShadedGeometry.from(makeSolidArrowGeometry(), new MeshStandardMaterial({
341
341
  side: DoubleSide
342
342
  }), DrawMode.Triangles))
@@ -347,16 +347,16 @@ function makeNormalTestGridDecal(ecd, root_transform = new Transform()) {
347
347
  }
348
348
 
349
349
  /**
350
- * @returns {EntityBuilder}
350
+ * @returns {Entity}
351
351
  */
352
352
  function makeNormalTestDecal() {
353
353
  const decal = new Decal();
354
354
 
355
355
  decal.uri = decal_urls[1];
356
356
 
357
- const entity = new EntityBuilder();
357
+ const entity = new Entity();
358
358
 
359
- entity.clearFlag(EntityBuilderFlags.WatchDestruction);
359
+ entity.clearFlag(EntityFlags.WatchDestruction);
360
360
 
361
361
  const transform = new Transform();
362
362
  transform.position.set(
@@ -395,7 +395,7 @@ function sample_grid(ecd) {
395
395
  });
396
396
  makeNormalTestGridDecal(ecd, t_forward_grid);
397
397
 
398
- new EntityBuilder()
398
+ new Entity()
399
399
  .add(SGMesh.fromURL('data/models/snaps/cube_white.gltf'))
400
400
  .add(Transform.fromJSON({
401
401
  position: new Vector3(14, 1, 4.8),
@@ -459,7 +459,7 @@ async function main(engine) {
459
459
  terrainSize: new Vector2(TERRAIN_SIZE, TERRAIN_SIZE)
460
460
  });
461
461
 
462
- new EntityBuilder()
462
+ new Entity()
463
463
  .add(SGMesh.fromURL("moicon/gnutti_not_optimized/model.gltf"))
464
464
  .add(Transform.fromJSON({
465
465
  position: { x: 10, y: 3, z: 10 },
@@ -481,9 +481,9 @@ async function main(engine) {
481
481
 
482
482
  decal.uri = randomFromArray(random, decal_urls);
483
483
 
484
- const entity = new EntityBuilder();
484
+ const entity = new Entity();
485
485
 
486
- entity.clearFlag(EntityBuilderFlags.WatchDestruction);
486
+ entity.clearFlag(EntityFlags.WatchDestruction);
487
487
 
488
488
  const transform = new Transform();
489
489
  transform.position.set(
@@ -1,7 +1,7 @@
1
1
  import { EngineHarness } from "../../../../EngineHarness.js";
2
2
  import { ShadedGeometrySystem } from "../ShadedGeometrySystem.js";
3
3
  import { SGMeshSystem } from "./SGMeshSystem.js";
4
- import EntityBuilder from "../../../../ecs/EntityBuilder.js";
4
+ import Entity from "../../../../ecs/Entity.js";
5
5
  import { Transform } from "../../../../ecs/transform/Transform.js";
6
6
  import { SGMesh } from "./SGMesh.js";
7
7
  import { GameAssetType } from "../../../../asset/GameAssetType.js";
@@ -105,7 +105,7 @@ function make_grid(ecd, engine) {
105
105
 
106
106
  const mesh = SGMesh.fromURL("data/models/RTS_Buildings_Humans/18/Building_R_18_out/Building_R_18.gltf");
107
107
  // const mesh = SGMesh.fromURL("data/models/samples/transform-hierarchy.glb");
108
- new EntityBuilder()
108
+ new Entity()
109
109
  .add(mesh)
110
110
  .add(transform)
111
111
  .add(BehaviorComponent.fromOne(
@@ -144,7 +144,7 @@ function main(engine) {
144
144
  const mesh = SGMesh.fromURL("moicon/2022_04_20__Micron_from_Philippe/model.gltf");
145
145
  // const mesh = Mesh.fromURL("moicon/ztest_object_many_pieces/model.gltf");
146
146
 
147
- new EntityBuilder()
147
+ new Entity()
148
148
  .add(Transform.fromJSON({
149
149
  position: new Vector3(10, 0, 10)
150
150
  }))
@@ -1,6 +1,6 @@
1
1
  import { EngineHarness } from "../../../../EngineHarness.js";
2
2
  import { ShadedGeometrySystem } from "../ShadedGeometrySystem.js";
3
- import EntityBuilder from "../../../../ecs/EntityBuilder.js";
3
+ import Entity from "../../../../ecs/Entity.js";
4
4
  import { Transform } from "../../../../ecs/transform/Transform.js";
5
5
  import { ShadedGeometry } from "../ShadedGeometry.js";
6
6
  import { BoxBufferGeometry, MeshStandardMaterial, OctahedronGeometry } from "three";
@@ -9,7 +9,6 @@ import { seededRandom } from "../../../../../core/math/random/seededRandom.js";
9
9
  import ViewportPosition from "../../../../ecs/gui/position/ViewportPosition.js";
10
10
  import GUIElement from "../../../../ecs/gui/GUIElement.js";
11
11
  import ButtonView from "../../../../../view/elements/button/ButtonView.js";
12
- import { downloadAsFile } from "../../../../../core/binary/ByteArrayTools.js";
13
12
  import { convert_bvh_to_dot_format_string } from "../../../../../core/bvh2/visual/convert_bvh_to_dot_format_string.js";
14
13
  import ViewportPositionSystem from "../../../../ecs/gui/position/ViewportPositionSystem.js";
15
14
  import GUIElementSystem from "../../../../ecs/gui/GUIElementSystem.js";
@@ -21,6 +20,7 @@ import { BehaviorComponent } from "../../../../intelligence/behavior/ecs/Behavio
21
20
  import { OrbitingBehavior } from "../../../../../../../model/game/util/behavior/OrbitingBehavior.js";
22
21
  import { BehaviorSystem } from "../../../../intelligence/behavior/ecs/BehaviorSystem.js";
23
22
  import Vector2 from "../../../../../core/geom/Vector2.js";
23
+ import {downloadAsFile} from "../../../../../core/binary/downloadAsFile.js";
24
24
 
25
25
  const eh = new EngineHarness();
26
26
 
@@ -37,7 +37,7 @@ function makeMovingShadedGeometry() {
37
37
 
38
38
  sg.draw_method = DRAW_METHOD_INSTANCED;
39
39
 
40
- return new EntityBuilder()
40
+ return new Entity()
41
41
  .add(new Transform())
42
42
  .add(sg)
43
43
  .add(BehaviorComponent.fromOne(b));
@@ -100,7 +100,7 @@ async function main(engine) {
100
100
  // sg.draw_method = random() > 0.5 ? DRAW_METHOD_INSTANCED : 2;
101
101
  sg.clearFlag(ShadedGeometryFlags.CastShadow | ShadedGeometryFlags.ReceiveShadow);
102
102
 
103
- new EntityBuilder()
103
+ new Entity()
104
104
  .add(Transform.fromJSON({
105
105
  position: {
106
106
  x: randomFloatBetween(random, 0, TERRAIN_SIZE),
@@ -143,7 +143,7 @@ function debug_button(engine, action, name = "Button", ecd = entityManager.datas
143
143
  entityManager.addSystem(new GUIElementSystem(engine.gui.view, engine));
144
144
  }
145
145
 
146
- new EntityBuilder()
146
+ new Entity()
147
147
  .add(ViewportPosition.fromJSON({}))
148
148
  .add(GUIElement.fromView(new ButtonView({
149
149
  action,
@@ -1,6 +1,6 @@
1
1
  import { EngineHarness } from "../../../../EngineHarness.js";
2
2
  import { ShadedGeometrySystem } from "../ShadedGeometrySystem.js";
3
- import EntityBuilder from "../../../../ecs/EntityBuilder.js";
3
+ import Entity from "../../../../ecs/Entity.js";
4
4
  import { Transform } from "../../../../ecs/transform/Transform.js";
5
5
  import { ShadedGeometry } from "../ShadedGeometry.js";
6
6
  import {
@@ -15,7 +15,6 @@ import { seededRandom } from "../../../../../core/math/random/seededRandom.js";
15
15
  import ViewportPosition from "../../../../ecs/gui/position/ViewportPosition.js";
16
16
  import GUIElement from "../../../../ecs/gui/GUIElement.js";
17
17
  import ButtonView from "../../../../../view/elements/button/ButtonView.js";
18
- import { downloadAsFile } from "../../../../../core/binary/ByteArrayTools.js";
19
18
  import { convert_bvh_to_dot_format_string } from "../../../../../core/bvh2/visual/convert_bvh_to_dot_format_string.js";
20
19
  import ViewportPositionSystem from "../../../../ecs/gui/position/ViewportPositionSystem.js";
21
20
  import GUIElementSystem from "../../../../ecs/gui/GUIElementSystem.js";
@@ -33,6 +32,7 @@ import { MicronRenderContext } from "../../../micron/render/v1/MicronRenderConte
33
32
  import { randomIntegerBetween } from "../../../../../core/math/random/randomIntegerBetween.js";
34
33
  import Vector2 from "../../../../../core/geom/Vector2.js";
35
34
  import { SurfacePoint3 } from "../../../../../core/geom/3d/SurfacePoint3.js";
35
+ import {downloadAsFile} from "../../../../../core/binary/downloadAsFile.js";
36
36
 
37
37
  const eh = new EngineHarness();
38
38
 
@@ -49,7 +49,7 @@ function makeMovingShadedGeometry() {
49
49
 
50
50
  sg.draw_method = DRAW_METHOD_INSTANCED;
51
51
 
52
- return new EntityBuilder()
52
+ return new Entity()
53
53
  .add(new Transform())
54
54
  .add(sg)
55
55
  .add(BehaviorComponent.fromOne(b));
@@ -118,7 +118,7 @@ async function main(engine) {
118
118
  // sg.draw_method = random() > 0.01 ? DRAW_METHOD_INSTANCED : DRAW_METHOD_PLAIN;
119
119
  sg.clearFlag(ShadedGeometryFlags.CastShadow | ShadedGeometryFlags.ReceiveShadow);
120
120
 
121
- new EntityBuilder()
121
+ new Entity()
122
122
  .add(Transform.fromJSON({
123
123
  position: {
124
124
  x: randomFloatBetween(random, 0, 20),
@@ -140,7 +140,7 @@ async function main(engine) {
140
140
 
141
141
  }, 'save dot file');
142
142
 
143
- const raycast_marker = new EntityBuilder()
143
+ const raycast_marker = new Entity()
144
144
  .add(ShadedGeometry.from(new SphereBufferGeometry(1), new MeshBasicMaterial({
145
145
  color: 0xFF0000
146
146
  })))
@@ -196,7 +196,7 @@ function debug_button(engine, action, name = "Button", ecd = entityManager.datas
196
196
  entityManager.addSystem(new GUIElementSystem(engine.gui.view, engine));
197
197
  }
198
198
 
199
- new EntityBuilder()
199
+ new Entity()
200
200
  .add(ViewportPosition.fromJSON({}))
201
201
  .add(GUIElement.fromView(new ButtonView({
202
202
  action,
@@ -7,7 +7,7 @@ import Vector3 from "../../../../../core/geom/Vector3.js";
7
7
  import Renderable from "../../../../ecs/renderable/Renderable.js";
8
8
  import { RenderableFlags } from "../../../../ecs/renderable/RenderableFlags.js";
9
9
  import { Transform } from "../../../../ecs/transform/Transform.js";
10
- import EntityBuilder from "../../../../ecs/EntityBuilder.js";
10
+ import Entity from "../../../../ecs/Entity.js";
11
11
  import ThreeFactory from "../../../three/ThreeFactory.js";
12
12
  import { EventType } from "../../../../ecs/EntityManager.js";
13
13
 
@@ -58,7 +58,7 @@ export class RibbonPathBuilder {
58
58
 
59
59
  /**
60
60
  *
61
- * @param {EntityBuilder[]} destination
61
+ * @param {Entity[]} destination
62
62
  */
63
63
  build(destination) {
64
64
 
@@ -120,7 +120,7 @@ export class RibbonPathBuilder {
120
120
 
121
121
  ribbon.computeBoundingBox(renderable.boundingBox);
122
122
 
123
- const entityBuilder = new EntityBuilder()
123
+ const entityBuilder = new Entity()
124
124
  .add(renderable)
125
125
  .add(new Transform());
126
126
 
@@ -42,7 +42,7 @@ import { InverseKinematicsSystem } from "../../../ecs/ik/InverseKinematicsSystem
42
42
  import { PathDisplaySystem } from "./PathDisplaySystem.js";
43
43
  import { PathDisplay } from "./PathDisplay.js";
44
44
  import { PathDisplayType } from "./PathDisplayType.js";
45
- import EntityBuilder from "../../../ecs/EntityBuilder.js";
45
+ import Entity from "../../../ecs/Entity.js";
46
46
  import { enableEditor } from "../../../../../editor/enableEditor.js";
47
47
  import { GameAssetType } from "../../../asset/GameAssetType.js";
48
48
  import { GLTFAssetLoader } from "../../../asset/loaders/GLTFAssetLoader.js";
@@ -385,7 +385,7 @@ function sample_style_tube() {
385
385
  * @param {number[]} points
386
386
  * @param {InterpolationType} [interp]
387
387
  * @param {Vector3} [offset]
388
- * @returns {EntityBuilder}
388
+ * @returns {Entity}
389
389
  */
390
390
  function makePath({
391
391
  points,
@@ -416,7 +416,7 @@ function makePath({
416
416
  )
417
417
  );
418
418
 
419
- return new EntityBuilder()
419
+ return new Entity()
420
420
  .add(_p)
421
421
  .add(pathDisplay)
422
422
  .add(Highlight.fromOne(0, 1, 1, 1));
@@ -1,6 +1,6 @@
1
1
  import { BufferGeometry, MeshBasicMaterial, MeshMatcapMaterial, MeshStandardMaterial } from "three";
2
2
  import { InterpolationType } from "../../../../../navigation/ecs/components/InterpolationType.js";
3
- import EntityBuilder from "../../../../../ecs/EntityBuilder.js";
3
+ import Entity from "../../../../../ecs/Entity.js";
4
4
  import { Transform } from "../../../../../ecs/transform/Transform.js";
5
5
  import { TubeMaterialType } from "../TubeMaterialType.js";
6
6
  import { GameAssetType } from "../../../../../asset/GameAssetType.js";
@@ -127,7 +127,7 @@ export class TubePathBuilder {
127
127
 
128
128
  /**
129
129
  *
130
- * @param {EntityBuilder[]} destination
130
+ * @param {Entity[]} destination
131
131
  */
132
132
  build(destination) {
133
133
  const style = this.style;
@@ -185,7 +185,7 @@ export class TubePathBuilder {
185
185
  segment_start, segment_end
186
186
  );
187
187
 
188
- const entityBuilder = new EntityBuilder();
188
+ const entityBuilder = new Entity();
189
189
 
190
190
  entityBuilder.add(new Transform());
191
191
 
@@ -67,7 +67,7 @@ import { RibbonPathStyle } from "../ribbon/RibbonPathStyle.js";
67
67
  import { PathDisplay } from "../PathDisplay.js";
68
68
  import { PathDisplaySpec } from "../PathDisplaySpec.js";
69
69
  import { PathDisplayType } from "../PathDisplayType.js";
70
- import EntityBuilder from "../../../../ecs/EntityBuilder.js";
70
+ import Entity from "../../../../ecs/Entity.js";
71
71
  import { BehaviorComponent } from "../../../../intelligence/behavior/ecs/BehaviorComponent.js";
72
72
  import { pingpong } from "../../../../../core/math/pingpong.js";
73
73
  import { PathEvents } from "../../../../navigation/ecs/components/PathEvents.js";
@@ -366,7 +366,7 @@ function main(engine) {
366
366
  );
367
367
 
368
368
 
369
- const path_entity = new EntityBuilder();
369
+ const path_entity = new Entity();
370
370
 
371
371
  const ecd = engine.entityManager.dataset;
372
372
  path_entity
@@ -375,7 +375,7 @@ function main(engine) {
375
375
  .build(ecd);
376
376
 
377
377
  let time = 0;
378
- new EntityBuilder()
378
+ new Entity()
379
379
  .add(BehaviorComponent.looping_function((delta) => {
380
380
  time += delta*0.01;
381
381
  tube_style.path_mask[1] = pingpong(time, 1);
@@ -1,6 +1,6 @@
1
1
  import { ParticleEmitter } from "../../particles/particular/engine/emitter/ParticleEmitter.js";
2
2
  import { ParticleLayer } from "../../particles/particular/engine/emitter/ParticleLayer.js";
3
- import EntityBuilder from "../../../ecs/EntityBuilder.js";
3
+ import Entity from "../../../ecs/Entity.js";
4
4
  import { Transform } from "../../../ecs/transform/Transform.js";
5
5
  import { SerializationMetadata } from "../../../ecs/components/SerializationMetadata.js";
6
6
  import { AbstractContextSystem } from "../../../ecs/system/AbstractContextSystem.js";
@@ -27,7 +27,7 @@ class Context extends SystemEntityContext {
27
27
 
28
28
  this.__emitter.addLayer(this.__layer);
29
29
 
30
- this.__emitter_entity = new EntityBuilder()
30
+ this.__emitter_entity = new Entity()
31
31
  .add(this.__emitter)
32
32
  .add(new Transform())
33
33
  .add(SerializationMetadata.Transient);
@@ -1,7 +1,7 @@
1
1
  import { EngineHarness } from "../../../EngineHarness.js";
2
2
  import { SpriteSystemPE } from "./SpriteSystemPE.js";
3
3
  import { ParticleEmitterSystem } from "../../particles/ecs/ParticleEmitterSystem.js";
4
- import EntityBuilder from "../../../ecs/EntityBuilder.js";
4
+ import Entity from "../../../ecs/Entity.js";
5
5
  import { Transform } from "../../../ecs/transform/Transform.js";
6
6
  import { Sprite } from "./Sprite.js";
7
7
  import { GizmoRenderingPlugin } from "../../render/gizmo/GizmoRenderingPlugin.js";
@@ -1545,7 +1545,7 @@ async function main(engine) {
1545
1545
 
1546
1546
  sprites_used.add(sprite.url);
1547
1547
 
1548
- new EntityBuilder()
1548
+ new Entity()
1549
1549
  .add(Transform.fromJSON({
1550
1550
  position: { x: 5 + 2 * i, y: 2, z: 5 + 2 * j }
1551
1551
  }))
@@ -7,7 +7,7 @@ import { TextureAssetLoader } from "../../../../asset/loaders/texture/TextureAss
7
7
  import Vector3 from "../../../../../core/geom/Vector3.js";
8
8
  import Vector2 from "../../../../../core/geom/Vector2.js";
9
9
  import { GLTFAssetLoader } from "../../../../asset/loaders/GLTFAssetLoader.js";
10
- import EntityBuilder from "../../../../ecs/EntityBuilder.js";
10
+ import Entity from "../../../../ecs/Entity.js";
11
11
  import Renderable from "../../../../ecs/renderable/Renderable.js";
12
12
  import { Transform } from "../../../../ecs/transform/Transform.js";
13
13
  import { merge_geometry_hierarchy } from "./merge_geometry_hierarchy.js";
@@ -116,7 +116,7 @@ async function main(engine) {
116
116
  whiteSpace: "pre"
117
117
  };
118
118
 
119
- new EntityBuilder()
119
+ new Entity()
120
120
  .add(new Renderable(apply_random_coloring(optimized_hierarchy)))
121
121
  .add(Transform.fromJSON({
122
122
  position: new Vector3(128, 2, 128)
@@ -130,7 +130,7 @@ async function main(engine) {
130
130
  })))
131
131
  .build(engine.entityManager.dataset);
132
132
 
133
- new EntityBuilder()
133
+ new Entity()
134
134
  .add(new Renderable(apply_random_coloring(hierarchy)))
135
135
  .add(Transform.fromJSON({
136
136
  position: new Vector3(138, 2, 128)
@@ -145,7 +145,7 @@ async function main(engine) {
145
145
  .build(engine.entityManager.dataset);
146
146
 
147
147
 
148
- new EntityBuilder()
148
+ new Entity()
149
149
  .add(new Renderable(optimized_hierarchy))
150
150
  .add(Transform.fromJSON({
151
151
  position: new Vector3(148, 2, 128)
@@ -1,7 +1,7 @@
1
1
  import { EngineHarness } from "../../../EngineHarness.js";
2
2
  import { ImpostorBaker } from "./ImpostorBaker.js";
3
3
  import { ShadedGeometry } from "../../ecs/mesh-v2/ShadedGeometry.js";
4
- import EntityBuilder from "../../../ecs/EntityBuilder.js";
4
+ import Entity from "../../../ecs/Entity.js";
5
5
  import ViewportPosition from "../../../ecs/gui/position/ViewportPosition.js";
6
6
  import GUIElement from "../../../ecs/gui/GUIElement.js";
7
7
  import GUIElementSystem from "../../../ecs/gui/GUIElementSystem.js";
@@ -79,7 +79,7 @@ async function main(engine) {
79
79
  mode: 'alpha'
80
80
  });
81
81
 
82
- new EntityBuilder()
82
+ new Entity()
83
83
  .add(new ViewportPosition({
84
84
  offset: new Vector2(0, 0)
85
85
  }))
@@ -110,7 +110,7 @@ async function main(engine) {
110
110
  sg_mesh.castShadow = false;
111
111
  sg_mesh.receiveShadow = false;
112
112
 
113
- const entity_true_mesh = new EntityBuilder();
113
+ const entity_true_mesh = new Entity();
114
114
  entity_true_mesh
115
115
  .add(sg_mesh)
116
116
  .add(t1)
@@ -122,7 +122,7 @@ async function main(engine) {
122
122
 
123
123
  /**
124
124
  *
125
- * @param {EntityBuilder} entity
125
+ * @param {Entity} entity
126
126
  * @param {number} [speed]
127
127
  * @param {Vector3} [axis]
128
128
  */
@@ -173,7 +173,7 @@ function make_impostor_wireframe(id, t = new Transform()) {
173
173
  sg.clearFlag(ShadedGeometryFlags.CastShadow);
174
174
  sg.clearFlag(ShadedGeometryFlags.ReceiveShadow);
175
175
 
176
- return new EntityBuilder()
176
+ return new Entity()
177
177
  .add(transform)
178
178
  .add(sg)
179
179
  ;
@@ -183,7 +183,7 @@ function make_impostor_wireframe(id, t = new Transform()) {
183
183
  *
184
184
  * @param {ImpostorDescription} id
185
185
  * @param {Transform} t
186
- * @returns {EntityBuilder}
186
+ * @returns {Entity}
187
187
  */
188
188
  function make_impostor_entity(id, t = new Transform()) {
189
189
 
@@ -201,7 +201,7 @@ function make_impostor_entity(id, t = new Transform()) {
201
201
  sg.clearFlag(ShadedGeometryFlags.CastShadow);
202
202
  sg.clearFlag(ShadedGeometryFlags.ReceiveShadow);
203
203
 
204
- return new EntityBuilder()
204
+ return new Entity()
205
205
  .add(transform)
206
206
  .add(sg)
207
207
  ;
@@ -8,10 +8,10 @@ import { MouseEvents } from "../../../../input/devices/events/MouseEvents.js";
8
8
  import InterfaceCommand from "../../../../../view/interaction/InterfaceCommand.js";
9
9
  import { InteractionCommand } from "../../../../../view/interaction/InteractionCommand.js";
10
10
  import { serializeNodeGraphToJSON } from "../../../../../core/model/node-graph/json/serializeNodeGraphToJSON.js";
11
- import { downloadAsFile } from "../../../../../core/binary/ByteArrayTools.js";
12
11
  import {
13
12
  deserializeNodeGraphFromJSON
14
13
  } from "../../../../../core/model/node-graph/json/deserializeNodeGraphFromJSON.js";
14
+ import {downloadAsFile} from "../../../../../core/binary/downloadAsFile.js";
15
15
 
16
16
  export class ParticleSpecificationEditorView extends View {
17
17
  constructor() {
@@ -7,7 +7,7 @@ import { writeSample2DDataToDataTexture } from "../../../../../texture/sampler/w
7
7
  import { ImageRGBADataLoader } from "../../../../../../asset/loaders/image/ImageRGBADataLoader.js";
8
8
  import { EngineConfiguration } from "../../../../../../EngineConfiguration.js";
9
9
  import { MeshSystem } from "../../../../../ecs/mesh/MeshSystem.js";
10
- import EntityBuilder from "../../../../../../ecs/EntityBuilder.js";
10
+ import Entity from "../../../../../../ecs/Entity.js";
11
11
  import { Transform } from "../../../../../../ecs/transform/Transform.js";
12
12
  import Mesh from "../../../../../ecs/mesh/Mesh.js";
13
13
  import Vector3 from "../../../../../../../core/geom/Vector3.js";
@@ -155,7 +155,7 @@ async function main(engine) {
155
155
  });
156
156
 
157
157
 
158
- new EntityBuilder()
158
+ new Entity()
159
159
  .add(Mesh.fromJSON({ url: 'data/models/Jauntmessina/Red_Robot/gltf/Model.gltf' }))
160
160
  .add(new Transform())
161
161
  .build(ecd)
@@ -1,4 +1,4 @@
1
- import EntityBuilder from "../../../../../../ecs/EntityBuilder";
1
+ import Entity from "../../../../../../ecs/Entity";
2
2
  import {AbstractShape3D} from "../../../../../../../core/geom/3d/shape/AbstractShape3D";
3
3
  import {AttributeValue} from "./AttributeValue";
4
4
  import {SamplingFunctionKind} from "./SamplingFunctionKind";
@@ -17,7 +17,7 @@ interface Attributes {
17
17
  }
18
18
 
19
19
  export class ParticleVolume {
20
- readonly entity: EntityBuilder
20
+ readonly entity: Entity
21
21
 
22
22
  from(args?: Args): void
23
23
 
@@ -5,7 +5,7 @@ import { composeMatrix4 } from "../../../../../util/composeMatrix4.js";
5
5
  import Quaternion from "../../../../../../../core/geom/Quaternion.js";
6
6
  import { ParticleEmitter } from "../../emitter/ParticleEmitter.js";
7
7
  import { Transform } from "../../../../../../ecs/transform/Transform.js";
8
- import EntityBuilder from "../../../../../../ecs/EntityBuilder.js";
8
+ import Entity from "../../../../../../ecs/Entity.js";
9
9
  import { vec3 } from "gl-matrix";
10
10
  import { AttributeValue } from "./AttributeValue.js";
11
11
  import { PARTICULAR_PARTICLE_SPECIFICATION } from "../../emitter/PARTICULAR_PARTICLE_SPECIFICATION.js";
@@ -193,7 +193,7 @@ export class ParticleVolume {
193
193
  */
194
194
  this.__sampling_function = SamplingFunctionKind.Random;
195
195
 
196
- const eb = new EntityBuilder();
196
+ const eb = new Entity();
197
197
 
198
198
  eb.add(this.__emitter)
199
199
  .add(SerializationMetadata.Transient)
@@ -201,7 +201,7 @@ export class ParticleVolume {
201
201
 
202
202
  /**
203
203
  *
204
- * @type {EntityBuilder}
204
+ * @type {Entity}
205
205
  */
206
206
  this.entity = eb;
207
207
 
@@ -31,7 +31,7 @@ import {
31
31
  } from "../../../../../render/buffer/simple-fx/ao/AmbientOcclusionPostProcessEffect.js";
32
32
  import Vector2 from "../../../../../../../core/geom/Vector2.js";
33
33
  import Vector3 from "../../../../../../../core/geom/Vector3.js";
34
- import EntityBuilder from "../../../../../../ecs/EntityBuilder.js";
34
+ import Entity from "../../../../../../ecs/Entity.js";
35
35
  import { Transform } from "../../../../../../ecs/transform/Transform.js";
36
36
  import Mesh from "../../../../../ecs/mesh/Mesh.js";
37
37
  import { AABB3 } from "../../../../../../../core/geom/3d/aabb/AABB3.js";
@@ -211,7 +211,7 @@ function make_shape_vis_toggle(engine) {
211
211
  const entities = TagSystem.find_entities_with_tag(SHAPE_VISUAL_ENTITY_TAG, ecd);
212
212
 
213
213
 
214
- const builders = entities.map(e => EntityBuilder.readFromDataset(e, ecd));
214
+ const builders = entities.map(e => Entity.readFromDataset(e, ecd));
215
215
 
216
216
  function toggle() {
217
217
  if (builders.length <= 1) {
@@ -238,7 +238,7 @@ function make_shape_vis_toggle(engine) {
238
238
  }
239
239
  });
240
240
 
241
- new EntityBuilder()
241
+ new Entity()
242
242
  .add(GUIElement.fromView(buttonView))
243
243
  .build(ecd);
244
244
 
@@ -259,11 +259,11 @@ function mat_from_aabb3(aabb3) {
259
259
  *
260
260
  * @param {string} url
261
261
  * @param {EntityComponentDataset} ecd
262
- * @returns {EntityBuilder}
262
+ * @returns {Entity}
263
263
  */
264
264
  function load_model(url, ecd) {
265
265
 
266
- const b = new EntityBuilder();
266
+ const b = new Entity();
267
267
  b
268
268
  .add(new Transform())
269
269
  .add(Mesh.fromJSON({
@@ -917,7 +917,7 @@ async function main(engine) {
917
917
  function make_box_editor(engine, transform = new Transform()) {
918
918
  const controls = new TransformControls(engine.graphics.camera, engine.graphics.domElement);
919
919
 
920
- const eb = new EntityBuilder();
920
+ const eb = new Entity();
921
921
  const g_unit_cube = makeHelperBoxGeometry(1, 1, 1);
922
922
 
923
923
  const ecd = engine.entityManager.dataset;
@@ -953,10 +953,10 @@ function make_box_editor(engine, transform = new Transform()) {
953
953
  // make camera controller holder
954
954
  const entity = TagSystem.find_entities_with_tag('CameraController', ecd)[0];
955
955
 
956
- const camera_controls = EntityBuilder.readFromDataset(entity, ecd);
956
+ const camera_controls = Entity.readFromDataset(entity, ecd);
957
957
 
958
958
 
959
- new EntityBuilder()
959
+ new Entity()
960
960
  .add(r_controls)
961
961
  .add(new Transform())
962
962
  .add(new InputController([
@@ -1148,7 +1148,7 @@ function make_symbol_view({
1148
1148
  const vp = new ViewportPosition();
1149
1149
  vp.anchor.set(0.5, 1);
1150
1150
 
1151
- const entity = new EntityBuilder()
1151
+ const entity = new Entity()
1152
1152
  .add(GUIElement.fromView(symbol_view))
1153
1153
  .add(new HeadsUpDisplay())
1154
1154
  .add(vp)
@@ -1214,7 +1214,7 @@ async function make_demo_volume({
1214
1214
 
1215
1215
  v.attributes.color.lookup = lut;
1216
1216
 
1217
- new EntityBuilder()
1217
+ new Entity()
1218
1218
  .add(BehaviorComponent.fromOne(RepeatBehavior.from(new ActionBehavior((time) => {
1219
1219
  time_total += time;
1220
1220
 
@@ -44,7 +44,7 @@ import Vector2 from "../../../../../core/geom/Vector2.js";
44
44
  import RenderSystem from "../../../../ecs/systems/RenderSystem.js";
45
45
  import { makeEngineOptionsModel } from "../../../../../../../model/game/options/makeEngineOptionsModel.js";
46
46
  import { enableEditor } from "../../../../../../editor/enableEditor.js";
47
- import EntityBuilder from "../../../../ecs/EntityBuilder.js";
47
+ import Entity from "../../../../ecs/Entity.js";
48
48
  import { Transform } from "../../../../ecs/transform/Transform.js";
49
49
  import Mesh from "../../../ecs/mesh/Mesh.js";
50
50
  import { CopyShader } from "three/examples/jsm/shaders/CopyShader.js";
@@ -313,7 +313,7 @@ function main(engine) {
313
313
  for (let i = 0; i < 10; i++) {
314
314
  for (let j = 0; j < 10; j++) {
315
315
 
316
- new EntityBuilder()
316
+ new Entity()
317
317
  .add(Transform.fromJSON({
318
318
  position: {
319
319
  x: 60 + i * 10,