@woosh/meep-engine 2.138.18 → 2.138.20

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 (447) hide show
  1. package/README.md +2 -2
  2. package/build/bundle-worker-image-decoder.js +1 -1
  3. package/editor/actions/concrete/ActionUpdateTexture.d.ts +12 -0
  4. package/editor/actions/concrete/ActionUpdateTexture.d.ts.map +1 -0
  5. package/editor/actions/concrete/ArrayCopyAction.d.ts +20 -0
  6. package/editor/actions/concrete/ArrayCopyAction.d.ts.map +1 -0
  7. package/editor/actions/concrete/ComponentRemoveAction.d.ts +11 -0
  8. package/editor/actions/concrete/ComponentRemoveAction.d.ts.map +1 -0
  9. package/editor/actions/concrete/ModifyPatchSampler2DAction.d.ts +47 -0
  10. package/editor/actions/concrete/ModifyPatchSampler2DAction.d.ts.map +1 -0
  11. package/editor/actions/concrete/ModifyPatchTextureArray2DAction.d.ts +38 -0
  12. package/editor/actions/concrete/ModifyPatchTextureArray2DAction.d.ts.map +1 -0
  13. package/editor/actions/concrete/PaintTerrainOverlayAction.d.ts +23 -0
  14. package/editor/actions/concrete/PaintTerrainOverlayAction.d.ts.map +1 -0
  15. package/editor/actions/concrete/PatchTerrainHeightAction.d.ts +19 -0
  16. package/editor/actions/concrete/PatchTerrainHeightAction.d.ts.map +1 -0
  17. package/editor/actions/concrete/SelectionRemoveAction.d.ts +10 -0
  18. package/editor/actions/concrete/SelectionRemoveAction.d.ts.map +1 -0
  19. package/editor/actions/concrete/WriteGridValueAction.d.ts +15 -0
  20. package/editor/actions/concrete/WriteGridValueAction.d.ts.map +1 -0
  21. package/editor/ecs/component/FieldDescriptor.d.ts +27 -0
  22. package/editor/ecs/component/FieldDescriptor.d.ts.map +1 -0
  23. package/editor/ecs/component/FieldValueAdapter.d.ts +7 -0
  24. package/editor/ecs/component/FieldValueAdapter.d.ts.map +1 -0
  25. package/editor/ecs/component/createFieldEditor.d.ts +9 -0
  26. package/editor/ecs/component/createFieldEditor.d.ts.map +1 -0
  27. package/editor/ecs/component/createObjectEditor.d.ts +14 -0
  28. package/editor/ecs/component/createObjectEditor.d.ts.map +1 -0
  29. package/editor/ecs/component/editors/geom/QuaternionEditor.d.ts.map +1 -1
  30. package/editor/ecs/component/findNearestRegisteredType.d.ts +8 -0
  31. package/editor/ecs/component/findNearestRegisteredType.d.ts.map +1 -0
  32. package/editor/process/ObstacleGridDisplayProcess.d.ts.map +1 -1
  33. package/editor/process/symbolic/makeGridPositionSymbolDisplay.d.ts.map +1 -1
  34. package/editor/tools/GridPaintTool.d.ts +17 -0
  35. package/editor/tools/GridPaintTool.d.ts.map +1 -0
  36. package/editor/tools/SelectionTool.d.ts +27 -0
  37. package/editor/tools/SelectionTool.d.ts.map +1 -0
  38. package/editor/tools/TopDownCameraControlTool.d.ts +13 -0
  39. package/editor/tools/TopDownCameraControlTool.d.ts.map +1 -0
  40. package/editor/view/ecs/ComponentControlFactory.d.ts.map +1 -0
  41. package/editor/view/ecs/ComponentControlView.d.ts.map +1 -1
  42. package/editor/view/ecs/EntityEditor.d.ts.map +1 -0
  43. package/editor/view/ecs/EntityList.d.ts.map +1 -0
  44. package/editor/view/ecs/HierarchicalEntityListView.d.ts.map +1 -0
  45. package/editor/view/node-graph/NodeGraphEditorView.d.ts.map +1 -1
  46. package/editor/view/node-graph/NodeGraphView.d.ts.map +1 -1
  47. package/editor/view/node-graph/NodeView.d.ts.map +1 -1
  48. package/editor/view/node-graph/PortView.d.ts.map +1 -1
  49. package/package.json +2 -1
  50. package/src/core/binary/BinaryBuffer.d.ts +1 -1
  51. package/src/core/binary/BinaryBuffer.js +1 -1
  52. package/src/core/binary/BitSet.d.ts +1 -1
  53. package/src/core/binary/BitSet.js +1 -1
  54. package/src/core/cache/Cache.js +1 -1
  55. package/src/core/cache/LoadingCache.js +1 -1
  56. package/src/core/collection/list/List.js +1 -1
  57. package/src/core/collection/map/HashMap.js +1 -1
  58. package/src/core/collection/table/RowFirstTable.d.ts +1 -1
  59. package/src/core/collection/table/RowFirstTable.js +1 -1
  60. package/src/core/collection/table/RowFirstTableSpec.d.ts +1 -1
  61. package/src/core/collection/table/RowFirstTableSpec.js +1 -1
  62. package/src/core/color/oklab/compute_max_saturation.d.ts +1 -1
  63. package/src/core/color/oklab/compute_max_saturation.js +1 -1
  64. package/src/core/color/oklab/find_cusp.d.ts +1 -1
  65. package/src/core/color/oklab/find_cusp.js +1 -1
  66. package/src/core/color/oklab/find_gamut_intersection.d.ts +1 -1
  67. package/src/core/color/oklab/find_gamut_intersection.js +1 -1
  68. package/src/core/color/oklab/okhsv_to_linear_srgb.d.ts +1 -1
  69. package/src/core/color/oklab/okhsv_to_linear_srgb.js +1 -1
  70. package/src/core/color/oklab/oklab_to_linear_srgb.d.ts +1 -1
  71. package/src/core/color/oklab/oklab_to_linear_srgb.js +1 -1
  72. package/src/core/color/oklab/oklab_to_xyz.d.ts +1 -1
  73. package/src/core/color/oklab/oklab_to_xyz.js +1 -1
  74. package/src/core/color/oklab/xyz_to_oklab.d.ts +1 -1
  75. package/src/core/color/oklab/xyz_to_oklab.js +1 -1
  76. package/src/core/geom/2d/convex-hull/fixed_convex_hull_relaxation.d.ts +1 -1
  77. package/src/core/geom/2d/convex-hull/fixed_convex_hull_relaxation.js +1 -1
  78. package/src/core/geom/3d/aabb/aabb3_nearest_point_on_surface.d.ts.map +1 -1
  79. package/src/core/geom/3d/aabb/aabb3_nearest_point_on_surface.js +57 -65
  80. package/src/core/geom/3d/octahedra/octahedral_uv_wrap.d.ts +1 -1
  81. package/src/core/geom/3d/octahedra/octahedral_uv_wrap.js +1 -1
  82. package/src/core/geom/3d/quaternion/quat_decode_from_uint32.d.ts +1 -1
  83. package/src/core/geom/3d/quaternion/quat_decode_from_uint32.js +1 -1
  84. package/src/core/geom/3d/quaternion/quat_encode_to_uint32.d.ts +1 -1
  85. package/src/core/geom/3d/quaternion/quat_encode_to_uint32.js +1 -1
  86. package/src/core/geom/3d/shape/AbstractShape3D.d.ts +74 -3
  87. package/src/core/geom/3d/shape/CapsuleShape3D.d.ts +37 -0
  88. package/src/core/geom/3d/shape/CapsuleShape3D.d.ts.map +1 -0
  89. package/src/core/geom/3d/shape/CapsuleShape3D.js +210 -0
  90. package/src/core/geom/3d/shape/PointShape3D.d.ts +5 -0
  91. package/src/core/geom/3d/shape/PointShape3D.d.ts.map +1 -1
  92. package/src/core/geom/3d/shape/PointShape3D.js +52 -14
  93. package/src/core/geom/3d/shape/TransformedShape3D.d.ts +75 -12
  94. package/src/core/geom/3d/shape/TransformedShape3D.d.ts.map +1 -1
  95. package/src/core/geom/3d/shape/TransformedShape3D.js +12 -3
  96. package/src/core/geom/3d/shape/UnionShape3D.d.ts +47 -5
  97. package/src/core/geom/3d/shape/UnionShape3D.d.ts.map +1 -1
  98. package/src/core/geom/3d/shape/UnitCubeShape3D.d.ts +12 -5
  99. package/src/core/geom/3d/shape/UnitCubeShape3D.d.ts.map +1 -1
  100. package/src/core/geom/3d/shape/UnitSphereShape3D.d.ts +17 -5
  101. package/src/core/geom/3d/shape/UnitSphereShape3D.d.ts.map +1 -1
  102. package/src/core/geom/3d/shape/json/shape_to_type.d.ts.map +1 -1
  103. package/src/core/geom/3d/shape/json/shape_to_type.js +4 -1
  104. package/src/core/geom/3d/shape/json/type_adapters.d.ts +17 -2
  105. package/src/core/geom/3d/shape/json/type_adapters.d.ts.map +1 -1
  106. package/src/core/geom/3d/shape/json/type_adapters.js +18 -2
  107. package/src/core/geom/3d/shape/util/compute_signed_distance_gradient_by_sampling.d.ts.map +1 -1
  108. package/src/core/geom/3d/shape/util/compute_signed_distance_gradient_by_sampling.js +51 -48
  109. package/src/core/geom/3d/tetrahedra/compute_bounding_simplex_3d.d.ts +1 -1
  110. package/src/core/geom/3d/tetrahedra/compute_bounding_simplex_3d.js +1 -1
  111. package/src/core/geom/ConicRay.d.ts +1 -1
  112. package/src/core/geom/ConicRay.js +1 -1
  113. package/src/core/geom/Quaternion.d.ts +2 -2
  114. package/src/core/geom/Quaternion.js +2 -2
  115. package/src/core/geom/Vector1.d.ts +1 -1
  116. package/src/core/geom/Vector1.js +1 -1
  117. package/src/core/geom/Vector2.d.ts +1 -1
  118. package/src/core/geom/Vector2.js +1 -1
  119. package/src/core/geom/Vector3.d.ts +1 -1
  120. package/src/core/geom/Vector3.js +1 -1
  121. package/src/core/geom/packing/miniball/Miniball.d.ts +1 -1
  122. package/src/core/geom/packing/miniball/Miniball.js +1 -1
  123. package/src/core/geom/vec3/serialization/v3_binary_equality_decode.d.ts +1 -1
  124. package/src/core/geom/vec3/serialization/v3_binary_equality_decode.js +1 -1
  125. package/src/core/geom/vec3/serialization/v3_binary_equality_encode.d.ts +1 -1
  126. package/src/core/geom/vec3/serialization/v3_binary_equality_encode.js +1 -1
  127. package/src/core/math/spline/spline3_hermite.d.ts +1 -1
  128. package/src/core/math/spline/spline3_hermite.js +1 -1
  129. package/src/core/math/spline/spline3_hermite_bounds.d.ts +1 -1
  130. package/src/core/math/spline/spline3_hermite_bounds.js +1 -1
  131. package/src/core/math/spline/spline3_hermite_bounds_t.d.ts +1 -1
  132. package/src/core/math/spline/spline3_hermite_bounds_t.js +1 -1
  133. package/src/core/math/spline/spline3_hermite_to_monomial.d.ts +1 -1
  134. package/src/core/math/spline/spline3_hermite_to_monomial.js +1 -1
  135. package/src/core/model/ObservedBoolean.d.ts +1 -1
  136. package/src/core/model/ObservedBoolean.js +1 -1
  137. package/src/core/model/ObservedString.d.ts +1 -1
  138. package/src/core/model/ObservedString.js +1 -1
  139. package/src/core/process/undo/Action.js +1 -1
  140. package/src/core/process/undo/ActionProcessor.js +1 -1
  141. package/src/engine/EngineHarness.d.ts.map +1 -1
  142. package/src/engine/EngineHarness.js +3 -4
  143. package/src/engine/animation/curve/AnimationCurve.d.ts +1 -1
  144. package/src/engine/animation/curve/AnimationCurve.js +1 -1
  145. package/src/engine/animation/curve/Keyframe.d.ts +1 -1
  146. package/src/engine/animation/curve/Keyframe.js +1 -1
  147. package/src/engine/animation/curve/animation_curve_compute_aabb.d.ts +1 -1
  148. package/src/engine/animation/curve/animation_curve_compute_aabb.js +1 -1
  149. package/src/engine/animation/curve/animation_curve_optimize.d.ts +1 -1
  150. package/src/engine/animation/curve/animation_curve_optimize.js +2 -2
  151. package/src/engine/asset/loaders/image/jpeg/JpegImage.js +1 -1
  152. package/src/engine/asset/loaders/image/png/PNGReader.d.ts.map +1 -1
  153. package/src/engine/asset/loaders/image/png/PNGReader.js +27 -7
  154. package/src/engine/asset/loaders/image/png/crc32.d.ts +1 -1
  155. package/src/engine/asset/loaders/image/png/crc32.js +1 -1
  156. package/src/engine/control/first-person/DESIGN.md +616 -0
  157. package/src/engine/control/first-person/FirstPersonPlayerController.d.ts +229 -0
  158. package/src/engine/control/first-person/FirstPersonPlayerController.d.ts.map +1 -0
  159. package/src/engine/control/first-person/FirstPersonPlayerController.js +176 -0
  160. package/src/engine/control/first-person/FirstPersonPlayerControllerConfig.d.ts +251 -0
  161. package/src/engine/control/first-person/FirstPersonPlayerControllerConfig.d.ts.map +1 -0
  162. package/src/engine/control/first-person/FirstPersonPlayerControllerConfig.js +205 -0
  163. package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.d.ts +151 -0
  164. package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.d.ts.map +1 -0
  165. package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.js +799 -0
  166. package/src/engine/control/first-person/math/computeJumpFromApex.d.ts +23 -0
  167. package/src/engine/control/first-person/math/computeJumpFromApex.d.ts.map +1 -0
  168. package/src/engine/control/first-person/math/computeJumpFromApex.js +23 -0
  169. package/src/engine/control/first-person/math/criticallyDampedSpring.d.ts +23 -0
  170. package/src/engine/control/first-person/math/criticallyDampedSpring.d.ts.map +1 -0
  171. package/src/engine/control/first-person/math/criticallyDampedSpring.js +34 -0
  172. package/src/engine/control/first-person/math/dampedSpringStep.d.ts +23 -0
  173. package/src/engine/control/first-person/math/dampedSpringStep.d.ts.map +1 -0
  174. package/src/engine/control/first-person/math/dampedSpringStep.js +72 -0
  175. package/src/engine/control/first-person/math/stepTowards.d.ts +12 -0
  176. package/src/engine/control/first-person/math/stepTowards.d.ts.map +1 -0
  177. package/src/engine/control/first-person/math/stepTowards.js +20 -0
  178. package/src/engine/control/first-person/pose/FirstPersonPose.d.ts +69 -0
  179. package/src/engine/control/first-person/pose/FirstPersonPose.d.ts.map +1 -0
  180. package/src/engine/control/first-person/pose/FirstPersonPose.js +91 -0
  181. package/src/engine/control/first-person/prototype_first_person_controller.d.ts +2 -0
  182. package/src/engine/control/first-person/prototype_first_person_controller.d.ts.map +1 -0
  183. package/src/engine/control/first-person/prototype_first_person_controller.js +314 -0
  184. package/src/engine/ecs/Entity.js +1 -1
  185. package/src/engine/ecs/EntityComponentDataset.js +1 -1
  186. package/src/engine/ecs/EntityManager.d.ts +3 -3
  187. package/src/engine/ecs/EntityManager.d.ts.map +1 -1
  188. package/src/engine/ecs/EntityManager.js +14 -9
  189. package/src/engine/ecs/EntityObserver.js +1 -1
  190. package/src/engine/ecs/EntityReference.d.ts +1 -1
  191. package/src/engine/ecs/EntityReference.js +1 -1
  192. package/src/engine/ecs/System.d.ts.map +1 -1
  193. package/src/engine/ecs/System.js +3 -3
  194. package/src/engine/ecs/attachment/AttachmentSystem.d.ts +2 -2
  195. package/src/engine/ecs/attachment/AttachmentSystem.d.ts.map +1 -1
  196. package/src/engine/ecs/guid/UUID.d.ts +1 -1
  197. package/src/engine/ecs/guid/UUID.js +1 -1
  198. package/src/engine/ecs/name/Name.d.ts +1 -1
  199. package/src/engine/ecs/name/Name.js +1 -1
  200. package/src/engine/ecs/parent/ParentEntity.js +1 -1
  201. package/src/engine/ecs/storage/BinaryBufferDeSerializer.d.ts +1 -1
  202. package/src/engine/ecs/storage/BinaryBufferDeSerializer.js +1 -1
  203. package/src/engine/ecs/storage/BinaryBufferSerializer.d.ts +1 -1
  204. package/src/engine/ecs/storage/BinaryBufferSerializer.js +1 -1
  205. package/src/engine/ecs/storage/binary/BinaryClassSerializationAdapter.js +1 -1
  206. package/src/engine/ecs/storage/binary/BinarySerializationRegistry.d.ts +1 -1
  207. package/src/engine/ecs/storage/binary/BinarySerializationRegistry.js +1 -1
  208. package/src/engine/ecs/storage/binary/collection/BinaryCollectionDeSerializer.d.ts +1 -1
  209. package/src/engine/ecs/storage/binary/collection/BinaryCollectionDeSerializer.js +1 -1
  210. package/src/engine/ecs/transform/Transform.d.ts +1 -1
  211. package/src/engine/ecs/transform/Transform.js +1 -1
  212. package/src/engine/graphics/impostors/octahedral/ImpostorBaker.d.ts.map +1 -1
  213. package/src/engine/graphics/impostors/octahedral/ImpostorBaker.js +10 -1
  214. package/src/engine/graphics/impostors/voxel/README.md +149 -0
  215. package/src/engine/graphics/impostors/voxel/VoxelImpostorBaker.d.ts +91 -0
  216. package/src/engine/graphics/impostors/voxel/VoxelImpostorBaker.d.ts.map +1 -0
  217. package/src/engine/graphics/impostors/voxel/VoxelImpostorBaker.js +376 -0
  218. package/src/engine/graphics/impostors/voxel/VoxelImpostorDescription.d.ts +128 -0
  219. package/src/engine/graphics/impostors/voxel/VoxelImpostorDescription.d.ts.map +1 -0
  220. package/src/engine/graphics/impostors/voxel/VoxelImpostorDescription.js +141 -0
  221. package/src/engine/graphics/impostors/voxel/bake/read_atlas_to_samples.d.ts +38 -0
  222. package/src/engine/graphics/impostors/voxel/bake/read_atlas_to_samples.d.ts.map +1 -0
  223. package/src/engine/graphics/impostors/voxel/bake/read_atlas_to_samples.js +338 -0
  224. package/src/engine/graphics/impostors/voxel/bake/voxelize_samples.d.ts +43 -0
  225. package/src/engine/graphics/impostors/voxel/bake/voxelize_samples.d.ts.map +1 -0
  226. package/src/engine/graphics/impostors/voxel/bake/voxelize_samples.js +192 -0
  227. package/src/engine/graphics/impostors/voxel/prototype_voxel_impostors.d.ts +2 -0
  228. package/src/engine/graphics/impostors/voxel/prototype_voxel_impostors.d.ts.map +1 -0
  229. package/src/engine/graphics/impostors/voxel/prototype_voxel_impostors.js +343 -0
  230. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderDepthV0.d.ts +13 -0
  231. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderDepthV0.d.ts.map +1 -0
  232. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderDepthV0.js +99 -0
  233. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderLitV0.d.ts +19 -0
  234. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderLitV0.d.ts.map +1 -0
  235. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderLitV0.js +231 -0
  236. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderNormalsV0.d.ts +5 -0
  237. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderNormalsV0.d.ts.map +1 -0
  238. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderNormalsV0.js +70 -0
  239. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderV0.d.ts +13 -0
  240. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderV0.d.ts.map +1 -0
  241. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderV0.js +127 -0
  242. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderViewportDepthV0.d.ts +5 -0
  243. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderViewportDepthV0.d.ts.map +1 -0
  244. package/src/engine/graphics/impostors/voxel/shader/VoxelImpostorShaderViewportDepthV0.js +68 -0
  245. package/src/engine/graphics/impostors/voxel/util/make_voxel_impostor_geometry.d.ts +27 -0
  246. package/src/engine/graphics/impostors/voxel/util/make_voxel_impostor_geometry.d.ts.map +1 -0
  247. package/src/engine/graphics/impostors/voxel/util/make_voxel_impostor_geometry.js +96 -0
  248. package/src/engine/graphics/particles/particular/engine/utils/volume/ParticleVolume.d.ts +113 -29
  249. package/src/engine/graphics/render/forward_plus/SPECIFICATION.md +1 -1
  250. package/src/engine/graphics/texture/sampler/Sampler2D.d.ts +1 -1
  251. package/src/engine/graphics/texture/sampler/Sampler2D.js +1 -1
  252. package/src/engine/graphics/texture/sampler/distance/computeSignedDistanceField_NaiveFlood.d.ts +1 -1
  253. package/src/engine/graphics/texture/sampler/distance/computeSignedDistanceField_NaiveFlood.js +1 -1
  254. package/src/engine/graphics/util/build_max_height_pyramid.d.ts.map +1 -1
  255. package/src/engine/graphics/util/build_max_height_pyramid.js +1 -7
  256. package/src/engine/input/devices/InputDeviceSwitch.js +1 -1
  257. package/src/engine/input/devices/KeyboardDevice.js +1 -1
  258. package/src/engine/input/devices/PointerDevice.js +1 -1
  259. package/src/engine/intelligence/behavior/Behavior.js +1 -1
  260. package/src/engine/intelligence/behavior/SelectorBehavior.d.ts +1 -1
  261. package/src/engine/intelligence/behavior/SelectorBehavior.js +1 -1
  262. package/src/engine/intelligence/behavior/behavior_to_dot.d.ts +1 -1
  263. package/src/engine/intelligence/behavior/behavior_to_dot.js +1 -1
  264. package/src/engine/intelligence/behavior/composite/CompositeBehavior.d.ts +1 -1
  265. package/src/engine/intelligence/behavior/composite/CompositeBehavior.js +1 -1
  266. package/src/engine/intelligence/behavior/composite/ParallelBehavior.d.ts +1 -1
  267. package/src/engine/intelligence/behavior/composite/ParallelBehavior.js +1 -1
  268. package/src/engine/intelligence/behavior/composite/SequenceBehavior.d.ts +1 -1
  269. package/src/engine/intelligence/behavior/composite/SequenceBehavior.js +1 -1
  270. package/src/engine/intelligence/behavior/decorator/AbstractDecoratorBehavior.d.ts +1 -1
  271. package/src/engine/intelligence/behavior/decorator/AbstractDecoratorBehavior.js +1 -1
  272. package/src/engine/intelligence/behavior/decorator/IgnoreFailureBehavior.d.ts +1 -1
  273. package/src/engine/intelligence/behavior/decorator/IgnoreFailureBehavior.js +1 -1
  274. package/src/engine/intelligence/behavior/decorator/InvertStatusBehavior.d.ts +1 -1
  275. package/src/engine/intelligence/behavior/decorator/InvertStatusBehavior.js +1 -1
  276. package/src/engine/intelligence/behavior/decorator/RepeatBehavior.d.ts +1 -1
  277. package/src/engine/intelligence/behavior/decorator/RepeatBehavior.js +1 -1
  278. package/src/engine/intelligence/behavior/decorator/RepeatUntilSuccessBehavior.d.ts +1 -1
  279. package/src/engine/intelligence/behavior/decorator/RepeatUntilSuccessBehavior.js +1 -1
  280. package/src/engine/intelligence/behavior/ecs/BehaviorComponent.d.ts +1 -1
  281. package/src/engine/intelligence/behavior/ecs/BehaviorComponent.js +1 -1
  282. package/src/engine/intelligence/behavior/ecs/BehaviorSystem.d.ts +1 -1
  283. package/src/engine/intelligence/behavior/ecs/BehaviorSystem.js +1 -1
  284. package/src/engine/intelligence/behavior/ecs/DieBehavior.d.ts +1 -1
  285. package/src/engine/intelligence/behavior/ecs/DieBehavior.js +1 -1
  286. package/src/engine/intelligence/behavior/ecs/EntityBehavior.d.ts +1 -1
  287. package/src/engine/intelligence/behavior/ecs/EntityBehavior.js +1 -1
  288. package/src/engine/intelligence/behavior/ecs/KillBehavior.d.ts +1 -1
  289. package/src/engine/intelligence/behavior/ecs/KillBehavior.js +1 -1
  290. package/src/engine/intelligence/behavior/ecs/SendEventBehavior.d.ts +1 -1
  291. package/src/engine/intelligence/behavior/ecs/SendEventBehavior.js +1 -1
  292. package/src/engine/intelligence/behavior/ecs/WaitForEventBehavior.d.ts +1 -1
  293. package/src/engine/intelligence/behavior/ecs/WaitForEventBehavior.js +1 -1
  294. package/src/engine/intelligence/behavior/primitive/ActionBehavior.d.ts +1 -1
  295. package/src/engine/intelligence/behavior/primitive/ActionBehavior.js +1 -1
  296. package/src/engine/intelligence/behavior/primitive/FailingBehavior.d.ts +1 -1
  297. package/src/engine/intelligence/behavior/primitive/FailingBehavior.js +1 -1
  298. package/src/engine/intelligence/behavior/primitive/PromiseBehavior.d.ts +1 -1
  299. package/src/engine/intelligence/behavior/primitive/PromiseBehavior.js +1 -1
  300. package/src/engine/intelligence/behavior/primitive/SucceedingBehavior.d.ts +1 -1
  301. package/src/engine/intelligence/behavior/primitive/SucceedingBehavior.js +1 -1
  302. package/src/engine/intelligence/behavior/selector/WeightedElement.d.ts +1 -1
  303. package/src/engine/intelligence/behavior/selector/WeightedElement.js +1 -1
  304. package/src/engine/intelligence/behavior/selector/WeightedRandomBehavior.d.ts +1 -1
  305. package/src/engine/intelligence/behavior/selector/WeightedRandomBehavior.js +1 -1
  306. package/src/engine/intelligence/behavior/util/BranchBehavior.d.ts +1 -1
  307. package/src/engine/intelligence/behavior/util/BranchBehavior.js +1 -1
  308. package/src/engine/intelligence/behavior/util/DelayBehavior.d.ts +1 -1
  309. package/src/engine/intelligence/behavior/util/DelayBehavior.js +1 -1
  310. package/src/engine/intelligence/behavior/util/LogMessageBehavior.d.ts +1 -1
  311. package/src/engine/intelligence/behavior/util/LogMessageBehavior.js +1 -1
  312. package/src/engine/intelligence/behavior/util/RandomDelayBehavior.d.ts +1 -1
  313. package/src/engine/intelligence/behavior/util/RandomDelayBehavior.js +1 -1
  314. package/src/engine/intelligence/blackboard/Blackboard.js +1 -1
  315. package/src/engine/intelligence/mcts/MonteCarlo.d.ts +1 -1
  316. package/src/engine/intelligence/mcts/MonteCarlo.js +1 -1
  317. package/src/engine/intelligence/mcts/MoveEdge.d.ts +1 -1
  318. package/src/engine/intelligence/mcts/MoveEdge.js +1 -1
  319. package/src/engine/intelligence/mcts/StateNode.d.ts +1 -1
  320. package/src/engine/intelligence/mcts/StateNode.js +1 -1
  321. package/src/engine/intelligence/resource/ActionSequence.d.ts +1 -1
  322. package/src/engine/intelligence/resource/ActionSequence.js +1 -1
  323. package/src/engine/intelligence/resource/Resource.d.ts +1 -1
  324. package/src/engine/intelligence/resource/Resource.js +1 -1
  325. package/src/engine/intelligence/resource/ResourceAllocation.d.ts +1 -1
  326. package/src/engine/intelligence/resource/ResourceAllocation.js +1 -1
  327. package/src/engine/intelligence/resource/ResourceAllocationBid.d.ts +1 -1
  328. package/src/engine/intelligence/resource/ResourceAllocationBid.js +1 -1
  329. package/src/engine/intelligence/resource/ResourceAllocationSolver.d.ts +1 -1
  330. package/src/engine/intelligence/resource/ResourceAllocationSolver.js +1 -1
  331. package/src/engine/intelligence/resource/StrategicResourceAllocator.d.ts +1 -1
  332. package/src/engine/intelligence/resource/StrategicResourceAllocator.js +1 -1
  333. package/src/engine/intelligence/resource/TacticalModule.d.ts +1 -1
  334. package/src/engine/intelligence/resource/TacticalModule.js +1 -1
  335. package/src/engine/network/NetworkSession.d.ts +1 -1
  336. package/src/engine/network/NetworkSession.js +1 -1
  337. package/src/engine/network/adapters/QuaternionInterpolationAdapter.d.ts +1 -1
  338. package/src/engine/network/adapters/QuaternionInterpolationAdapter.js +1 -1
  339. package/src/engine/network/adapters/TransformInterpolationAdapter.d.ts +1 -1
  340. package/src/engine/network/adapters/TransformInterpolationAdapter.js +1 -1
  341. package/src/engine/network/adapters/TransformReplicationAdapter.d.ts +1 -1
  342. package/src/engine/network/adapters/TransformReplicationAdapter.js +1 -1
  343. package/src/engine/network/adapters/Vector3InterpolationAdapter.d.ts +1 -1
  344. package/src/engine/network/adapters/Vector3InterpolationAdapter.js +1 -1
  345. package/src/engine/network/core/quantize/quantize_float.d.ts +1 -1
  346. package/src/engine/network/core/quantize/quantize_float.js +1 -1
  347. package/src/engine/network/core/quantize/quantize_position.d.ts +1 -1
  348. package/src/engine/network/core/quantize/quantize_position.js +1 -1
  349. package/src/engine/network/core/sequence/ack_bitfield.d.ts +1 -1
  350. package/src/engine/network/core/sequence/ack_bitfield.js +1 -1
  351. package/src/engine/network/core/sequence/seq16.d.ts +1 -1
  352. package/src/engine/network/core/sequence/seq16.js +1 -1
  353. package/src/engine/network/core/sequence/seq32.d.ts +1 -1
  354. package/src/engine/network/core/sequence/seq32.js +1 -1
  355. package/src/engine/network/diagnostics/BandwidthMeter.d.ts +1 -1
  356. package/src/engine/network/diagnostics/BandwidthMeter.js +1 -1
  357. package/src/engine/network/diagnostics/ReplayLog.d.ts +1 -1
  358. package/src/engine/network/diagnostics/ReplayLog.js +1 -1
  359. package/src/engine/network/diagnostics/SyncTest.d.ts +1 -1
  360. package/src/engine/network/diagnostics/SyncTest.js +1 -1
  361. package/src/engine/network/ecs/NetworkSystem.d.ts +1 -1
  362. package/src/engine/network/ecs/NetworkSystem.js +1 -1
  363. package/src/engine/network/ecs/components/NetworkIdentity.d.ts +1 -1
  364. package/src/engine/network/ecs/components/NetworkIdentity.js +1 -1
  365. package/src/engine/network/ecs/serialization/NetworkIdentitySerializationAdapter.d.ts +1 -1
  366. package/src/engine/network/ecs/serialization/NetworkIdentitySerializationAdapter.js +1 -1
  367. package/src/engine/network/orchestrator/NetworkPeer.d.ts +1 -1
  368. package/src/engine/network/orchestrator/NetworkPeer.js +1 -1
  369. package/src/engine/network/orchestrator/ServerAuthoritativeClient.d.ts +1 -1
  370. package/src/engine/network/orchestrator/ServerAuthoritativeClient.js +1 -1
  371. package/src/engine/network/orchestrator/ServerAuthoritativeServer.d.ts +1 -1
  372. package/src/engine/network/orchestrator/ServerAuthoritativeServer.js +1 -1
  373. package/src/engine/network/replication/Replicator.d.ts +1 -1
  374. package/src/engine/network/replication/Replicator.js +1 -1
  375. package/src/engine/network/replication/ScopeFilter.d.ts +2 -2
  376. package/src/engine/network/replication/ScopeFilter.js +2 -2
  377. package/src/engine/network/sim/ActionLog.d.ts +1 -1
  378. package/src/engine/network/sim/ActionLog.js +1 -1
  379. package/src/engine/network/sim/BinaryInterpolationAdapter.d.ts +1 -1
  380. package/src/engine/network/sim/BinaryInterpolationAdapter.js +1 -1
  381. package/src/engine/network/sim/InterpolationLog.d.ts +1 -1
  382. package/src/engine/network/sim/InterpolationLog.js +1 -1
  383. package/src/engine/network/sim/ReplicatedComponentRegistry.d.ts +1 -1
  384. package/src/engine/network/sim/ReplicatedComponentRegistry.js +1 -1
  385. package/src/engine/network/sim/RewindEngine.d.ts +1 -1
  386. package/src/engine/network/sim/RewindEngine.js +1 -1
  387. package/src/engine/network/sim/SimAction.d.ts +1 -1
  388. package/src/engine/network/sim/SimAction.js +1 -1
  389. package/src/engine/network/sim/SimActionExecutor.d.ts +1 -1
  390. package/src/engine/network/sim/SimActionExecutor.js +1 -1
  391. package/src/engine/network/sim/SimActionRegistry.d.ts +1 -1
  392. package/src/engine/network/sim/SimActionRegistry.js +1 -1
  393. package/src/engine/network/sim/SmoothingState.js +1 -1
  394. package/src/engine/network/sim/Snapshotter.d.ts +1 -1
  395. package/src/engine/network/sim/Snapshotter.js +1 -1
  396. package/src/engine/network/sim/SpeculationLog.d.ts +1 -1
  397. package/src/engine/network/sim/SpeculationLog.js +1 -1
  398. package/src/engine/network/state/Baseline.d.ts +1 -1
  399. package/src/engine/network/state/Baseline.js +1 -1
  400. package/src/engine/network/state/ChangedEntitySet.d.ts +1 -1
  401. package/src/engine/network/state/ChangedEntitySet.js +1 -1
  402. package/src/engine/network/state/InputRing.d.ts +1 -1
  403. package/src/engine/network/state/InputRing.js +1 -1
  404. package/src/engine/network/state/MutationLedger.d.ts +1 -1
  405. package/src/engine/network/state/MutationLedger.js +1 -1
  406. package/src/engine/network/state/PriorityAccumulator.d.ts +1 -1
  407. package/src/engine/network/state/PriorityAccumulator.js +1 -1
  408. package/src/engine/network/state/ReplicationSlotTable.d.ts +1 -1
  409. package/src/engine/network/state/ReplicationSlotTable.js +1 -1
  410. package/src/engine/network/time/AdaptiveRenderDelay.d.ts +1 -1
  411. package/src/engine/network/time/AdaptiveRenderDelay.js +1 -1
  412. package/src/engine/network/time/JitterBuffer.d.ts +1 -1
  413. package/src/engine/network/time/JitterBuffer.js +1 -1
  414. package/src/engine/network/time/TimeDilation.d.ts +1 -1
  415. package/src/engine/network/time/TimeDilation.js +1 -1
  416. package/src/engine/network/time/TimeSync.d.ts +1 -1
  417. package/src/engine/network/time/TimeSync.js +1 -1
  418. package/src/engine/network/transport/Channel.d.ts.map +1 -1
  419. package/src/engine/network/transport/Channel.js +3 -6
  420. package/src/engine/network/transport/LoopbackTransport.d.ts +1 -1
  421. package/src/engine/network/transport/LoopbackTransport.js +1 -1
  422. package/src/engine/network/transport/ReliableCommandPipeline.d.ts +1 -1
  423. package/src/engine/network/transport/ReliableCommandPipeline.js +1 -1
  424. package/src/engine/network/transport/Transport.d.ts +1 -1
  425. package/src/engine/network/transport/Transport.js +1 -1
  426. package/src/engine/network/transport/adapters/NodeUDPTransport.d.ts +1 -1
  427. package/src/engine/network/transport/adapters/NodeUDPTransport.js +2 -2
  428. package/src/engine/network/transport/adapters/SimulatedTransport.d.ts +1 -1
  429. package/src/engine/network/transport/adapters/SimulatedTransport.js +1 -1
  430. package/src/engine/network/transport/adapters/WebRTCDataChannelTransport.d.ts +1 -1
  431. package/src/engine/network/transport/adapters/WebRTCDataChannelTransport.js +1 -1
  432. package/src/engine/network/transport/adapters/WebSocketTransport.d.ts +1 -1
  433. package/src/engine/network/transport/adapters/WebSocketTransport.js +1 -1
  434. package/src/engine/network/transport/adapters/WebTransportTransport.d.ts +1 -1
  435. package/src/engine/network/transport/adapters/WebTransportTransport.js +1 -1
  436. package/src/engine/network/transport/fragments/FragmentAssembler.d.ts +1 -1
  437. package/src/engine/network/transport/fragments/FragmentAssembler.js +1 -1
  438. package/src/engine/network/transport/fragments/FragmentRetention.d.ts +1 -1
  439. package/src/engine/network/transport/fragments/FragmentRetention.js +1 -1
  440. package/src/engine/network/transport/fragments/packet_size.d.ts +1 -1
  441. package/src/engine/network/transport/fragments/packet_size.js +1 -1
  442. package/src/engine/simulation/Ticker.d.ts +1 -1
  443. package/src/engine/simulation/Ticker.js +1 -1
  444. package/src/engine/sound/SoundEngine.js +1 -1
  445. package/src/engine/ui/DraggableAspect.d.ts +1 -1
  446. package/src/engine/ui/DraggableAspect.js +1 -1
  447. package/src/view/View.js +1 -1
