@woosh/meep-engine 2.56.1 → 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 (322) hide show
  1. package/editor/Editor.js +4 -4
  2. package/editor/ecs/component/editors/ColorEditor.js +1 -1
  3. package/editor/ecs/component/editors/ImagePathEditor.js +2 -2
  4. package/editor/ecs/component/editors/{LargeStrongEditor.js → LargeStringEditor.js} +1 -1
  5. package/editor/process/symbolic/buildThreeJSHelperEntity.js +3 -3
  6. package/editor/process/symbolic/makeGridPositionSymbolDisplay.js +3 -3
  7. package/editor/process/symbolic/makePositionedIconDisplaySymbol.js +3 -3
  8. package/editor/tools/GridPaintTool.js +3 -3
  9. package/editor/tools/TopDownCameraControlTool.js +1 -1
  10. package/editor/tools/TransformTool.js +1 -1
  11. package/editor/tools/engine/Tool.js +9 -23
  12. package/editor/tools/engine/ToolEngine.js +5 -7
  13. package/editor/tools/paint/TerrainHeightPaintTool.js +2 -2
  14. package/editor/tools/paint/TerrainPaintTool.js +2 -2
  15. package/editor/tools/paint/TerrainTexturePaintTool.js +2 -2
  16. package/editor/tools/v2/prototypeTransformControls.js +3 -3
  17. package/editor/view/ecs/ComponentControlView.js +2 -1
  18. package/package.json +1 -1
  19. package/samples/generation/main.js +2 -2
  20. package/samples/terrain/from_image.js +2 -2
  21. package/samples/terrain/from_image_2.js +4 -4
  22. package/src/core/binary/byteArrayToString.js +28 -0
  23. package/src/core/binary/downloadAsFile.js +28 -0
  24. package/src/core/binary/downloadUrlAsFile.js +14 -0
  25. package/src/core/binary/jsonToStringToByteArray.js +27 -0
  26. package/src/core/binary/stringToByteArray.js +24 -0
  27. package/src/core/bvh2/BinaryNode.spec.js +2 -1
  28. package/src/core/bvh2/bvh3/query/compute_tight_near_far_clipping_planes.js +1 -1
  29. package/src/core/bvh2/traversal/ThreeClippingPlaneComputingBVHVisitor.js +1 -1
  30. package/src/core/bvh2/traversal/__process_point_if_within_planes.js +1 -1
  31. package/src/core/cache/LoadingCache.js +3 -2
  32. package/src/core/collection/array/arraySetSortingDiff.spec.js +12 -12
  33. package/src/core/collection/array/weightedRandomFromArray.js +2 -2
  34. package/src/core/color/Color.js +6 -6
  35. package/src/core/color/Color.spec.js +27 -1
  36. package/src/core/color/YCbCr/YCbCr.spec.js +16 -0
  37. package/src/core/color/{YCbCr_to_rgb_uint24.js → YCbCr/YCbCr_to_rgb_uint24.js} +6 -6
  38. package/src/core/color/YCbCr/rgb_to_YCbCr_uint24.js +16 -0
  39. package/src/core/color/{hex2rgb.js → hex/hex2rgb.js} +1 -1
  40. package/src/core/color/{rgb2hex.js → hex/rgb2hex.js} +1 -1
  41. package/src/core/color/{hsv2rgb.js → hsv/hsv2rgb.js} +3 -3
  42. package/src/core/color/hsv/rgb2hsv.js +49 -0
  43. package/src/core/color/{kelvin_to_rgb.js → kelvin/kelvin_to_rgb.js} +1 -1
  44. package/src/core/color/{kelvin_to_rgb.spec.js → kelvin/kelvin_to_rgb.spec.js} +2 -2
  45. package/src/core/color/{prototype_kelvin_to_rgb.js → kelvin/prototype_kelvin_to_rgb.js} +5 -5
  46. package/src/core/color/{rgb_to_kelvin.spec.js → kelvin/rgb_to_kelvin.spec.js} +1 -1
  47. package/src/core/color/{parseColor.js → parse_color.js} +5 -5
  48. package/src/core/color/parse_color.spec.js +18 -0
  49. package/src/core/color/rgb2uint24.js +3 -3
  50. package/src/core/color/sRGB/sRGB.spec.js +16 -0
  51. package/src/core/color/xyz/XYZ.spec.js +16 -0
  52. package/src/core/color/xyz/rgb_to_xyz.js +15 -0
  53. package/src/core/color/xyz/xyz_to_rgb.js +14 -0
  54. package/src/core/events/signal/Signal.js +5 -0
  55. package/src/core/events/signal/{signalAggregateByTimeWindow.js → signal_aggregate_by_time_window.js} +1 -1
  56. package/src/core/events/signal/{SignalUtils.js → signal_filter.js} +1 -2
  57. package/src/core/fsm/simple/SimpleStateMachine.spec.js +34 -2
  58. package/src/core/geom/2d/spline_bezier2_2d.js +26 -0
  59. package/src/core/geom/2d/spline_bezier2_2d.spec.js +16 -0
  60. package/src/core/geom/3d/SurfacePoint3.js +1 -1
  61. package/src/core/geom/3d/aabb/aabb3_compute_plane_side.js +1 -1
  62. package/src/core/geom/3d/aabb/aabb3_detailed_volume_intersection.js +1 -1
  63. package/src/core/geom/3d/aabb/aabb3_transformed_compute_plane_side.js +1 -1
  64. package/src/core/geom/3d/compute_circle_bounding_box.js +1 -1
  65. package/src/core/geom/3d/cone/computeConeBoundingBox.js +1 -1
  66. package/src/core/geom/3d/frustum/frustum3_computeNearestPointToPoint.js +1 -1
  67. package/src/core/geom/3d/line/line3_computeSegmentPointDistance_sqr.js +1 -1
  68. package/src/core/geom/3d/line/line3_compute_nearest_point_to_point.js +1 -1
  69. package/src/core/geom/3d/matrix/m4_multiply.js +2 -2
  70. package/src/core/geom/3d/matrix/m4_multiply.spec.js +11 -0
  71. package/src/core/geom/3d/matrix/m4_multiply_alphatensor.spec.js +11 -0
  72. package/src/core/geom/3d/morton/split_by_2.js +1 -1
  73. package/src/core/geom/3d/normal/hemioct/unit_hemioct.spec.js +1 -1
  74. package/src/core/geom/3d/normal/spherical/sphere_map_transform.js +1 -1
  75. package/src/core/geom/3d/plane/is_point_within_planes.js +1 -1
  76. package/src/core/geom/3d/plane/lerp_planes_to_array.js +1 -1
  77. package/src/core/geom/3d/plane/plane3_compute_convex_3_plane_intersection.js +1 -1
  78. package/src/core/geom/3d/plane/plane3_compute_line_segment_intersection.js +1 -1
  79. package/src/core/geom/3d/plane/plane3_compute_ray_intersection.js +1 -1
  80. package/src/core/geom/3d/plane/plane3_lerp.js +2 -2
  81. package/src/core/geom/3d/plane/plane3_projectPoint.js +1 -1
  82. package/src/core/geom/3d/plane/plane3_slerp.js +3 -3
  83. package/src/core/geom/3d/ray/ray_computeNearestPointToPoint.js +1 -1
  84. package/src/core/geom/3d/ray/ray_distance_to_point.js +1 -1
  85. package/src/core/geom/3d/shape/UnionShape3D.js +3 -3
  86. package/src/core/geom/3d/shape/UnitCubeShape3D.js +1 -1
  87. package/src/core/geom/3d/shape/UnitSphereShape3D.js +1 -1
  88. package/src/core/geom/3d/shape/util/shape_to_visual_entity.js +10 -10
  89. package/src/core/geom/3d/sphere/sphere_intersects_ray.js +1 -1
  90. package/src/core/geom/3d/tetrahedra/TetrahedralMesh.js +6 -0
  91. package/src/core/geom/3d/tetrahedra/compute_bounding_simplex_3d.js +1 -1
  92. package/src/core/geom/3d/tetrahedra/compute_bounding_simplex_3d.spec.js +1 -1
  93. package/src/core/geom/3d/tetrahedra/compute_circumsphere.js +1 -1
  94. package/src/core/geom/3d/tetrahedra/delaunay/compute_delaunay_tetrahedral_mesh.js +1 -0
  95. package/src/core/geom/3d/tetrahedra/delaunay/compute_delaunay_tetrahedral_mesh.spec.js +10 -2
  96. package/src/core/geom/3d/tetrahedra/prototypeTetrahedraBuilder.js +2 -2
  97. package/src/core/geom/3d/topology/bounds/computeTriangleClusterNormalBoundingCone.js +1 -1
  98. package/src/core/geom/3d/topology/samples/sampleFloodFill.js +4 -4
  99. package/src/core/geom/3d/topology/simplify/compute_face_normal_change_dot_product.js +1 -1
  100. package/src/core/geom/3d/topology/simplify/quadratic/Quadratic3.js +1 -1
  101. package/src/core/geom/3d/topology/simplify/tm_edge_collapse_is_degenerate_flip.js +2 -2
  102. package/src/core/geom/3d/topology/struct/TopoVertex.js +1 -1
  103. package/src/core/geom/3d/topology/util/compute_face_connection_weight.js +2 -2
  104. package/src/core/geom/3d/triangle/computeTrianglePlaneSide.js +1 -1
  105. package/src/core/geom/3d/triangle/computeTriangleRayIntersection.js +1 -1
  106. package/src/core/geom/3d/triangle/computeTriangleRayIntersectionBarycentricEdge.js +1 -1
  107. package/src/core/geom/3d/v3_compute_triangle_normal.js +1 -1
  108. package/src/core/geom/Quaternion.js +1 -1
  109. package/src/core/geom/Vector3.js +7 -7
  110. package/src/core/geom/Vector3.spec.js +68 -1
  111. package/src/core/geom/mat2/m2_add.js +17 -0
  112. package/src/core/geom/mat2/m2_determinant.js +8 -0
  113. package/src/core/geom/mat2/m2_multiply.js +17 -0
  114. package/src/core/geom/mat2/m2_multiply_scalar.js +18 -0
  115. package/src/core/geom/mat2/m2_multiply_transposed.js +18 -0
  116. package/src/core/geom/mat2/m2_sub_transposed.js +17 -0
  117. package/src/{view → core/geom/mat3}/m3_cm_compose_transform.js +0 -29
  118. package/src/core/geom/mat3/m3_cm_extract_rotation.js +8 -0
  119. package/src/core/geom/mat3/m3_cm_from_translation.js +19 -0
  120. package/src/{view/multiplyMatrices3.js → core/geom/mat3/m3_multiply.js} +2 -2
  121. package/src/{view → core/geom/mat3}/m3_rm_compose_transform.js +0 -9
  122. package/src/core/geom/mat3/m3_rm_extract_scale.js +7 -0
  123. package/src/core/geom/{3d/vector/allocate_v3.js → vec3/v3_allocate.js} +1 -1
  124. package/src/core/geom/{v3_angle_between.js → vec3/v3_angle_between.js} +1 -1
  125. package/src/core/geom/vec3/v3_dot_array_array.js +20 -0
  126. package/src/core/geom/{v3_lerp.js → vec3/v3_lerp.js} +1 -1
  127. package/src/core/graph/SquareMatrix.js +26 -3
  128. package/src/core/graph/SquareMatrix.spec.js +52 -2
  129. package/src/core/math/clamp01.js +1 -0
  130. package/src/core/math/fract.js +3 -1
  131. package/src/core/math/inverseLerp.js +7 -5
  132. package/src/core/math/lerp.js +5 -5
  133. package/src/core/math/physics/spring/computeHookeForce.js +9 -0
  134. package/src/core/math/remap.js +19 -0
  135. package/src/core/math/remap.spec.js +15 -0
  136. package/src/core/math/smoothStep.spec.js +16 -0
  137. package/src/core/math/spline/spline_bezier2.js +13 -0
  138. package/src/core/math/spline/spline_bezier2.spec.js +13 -0
  139. package/src/core/model/object/compareValues.js +2 -2
  140. package/src/core/model/object/read_property.js +10 -2
  141. package/src/core/model/object/write_property.js +3 -23
  142. package/src/core/model/object/write_property.spec.js +26 -0
  143. package/src/core/primitives/numbers/number_pretty_print.spec.js +19 -0
  144. package/src/core/process/action/AsynchronousDelayAction.js +2 -2
  145. package/src/core/process/executor/profile/ConcurrentExecutorProfiler.js +1 -1
  146. package/src/engine/EngineHarness.js +7 -7
  147. package/src/engine/EntityCreator.js +5 -5
  148. package/src/engine/__module.js +1 -1
  149. package/src/engine/achievements/AchievementManager.js +2 -2
  150. package/src/engine/animation/AnimationUtils.js +4 -4
  151. package/src/engine/animation/behavior/animateProperty.js +2 -2
  152. package/src/engine/animation/curve/draw/build_plot_entity_from_array.js +3 -3
  153. package/src/engine/animation/playAnimationTrack.js +3 -3
  154. package/src/engine/animation/playTrackRealTime.js +3 -3
  155. package/src/engine/animation/removeEntityWithMeshParticlesEffect.js +2 -2
  156. package/src/engine/control/ControlContext.js +7 -7
  157. package/src/engine/ecs/{EntityBuilder.d.ts → Entity.d.ts} +5 -5
  158. package/src/engine/ecs/{EntityBuilder.js → Entity.js} +29 -29
  159. package/src/engine/ecs/{EntityBuilder.spec.js → Entity.spec.js} +17 -17
  160. package/src/engine/ecs/EntityBlueprint.d.ts +2 -2
  161. package/src/engine/ecs/EntityBlueprint.js +3 -3
  162. package/src/engine/ecs/EntityBlueprint.spec.js +2 -2
  163. package/src/engine/ecs/{EntityBuilderFlags.js → EntityFlags.js} +1 -1
  164. package/src/engine/ecs/EntityObserver.spec.js +8 -8
  165. package/src/engine/ecs/dynamic_actions/DynamicActorSystem.js +5 -5
  166. package/src/engine/ecs/foliage/ecs/InstancedMeshUtils.js +3 -3
  167. package/src/engine/ecs/gui/menu/radial/RadialContextMenu.d.ts +2 -2
  168. package/src/engine/ecs/gui/menu/radial/RadialContextMenu.js +5 -5
  169. package/src/engine/ecs/ik/OneBoneSurfaceAlignmentSolver.js +2 -2
  170. package/src/engine/ecs/ik/TwoBoneInverseKinematicsSolver.js +2 -2
  171. package/src/engine/ecs/parent/EntityNode.d.ts +3 -3
  172. package/src/engine/ecs/parent/EntityNode.js +5 -5
  173. package/src/engine/ecs/parent/testHuDPerf.js +2 -2
  174. package/src/engine/ecs/speaker/VoiceSystem.js +5 -5
  175. package/src/engine/ecs/systems/SteeringSystem.js +1 -1
  176. package/src/engine/ecs/terrain/ecs/splat/SplatMapOptimizerDebugger.js +1 -1
  177. package/src/engine/ecs/tooltip/testTooltipComponentSystem.js +3 -3
  178. package/src/engine/graphics/camera/makeOrbitalCameraController.js +3 -3
  179. package/src/engine/graphics/camera/testClippingPlaneComputation.js +3 -3
  180. package/src/engine/graphics/debug/createDebugLabel.js +3 -3
  181. package/src/engine/graphics/ecs/camera/Camera.js +1 -1
  182. package/src/engine/graphics/ecs/camera/CameraClippingPlaneComputer.js +1 -1
  183. package/src/engine/graphics/ecs/camera/filter/setup_filtered_camera_controller.js +3 -3
  184. package/src/engine/graphics/ecs/decal/v2/FPDecalSystem.js +3 -11
  185. package/src/engine/graphics/ecs/decal/v2/prototypeDecalEditor.js +3 -3
  186. package/src/engine/graphics/ecs/decal/v2/prototypeDecalSystem.js +14 -14
  187. package/src/engine/graphics/ecs/highlight/Highlight.js +20 -102
  188. package/src/engine/graphics/ecs/mesh/Mesh.js +12 -18
  189. package/src/engine/graphics/ecs/mesh/MeshSystem.js +41 -26
  190. package/src/engine/graphics/ecs/mesh-v2/ShadedGeometrySystem.js +1 -1
  191. package/src/engine/graphics/ecs/mesh-v2/aggregate/prototypeSGMesh.js +3 -3
  192. package/src/engine/graphics/ecs/mesh-v2/sample/prototypeShadedGeometry.js +5 -5
  193. package/src/engine/graphics/ecs/mesh-v2/sample/prototype_sg_raycast.js +6 -6
  194. package/src/engine/graphics/ecs/path/ribbon/RibbonPathBuilder.js +3 -3
  195. package/src/engine/graphics/ecs/path/testPathDisplaySystem.js +3 -3
  196. package/src/engine/graphics/ecs/path/tube/build/TubePathBuilder.js +4 -4
  197. package/src/engine/graphics/ecs/path/tube/build/makeTubeGeometry.js +1 -1
  198. package/src/engine/graphics/ecs/path/tube/build/make_cap.js +3 -3
  199. package/src/engine/graphics/ecs/path/tube/build/make_ring_vertices.js +1 -1
  200. package/src/engine/graphics/ecs/path/tube/prototypeAnimatedPathMask.js +3 -3
  201. package/src/engine/graphics/ecs/sprite/SpriteSystemPE.js +2 -2
  202. package/src/engine/graphics/ecs/sprite/prototypeSpriteSystem.js +2 -2
  203. package/src/engine/graphics/geometry/MikkT/InitTriInfo.js +5 -6
  204. package/src/engine/graphics/geometry/MikkT/MikkTSpace.js +3 -3
  205. package/src/engine/graphics/geometry/MikkT/NormalizeSafe.js +1 -2
  206. package/src/engine/graphics/geometry/MikkT/STSpace.js +3 -3
  207. package/src/engine/graphics/geometry/MikkT/v3_scale_dot_sub_normalize.js +2 -2
  208. package/src/engine/graphics/geometry/bvh/buffered/BVHGeometryRaycaster.js +1 -1
  209. package/src/engine/graphics/geometry/clipping/ClippedGeometry.js +1 -1
  210. package/src/engine/graphics/geometry/optimization/merge/prototypeGeometryMerge.js +4 -4
  211. package/src/engine/graphics/impostors/octahedral/prototypeBaker.js +7 -7
  212. package/src/engine/graphics/particles/node-based/editor/ParticleSpecificationEditorView.js +1 -1
  213. package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.js +102 -95
  214. package/src/engine/graphics/particles/particular/engine/emitter/ParticleLayer.spec.js +25 -0
  215. package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.js +0 -35
  216. package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.spec.js +39 -2
  217. package/src/engine/graphics/particles/particular/engine/renderers/billboard/prototypeBillboardRenderer.js +2 -2
  218. package/src/engine/graphics/particles/particular/engine/shader/ShaderManager.js +22 -6
  219. package/src/engine/graphics/particles/particular/engine/utils/volume/ParticleVolume.d.ts +2 -2
  220. package/src/engine/graphics/particles/particular/engine/utils/volume/ParticleVolume.js +3 -3
  221. package/src/engine/graphics/particles/particular/engine/utils/volume/prototypeParticleVolume.js +10 -10
  222. package/src/engine/graphics/render/buffer/buffers/prototypeNormalFrameBuffer.js +2 -2
  223. package/src/engine/graphics/render/buffer/simple-fx/taa/prototypeTAA.js +2 -2
  224. package/src/engine/graphics/render/forward_plus/LightManager.js +1 -1
  225. package/src/engine/graphics/render/forward_plus/plugin/ptototypeFPPlugin.js +13 -13
  226. package/src/engine/graphics/render/forward_plus/prototype/prototypeLightManager.js +3 -3
  227. package/src/engine/graphics/render/forward_plus/query/detailed_sphere_frustum_intersection_test.js +1 -1
  228. package/src/engine/graphics/render/layers/RenderLayerUtils.js +1 -1
  229. package/src/engine/graphics/render/visibility/hiz/prototypeHiZ.js +8 -7
  230. package/src/engine/graphics/sh3/LightProbeVolume.js +3 -3
  231. package/src/engine/graphics/sh3/path_tracer/PathTracer.js +2 -2
  232. package/src/engine/graphics/sh3/path_tracer/prototypePathTracer.js +2 -2
  233. package/src/engine/graphics/sh3/path_tracer/random_in_hemisphere.js +1 -1
  234. package/src/engine/graphics/sh3/path_tracer/ray_hit_apply_transform.js +1 -1
  235. package/src/engine/graphics/sh3/path_tracer/ray_reflect.js +1 -1
  236. package/src/engine/graphics/sh3/prototypeSH3Probe.js +3 -3
  237. package/src/engine/graphics/sh3/sky/hosek/data.js +3744 -0
  238. package/src/engine/graphics/sh3/sky/hosek/sky_hosek_compute_irradiance_by_direction.js +10 -3786
  239. package/src/engine/graphics/sh3/visualise_probe.js +3 -3
  240. package/src/engine/graphics/shadows/testShadowMapRendering.js +3 -3
  241. package/src/engine/graphics/texture/atlas/AbstractTextureAtlas.js +1 -1
  242. package/src/engine/graphics/texture/atlas/AtlasPatch.js +0 -1
  243. package/src/engine/graphics/texture/atlas/AtlasPatchFlag.js +8 -1
  244. package/src/engine/graphics/texture/atlas/CachingTextureAtlas.js +25 -0
  245. package/src/engine/graphics/texture/atlas/CachingTextureAtlas.spec.js +54 -0
  246. package/src/engine/graphics/texture/atlas/ManagedTextureAtlas.js +101 -160
  247. package/src/engine/graphics/texture/atlas/TextureAtlas.js +18 -1
  248. package/src/engine/graphics/texture/sampler/downloadSamplerAsPNG.js +1 -1
  249. package/src/engine/graphics/texture/sampler/sampler2d_ensure_uint8_RGBA.js +22 -0
  250. package/src/engine/graphics/texture/sprite/prototypeSpriteCutoutGeometry.js +2 -2
  251. package/src/engine/graphics/util/projectSphere.js +1 -1
  252. package/src/engine/input/ecs/controllers/KeyboardCameraController.js +2 -2
  253. package/src/engine/input/ecs/util/TopDownCameraControllerHelper.js +2 -2
  254. package/src/engine/intelligence/behavior/composite/ParallelBehavior.spec.js +13 -12
  255. package/src/engine/navigation/ecs/components/Path.js +1 -1
  256. package/src/engine/physics/fluid/prototype.js +3 -3
  257. package/src/engine/physics/mls-mpm/MLS_MPM.js +11 -106
  258. package/src/engine/reference/v2/Reference.js +6 -2
  259. package/src/engine/save/storage/JsonStringCodec.js +1 -1
  260. package/src/engine/save/storage/LocalStorage.js +2 -1
  261. package/src/engine/sound/ecs/emitter/SoundEmitter.js +7 -7
  262. package/src/engine/sound/ecs/emitter/SoundTrack.js +6 -6
  263. package/src/engine/ui/GUIEngine.js +4 -4
  264. package/src/engine/ui/notification/NotificationManager.js +3 -3
  265. package/src/generation/filtering/numeric/complex/CellFilterAngleToNormal.js +1 -1
  266. package/src/generation/grid/generation/road/GridTaskGenerateRoads.js +2 -4
  267. package/src/generation/markers/debug/visualizeMarkers.js +2 -2
  268. package/src/generation/markers/prototypeGridCellActionPlaceMarker.js +2 -2
  269. package/src/generation/placement/action/random/weighted/CellActionSelectWeightedRandom.js +2 -2
  270. package/src/generation/theme/ThemeEngine.js +2 -2
  271. package/src/generation/theme/ThemeEngine.spec.js +7 -0
  272. package/src/view/View.js +21 -13
  273. package/src/view/elements/ColorPickerView.js +2 -2
  274. package/src/view/minimap/gl/MarkerGL.js +20 -18
  275. package/src/view/minimap/gl/MinimapMarkersGL.js +2 -1
  276. package/editor/tools/FoliagePaintTool.js +0 -168
  277. package/editor/tools/engine/ToolStateMachine.js +0 -53
  278. package/src/core/NumberFormat.js +0 -4
  279. package/src/core/binary/ByteArrayTools.js +0 -137
  280. package/src/core/binary/NaiveBitSet.js +0 -69
  281. package/src/core/binary/objects/StandardTypeBuilder.js +0 -126
  282. package/src/core/binary/serde/JsonSerializer.js +0 -113
  283. package/src/core/color/rgb2hsv.js +0 -47
  284. package/src/core/color/rgb_to_YCbCr_uint24.js +0 -16
  285. package/src/core/fsm/StateMachine.js +0 -440
  286. package/src/core/fsm/Transition.js +0 -65
  287. package/src/core/geom/Bezier.js +0 -24
  288. package/src/core/geom/Bezier.spec.js +0 -16
  289. package/src/core/math/spline/quadraticCurve.js +0 -11
  290. package/src/core/math/spline/quadraticCurve.spec.js +0 -13
  291. package/src/core/primitives/numbers/compareNumbers.js +0 -9
  292. package/src/engine/graphics/ecs/decal/Decal.js +0 -10
  293. package/src/engine/graphics/ecs/decal/DecalSystem.js +0 -99
  294. package/src/engine/graphics/ecs/decal/threejs/DecalGeometry.js +0 -298
  295. package/src/engine/graphics/ecs/trail/Trail.js +0 -83
  296. package/src/engine/graphics/ecs/trail/TrailMaterial.js +0 -67
  297. package/src/engine/graphics/ecs/trail/TrailMaterial2.js +0 -73
  298. package/src/engine/graphics/ecs/trail/TrailSystem.js +0 -162
  299. package/src/engine/graphics/ecs/water2/NodeWaterShader1.js +0 -213
  300. package/src/engine/graphics/ecs/water2/shader/JBWaterShader.js +0 -315
  301. package/src/engine/graphics/geometry/MikkT/Length.js +0 -10
  302. package/src/engine/graphics/texture/ImageLoader.js +0 -33
  303. package/src/engine/graphics/three/DDSLoader.js +0 -286
  304. package/src/engine/graphics/three/Water2.js +0 -343
  305. package/src/engine/physics/spring/computeHookeForce.js +0 -9
  306. package/src/engine/reference/v1/ReferenceManager.js +0 -124
  307. /package/src/core/color/{hex2rgb.spec.js → hex/hex2rgb.spec.js} +0 -0
  308. /package/src/core/color/{rgb2hex.spec.js → hex/rgb2hex.spec.js} +0 -0
  309. /package/src/core/color/{hsv2rgb.spec.js → hsv/hsv2rgb.spec.js} +0 -0
  310. /package/src/core/color/{rgb_to_kelvin.js → kelvin/rgb_to_kelvin.js} +0 -0
  311. /package/src/core/color/{linear_to_sRGB.js → sRGB/linear_to_sRGB.js} +0 -0
  312. /package/src/core/color/{sRGB_to_linear.js → sRGB/sRGB_to_linear.js} +0 -0
  313. /package/src/core/geom/{m3_determinant.js → mat3/m3_determinant.js} +0 -0
  314. /package/src/core/geom/{v3_distance.js → vec3/v3_distance.js} +0 -0
  315. /package/src/core/geom/{v3_distance_above_plane.js → vec3/v3_distance_above_plane.js} +0 -0
  316. /package/src/core/geom/{v3_distance_above_plane.spec.js → vec3/v3_distance_above_plane.spec.js} +0 -0
  317. /package/src/core/geom/{v3_distance_sqr.d.ts → vec3/v3_distance_sqr.d.ts} +0 -0
  318. /package/src/core/geom/{v3_distance_sqr.js → vec3/v3_distance_sqr.js} +0 -0
  319. /package/src/core/geom/{v3_dot.js → vec3/v3_dot.js} +0 -0
  320. /package/src/core/geom/{v3_length.js → vec3/v3_length.js} +0 -0
  321. /package/src/core/geom/{v3_length_sqr.js → vec3/v3_length_sqr.js} +0 -0
  322. /package/src/core/geom/{v3_slerp.js → vec3/v3_slerp.js} +0 -0
