@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
@@ -1,4 +1,5 @@
1
1
  import { string_capitalize } from "../../primitives/strings/string_capitalize.js";
2
+ import { read_property } from "./read_property.js";
2
3
 
3
4
  /**
4
5
  * @template T
@@ -9,32 +10,11 @@ import { string_capitalize } from "../../primitives/strings/string_capitalize.js
9
10
  * @param {T} value
10
11
  */
11
12
  export function write_property(root, parts, part_offset, part_count, value) {
12
- let thing = root;
13
13
 
14
14
  const last_index = part_offset + part_count - 1;
15
15
 
16
- for (let i = 0; i < last_index; i++) {
17
-
18
- const part = parts[i + part_offset];
19
-
20
- const thing_part = thing[part];
21
-
22
- if (typeof thing_part !== 'undefined') {
23
- thing = thing_part;
24
- } else {
25
-
26
- const getter_name = `get${string_capitalize(part)}`;
27
- const getter = thing[getter_name];
28
-
29
- if (typeof getter === "function") {
30
- // resolve via getter
31
- thing = getter.call(thing);
32
- } else {
33
- // no getter
34
- throw new Error(`No no property or getter found for '${part}' on [${i}]'${parts.slice(part_offset, part_offset + part_count).join('/')}'`);
35
- }
36
- }
37
- }
16
+ // resolve parent of the property
17
+ const thing = read_property(root, parts, 0, last_index, true);
38
18
 
39
19
  const last_part = parts[last_index];
40
20
 
@@ -0,0 +1,26 @@
1
+ import { write_property } from "./write_property.js";
2
+
3
+ test("write via setter method", () => {
4
+
5
+ let value = 1;
6
+
7
+ const thing = {
8
+ setValue(v) {
9
+ value = v
10
+ }
11
+ }
12
+
13
+ write_property(thing, ['value'], 0, 1, 31);
14
+
15
+ expect(value).toEqual(31);
16
+ });
17
+ test("write via property accessor", () => {
18
+
19
+ const thing = {
20
+ value: 1
21
+ }
22
+
23
+ write_property(thing, ['value'], 0, 1, 31);
24
+
25
+ expect(thing.value).toEqual(31);
26
+ });
@@ -0,0 +1,19 @@
1
+ import { number_pretty_print } from "./number_pretty_print.js";
2
+
3
+ test("sanity", () => {
4
+
5
+ const zero = number_pretty_print(0);
6
+
7
+ expect(typeof zero).toBe('string');
8
+ expect(zero.trim().length).toBeGreaterThan(0);
9
+
10
+
11
+ const fraction = number_pretty_print(-1.123456790);
12
+
13
+ expect(typeof fraction).toBe('string');
14
+ expect(fraction.trim().length).toBeGreaterThan(0);
15
+
16
+
17
+ // different strings for different inputs
18
+ expect(zero).not.toEqual(fraction);
19
+ });
@@ -1,4 +1,4 @@
1
- import EntityBuilder from "../../../engine/ecs/EntityBuilder.js";
1
+ import Entity from "../../../engine/ecs/Entity.js";
2
2
  import { SequenceBehavior } from "../../../engine/intelligence/behavior/composite/SequenceBehavior.js";
3
3
  import { BehaviorComponent } from "../../../engine/intelligence/behavior/ecs/BehaviorComponent.js";
4
4
  import { DieBehavior } from "../../../engine/intelligence/behavior/ecs/DieBehavior.js";
@@ -23,7 +23,7 @@ export class AsynchronousDelayAction extends AsynchronousAction {
23
23
  this.__ecd = ecd;
24
24
  this.__time = time;
25
25
 
26
- this.__entity = new EntityBuilder();
26
+ this.__entity = new Entity();
27
27
 
28
28
  this.__entity.add(BehaviorComponent.fromOne(
29
29
  SequenceBehavior.from([
@@ -1,6 +1,6 @@
1
- import { downloadAsFile } from "../../../binary/ByteArrayTools.js";
2
1
  import { Profile } from "./Profile.js";
3
2
  import { TraceEvent } from "./TraceEvent.js";
3
+ import {downloadAsFile} from "../../../binary/downloadAsFile.js";
4
4
 
5
5
  export class ConcurrentExecutorProfiler {
6
6
  constructor() {
@@ -3,7 +3,7 @@ import { MouseEvents } from "./input/devices/events/MouseEvents.js";
3
3
  import { Transform } from "./ecs/transform/Transform.js";
4
4
  import TopDownCameraController from "./graphics/ecs/camera/topdown/TopDownCameraController.js";
5
5
  import { Camera } from "./graphics/ecs/camera/Camera.js";
6
- import EntityBuilder from "./ecs/EntityBuilder.js";
6
+ import Entity from "./ecs/Entity.js";
7
7
  import { Light } from "./graphics/ecs/light/Light.js";
8
8
  import Vector3 from "../core/geom/Vector3.js";
9
9
  import Terrain from "./ecs/terrain/ecs/Terrain.js";
@@ -162,7 +162,7 @@ export class EngineHarness {
162
162
  * @param {number} [distanceMin]
163
163
  * @param {number} [distanceMax]
164
164
  * @param {number} [fieldOfView] in degrees
165
- * @returns {EntityBuilder}
165
+ * @returns {Entity}
166
166
  */
167
167
  static buildCamera(
168
168
  {
@@ -212,7 +212,7 @@ export class EngineHarness {
212
212
  camera.clip_far = distanceMax;
213
213
  camera.fov.set(fieldOfView);
214
214
 
215
- const entityBuilder = new EntityBuilder();
215
+ const entityBuilder = new Entity();
216
216
 
217
217
  entityBuilder
218
218
  .add(transform)
@@ -349,7 +349,7 @@ export class EngineHarness {
349
349
  -0.3334313787830773
350
350
  );
351
351
 
352
- new EntityBuilder()
352
+ new Entity()
353
353
  .add(key)
354
354
  .add(transform)
355
355
  .add(Tag.fromJSON(["Light", "Key"]))
@@ -362,7 +362,7 @@ export class EngineHarness {
362
362
  fill.intensity.set(0.1);
363
363
 
364
364
 
365
- new EntityBuilder()
365
+ new Entity()
366
366
  .add(fill)
367
367
  .add(new Transform())
368
368
  .add(Tag.fromJSON(["Light", "Ambient"]))
@@ -375,7 +375,7 @@ export class EngineHarness {
375
375
  * @param {Engine} engine
376
376
  * @param {number} [sensitivity]
377
377
  * @param {EntityComponentDataset} [ecd]
378
- * @returns {EntityBuilder}
378
+ * @returns {Entity}
379
379
  */
380
380
  static async buildOrbitalCameraController({
381
381
  cameraEntity,
@@ -469,7 +469,7 @@ export class EngineHarness {
469
469
  terrain.build(engine.assetManager);
470
470
 
471
471
 
472
- const eb = new EntityBuilder();
472
+ const eb = new Entity();
473
473
 
474
474
  eb.add(new Transform())
475
475
  eb.add(terrain);
@@ -4,7 +4,7 @@
4
4
  import { Transform } from './ecs/transform/Transform.js';
5
5
  import { SoundEmitter } from './sound/ecs/emitter/SoundEmitter.js';
6
6
  import Timer from './ecs/components/Timer.js';
7
- import EntityBuilder from './ecs/EntityBuilder.js';
7
+ import Entity from './ecs/Entity.js';
8
8
  import Vector3 from "../core/geom/Vector3.js";
9
9
  import { SoundEmitterChannels } from "./sound/ecs/emitter/SoundEmitterSystem.js";
10
10
  import { BehaviorComponent } from "./intelligence/behavior/ecs/BehaviorComponent.js";
@@ -22,7 +22,7 @@ import { SerializationMetadata } from "./ecs/components/SerializationMetadata.js
22
22
  * @param {boolean} [positioned]
23
23
  * @param {String|SoundEmitterChannels} [channel]
24
24
  * @param {number} [volume]
25
- * @returns {EntityBuilder}
25
+ * @returns {Entity}
26
26
  */
27
27
  function createSound(
28
28
  {
@@ -37,7 +37,7 @@ function createSound(
37
37
  }
38
38
  ) {
39
39
 
40
- const builder = new EntityBuilder();
40
+ const builder = new Entity();
41
41
 
42
42
  let trackJSON;
43
43
 
@@ -77,10 +77,10 @@ function createSound(
77
77
  *
78
78
  * @param timeout
79
79
  * @param action
80
- * @returns {EntityBuilder}
80
+ * @returns {Entity}
81
81
  */
82
82
  export function createTimer({ timeout, action }) {
83
- const builder = new EntityBuilder();
83
+ const builder = new Entity();
84
84
 
85
85
  function suicide() {
86
86
  builder.destroy();
@@ -14,6 +14,6 @@ export { EngineConfiguration } from "./EngineConfiguration.js";
14
14
  export { Light } from "./graphics/ecs/light/Light.js";
15
15
  export * from "./graphics/ecs/light/LightSystem.js";
16
16
  export { ForwardPlusRenderingPlugin } from "./graphics/render/forward_plus/plugin/ForwardPlusRenderingPlugin.js";
17
- export * from "./ecs/EntityBuilder.js";
17
+ export * from "./ecs/Entity.js";
18
18
 
19
19
  export * from './intelligence/__module.js';
@@ -6,7 +6,7 @@ import ObservedBoolean from "../../core/model/ObservedBoolean.js";
6
6
  import { AchievementNotificationView } from "../../view/game/achievements/AchievementNotificationView.js";
7
7
  import ViewportPosition from "../ecs/gui/position/ViewportPosition.js";
8
8
  import Vector2 from "../../core/geom/Vector2.js";
9
- import EntityBuilder from "../ecs/EntityBuilder.js";
9
+ import Entity from "../ecs/Entity.js";
10
10
  import GUIElement from "../ecs/gui/GUIElement.js";
11
11
  import AnimationTrack from "../animation/keyed2/AnimationTrack.js";
12
12
  import TransitionFunctions from "../animation/TransitionFunctions.js";
@@ -313,7 +313,7 @@ export class AchievementManager extends EnginePlugin {
313
313
  aExit.addKey(1, [1, 0, 1]);
314
314
  aExit.addTransition(0, SLOW_CUBIC);
315
315
 
316
- const builder = new EntityBuilder();
316
+ const builder = new Entity();
317
317
 
318
318
  const sequenceBehavior = SequenceBehavior.from([
319
319
  new AnimationBehavior(new AnimationTrackPlayback(aEntry, (scale, alpha, v) => {
@@ -1,6 +1,6 @@
1
1
  import { SerializationMetadata } from "../ecs/components/SerializationMetadata.js";
2
2
  import Timer from "../ecs/components/Timer.js";
3
- import EntityBuilder from "../ecs/EntityBuilder.js";
3
+ import Entity from "../ecs/Entity.js";
4
4
  import { whenAllEntitiesDestroyed, whenEntityDestroyed } from "../ecs/EntityBuilderUtils.js";
5
5
  import { Transform } from "../ecs/transform/Transform.js";
6
6
  import { removeComponentsExcept } from "../ecs/util/removeComponentsExcept.js";
@@ -41,7 +41,7 @@ export function stopTrailAndNotifyOnceFinished(entity, ecd) {
41
41
 
42
42
  trail.clearFlag(Trail2DFlags.Spawning);
43
43
 
44
- new EntityBuilder()
44
+ new Entity()
45
45
  .add(BehaviorComponent.fromOne(SequenceBehavior.from([
46
46
  DelayBehavior.fromJSON({ value: trail.maxAge }),
47
47
  new ActionBehavior(resolve)
@@ -85,7 +85,7 @@ export function stopEmitterAndNotifyOnceFinished(entity, ecd) {
85
85
  //figure out how long the emitter should stay alive
86
86
  const maxLife = emitter.computeMaxEmittingParticleLife();
87
87
 
88
- const entityBuilder = new EntityBuilder();
88
+ const entityBuilder = new Entity();
89
89
  //create a timer to remove emitter
90
90
  const timer = new Timer();
91
91
  timer.timeout = maxLife;
@@ -219,7 +219,7 @@ export function removeEntityWithEffect({ entity, ecd, emitter, soundEffect, time
219
219
  const t = new Transform();
220
220
  t.copy(transform);
221
221
 
222
- const emitterBuilder = new EntityBuilder();
222
+ const emitterBuilder = new Entity();
223
223
  emitterBuilder.add(t).add(emitter);
224
224
  emitterBuilder.build(ecd);
225
225
 
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  TransitionPropertyVectorXBehavior
3
3
  } from "../../../../../model/game/story/behaviors/generic/TransitionPropertyVectorXBehavior.js";
4
- import EntityBuilder from "../../ecs/EntityBuilder.js";
4
+ import Entity from "../../ecs/Entity.js";
5
5
  import { BehaviorComponent } from "../../intelligence/behavior/ecs/BehaviorComponent.js";
6
6
  import { SequenceBehavior } from "../../intelligence/behavior/composite/SequenceBehavior.js";
7
7
  import { DieBehavior } from "../../intelligence/behavior/ecs/DieBehavior.js";
@@ -23,7 +23,7 @@ export async function animateProperty(ecd, entity, component, property, target,
23
23
 
24
24
  assert.ok(ecd.entityExists(entity), `entity ${entity} doesn't exist`);
25
25
 
26
- const builder = new EntityBuilder()
26
+ const builder = new Entity()
27
27
  .add(SerializationMetadata.Transient)
28
28
  .add(BehaviorComponent.fromOne(SequenceBehavior.from([
29
29
  TransitionPropertyVectorXBehavior.from({
@@ -1,7 +1,7 @@
1
1
  import { CanvasView } from "../../../../view/elements/CanvasView.js";
2
2
  import { plot_data } from "./plot_data.js";
3
3
  import { draw_label } from "./draw_label.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 Vector2 from "../../../../core/geom/Vector2.js";
@@ -15,7 +15,7 @@ import Vector2 from "../../../../core/geom/Vector2.js";
15
15
  * @param {number} [height]
16
16
  * @param {Vector2} [margin]
17
17
  * @param {string} [label]
18
- * @return {EntityBuilder}
18
+ * @return {Entity}
19
19
  */
20
20
  export function build_plot_entity_from_array({
21
21
  data,
@@ -39,7 +39,7 @@ export function build_plot_entity_from_array({
39
39
  draw_label(ctx, label, 0, 0)
40
40
  }
41
41
 
42
- return new EntityBuilder()
42
+ return new Entity()
43
43
  .add(ViewportPosition.fromJSON({
44
44
  offset: { x, y }
45
45
  }))
@@ -1,12 +1,12 @@
1
1
  import Script from "../ecs/components/Script.js";
2
2
  import { SerializationMetadata } from "../ecs/components/SerializationMetadata.js";
3
- import EntityBuilder from "../ecs/EntityBuilder.js";
3
+ import Entity from "../ecs/Entity.js";
4
4
 
5
5
  /**
6
6
  *
7
7
  * @param {AnimationTrackPlayback} track
8
8
  * @param {EntityComponentDataset} ecd
9
- * @returns {EntityBuilder}
9
+ * @returns {Entity}
10
10
  */
11
11
  export function playAnimationTrack(track, ecd) {
12
12
  const script = new Script();
@@ -15,7 +15,7 @@ export function playAnimationTrack(track, ecd) {
15
15
  track.advance(timeDelta);
16
16
  });
17
17
 
18
- const entity = new EntityBuilder();
18
+ const entity = new Entity();
19
19
  entity.add(script);
20
20
  entity.add(SerializationMetadata.Transient);
21
21
 
@@ -1,5 +1,5 @@
1
1
  import { SerializationMetadata } from "../ecs/components/SerializationMetadata.js";
2
- import EntityBuilder from "../ecs/EntityBuilder.js";
2
+ import Entity from "../ecs/Entity.js";
3
3
  import { BehaviorComponent } from "../intelligence/behavior/ecs/BehaviorComponent.js";
4
4
  import { ClockChannelType } from "../intelligence/behavior/ecs/ClockChannelType.js";
5
5
  import { AnimationBehavior } from "./keyed2/behavior/AnimationBehavior.js";
@@ -9,11 +9,11 @@ import { AnimationBehavior } from "./keyed2/behavior/AnimationBehavior.js";
9
9
  * @param {AnimationTrackPlayback} track
10
10
  * @param {EntityComponentDataset} ecd
11
11
  *
12
- * @returns {EntityBuilder}
12
+ * @returns {Entity}
13
13
  */
14
14
  export function playTrackRealTime(track, ecd) {
15
15
 
16
- const entity = new EntityBuilder();
16
+ const entity = new Entity();
17
17
 
18
18
  const behaviorComponent = BehaviorComponent.fromOne(new AnimationBehavior(track));
19
19
 
@@ -6,7 +6,7 @@ import { removeComponentsExcept } from "../ecs/util/removeComponentsExcept.js";
6
6
  import { ParticleEmitter } from "../graphics/particles/particular/engine/emitter/ParticleEmitter.js";
7
7
  import Trail2D from "../graphics/ecs/trail2d/Trail2D.js";
8
8
  import { Transform } from "../ecs/transform/Transform.js";
9
- import EntityBuilder from "../ecs/EntityBuilder.js";
9
+ import Entity from "../ecs/Entity.js";
10
10
  import { stopEntityAndNotifyWhenStopped } from "./AnimatedActions.js";
11
11
 
12
12
  const lib = {
@@ -184,7 +184,7 @@ export function removeEntityWithMeshParticlesEffect(
184
184
  }
185
185
 
186
186
  //create particle emitter
187
- const effectBuilder = new EntityBuilder();
187
+ const effectBuilder = new Entity();
188
188
  const effectEntity = effectBuilder
189
189
  .add(emitter)
190
190
  .add(originalTransform.clone())
@@ -1,8 +1,8 @@
1
- import EntityBuilder from "../ecs/EntityBuilder.js";
1
+ import Entity from "../ecs/Entity.js";
2
2
  import { ControlContextState } from "./ControlContextState.js";
3
3
  import { IllegalStateException } from "../../core/fsm/exceptions/IllegalStateException.js";
4
4
  import { SerializationMetadata } from "../ecs/components/SerializationMetadata.js";
5
- import { EntityBuilderFlags } from "../ecs/EntityBuilderFlags.js";
5
+ import { EntityFlags } from "../ecs/EntityFlags.js";
6
6
 
7
7
  export class ControlContext {
8
8
  constructor() {
@@ -14,7 +14,7 @@ export class ControlContext {
14
14
 
15
15
  /**
16
16
  * @private
17
- * @type {EntityBuilder[]}
17
+ * @type {Entity[]}
18
18
  */
19
19
  this.entities = [];
20
20
 
@@ -42,10 +42,10 @@ export class ControlContext {
42
42
 
43
43
  /**
44
44
  * Do not invoke "build" manually
45
- * @returns {EntityBuilder}
45
+ * @returns {Entity}
46
46
  */
47
47
  makeEntity() {
48
- const eb = new EntityBuilder();
48
+ const eb = new Entity();
49
49
 
50
50
  if (this.transientEntities) {
51
51
  eb.add(SerializationMetadata.Transient);
@@ -124,7 +124,7 @@ export class ControlContext {
124
124
  }
125
125
 
126
126
  for (const e of this.entities) {
127
- if (e.getFlag(EntityBuilderFlags.Built)) {
127
+ if (e.getFlag(EntityFlags.Built)) {
128
128
  throw new IllegalStateException(`Entity ${e.entity} is already built, this violates pre-condition of control context`);
129
129
  }
130
130
 
@@ -149,7 +149,7 @@ export class ControlContext {
149
149
  }
150
150
 
151
151
  for (const e of this.entities) {
152
- if (!e.getFlag(EntityBuilderFlags.Built)) {
152
+ if (!e.getFlag(EntityFlags.Built)) {
153
153
  //entity is not built, skip
154
154
  continue;
155
155
  }
@@ -4,10 +4,10 @@ interface Type<T> extends Function {
4
4
  new(...args: any[]): T;
5
5
  }
6
6
 
7
- export default class EntityBuilder {
7
+ export default class Entity {
8
8
  public entity: number;
9
9
 
10
- add<T>(component: T): EntityBuilder
10
+ add<T>(component: T): Entity
11
11
 
12
12
  removeComponent<T>(componentType: Type<T>): T | null
13
13
 
@@ -27,11 +27,11 @@ export default class EntityBuilder {
27
27
 
28
28
  sendEvent(eventName: string, event?: any): void
29
29
 
30
- addEventListener(eventName: string, listener: (data?: any) => void, context?: any): EntityBuilder
30
+ addEventListener(eventName: string, listener: (data?: any) => void, context?: any): Entity
31
31
 
32
- removeEventListener(eventName: string, listener: (data?: any) => void, context?: any): EntityBuilder
32
+ removeEventListener(eventName: string, listener: (data?: any) => void, context?: any): Entity
33
33
 
34
- static readFromDataset(entity: number, dataset: EntityComponentDataset): EntityBuilder
34
+ static readFromDataset(entity: number, dataset: EntityComponentDataset): Entity
35
35
 
36
36
  getFlag(flag: number): boolean
37
37