@@ -0,0 +1,314 @@
1
+ import { BoxGeometry, MeshStandardMaterial } from "three";
2
+ import Vector2 from "../../../core/geom/Vector2.js";
3
+ import Vector3 from "../../../core/geom/Vector3.js";
4
+ import { SerializationMetadata } from "../../ecs/components/SerializationMetadata.js";
5
+ import { Tag } from "../../ecs/components/Tag.js";
6
+ import Entity from "../../ecs/Entity.js";
7
+ import { Transform } from "../../ecs/transform/Transform.js";
8
+ import { EngineHarness } from "../../EngineHarness.js";
9
+ import { CameraSystem } from "../../graphics/ecs/camera/CameraSystem.js";
10
+ import { ShadedGeometry } from "../../graphics/ecs/mesh-v2/ShadedGeometry.js";
11
+ import { ShadedGeometryFlags } from "../../graphics/ecs/mesh-v2/ShadedGeometryFlags.js";
12
+ import { ShadedGeometrySystem } from "../../graphics/ecs/mesh-v2/ShadedGeometrySystem.js";
13
+ import InputController from "../../input/ecs/components/InputController.js";
14
+ import InputControllerSystem from "../../input/ecs/systems/InputControllerSystem.js";
15
+ import { FirstPersonPlayerController } from "./FirstPersonPlayerController.js";
16
+ import { FirstPersonPlayerControllerSystem } from "./FirstPersonPlayerControllerSystem.js";
17
+
18
+ /**
19
+ * Prototype harness for {@link FirstPersonPlayerController}.
20
+ *
21
+ * Controls:
22
+ * - Click to capture mouse (pointer lock); ESC to release
23
+ * - WASD — move
24
+ * - Mouse — look
25
+ * - Space — jump (tap; holding does not auto-repeat)
26
+ * - Shift — sprint (hold while moving forward)
27
+ * - C — crouch (hold)
28
+ *
29
+ * Scene: a flat ground at y=0 with a handful of coloured cubes for spatial
30
+ * reference, lit by the harness's default sun.
31
+ */
32
+
33
+ const eh = new EngineHarness();
34
+
35
+ async function main(engine) {
36
+ const em = engine.entityManager;
37
+ const ecd = engine.entityManager.dataset;
38
+
39
+ // -- Systems ---------------------------------------------------------
40
+ EngineHarness.addFpsCounter(engine);
41
+
42
+ await EngineHarness.buildLights({
43
+ engine,
44
+ sunIntensity: 1.0,
45
+ ambientIntensity: 0.25,
46
+ });
47
+
48
+ if (em.getSystem(CameraSystem) === null) {
49
+ await em.addSystem(new CameraSystem(engine.graphics));
50
+ }
51
+ if (em.getSystem(InputControllerSystem) === null) {
52
+ await em.addSystem(new InputControllerSystem(engine.devices));
53
+ }
54
+ if (em.getSystem(ShadedGeometrySystem) === null) {
55
+ await em.addSystem(new ShadedGeometrySystem(engine));
56
+ }
57
+
58
+ const fpsSystem = new FirstPersonPlayerControllerSystem();
59
+ fpsSystem.useBuiltInFlatGround = true;
60
+ fpsSystem.groundY = 0;
61
+ await em.addSystem(fpsSystem);
62
+
63
+ if (!ecd.isComponentTypeRegistered(Tag)) {
64
+ ecd.registerComponentType(Tag);
65
+ }
66
+ if (!ecd.isComponentTypeRegistered(SerializationMetadata)) {
67
+ ecd.registerComponentType(SerializationMetadata);
68
+ }
69
+
70
+ // -- World -----------------------------------------------------------
71
+ await EngineHarness.buildTerrain({
72
+ engine,
73
+ size: new Vector2(200, 200),
74
+ resolution: 8,
75
+ enableWater: false,
76
+ diffuse0: "data/textures/materials/terrain_township_set/512/Grass_3.png",
77
+ });
78
+
79
+ addReferenceMarkers(ecd);
80
+
81
+ // -- Player ----------------------------------------------------------
82
+ const player = buildPlayerEntity(ecd);
83
+
84
+ // -- Inputs ----------------------------------------------------------
85
+ buildInputBindings(ecd, player);
86
+
87
+ setupPointerLock(engine);
88
+
89
+ logHelp();
90
+ }
91
+
92
+ /**
93
+ * @param {EntityComponentDataset} ecd
94
+ * @returns {{entity:number, controller:FirstPersonPlayerController}}
95
+ */
96
+ function buildPlayerEntity(ecd) {
97
+ const transform = new Transform();
98
+ // Spawn standing on the ground (body origin sits at the feet)
99
+ transform.position.set(100, 0, 100);
100
+
101
+ const controller = new FirstPersonPlayerController();
102
+ // Most tuning lives at config defaults; mass-tweak example shown for
103
+ // documentation. Comment out for the default soldier feel.
104
+ // controller.config.body.mass = 120;
105
+ // controller.config.bob.verticalAmpAtWalk = 0.08;
106
+
107
+ const eb = new Entity()
108
+ .add(transform)
109
+ .add(controller)
110
+ .add(Tag.fromJSON(["Player"]))
111
+ .add(SerializationMetadata.Transient);
112
+
113
+ eb.build(ecd);
114
+
115
+ return { entity: eb.id, controller };
116
+ }
117
+
118
+ /**
119
+ * Wire keyboard + mouse to the controller's intent surface. Uses the same
120
+ * `InputController` plumbing as the orbital-camera controller, so the
121
+ * standard `InputControllerSystem` does the device subscription bookkeeping.
122
+ *
123
+ * @param {EntityComponentDataset} ecd
124
+ * @param {{entity:number, controller:FirstPersonPlayerController}} player
125
+ */
126
+ function buildInputBindings(ecd, player) {
127
+ const ic = new InputController();
128
+ const intent = player.controller.intent;
129
+
130
+ // Mouse sensitivity — radians of view rotation per pixel of mouse delta.
131
+ // ~1200px sweep = one full 360° turn. Comparable to Source-engine
132
+ // "sensitivity 2" at 800 DPI; calmer than typical web demos.
133
+ const SENSITIVITY = (Math.PI * 2) / 1200;
134
+
135
+ // -- WASD movement --------------------------------------------------
136
+ // Keep a small "held" mirror so we can recompute intent.move whenever
137
+ // any of the four keys change. We can't read intent.move directly
138
+ // because both keys can be pressed simultaneously.
139
+ const held = { w: false, a: false, s: false, d: false };
140
+
141
+ function recomputeMove() {
142
+ let mx = 0, my = 0;
143
+ if (held.d) mx += 1;
144
+ if (held.a) mx -= 1;
145
+ if (held.w) my += 1;
146
+ if (held.s) my -= 1;
147
+ intent.move.set(mx, my);
148
+ }
149
+
150
+ function bindMoveKey(key, prop) {
151
+ ic.bind(`keyboard/keys/${key}/down`, () => { held[prop] = true; recomputeMove(); });
152
+ ic.bind(`keyboard/keys/${key}/up`, () => { held[prop] = false; recomputeMove(); });
153
+ }
154
+ bindMoveKey("w", "w");
155
+ bindMoveKey("a", "a");
156
+ bindMoveKey("s", "s");
157
+ bindMoveKey("d", "d");
158
+
159
+ // -- Jump (hold-state; the system does the edge detection) -----------
160
+ ic.bind("keyboard/keys/space/down", () => { intent.jump = true; });
161
+ ic.bind("keyboard/keys/space/up", () => { intent.jump = false; });
162
+
163
+ // -- Sprint ----------------------------------------------------------
164
+ ic.bind("keyboard/keys/shift/down", () => { intent.sprint = true; });
165
+ ic.bind("keyboard/keys/shift/up", () => { intent.sprint = false; });
166
+
167
+ // -- Crouch ----------------------------------------------------------
168
+ ic.bind("keyboard/keys/c/down", () => { intent.crouch = true; });
169
+ ic.bind("keyboard/keys/c/up", () => { intent.crouch = false; });
170
+
171
+ // -- Mouse look ------------------------------------------------------
172
+ // Only accumulate look delta while the pointer is captured — otherwise
173
+ // moving the cursor over the page would steer the camera, which is
174
+ // jarring before the user has "claimed" the input surface.
175
+ ic.bind("pointer/on/move", (position, event, delta) => {
176
+ if (document.pointerLockElement === null) return;
177
+ intent.look._add(delta.x * SENSITIVITY, delta.y * SENSITIVITY);
178
+ });
179
+
180
+ // When the InputController unlinks (e.g. system shutdown), zero
181
+ // everything so a held key doesn't get stuck.
182
+ ic.on.unlinked.add(() => {
183
+ intent.move.set(0, 0);
184
+ intent.look.set(0, 0);
185
+ intent.jump = false;
186
+ intent.crouch = false;
187
+ intent.sprint = false;
188
+ });
189
+
190
+ new Entity()
191
+ .add(ic)
192
+ .add(Tag.fromJSON(["FirstPersonInputBindings"]))
193
+ .add(SerializationMetadata.Transient)
194
+ .build(ecd);
195
+ }
196
+
197
+ /**
198
+ * Click to capture; ESC (or other browser-default) to release.
199
+ * @param {Engine} engine
200
+ */
201
+ function setupPointerLock(engine) {
202
+ const el = engine.graphics.domElement;
203
+
204
+ // The harness wires the engine into the page body via viewStack; the
205
+ // canvas is the actual pointer-lock target. Listen on the viewStack
206
+ // element so clicks anywhere inside the canvas trigger the request.
207
+ const captureEl = engine.viewStack.el;
208
+
209
+ captureEl.addEventListener("click", () => {
210
+ if (document.pointerLockElement !== el && el.requestPointerLock) {
211
+ el.requestPointerLock();
212
+ }
213
+ });
214
+
215
+ // Suppress the right-click context menu so the canvas stays usable.
216
+ captureEl.addEventListener("contextmenu", (e) => e.preventDefault());
217
+ }
218
+
219
+ /**
220
+ * Spawn a handful of marker entities around the player so motion is
221
+ * visually obvious. All markers go through the standard ECS pipeline
222
+ * (Transform + ShadedGeometry) — same path as gameplay geometry — so
223
+ * shadows and lighting work correctly.
224
+ *
225
+ * @param {EntityComponentDataset} ecd
226
+ */
227
+ function addReferenceMarkers(ecd) {
228
+ const SPAWN_X = 100, SPAWN_Z = 100;
229
+
230
+ // Share one unit-cube geometry across the ring cubes — cheap and lets
231
+ // the renderer's instancing path kick in if it wants.
232
+ const unitCubeGeom = new BoxGeometry(1, 1, 1);
233
+ const palette = [0xff5555, 0x55ff55, 0x5577ff, 0xffaa44, 0xaa55ff, 0x44ddee, 0xff66cc, 0x66ffcc];
234
+
235
+ // Ring of coloured cubes at radius 6 — circle-strafe targets.
236
+ const RING_N = 8;
237
+ for (let i = 0; i < RING_N; i++) {
238
+ const a = (i / RING_N) * Math.PI * 2;
239
+ spawnMarker({
240
+ ecd,
241
+ geometry: unitCubeGeom,
242
+ color: palette[i % palette.length],
243
+ roughness: 0.8,
244
+ position: new Vector3(SPAWN_X + Math.cos(a) * 6, 0.5, SPAWN_Z + Math.sin(a) * 6),
245
+ });
246
+ }
247
+
248
+ // Tall pillars further out — for parallax depth-perception while
249
+ // testing bob and breath at distance.
250
+ const pillarGeom = new BoxGeometry(1, 6, 1);
251
+ const PILLAR_N = 6;
252
+ for (let i = 0; i < PILLAR_N; i++) {
253
+ const a = (i / PILLAR_N) * Math.PI * 2 + 0.3;
254
+ const r = 22;
255
+ spawnMarker({
256
+ ecd,
257
+ geometry: pillarGeom,
258
+ color: 0x888888,
259
+ roughness: 0.9,
260
+ position: new Vector3(SPAWN_X + Math.cos(a) * r, 3, SPAWN_Z + Math.sin(a) * r),
261
+ });
262
+ }
263
+
264
+ // A low platform next to spawn — easy hop target, plus a chance to see
265
+ // the landing dip when stepping back down.
266
+ spawnMarker({
267
+ ecd,
268
+ geometry: new BoxGeometry(2, 0.4, 2),
269
+ color: 0xddddee,
270
+ roughness: 0.7,
271
+ position: new Vector3(SPAWN_X + 3, 0.2, SPAWN_Z),
272
+ });
273
+ }
274
+
275
+ /**
276
+ * @param {object} p
277
+ * @param {EntityComponentDataset} p.ecd
278
+ * @param {THREE.BufferGeometry} p.geometry
279
+ * @param {number} p.color Hex color, e.g. 0xff5555
280
+ * @param {number} [p.roughness]
281
+ * @param {Vector3} p.position
282
+ */
283
+ function spawnMarker({ ecd, geometry, color, roughness = 0.8, position }) {
284
+ const material = new MeshStandardMaterial({ color, roughness });
285
+ const sg = ShadedGeometry.from(geometry, material);
286
+ sg.setFlag(ShadedGeometryFlags.CastShadow);
287
+ sg.setFlag(ShadedGeometryFlags.ReceiveShadow);
288
+ sg.setFlag(ShadedGeometryFlags.Visible);
289
+
290
+ const transform = new Transform();
291
+ transform.position.copy(position);
292
+
293
+ new Entity()
294
+ .add(transform)
295
+ .add(sg)
296
+ .add(Tag.fromJSON(["ReferenceMarker"]))
297
+ .add(SerializationMetadata.Transient)
298
+ .build(ecd);
299
+ }
300
+
301
+ function logHelp() {
302
+ /* eslint-disable no-console */
303
+ console.log("%cFirstPersonPlayerController prototype",
304
+ "color:#88ddff;font-weight:bold;font-size:14px");
305
+ console.log("Click the canvas to capture mouse. ESC to release.");
306
+ console.log("WASD = move | Mouse = look | Space = jump | Shift = sprint | C = crouch");
307
+ }
308
+
309
+ async function init() {
310
+ await eh.initialize();
311
+ await main(eh.engine);
312
+ }
313
+
314
+ init();
@@ -40,7 +40,7 @@ const DEFAULT_FLAGS =
40
40
  *