@@ -2,22 +2,22 @@ import Signal from "../../core/events/signal/Signal.js";
2
2
  import { assert } from "../../core/assert.js";
3
3
  import { EventType } from "./EntityManager.js";
4
4
  import { isDefined } from "../../core/process/matcher/Matchers.js";
5
- import { EntityBuilderFlags } from "./EntityBuilderFlags.js";
5
+ import { EntityFlags } from "./EntityFlags.js";
6
6
 
7
7
  /**
8
8
  * Set of default flags
9
9
  * @type {number}
10
10
  */
11
11
  const DEFAULT_FLAGS =
12
- EntityBuilderFlags.RegisterComponents
13
- | EntityBuilderFlags.WatchDestruction
12
+ EntityFlags.RegisterComponents
13
+ | EntityFlags.WatchDestruction
14
14
  ;
15
15
 
16
16
  /**
17
17
  * Representation of an entity, helps build entities and keep track of them without having to access {@link EntityComponentDataset} directly
18
18
  * @class
19
19
  */
20
- class EntityBuilder {
20
+ class Entity {
21
21
 
22
22
  /**
23
23
  * @type {number}
@@ -51,7 +51,7 @@ class EntityBuilder {
51
51
 
52
52
  /**
53
53
  *
54
- * @type {EntityBuilderFlags|number}
54
+ * @type {EntityFlags|number}
55
55
  */
56
56
  flags = DEFAULT_FLAGS;
57
57
 
@@ -73,12 +73,12 @@ class EntityBuilder {
73
73
  * @private
74
74
  */
75
75
  __handleEntityDestroyed() {
76
- this.clearFlag(EntityBuilderFlags.Built);
76
+ this.clearFlag(EntityFlags.Built);
77
77
  }
78
78
 
79
79
  /**
80
80
  *
81
- * @param {number|EntityBuilderFlags} value
81
+ * @param {number|EntityFlags} value
82
82
  */
83
83
  setFlag(value) {
84
84
  this.flags |= value;
@@ -86,7 +86,7 @@ class EntityBuilder {
86
86
 
87
87
  /**
88
88
  *
89
- * @param {number|EntityBuilderFlags} flag
89
+ * @param {number|EntityFlags} flag
90
90
  * @returns {boolean}
91
91
  */
92
92
  getFlag(flag) {
@@ -97,7 +97,7 @@ class EntityBuilder {
97
97
 
98
98
  /**
99
99
  *
100
- * @param {number|EntityBuilderFlags} flag
100
+ * @param {number|EntityFlags} flag
101
101
  */
102
102
  clearFlag(flag) {
103
103
  this.flags &= ~flag;
@@ -108,7 +108,7 @@ class EntityBuilder {
108
108
  * @returns {boolean}
109
109
  */
110
110
  get isBuilt() {
111
- return this.getFlag(EntityBuilderFlags.Built);
111
+ return this.getFlag(EntityFlags.Built);
112
112
  }
113
113
 
114
114
  /**
@@ -135,7 +135,7 @@ class EntityBuilder {
135
135
  /**
136
136
  * @template T
137
137
  * @param {T} componentInstance
138
- * @returns {EntityBuilder}
138
+ * @returns {Entity}
139
139
  */
140
140
  add(componentInstance) {
141
141
  if (componentInstance === undefined) {
@@ -146,7 +146,7 @@ class EntityBuilder {
146
146
 
147
147
  this.element.push(componentInstance);
148
148
 
149
- if (this.getFlag(EntityBuilderFlags.Built)) {
149
+ if (this.getFlag(EntityFlags.Built)) {
150
150
  //already built, add component to entity
151
151
  this.dataset.addComponentToEntity(this.entity, componentInstance);
152
152
  }
@@ -213,7 +213,7 @@ class EntityBuilder {
213
213
  elements.splice(i, 1);
214
214
 
215
215
  //see if entity is built
216
- if (this.getFlag(EntityBuilderFlags.Built)) {
216
+ if (this.getFlag(EntityFlags.Built)) {
217
217
 
218
218
  this.dataset.removeComponentFromEntity(this.entity, klass);
219
219
 
@@ -232,7 +232,7 @@ class EntityBuilder {
232
232
  * @param {*} [event]
233
233
  */
234
234
  sendEvent(eventName, event) {
235
- if (this.getFlag(EntityBuilderFlags.Built)) {
235
+ if (this.getFlag(EntityFlags.Built)) {
236
236
  this.dataset.sendEvent(this.entity, eventName, event);
237
237
  } else {
238
238
  console.warn("Entity doesn't exist. Event " + eventName + ":" + event + " was not sent.")
@@ -265,10 +265,10 @@ class EntityBuilder {
265
265
  * @param {string} eventName
266
266
  * @param {function} listener
267
267
  * @param {*} [context]
268
- * @returns {EntityBuilder}
268
+ * @returns {Entity}
269
269
  */
270
270
  addEventListener(eventName, listener, context) {
271
- if (this.getFlag(EntityBuilderFlags.Built)) {
271
+ if (this.getFlag(EntityFlags.Built)) {
272
272
  this.dataset.addEntityEventListener(this.entity, eventName, listener, context);
273
273
  } else {
274
274
  this.deferredListeners.push({
@@ -285,10 +285,10 @@ class EntityBuilder {
285
285
  * @param {string} eventName
286
286
  * @param {function} listener
287
287
  * @param {*} [context]
288
- * @returns {EntityBuilder}
288
+ * @returns {Entity}
289
289
  */
290
290
  removeEventListener(eventName, listener, context) {
291
- if (this.getFlag(EntityBuilderFlags.Built)) {
291
+ if (this.getFlag(EntityFlags.Built)) {
292
292
  this.dataset.removeEntityEventListener(this.entity, eventName, listener, context);
293
293
  } else {
294
294
  const listeners = this.deferredListeners;
@@ -317,7 +317,7 @@ class EntityBuilder {
317
317
  * @returns {boolean}
318
318
  */
319
319
  destroy() {
320
- if (this.getFlag(EntityBuilderFlags.Built)) {
320
+ if (this.getFlag(EntityFlags.Built)) {
321
321
 
322
322
  const dataset = this.dataset;
323
323
  const entity = this.entity;
@@ -331,7 +331,7 @@ class EntityBuilder {
331
331
 
332
332
  this.entity = void 0;
333
333
 
334
- this.clearFlag(EntityBuilderFlags.Built);
334
+ this.clearFlag(EntityFlags.Built);
335
335
 
336
336
  return true;
337
337
  } else {
@@ -349,7 +349,7 @@ class EntityBuilder {
349
349
  assert.notNull(dataset, "dataset");
350
350
 
351
351
  if (
352
- this.getFlag(EntityBuilderFlags.Built)
352
+ this.getFlag(EntityFlags.Built)
353
353
  && checkExistingComponents(this.entity, this.element, dataset)
354
354
  ) {
355
355
  //already built
@@ -374,7 +374,7 @@ class EntityBuilder {
374
374
  const element = this.element;
375
375
  const element_count = element.length;
376
376
 
377
- if (this.getFlag(EntityBuilderFlags.RegisterComponents)) {
377
+ if (this.getFlag(EntityFlags.RegisterComponents)) {
378
378
  for (i = 0; i < element_count; i++) {
379
379
  const component = element[i];
380
380
 
@@ -388,9 +388,9 @@ class EntityBuilder {
388
388
  dataset.addComponentToEntity(entity, component);
389
389
  }
390
390
 
391
- this.setFlag(EntityBuilderFlags.Built);
391
+ this.setFlag(EntityFlags.Built);
392
392
 
393
- if (this.getFlag(EntityBuilderFlags.WatchDestruction)) {
393
+ if (this.getFlag(EntityFlags.WatchDestruction)) {
394
394
  dataset.addEntityEventListener(entity, EventType.EntityRemoved, this.__handleEntityDestroyed, this);
395
395
  }
396
396
 
@@ -402,16 +402,16 @@ class EntityBuilder {
402
402
  *
403
403
  * @param {number} entity
404
404
  * @param {EntityComponentDataset} dataset
405
- * @returns {EntityBuilder}
405
+ * @returns {Entity}
406
406
  */
407
407
  static readFromDataset(entity, dataset) {
408
- const r = new EntityBuilder();
408
+ const r = new Entity();
409
409
 
410
410
  dataset.getAllComponents(entity)
411
411
  .filter(isDefined)
412
412
  .forEach(r.add, r);
413
413
 
414
- r.setFlag(EntityBuilderFlags.Built);
414
+ r.setFlag(EntityFlags.Built);
415
415
  r.entity = entity;
416
416
  r.dataset = dataset;
417
417
 
@@ -423,7 +423,7 @@ class EntityBuilder {
423
423
  * @readonly
424
424
  * @type {boolean}
425
425
  */
426
- EntityBuilder.prototype.isEntityBuilder = true;
426
+ Entity.prototype.isEntityBuilder = true;
427
427
 
428
428
 
429
429
  /**
@@ -452,4 +452,4 @@ function checkExistingComponents(entity, components, dataset) {
452
452
  return true;
453
453
  }
454
454
 
455
- export default EntityBuilder;
455
+ export default Entity;
@@ -1,6 +1,6 @@
1
- import EntityBuilder from "./EntityBuilder.js";
1
+ import Entity from "./Entity.js";
2
2
  import { EntityComponentDataset } from "./EntityComponentDataset.js";
3
- import { EntityBuilderFlags } from "./EntityBuilderFlags.js";
3
+ import { EntityFlags } from "./EntityFlags.js";
4
4
 
5
5
 
6
6
  class DummyComponent {
@@ -19,13 +19,13 @@ function sampleDataset() {
19
19
  }
20
20
 
21
21
  test("constructor doesn't throw", () => {
22
- new EntityBuilder();
22
+ new Entity();
23
23
  });
24
24
 
25
25
  test("entity exists in dataset after build", () => {
26
26
  const dataset = new EntityComponentDataset();
27
27
 
28
- const builder = new EntityBuilder();
28
+ const builder = new Entity();
29
29
 
30
30
  const entity = builder.build(dataset);
31
31
 
@@ -37,7 +37,7 @@ test("component exist in dataset after build", () => {
37
37
 
38
38
  dataset.setComponentTypeMap([DummyComponent]);
39
39
 
40
- const builder = new EntityBuilder();
40
+ const builder = new Entity();
41
41
 
42
42
  const component = new DummyComponent();
43
43
 
@@ -53,30 +53,30 @@ test("component exist in dataset after build", () => {
53
53
  test("'Built' flag is reset when entity is removed without invoking 'destroy' method", () => {
54
54
  const dataset = sampleDataset();
55
55
 
56
- const b = new EntityBuilder();
56
+ const b = new Entity();
57
57
 
58
- expect(b.getFlag(EntityBuilderFlags.Built)).toBe(false);
58
+ expect(b.getFlag(EntityFlags.Built)).toBe(false);
59
59
  expect(b.isBuilt).toBe(false);
60
60
 
61
61
  b.build(dataset);
62
62
 
63
- expect(b.getFlag(EntityBuilderFlags.Built)).toBe(true);
63
+ expect(b.getFlag(EntityFlags.Built)).toBe(true);
64
64
  expect(b.isBuilt).toBe(true);
65
65
 
66
66
  dataset.removeEntity(b.entity);
67
67
 
68
- expect(b.getFlag(EntityBuilderFlags.Built)).toBe(false);
68
+ expect(b.getFlag(EntityFlags.Built)).toBe(false);
69
69
  expect(b.isBuilt).toBe(false);
70
70
  });
71
71
 
72
72
  test("removeAllComponents from empty", () => {
73
- const entity = new EntityBuilder();
73
+ const entity = new Entity();
74
74
 
75
75
  expect(() => entity.removeAllComponents()).not.toThrow()
76
76
  });
77
77
 
78
78
  test("removeAllComponents with 1 entity", () => {
79
- const entity = new EntityBuilder();
79
+ const entity = new Entity();
80
80
 
81
81
  entity.add(new DummyComponent());
82
82
 
@@ -88,13 +88,13 @@ test("removeAllComponents with 1 entity", () => {
88
88
  });
89
89
 
90
90
  test("removeComponent when component is not preset", () => {
91
- const entity = new EntityBuilder();
91
+ const entity = new Entity();
92
92
 
93
93
  expect(entity.removeComponent(DummyComponent)).toBe(null);
94
94
  });
95
95
 
96
96
  test("removeComponent when component is preset", () => {
97
- const entity = new EntityBuilder();
97
+ const entity = new Entity();
98
98
 
99
99
  const component = new DummyComponent();
100
100
 
@@ -107,14 +107,14 @@ test("removeComponent when component is preset", () => {
107
107
 
108
108
  test("getComponentSafe throws when component is missing", () => {
109
109
 
110
- const entity = new EntityBuilder();
110
+ const entity = new Entity();
111
111
 
112
112
  expect(() => entity.getComponentSafe(DummyComponent)).toThrow();
113
113
 
114
114
  });
115
115
  test("getComponentSafe throws when component is present", () => {
116
116
 
117
- const entity = new EntityBuilder();
117
+ const entity = new Entity();
118
118
 
119
119
  const component = new DummyComponent();
120
120
  entity.add(component);
@@ -126,7 +126,7 @@ test("getComponentSafe throws when component is present", () => {
126
126
 
127
127
  test("adding component to live entity results in component being added to the dataset", () => {
128
128
 
129
- const entity = new EntityBuilder();
129
+ const entity = new Entity();
130
130
 
131
131
  const ecd = sampleDataset();
132
132
 
@@ -141,7 +141,7 @@ test("adding component to live entity results in component being added to the da
141
141
 
142
142
  test("promiseEvent", async () => {
143
143
 
144
- const entity = new EntityBuilder();
144
+ const entity = new Entity();
145
145
 
146
146
  const ecd = sampleDataset();
147
147
 
@@ -1,4 +1,4 @@
1
- import EntityBuilder from "./EntityBuilder";
1
+ import Entity from "./Entity";
2
2
 
3
3
  interface Type<T> extends Function {
4
4
  new(...args: any[]): T;
@@ -13,5 +13,5 @@ export class EntityBlueprint {
13
13
 
14
14
  clear(): void
15
15
 
16
- build(seed?: object): EntityBuilder
16
+ build(seed?: object): Entity
17
17
  }
@@ -1,4 +1,4 @@
1
- import EntityBuilder from "./EntityBuilder.js";
1
+ import Entity from "./Entity.js";
2
2
 
3
3
  /**
4
4
  *
@@ -141,10 +141,10 @@ export class EntityBlueprint {
141
141
 
142
142
  /**
143
143
  * @param {object} [templateSeed]
144
- * @return {EntityBuilder}
144
+ * @return {Entity}
145
145
  */
146
146
  build(templateSeed) {
147
- const eb = new EntityBuilder();
147
+ const eb = new Entity();
148
148
 
149
149
  this.#components.forEach((template, ComponentClass) => {
150
150
  const component = new ComponentClass();
@@ -1,5 +1,5 @@
1
1
  import { EntityBlueprint } from "./EntityBlueprint.js";
2
- import EntityBuilder from "./EntityBuilder.js";
2
+ import Entity from "./Entity.js";
3
3
 
4
4
  test("constructor does not throw", () => {
5
5
 
@@ -13,7 +13,7 @@ test("build empty", () => {
13
13
  const entity = blueprint.build();
14
14
 
15
15
  expect(entity).toBeDefined();
16
- expect(entity).toBeInstanceOf(EntityBuilder);
16
+ expect(entity).toBeInstanceOf(Entity);
17
17
  expect(entity.count).toEqual(0);
18
18
  });
19
19
 
@@ -2,7 +2,7 @@
2
2
  *
3
3
  * @enum
4
4
  */
5
- export const EntityBuilderFlags = {
5
+ export const EntityFlags = {
6
6
  /**
7
7
  * Whether the entity is built, set internally
8
8
  */
@@ -1,7 +1,7 @@
1
1
  import { EntityObserver } from "./EntityObserver.js";
2
2
  import { Transform } from "./transform/Transform.js";
3
3
  import GridPosition from "../grid/position/GridPosition.js";
4
- import EntityBuilder from "./EntityBuilder.js";
4
+ import Entity from "./Entity.js";
5
5
  import { EntityComponentDataset } from "./EntityComponentDataset.js";
6
6
  import { noop } from "../../core/function/Functions.js";
7
7
  import { jest } from '@jest/globals';
@@ -42,13 +42,13 @@ test("existing entities that match are supplied via callback when attaching", ()
42
42
 
43
43
  const t0 = new Transform();
44
44
  const g0 = new GridPosition();
45
- const entity0 = new EntityBuilder().add(t0).add(g0).build(dataset);
45
+ const entity0 = new Entity().add(t0).add(g0).build(dataset);
46
46
 
47
47
  const t1 = new Transform();
48
48
  const g1 = new GridPosition();
49
- const entity1 = new EntityBuilder().add(t1).add(g1).build(dataset);
49
+ const entity1 = new Entity().add(t1).add(g1).build(dataset);
50
50
 
51
- new EntityBuilder().add(new Transform()).build(dataset);
51
+ new Entity().add(new Transform()).build(dataset);
52
52
 
53
53
  const observer = new EntityObserver([Transform, GridPosition], completed, broken);
54
54
 
@@ -69,7 +69,7 @@ test("completed matches are observed when they happen after attachment", () => {
69
69
 
70
70
  const t0 = new Transform();
71
71
  const g0 = new GridPosition();
72
- const entity0 = new EntityBuilder().add(t0).build(dataset);
72
+ const entity0 = new Entity().add(t0).build(dataset);
73
73
 
74
74
  const observer = new EntityObserver([Transform, GridPosition], completed, broken);
75
75
 
@@ -93,7 +93,7 @@ test("broken matches are observed", () => {
93
93
  const dataset = makeDataset();
94
94
  const t0 = new Transform();
95
95
  const g0 = new GridPosition();
96
- const entityBuilder = new EntityBuilder().add(t0).add(g0);
96
+ const entityBuilder = new Entity().add(t0).add(g0);
97
97
  const entity0 = entityBuilder.build(dataset);
98
98
 
99
99
  const observer = new EntityObserver([Transform, GridPosition], completed, broken);
@@ -115,7 +115,7 @@ test("matching entities added after connect are observed", () => {
115
115
  const dataset = makeDataset();
116
116
  const t0 = new Transform();
117
117
  const g0 = new GridPosition();
118
- const entityBuilder = new EntityBuilder().add(t0).add(g0);
118
+ const entityBuilder = new Entity().add(t0).add(g0);
119
119
 
120
120
  const observer = new EntityObserver([Transform, GridPosition], completed, broken);
121
121
 
@@ -135,7 +135,7 @@ test("match after connect and break", () => {
135
135
  const dataset = makeDataset();
136
136
  const t0 = new Transform();
137
137
  const g0 = new GridPosition();
138
- const entityBuilder = new EntityBuilder().add(t0).add(g0);
138
+ const entityBuilder = new Entity().add(t0).add(g0);
139
139
 
140
140
  const observer = new EntityObserver([Transform, GridPosition], completed, broken);
141
141
 
@@ -5,7 +5,7 @@ import { DataScope } from "../../../../../model/game/unit/actions/data/DataScope
5
5
  import { Blackboard } from "../../intelligence/blackboard/Blackboard.js";
6
6
  import { returnTrue } from "../../../core/function/Functions.js";
7
7
  import { EntityProxyScope } from "../binding/EntityProxyScope.js";
8
- import EntityBuilder from "../EntityBuilder.js";
8
+ import Entity from "../Entity.js";
9
9
  import { BehaviorComponent } from "../../intelligence/behavior/ecs/BehaviorComponent.js";
10
10
  import { SequenceBehavior } from "../../intelligence/behavior/composite/SequenceBehavior.js";
11
11
  import { DieBehavior } from "../../intelligence/behavior/ecs/DieBehavior.js";
@@ -22,7 +22,7 @@ import { randomFloatBetween } from "../../../core/math/random/randomFloatBetween
22
22
  import { randomMultipleFromArray } from "../../../core/collection/array/randomMultipleFromArray.js";
23
23
  import { ResourceAccessSpecification } from "../../../core/model/ResourceAccessSpecification.js";
24
24
  import { ResourceAccessKind } from "../../../core/model/ResourceAccessKind.js";
25
- import { EntityBuilderFlags } from "../EntityBuilderFlags.js";
25
+ import { EntityFlags } from "../EntityFlags.js";
26
26
  import { number_compare_descending } from "../../../core/primitives/numbers/number_compare_descending.js";
27
27
 
28
28
  /**
@@ -196,7 +196,7 @@ export class DynamicActorSystem extends AbstractContextSystem {
196
196
 
197
197
  const execution = ctx.execution;
198
198
 
199
- if (execution.executor !== null && execution.executor.getFlag(EntityBuilderFlags.Built)) {
199
+ if (execution.executor !== null && execution.executor.getFlag(EntityFlags.Built)) {
200
200
  // there is an active rule being executed, see if this one has the right to interrupt
201
201
 
202
202
  if (rule.priority <= execution.rule.priority) {
@@ -223,7 +223,7 @@ export class DynamicActorSystem extends AbstractContextSystem {
223
223
 
224
224
  const execution = ctx.execution;
225
225
 
226
- if (execution.executor !== null && execution.executor.getFlag(EntityBuilderFlags.Built)) {
226
+ if (execution.executor !== null && execution.executor.getFlag(EntityFlags.Built)) {
227
227
  execution.executor.destroy();
228
228
  }
229
229
  }
@@ -269,7 +269,7 @@ export class DynamicActorSystem extends AbstractContextSystem {
269
269
  const ecd = this.entityManager.dataset;
270
270
  const behavior = rule.action.execute(entity, ecd, context, this);
271
271
 
272
- const entity_builder = new EntityBuilder()
272
+ const entity_builder = new Entity()
273
273
  .add(BehaviorComponent.fromOne(SequenceBehavior.from([
274
274
  OverrideContextBehavior.from(
275
275
  {
@@ -1,4 +1,4 @@
1
- import EntityBuilder from "../../EntityBuilder.js";
1
+ import Entity from "../../Entity.js";
2
2
  import { loadFoliageLayer } from "./Foliage2System.js";
3
3
  import Mesh, { MeshFlags } from "../../../graphics/ecs/mesh/Mesh.js";
4
4
  import { Transform } from "../../transform/Transform.js";
@@ -51,7 +51,7 @@ export function convertInstancedMeshComponents2Entities(dataset, assetManager) {
51
51
 
52
52
  //TODO Consider moving BVH info here also, to make this process faster
53
53
 
54
- const entityBuilder = new EntityBuilder();
54
+ const entityBuilder = new Entity();
55
55
 
56
56
  entityBuilder.add(transform).add(mesh).build(dataset);
57
57
  }
@@ -145,7 +145,7 @@ export function optimizeIndividualMeshesEntitiesToInstances(dataset, threshold =
145
145
  const tBuild = new Task({
146
146
  name: "Build Meshes",
147
147
  cycleFunction: function () {
148
- const entityBuilder = new EntityBuilder();
148
+ const entityBuilder = new Entity();
149
149
 
150
150
  entityBuilder.add(foliage2);
151
151
 
@@ -1,4 +1,4 @@
1
- import EntityBuilder from "../../../EntityBuilder";
1
+ import Entity from "../../../Entity";
2
2
  import {EntityComponentDataset} from "../../../EntityComponentDataset";
3
3
  import Vector2 from "../../../../../core/geom/Vector2";
4
4
  import {RadialMenuElementDefinition} from "../../../../../view/elements/radial/RadialMenuElementDefinition";
@@ -19,4 +19,4 @@ interface RadialMenuOptions {
19
19
  selectionDistance?: number
20
20
  }
21
21
 
22
- export function makeMenu(options: RadialMenuOptions): EntityBuilder;
22
+ export function makeMenu(options: RadialMenuOptions): Entity;
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { SerializationMetadata } from "../../../components/SerializationMetadata.js";
5
5
 
6
- import EntityBuilder from "../../../EntityBuilder.js";
6
+ import Entity from "../../../Entity.js";
7
7
  import GUIElement from "../../GUIElement.js";
8
8
  import { MouseEvents } from "../../../../input/devices/events/MouseEvents.js";
9
9
  import { TouchEvents } from "../../../../input/devices/events/TouchEvents.js";
@@ -12,7 +12,7 @@ import RadialMenuView from "../../../../../view/elements/radial/RadialMenu.js";
12
12
  import { animateAppearance } from "./AnimateAppearance.js";
13
13
  import { animateDisappearance } from "./AnimateDisappearance.js";
14
14
  import { RadialMenuSettings } from "./RadialMenuSettings.js";
15
- import { EntityBuilderFlags } from "../../../EntityBuilderFlags.js";
15
+ import { EntityFlags } from "../../../EntityFlags.js";
16
16
 
17
17
  /**
18
18
  *
@@ -32,7 +32,7 @@ import { EntityBuilderFlags } from "../../../EntityBuilderFlags.js";
32
32
  * @param {string[]} [classList]
33
33
  * @param {Vector2} [pointerPosition] Used to set initial selection, same as position is not set
34
34
  * @param {number} [selectionDistance] minimum distance in pixels at which selection registers
35
- * @returns {EntityBuilder}
35
+ * @returns {Entity}
36
36
  */
37
37
  export function makeMenu({
38
38
  ecd,
@@ -99,7 +99,7 @@ export function makeMenu({
99
99
  //play appearance animation
100
100
  const appearanceAnimationFinished = animateAppearance(mainView, ecd);
101
101
 
102
- const builder = new EntityBuilder();
102
+ const builder = new Entity();
103
103
 
104
104
  //prevent menu serialization
105
105
  builder.add(SerializationMetadata.Transient);
@@ -234,7 +234,7 @@ export function makeMenu({
234
234
  window.addEventListener(TouchEvents.End, performSelection);
235
235
 
236
236
  // to simplify usage of this class, we turn on component registration on the builder
237
- builder.setFlag(EntityBuilderFlags.RegisterComponents);
237
+ builder.setFlag(EntityFlags.RegisterComponents);
238
238
 
239
239
  // actually build the menu
240
240
  builder.build(ecd);
@@ -6,8 +6,8 @@ import Quaternion from "../../../core/geom/Quaternion.js";
6
6
  import Vector3 from "../../../core/geom/Vector3.js";
7
7
  import { SurfacePoint3 } from "../../../core/geom/3d/SurfacePoint3.js";
8
8
  import { v3_computeOffsetVector } from "./IKMath.js";
9
- import { v3_dot } from "../../../core/geom/v3_dot.js";
10
- import { v3_length } from "../../../core/geom/v3_length.js";
9
+ import { v3_dot } from "../../../core/geom/vec3/v3_dot.js";
10
+ import { v3_length } from "../../../core/geom/vec3/v3_length.js";
11
11
  import { clamp01 } from "../../../core/math/clamp01.js";
12
12
 
13
13
  const boneWorldPosition = new Vector3();
@@ -7,8 +7,8 @@ import { findSkeletonBoneByType } from "../../graphics/ecs/mesh/SkeletonUtils.js
7
7
  import { SurfacePoint3 } from "../../../core/geom/3d/SurfacePoint3.js";
8
8
  import { IKSolver } from "./IKSolver.js";
9
9
  import { v3_computeOffsetVector } from "./IKMath.js";
10
- import { v3_dot } from "../../../core/geom/v3_dot.js";
11
- import { v3_length } from "../../../core/geom/v3_length.js";
10
+ import { v3_dot } from "../../../core/geom/vec3/v3_dot.js";
11
+ import { v3_length } from "../../../core/geom/vec3/v3_length.js";
12
12
  import { clamp01 } from "../../../core/math/clamp01.js";
13
13
 
14
14
  const boneWorldPositionC = new Vector3();
@@ -1,12 +1,12 @@
1
- import EntityBuilder from "../EntityBuilder";
1
+ import Entity from "../Entity";
2
2
  import {EntityComponentDataset} from "../EntityComponentDataset";
3
3
  import {Transform} from "../transform/Transform";
4
4
 
5
5
  export class EntityNode {
6
- constructor(entity?: EntityBuilder)
6
+ constructor(entity?: Entity)
7
7
 
8
8
  readonly parent: EntityNode | null
9
- readonly entity: EntityBuilder
9
+ readonly entity: Entity
10
10
 
11
11
  readonly transform: Transform
12
12
 
@@ -1,5 +1,5 @@
1
1
  import { ParentEntity } from "./ParentEntity.js";
2
- import EntityBuilder from "../EntityBuilder.js";
2
+ import Entity from "../Entity.js";
3
3
  import { array_remove_first } from "../../../core/collection/array/array_remove_first.js";
4
4
  import { assert } from "../../../core/assert.js";
5
5
  import { array_push_if_unique } from "../../../core/collection/array/array_push_if_unique.js";
@@ -13,9 +13,9 @@ const DEFAULT_FLAGS = EntityNodeFlags.LiveManagement;
13
13
  export class EntityNode {
14
14
  /**
15
15
  *
16
- * @param {EntityBuilder} [entity] optional entity to be wrapped
16
+ * @param {Entity} [entity] optional entity to be wrapped
17
17
  */
18
- constructor(entity = new EntityBuilder()) {
18
+ constructor(entity = new Entity()) {
19
19
  /**
20
20
  *
21
21
  * @type {EntityNode|null}
@@ -25,7 +25,7 @@ export class EntityNode {
25
25
 
26
26
  /**
27
27
  *
28
- * @type {EntityBuilder}
28
+ * @type {Entity}
29
29
  * @private
30
30
  */
31
31
  this.__entity = entity;
@@ -254,7 +254,7 @@ export class EntityNode {
254
254
 
255
255
  /**
256
256
  *
257
- * @return {EntityBuilder}
257
+ * @return {Entity}
258
258
  */
259
259
  get entity() {
260
260
  return this.__entity;