41
41
  * @see {@link EntityComponentDataset}
42
42
  * @author Alex Goldring
43
- * @copyright Company Named Limited (c) 2025
43
+ * @copyright Company Named Limited (c) 2026
44
44
  */
45
45
  export class Entity {
46
46
 
@@ -140,7 +140,7 @@ const scratch_args = [];
140
140
  *
141
141
  * @see https://en.wikipedia.org/wiki/Entity_component_system
142
142
  * @author Alex Goldring
143
- * @copyright Company Named Limited (c) 2025
143
+ * @copyright Company Named Limited (c) 2026
144
144
  */
145
145
  export class EntityComponentDataset {
146
146
 
@@ -34,7 +34,7 @@ export namespace EntityManagerState {
34
34
  * em.detachDataset();
35
35
  *
36
36
  * @author Alex Goldring
37
- * @copyright Company Named Limited (c) 2025
37
+ * @copyright Company Named Limited (c) 2026
38
38
  */
39
39
  export class EntityManager {
40
40
  /**
@@ -157,9 +157,9 @@ export class EntityManager {
157
157
  getComponentClassByName<T_2>(className: string): null | Class<T_2>;
158
158
  /**
159
159
  * Advance simulation forward by a specified amount of time
160
- * @param {number} timeDelta in seconds
160
+ * @param {number} time_delta_seconds in seconds
161
161
  */
162
- simulate(timeDelta: number): void;
162
+ simulate(time_delta_seconds: number): void;
163
163
  /**
164
164
  * If the {@link EntityManager} is already started, the system will be started automatically before being added
165
165
  * @param {System} system
@@ -1 +1 @@
1
- {"version":3,"file":"EntityManager.d.ts","sourceRoot":"","sources":["../../../../src/engine/ecs/EntityManager.js"],"names":[],"mappings":"iCAgBU,MAAM;;;;;;;;;AAiBhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH;IAEI;;;;OAIG;IACH,kBAFU,iCAAQ,CAEL;IAEb;;;;;;OAMG;IACH,uCAA2B;IAE3B;;;;;OAKG;IACH,iCAA4B;IAE5B;;OAEG;IACH;;;QAGI;;WAEG;qBADO,uCAAc;;MAI1B;IAEF;;;OAGG;IACH,OAFU,kBAAkB,CAEO;IAEnC;;;;;;OAMG;IACH,gDAA2C;IAE3C;;;;;;;;;OASG;IACH,qBAFU,MAAM,CAEqB;IAErC;;;;;OAKG;IACH,wCAFU,MAAM,CAE4B;IAE5C;;;;OAIG;IACH,SAFU,sBAAsB,CAEjB;IAEf;;;;;OAKG;IACH,uCAAsC;IAEtC;;;OAGG;IACH,6BAmFC;IAED;;;OAGG;IACH,uBAFa,OAAO,CAuBnB;IAED;;;;;OAKG;IACH,uBAJW,sBAAsB,QA4ChC;IAGD;;;OAGG;IACH,sBA2BC;IAED;;;;OAIG;IACH,qCAFa,OAAO,CAInB;IAED;;;;OAIG;IACH,6CAgBC;IAED;;;;;OAKG;IACH,wCAHW,MAAM,GACJ,IAAI,aAAS,CAiBzB;IAGD;;;OAGG;IACH,oBAFW,MAAM,QAoEhB;IAED;;;;;OAKG;IACH,iEA6DC;IAED;;;;OAIG;IACH,uDAFa,QAAQ,OAAO,CAAC,CA2C5B;IAED;;;;;OAKG;IACH,mBAmCC;IAED;;;;;OAKG;IACH,oBAqFC;IAED;;;;;OAKG;IACH,kEAyEC;IAED;;;;OAIG;IACH,mCAFa,wCAAgB,CA0B5B;IAED;;;;OAIG;IACH,8DAFa,wCAAgB,CA0B5B;IAED;;;;;OAKG;IACH,mEAoFC;IAGL;;OAEG;IACH,yBA5rBe,sBAAsB,UA4rBA;IACrC;;OAEG;IACH,0BAAqC;CATpC;uBA17BmC,aAAa;mBAR9B,oCAAoC;uCAMhB,6BAA6B"}
1
+ {"version":3,"file":"EntityManager.d.ts","sourceRoot":"","sources":["../../../../src/engine/ecs/EntityManager.js"],"names":[],"mappings":"iCAgBU,MAAM;;;;;;;;;AAiBhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH;IAEI;;;;OAIG;IACH,kBAFU,iCAAQ,CAEL;IAEb;;;;;;OAMG;IACH,uCAA2B;IAE3B;;;;;OAKG;IACH,iCAA4B;IAE5B;;OAEG;IACH;;;QAGI;;WAEG;qBADO,uCAAc;;MAI1B;IAEF;;;OAGG;IACH,OAFU,kBAAkB,CAEO;IAEnC;;;;;;OAMG;IACH,gDAA2C;IAE3C;;;;;;;;;OASG;IACH,qBAFU,MAAM,CAEqB;IAErC;;;;;OAKG;IACH,wCAFU,MAAM,CAE4B;IAE5C;;;;OAIG;IACH,SAFU,sBAAsB,CAEjB;IAEf;;;;;OAKG;IACH,uCAAsC;IAEtC;;;OAGG;IACH,6BAmFC;IAED;;;OAGG;IACH,uBAFa,OAAO,CAuBnB;IAED;;;;;OAKG;IACH,uBAJW,sBAAsB,QA4ChC;IAGD;;;OAGG;IACH,sBA2BC;IAED;;;;OAIG;IACH,qCAFa,OAAO,CAInB;IAED;;;;OAIG;IACH,6CAgBC;IAED;;;;;OAKG;IACH,wCAHW,MAAM,GACJ,IAAI,aAAS,CAiBzB;IAGD;;;OAGG;IACH,6BAFW,MAAM,QAyEhB;IAED;;;;;OAKG;IACH,iEA6DC;IAED;;;;OAIG;IACH,uDAFa,QAAQ,OAAO,CAAC,CA2C5B;IAED;;;;;OAKG;IACH,mBAmCC;IAED;;;;;OAKG;IACH,oBAqFC;IAED;;;;;OAKG;IACH,kEAyEC;IAED;;;;OAIG;IACH,mCAFa,wCAAgB,CA0B5B;IAED;;;;OAIG;IACH,8DAFa,wCAAgB,CA0B5B;IAED;;;;;OAKG;IACH,mEAoFC;IAGL;;OAEG;IACH,yBAjsBe,sBAAsB,UAisBA;IACrC;;OAEG;IACH,0BAAqC;CATpC;uBA/7BmC,aAAa;mBAR9B,oCAAoC;uCAMhB,6BAA6B"}
@@ -58,7 +58,7 @@ const DEFAULT_SYSTEM_STARTUP_TIMEOUT_CHECK = 5;
58
58
  * em.detachDataset();
59
59
  *
60
60
  * @author Alex Goldring
61
- * @copyright Company Named Limited (c) 2025
61
+ * @copyright Company Named Limited (c) 2026
62
62
  */
63
63
  export class EntityManager {
64
64
 
@@ -405,13 +405,18 @@ export class EntityManager {
405
405
 
406
406
  /**
407
407
  * Advance simulation forward by a specified amount of time
408
- * @param {number} timeDelta in seconds
408
+ * @param {number} time_delta_seconds in seconds
409
409
  */
410
- simulate(timeDelta) {
411
- assert.isNumber(timeDelta, 'timeDelta');
412
- assert.notNaN(timeDelta, 'timeDelta');
413
- assert.greaterThanOrEqual(timeDelta, 0, 'timeDelta must be >= 0');
414
- assert.isFinite(timeDelta, 'timeDelta');
410
+ simulate(time_delta_seconds) {
411
+ assert.isNumber(time_delta_seconds, 'timeDelta');
412
+ assert.notNaN(time_delta_seconds, 'timeDelta');
413
+ assert.greaterThanOrEqual(time_delta_seconds, 0, 'time_delta_seconds must be >= 0');
414
+ assert.isFinite(time_delta_seconds, 'timeDelta');
415
+
416
+ if (this.dataset === null) {
417
+ // dataset is not attached
418
+ return;
419
+ }
415
420
 
416
421
  if (this.__execution_order_needs_update) {
417
422
  this.updateExecutionOrder();
@@ -437,7 +442,7 @@ export class EntityManager {
437
442
 
438
443
  // Perform fixed-step update
439
444
  if (system.fixedUpdate !== noop) {
440
- let accumulated_time = accumulatedTime.get(system) + timeDelta;
445
+ let accumulated_time = accumulatedTime.get(system) + time_delta_seconds;
441
446
 
442
447
  const t0 = performance.now();
443
448
 
@@ -465,7 +470,7 @@ export class EntityManager {
465
470
  if (system.update !== noop) {
466
471
 
467
472
  try {
468
- system.update(timeDelta);
473
+ system.update(time_delta_seconds);
469
474
  } catch (e) {
470
475
  console.error(`Failed during update of system '${computeSystemName(system)}': `, e);
471
476
  }
@@ -7,7 +7,7 @@ import { BitSet } from "../../core/binary/BitSet.js";
7
7
  * see {@link EntityComponentDataset.addObserver}/{@link EntityComponentDataset.removeObserver}.
8
8
  *
9
9
  * @author Alex Goldring
10
- * @copyright Company Named Limited (c) 2025
10
+ * @copyright Company Named Limited (c) 2026
11
11
  */
12
12
  export class EntityObserver {
13
13
  /**
@@ -16,7 +16,7 @@
16
16
  *
17
17
  * @see {@link EntityComponentDataset}
18
18
  * @author Alex Goldring
19
- * @copyright Company Named Limited (c) 2025
19
+ * @copyright Company Named Limited (c) 2026
20
20
  */
21
21
  export class EntityReference {
22
22
  /**
@@ -18,7 +18,7 @@ import { assert } from "../../core/assert.js";
18
18
  *
19
19
  * @see {@link EntityComponentDataset}
20
20
  * @author Alex Goldring
21
- * @copyright Company Named Limited (c) 2025
21
+ * @copyright Company Named Limited (c) 2026
22
22
  */
23
23
  export class EntityReference {
24
24
 
@@ -1 +1 @@
1
- {"version":3,"file":"System.d.ts","sourceRoot":"","sources":["../../../../src/engine/ecs/System.js"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH;IAEI;;;;;OAKG;IACH,uCAAqB;IAErB;;;;OAIG;IACH,oBAA+C;IAE/C;;;;;;;OAOG;IACH,6BAAkB;IAElB;;;;;;;;;;OAUG;IACH,0BAFU,6BAA6B,CAElB;IAGrB;;OAEG;IACH,mCAcC;IAED;;;;;OAKG;IACH,oCAFY,MAAM,CA8BjB;IAED;;;;;;OAMG;IACH,uCAHa,QAAQ,IAAI,CAAC,CAKzB;IAED;;;;;;;OAOG;IACH,wCAHa,QAAQ,IAAI,CAAC,CAKzB;IAGD;;;;OAIG;IACH,wCAEC;IAED;;;;OAIG;IACH,0CAEC;IAED;;;;;;;;;;OAUG;IACH,6DAEC;IAED;;;;;;;;;;OAUG;IACH,6DAEC;IAIL;;;OAGG;IACH,mBAFU,OAAO,CAEQ;IAEzB;;;;OAIG;IACH,yBAA4B;IAG5B;;;;;;OAMG;IACH,oBAAuB;CAvBtB;0BA2BS,MAAM;;;;;;;;qBArOK,6BAA6B"}
1
+ {"version":3,"file":"System.d.ts","sourceRoot":"","sources":["../../../../src/engine/ecs/System.js"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH;IAEI;;;;;OAKG;IACH,uCAAqB;IAErB;;;;OAIG;IACH,oBAA+C;IAE/C;;;;;;;OAOG;IACH,6BAAkB;IAElB;;;;;;;;;;OAUG;IACH,0BAFU,6BAA6B,CAElB;IAGrB;;OAEG;IACH,mCAcC;IAED;;;;;OAKG;IACH,oCAFY,MAAM,CA8BjB;IAED;;;;;;OAMG;IACH,uCAHa,QAAQ,IAAI,CAAC,CAKzB;IAED;;;;;;;OAOG;IACH,wCAHa,QAAQ,IAAI,CAAC,CAKzB;IAGD;;;;OAIG;IACH,wCAEC;IAED;;;;OAIG;IACH,0CAEC;IAED;;;;;;;;;;OAUG;IACH,6DAEC;IAED;;;;;;;;;;OAUG;IACH,6DAEC;IAIL;;;OAGG;IACH,mBAFU,OAAO,CAEQ;IAEzB;;;;OAIG;IACH,2CAFsC,MAAM,CAEhB;IAG5B;;;;;;OAMG;IACH,sCAFsC,MAAM,CAErB;CAvBtB;0BA2BS,MAAM"}
@@ -13,7 +13,7 @@ import { ResourceAccessKind } from "../../core/model/ResourceAccessKind.js";
13
13
  * @template C
14
14
  *
15
15
  * @author Alex Goldring
16
- * @copyright Company Named Limited (c) 2025
16
+ * @copyright Company Named Limited (c) 2026
17
17
  *
18
18
  * @example
19
19
  * class FallDamageSystem{
@@ -213,7 +213,7 @@ System.prototype.isSystem = true;
213
213
  /**
214
214
  * Fixed update function, every step happens with the same exact time increment
215
215
  * useful for systems that must have a fixed time step to be predictable and stable, such as physics
216
- * @param {number} timeDelta in seconds, will always be the same value, controlled via {@link EntityManager.fixedUpdateStepSize}
216
+ * @type {function(time_delta_seconds:number)} time delta will always be the same value, controlled via {@link EntityManager.fixedUpdateStepSize}
217
217
  */
218
218
  System.prototype.fixedUpdate = noop; // by assigning NO-OP we enable a simple check, whether running the update would be useful
219
219
 
@@ -223,7 +223,7 @@ System.prototype.fixedUpdate = noop; // by assigning NO-OP we enable a simple ch
223
223
  * Note that this time step can vary depending on system conditions and hardware we are running on.
224
224
  * It is generally safe to assume that this update will happen once per frame, but it is not guaranteed.
225
225
  * Also, note that when the application window/tab is suspended, the next update step can have a very large value.
226
- * @param {number} timeDelta in seconds
226
+ * @type {function(time_delta_seconds:number)}
227
227
  */
228
228
  System.prototype.update = noop; // by assigning NO-OP we enable a simple check, whether running the update would be useful
229
229
 
@@ -1,7 +1,7 @@
1
1
  export class AttachmentSystem extends System<any, any, any, any, any> {
2
2
  constructor();
3
3
  dependencies: (typeof Transform | typeof Attachment)[];
4
- components_used: (ResourceAccessSpecification<typeof AttachmentSockets> | ResourceAccessSpecification<typeof Mesh> | ResourceAccessSpecification<typeof Transform>)[];
4
+ components_used: (ResourceAccessSpecification<typeof Transform> | ResourceAccessSpecification<typeof AttachmentSockets> | ResourceAccessSpecification<typeof Mesh>)[];
5
5
  /**
6
6
  *
7
7
  * @type {number[]}
@@ -55,7 +55,7 @@ export class AttachmentSystem extends System<any, any, any, any, any> {
55
55
  import { System } from "../System.js";
56
56
  import { Transform } from "../transform/Transform.js";
57
57
  import { Attachment } from "./Attachment.js";
58
- import { AttachmentSockets } from "../sockets/AttachmentSockets.js";
59
58
  import { ResourceAccessSpecification } from "../../../core/model/ResourceAccessSpecification.js";
59
+ import { AttachmentSockets } from "../sockets/AttachmentSockets.js";
60
60
  import Mesh from "../../graphics/ecs/mesh/Mesh.js";
61
61
  //# sourceMappingURL=AttachmentSystem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AttachmentSystem.d.ts","sourceRoot":"","sources":["../../../../../src/engine/ecs/attachment/AttachmentSystem.js"],"names":[],"mappings":"AAWA;IARuC,cAAmB;IAUtD,uDAAuC;IAEvC,sKAIE;IAEF;;;OAGG;IACH,SAFU,MAAM,EAAE,CAEL;IAEb;;;OAGG;IACH,UAFU,IAAI,MAAM,oBAAmB,CAElB;IAErB;;;OAGG;IACH,oBAFU,IAAI,MAAM,EAAE,mBAAmB,CAAC,CAEX;IAG/B;;;;OAIG;IACH,kBAHW,MAAM,GACJ,OAAO,CAInB;IAED;;;OAGG;IACH,aAFW,MAAM,QAUhB;IAED;;;;OAIG;IACH,+BAHW,MAAM,GACJ,MAAM,CAwBlB;IAGD;;;;;OAKG;IACH,iBAJW,UAAU,aACV,SAAS,UACT,MAAM,QAKhB;IAED,uBA6IC;IAED;;;;;OAKG;IACH,mBAJW,UAAU,aACV,SAAS,UACT,MAAM,QAqChB;IAED,oBAUC;IAED,6BAaC;CACJ;uBA5TsB,cAAc;0BAEX,2BAA2B;2BAD1B,iBAAiB;kCAEV,iCAAiC;4CAKvB,oDAAoD;iBAH/E,iCAAiC"}
1
+ {"version":3,"file":"AttachmentSystem.d.ts","sourceRoot":"","sources":["../../../../../src/engine/ecs/attachment/AttachmentSystem.js"],"names":[],"mappings":"AAWA;IARuC,cAAmB;IAUtD,uDAAuC;IAEvC,sKAIE;IAEF;;;OAGG;IACH,SAFU,MAAM,EAAE,CAEL;IAEb;;;OAGG;IACH,UAFU,IAAI,MAAM,oBAAmB,CAElB;IAErB;;;OAGG;IACH,oBAFU,IAAI,MAAM,EAAE,mBAAmB,CAAC,CAEX;IAG/B;;;;OAIG;IACH,kBAHW,MAAM,GACJ,OAAO,CAInB;IAED;;;OAGG;IACH,aAFW,MAAM,QAUhB;IAED;;;;OAIG;IACH,+BAHW,MAAM,GACJ,MAAM,CAwBlB;IAGD;;;;;OAKG;IACH,iBAJW,UAAU,aACV,SAAS,UACT,MAAM,QAKhB;IAED,uBA6IC;IAED;;;;;OAKG;IACH,mBAJW,UAAU,aACV,SAAS,UACT,MAAM,QAqChB;IAED,oBAUC;IAED,6BAaC;CACJ;uBA5TsB,cAAc;0BAEX,2BAA2B;2BAD1B,iBAAiB;4CAOA,oDAAoD;kCAL9D,iCAAiC;iBAElD,iCAAiC"}
@@ -17,7 +17,7 @@
17
17
  * id_a.equals(id_b); // false
18
18
  *
19
19
  * @author Alex Goldring
20
- * @copyright Company Named Limited (c) 2025
20
+ * @copyright Company Named Limited (c) 2026
21
21
  */
22
22
  export class UUID {
23
23
  /**
@@ -42,7 +42,7 @@ let _clock_seq = ((randomUint8(random) << 8) | randomUint8(random)) & 0x3fff;
42
42
  * id_a.equals(id_b); // false
43
43
  *
44
44
  * @author Alex Goldring
45
- * @copyright Company Named Limited (c) 2025
45
+ * @copyright Company Named Limited (c) 2026
46
46
  */
47
47
  export class UUID {
48
48
  #data = new Uint8Array(16);
@@ -8,7 +8,7 @@
8
8
  * name.getValue() // "Jane"
9
9
  *
10
10
  * @author Alex Goldring
11
- * @copyright Company Named Limited (c) 2025
11
+ * @copyright Company Named Limited (c) 2026
12
12
  */
13
13
  export class Name extends ObservedString {
14
14
  /**
@@ -10,7 +10,7 @@ import ObservedString from "../../../core/model/ObservedString.js";
10
10
  * name.getValue() // "Jane"
11
11
  *
12
12
  * @author Alex Goldring
13
- * @copyright Company Named Limited (c) 2025
13
+ * @copyright Company Named Limited (c) 2026
14
14
  */
15
15
  export class Name extends ObservedString {
16
16
  /**
@@ -2,7 +2,7 @@
2
2
  * Component representing logical attachment to another entity, when the parent disappears - so does the child
3
3
  *
4
4
  * @author Alex Goldring
5
- * @copyright Company Named Limited (c) 2025
5
+ * @copyright Company Named Limited (c) 2026
6
6
  */
7
7
  export class ParentEntity {
8
8
  /**
@@ -16,7 +16,7 @@ export default BinaryBufferDeSerializer;
16
16
  *
17
17
  * @template CTX
18
18
  * @author Alex Goldring
19
- * @copyright Company Named Limited (c) 2025
19
+ * @copyright Company Named Limited (c) 2026
20
20
  */
21
21
  declare class BinaryBufferDeSerializer<CTX> {
22
22
  /**
@@ -23,7 +23,7 @@ import { BinaryObjectSerializationAdapter } from "./binary/object/BinaryObjectSe
23
23
  *
24
24
  * @template CTX
25
25
  * @author Alex Goldring
26
- * @copyright Company Named Limited (c) 2025
26
+ * @copyright Company Named Limited (c) 2026
27
27
  */
28
28
  class BinaryBufferDeSerializer {
29
29
  /**
@@ -17,7 +17,7 @@ export default BinaryBufferSerializer;
17
17
  *
18
18
  * @template CTX
19
19
  * @author Alex Goldring
20
- * @copyright Company Named Limited (c) 2025
20
+ * @copyright Company Named Limited (c) 2026
21
21
  */
22
22
  declare class BinaryBufferSerializer<CTX> {
23
23
  /**
@@ -67,7 +67,7 @@ function isEntityTransient(entity, dataset, smComponentIndex, componentInstance)
67
67
  *
68
68
  * @template CTX
69
69
  * @author Alex Goldring
70
- * @copyright Company Named Limited (c) 2025
70
+ * @copyright Company Named Limited (c) 2026
71
71
  */
72
72
  class BinaryBufferSerializer {
73
73
  /**
@@ -27,7 +27,7 @@
27
27
  * }
28
28
  *
29
29
  * @author Alex Goldring
30
- * @copyright Company Named Limited (c) 2025
30
+ * @copyright Company Named Limited (c) 2026
31
31
  */
32
32
  export class BinaryClassSerializationAdapter {
33
33
 
@@ -2,7 +2,7 @@
2
2
  * Contains serializers for various data types as well as data upgraders which enable support for serialization format changes
3
3
  *
4
4
  * @author Alex Goldring
5
- * @copyright Company Named Limited (c) 2025
5
+ * @copyright Company Named Limited (c) 2026
6
6
  */
7
7
  export class BinarySerializationRegistry {
8
8
  /**
@@ -5,7 +5,7 @@ import { Graph } from "../../../../core/graph/v2/Graph.js";
5
5
  * Contains serializers for various data types as well as data upgraders which enable support for serialization format changes
6
6
  *
7
7
  * @author Alex Goldring
8
- * @copyright Company Named Limited (c) 2025
8
+ * @copyright Company Named Limited (c) 2026
9
9
  */
10
10
  export class BinarySerializationRegistry {
11
11
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  *
3
3
  * @author Alex Goldring
4
- * @copyright Company Named Limited (c) 2025
4
+ * @copyright Company Named Limited (c) 2026
5
5
  */
6
6
  export class BinaryCollectionDeSerializer {
7
7
  /**
@@ -19,7 +19,7 @@ const State = {
19
19
  /**
20
20
  *
21
21
  * @author Alex Goldring
22
- * @copyright Company Named Limited (c) 2025
22
+ * @copyright Company Named Limited (c) 2026
23
23
  */
24
24
  export class BinaryCollectionDeSerializer {
25
25
 
@@ -8,7 +8,7 @@
8
8
  * t.position.set(1,2,3);
9
9
  *
10
10
  * @author Alex Goldring
11
- * @copyright Company Named Limited (c) 2025
11
+ * @copyright Company Named Limited (c) 2026
12
12
  */
13
13
  export class Transform {
14
14
  /**