@woosh/meep-engine 2.168.0 → 2.169.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.
- package/README.md +2 -2
- package/build/bundle-worker-image-decoder.js +1 -1
- package/package.json +1 -1
- package/src/REVIEW_2026_08_06/adv-core.md +511 -0
- package/src/REVIEW_2026_08_06/adv-gfx.md +480 -0
- package/src/REVIEW_2026_08_06/adv-view.md +446 -0
- package/src/REVIEW_2026_08_06/api-core.md +296 -0
- package/src/REVIEW_2026_08_06/api-engine.md +195 -0
- package/src/REVIEW_2026_08_06/bvh-phys-sound-net.md +507 -0
- package/src/REVIEW_2026_08_06/core-binary.md +348 -0
- package/src/REVIEW_2026_08_06/core-collection.md +376 -0
- package/src/REVIEW_2026_08_06/core-math.md +221 -0
- package/src/REVIEW_2026_08_06/core-process.md +266 -0
- package/src/REVIEW_2026_08_06/core-science.md +223 -0
- package/src/REVIEW_2026_08_06/engine-ai-nav.md +279 -0
- package/src/REVIEW_2026_08_06/engine-animation.md +167 -0
- package/src/REVIEW_2026_08_06/engine-asset.md +166 -0
- package/src/REVIEW_2026_08_06/engine-ecs.md +920 -0
- package/src/REVIEW_2026_08_06/engine-input.md +197 -0
- package/src/REVIEW_2026_08_06/engine-misc.md +248 -0
- package/src/REVIEW_2026_08_06/engine-terrain.md +52 -0
- package/src/REVIEW_2026_08_06/generation.md +176 -0
- package/src/REVIEW_2026_08_06/geom-2d.md +434 -0
- package/src/REVIEW_2026_08_06/geom-3d.md +117 -0
- package/src/REVIEW_2026_08_06/gfx-gi.md +143 -0
- package/src/REVIEW_2026_08_06/gfx-render.md +740 -0
- package/src/REVIEW_2026_08_06/gfx-texture.md +690 -0
- package/src/REVIEW_2026_08_06/prior-criticals.md +49 -0
- package/src/REVIEW_2026_08_06/prior-highs.md +138 -0
- package/src/REVIEW_2026_08_06/test-gaps.md +364 -0
- package/src/REVIEW_2026_08_06/view.md +667 -0
- package/src/REVIEW_2026_08_06.md +571 -0
- package/src/core/binary/BinaryBuffer.d.ts.map +1 -1
- package/src/core/binary/BinaryBuffer.js +12 -1
- package/src/core/binary/BitImage2.d.ts +5 -1
- package/src/core/binary/BitImage2.d.ts.map +1 -1
- package/src/core/binary/BitImage2.js +5 -1
- package/src/core/bvh8/build/NodeProxy.d.ts.map +1 -1
- package/src/core/bvh8/build/NodeProxy.js +314 -308
- package/src/core/collection/list/List.d.ts +15 -0
- package/src/core/collection/list/List.d.ts.map +1 -1
- package/src/core/collection/list/List.js +34 -0
- package/src/core/collection/list/SortedListProjection.d.ts.map +1 -1
- package/src/core/collection/list/SortedListProjection.js +4 -1
- package/src/core/collection/map/BiMap.d.ts +25 -2
- package/src/core/collection/map/BiMap.d.ts.map +1 -1
- package/src/core/collection/map/BiMap.js +57 -3
- package/src/core/debug/matchers/IsAnything.d.ts.map +1 -1
- package/src/core/debug/matchers/IsAnything.js +5 -1
- package/src/core/events/signal/Signal.d.ts.map +1 -1
- package/src/core/events/signal/Signal.js +3 -1
- package/src/core/geom/2d/polygon/TRIANGULATION_DESIGN.md +433 -0
- package/src/core/geom/2d/polygon/polygon2_is_counter_clockwise.d.ts +31 -0
- package/src/core/geom/2d/polygon/polygon2_is_counter_clockwise.d.ts.map +1 -0
- package/src/core/geom/2d/polygon/polygon2_is_counter_clockwise.js +84 -0
- package/src/core/geom/2d/polygon/polygon2_signed_area.d.ts +24 -2
- package/src/core/geom/2d/polygon/polygon2_signed_area.d.ts.map +1 -1
- package/src/core/geom/2d/polygon/polygon2_signed_area.js +52 -34
- package/src/core/geom/2d/polygon/polygon2_triangulate.corpus.d.ts +28 -0
- package/src/core/geom/2d/polygon/polygon2_triangulate.corpus.d.ts.map +1 -0
- package/src/core/geom/2d/polygon/polygon2_triangulate.corpus.js +86 -0
- package/src/core/geom/2d/polygon/polygon2_triangulate.d.ts +40 -0
- package/src/core/geom/2d/polygon/polygon2_triangulate.d.ts.map +1 -0
- package/src/core/geom/2d/polygon/polygon2_triangulate.js +1280 -0
- package/src/core/geom/2d/polygon/polygon2_triangulation_deviation.d.ts +28 -0
- package/src/core/geom/2d/polygon/polygon2_triangulation_deviation.d.ts.map +1 -0
- package/src/core/geom/2d/polygon/polygon2_triangulation_deviation.js +77 -0
- package/src/core/geom/2d/triangle/tri2_rasterize_conservative.d.ts +6 -3
- package/src/core/geom/2d/triangle/tri2_rasterize_conservative.d.ts.map +1 -1
- package/src/core/geom/2d/triangle/tri2_rasterize_conservative.js +26 -13
- package/src/core/geom/2d/triangle/tri2_signed_area.d.ts +17 -1
- package/src/core/geom/2d/triangle/tri2_signed_area.d.ts.map +1 -1
- package/src/core/geom/2d/triangle/tri2_signed_area.js +35 -23
- package/src/core/geom/2d/v2_morton_encode.d.ts +20 -0
- package/src/core/geom/2d/v2_morton_encode.d.ts.map +1 -0
- package/src/core/geom/2d/v2_morton_encode.js +23 -0
- package/src/core/geom/3d/atlas/segment/atlas_merge_charts.d.ts.map +1 -1
- package/src/core/geom/3d/atlas/segment/atlas_merge_charts.js +4 -1
- package/src/core/geom/3d/polygon/polygon3_compute_normal.d.ts +27 -0
- package/src/core/geom/3d/polygon/polygon3_compute_normal.d.ts.map +1 -0
- package/src/core/geom/3d/polygon/polygon3_compute_normal.js +60 -0
- package/src/core/geom/3d/polygon/polygon3_triangulate.d.ts +34 -0
- package/src/core/geom/3d/polygon/polygon3_triangulate.d.ts.map +1 -0
- package/src/core/geom/3d/polygon/polygon3_triangulate.js +94 -0
- package/src/core/geom/3d/quaternion/quat3_multiply.d.ts +8 -2
- package/src/core/geom/3d/quaternion/quat3_multiply.d.ts.map +1 -1
- package/src/core/geom/3d/quaternion/quat3_multiply.js +8 -2
- package/src/core/geom/3d/shape/ConvexHullShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/ConvexHullShape3D.js +32 -2
- package/src/core/geom/3d/topology/struct/binary/io/face/bt_face_triangulate.d.ts +23 -6
- package/src/core/geom/3d/topology/struct/binary/io/face/bt_face_triangulate.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/io/face/bt_face_triangulate.js +268 -124
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_assert_valid.d.ts +17 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_assert_valid.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_assert_valid.js +44 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_count_edge_faces.d.ts +20 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_count_edge_faces.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_count_edge_faces.js +40 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_is_closed.d.ts +19 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_is_closed.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_is_closed.js +34 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_is_manifold.d.ts +22 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_is_manifold.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_is_manifold.js +37 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_validate.d.ts +87 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_validate.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_validate.js +599 -0
- package/src/core/geom/3d/triangle/tri3_compute_signed_volume.d.ts +32 -0
- package/src/core/geom/3d/triangle/tri3_compute_signed_volume.d.ts.map +1 -1
- package/src/core/geom/3d/triangle/tri3_compute_signed_volume.js +66 -7
- package/src/core/geom/3d/triangle/tri3_mesh_compute_signed_volume.d.ts +22 -1
- package/src/core/geom/3d/triangle/tri3_mesh_compute_signed_volume.d.ts.map +1 -1
- package/src/core/geom/3d/triangle/tri3_mesh_compute_signed_volume.js +83 -38
- package/src/core/geom/MANIFOLD_COMPARISON_2026_08_01.md +554 -0
- package/src/core/geom/vec3/v3_cotangent.d.ts +6 -2
- package/src/core/geom/vec3/v3_cotangent.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_cotangent.js +6 -2
- package/src/core/geom/vec3/v3_cross.d.ts +6 -2
- package/src/core/geom/vec3/v3_cross.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_cross.js +6 -2
- package/src/core/geom/vec3/v3_multiply.d.ts +6 -2
- package/src/core/geom/vec3/v3_multiply.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_multiply.js +6 -2
- package/src/core/geom/vec3/v3_subtract.d.ts +6 -2
- package/src/core/geom/vec3/v3_subtract.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_subtract.js +6 -2
- package/src/core/localization/Localization.js +1 -1
- package/src/core/math/random/randomSeed.d.ts +13 -0
- package/src/core/math/random/randomSeed.d.ts.map +1 -0
- package/src/core/math/random/randomSeed.js +16 -0
- package/src/core/math/spline/spline3_hermite_apply_transform.d.ts +50 -0
- package/src/core/math/spline/spline3_hermite_apply_transform.d.ts.map +1 -0
- package/src/core/math/spline/spline3_hermite_apply_transform.js +107 -0
- package/src/core/math/spline/spline3_hermite_reverse.d.ts +34 -0
- package/src/core/math/spline/spline3_hermite_reverse.d.ts.map +1 -0
- package/src/core/math/spline/spline3_hermite_reverse.js +49 -0
- package/src/core/math/statistics/hammersley_sequence.d.ts +17 -4
- package/src/core/math/statistics/hammersley_sequence.d.ts.map +1 -1
- package/src/core/math/statistics/hammersley_sequence.js +25 -16
- package/src/core/process/Future.d.ts.map +1 -1
- package/src/core/process/Future.js +12 -0
- package/src/core/process/PromiseWatcher.d.ts.map +1 -1
- package/src/core/process/PromiseWatcher.js +9 -2
- package/src/core/process/executor/ConcurrentExecutor.d.ts.map +1 -1
- package/src/core/process/executor/ConcurrentExecutor.js +12 -2
- package/src/core/process/worker/WorkerProxy.d.ts.map +1 -1
- package/src/core/process/worker/WorkerProxy.js +5 -2
- package/src/core/process/worker/extractTransferables.d.ts.map +1 -1
- package/src/core/process/worker/extractTransferables.js +4 -1
- package/src/engine/Engine.d.ts +12 -12
- package/src/engine/Engine.d.ts.map +1 -1
- package/src/engine/Engine.js +149 -10
- package/src/engine/EngineHarness.d.ts.map +1 -1
- package/src/engine/EngineHarness.js +4 -1
- package/src/engine/asset/loaders/ArrayBufferLoader.d.ts.map +1 -1
- package/src/engine/asset/loaders/ArrayBufferLoader.js +7 -0
- package/src/engine/ecs/speaker/lines/sets/LineSetDescription.d.ts.map +1 -1
- package/src/engine/ecs/speaker/lines/sets/LineSetDescription.js +3 -1
- package/src/engine/ecs/terrain/ecs/TerrainSystem.d.ts.map +1 -1
- package/src/engine/ecs/terrain/ecs/TerrainSystem.js +4 -1
- package/src/engine/ecs/terrain/tiles/TerrainTileManager.d.ts +29 -0
- package/src/engine/ecs/terrain/tiles/TerrainTileManager.d.ts.map +1 -1
- package/src/engine/ecs/terrain/tiles/TerrainTileManager.js +84 -23
- package/src/engine/graphics/CONTEXT_LOSS_RECOVERY_PLAN.md +446 -0
- package/src/engine/graphics/GraphicsEngine.d.ts +56 -7
- package/src/engine/graphics/GraphicsEngine.d.ts.map +1 -1
- package/src/engine/graphics/GraphicsEngine.js +196 -24
- package/src/engine/graphics/context/WebGLContextFailureReason.d.ts +9 -0
- package/src/engine/graphics/context/WebGLContextFailureReason.d.ts.map +1 -0
- package/src/engine/graphics/context/WebGLContextFailureReason.js +17 -0
- package/src/engine/graphics/context/WebGLContextMonitor.d.ts +106 -0
- package/src/engine/graphics/context/WebGLContextMonitor.d.ts.map +1 -0
- package/src/engine/graphics/context/WebGLContextMonitor.js +341 -0
- package/src/engine/graphics/context/WebGLContextState.d.ts +14 -0
- package/src/engine/graphics/context/WebGLContextState.d.ts.map +1 -0
- package/src/engine/graphics/context/WebGLContextState.js +24 -0
- package/src/engine/graphics/context/testWebGLContextLoss.d.ts +2 -0
- package/src/engine/graphics/context/testWebGLContextLoss.d.ts.map +1 -0
- package/src/engine/graphics/context/testWebGLContextLoss.js +696 -0
- package/src/engine/graphics/ecs/camera/serialization/CameraSerializationAdapter.d.ts.map +1 -1
- package/src/engine/graphics/ecs/camera/serialization/CameraSerializationAdapter.js +68 -32
- package/src/engine/graphics/ecs/camera/serialization/CameraSerializationUpgrader_0_1.d.ts +14 -0
- package/src/engine/graphics/ecs/camera/serialization/CameraSerializationUpgrader_0_1.d.ts.map +1 -0
- package/src/engine/graphics/ecs/camera/serialization/CameraSerializationUpgrader_0_1.js +41 -0
- package/src/engine/graphics/ecs/decal/v2/FPDecalSystem.js +1 -1
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometrySystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometrySystem.js +5 -0
- package/src/engine/graphics/ecs/trail2d/Trail2D.d.ts +5 -1
- package/src/engine/graphics/ecs/trail2d/Trail2D.d.ts.map +1 -1
- package/src/engine/graphics/ecs/trail2d/Trail2D.js +15 -0
- package/src/engine/graphics/ecs/trail2d/Trail2DSystem.d.ts +1 -1
- package/src/engine/graphics/ecs/trail2d/Trail2DSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/trail2d/Trail2DSystem.js +2 -1
- package/src/engine/graphics/ecs/trail3d/Trail3D.d.ts +4 -1
- package/src/engine/graphics/ecs/trail3d/Trail3D.d.ts.map +1 -1
- package/src/engine/graphics/ecs/trail3d/Trail3D.js +488 -476
- package/src/engine/graphics/ecs/trail3d/Trail3DSystem.d.ts +1 -1
- package/src/engine/graphics/ecs/trail3d/Trail3DSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/trail3d/Trail3DSystem.js +280 -253
- package/src/engine/graphics/geometry/MikkT/BuildNeighborsFast.d.ts.map +1 -1
- package/src/engine/graphics/geometry/MikkT/BuildNeighborsFast.js +3 -2
- package/src/engine/graphics/geometry/MikkT/GenerateSharedVerticesIndexList.d.ts.map +1 -1
- package/src/engine/graphics/geometry/MikkT/GenerateSharedVerticesIndexList.js +3 -1
- package/src/engine/graphics/geometry/computeMeshSurfaceArea.js +1 -1
- package/src/engine/graphics/load_and_set_cubemap_v0.d.ts +5 -0
- package/src/engine/graphics/load_and_set_cubemap_v0.d.ts.map +1 -1
- package/src/engine/graphics/load_and_set_cubemap_v0.js +26 -21
- package/src/engine/graphics/particles/particular/group/ParticleGroup.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/group/ParticleGroup.js +19 -8
- package/src/engine/graphics/particles/particular/group/optimizeCommandQueue.js +1 -1
- package/src/engine/graphics/texture/atlas/AtlasLookupTexture.d.ts.map +1 -1
- package/src/engine/graphics/texture/atlas/AtlasLookupTexture.js +10 -3
- package/src/engine/graphics/texture/atlas/TextureAtlas.d.ts.map +1 -1
- package/src/engine/graphics/texture/atlas/TextureAtlas.js +4 -1
- package/src/engine/graphics/texture/atlas/gpu/WebGLTextureAtlas.d.ts.map +1 -1
- package/src/engine/graphics/texture/atlas/gpu/WebGLTextureAtlas.js +11 -0
- package/src/engine/graphics/texture/cubemap/load_environment_map.d.ts.map +1 -1
- package/src/engine/graphics/texture/cubemap/load_environment_map.js +5 -2
- package/src/engine/graphics/texture/sampler/distance/computeSignedDistanceField_Chamfer.d.ts.map +1 -1
- package/src/engine/graphics/texture/sampler/distance/computeSignedDistanceField_Chamfer.js +26 -18
- package/src/engine/graphics/texture/sampler/filter/sampler2d_blur_gaussian.d.ts +15 -2
- package/src/engine/graphics/texture/sampler/filter/sampler2d_blur_gaussian.d.ts.map +1 -1
- package/src/engine/graphics/texture/sampler/filter/sampler2d_blur_gaussian.js +29 -3
- package/src/engine/graphics/texture/sampler/resize/sampler2d_scale_down_lanczos.d.ts +11 -1
- package/src/engine/graphics/texture/sampler/resize/sampler2d_scale_down_lanczos.d.ts.map +1 -1
- package/src/engine/graphics/texture/sampler/resize/sampler2d_scale_down_lanczos.js +158 -171
- package/src/engine/graphics/texture/sampler/sampler2d_paint.js +1 -1
- package/src/engine/graphics/texture/sampler/util/bitSet2Sampler2D.js +2 -2
- package/src/engine/input/ecs/util/TopDownCameraControllerHelper.d.ts.map +1 -1
- package/src/engine/input/ecs/util/TopDownCameraControllerHelper.js +10 -3
- package/src/engine/navigation/ecs/components/PathSerializationUpgrader_2_3.d.ts +14 -0
- package/src/engine/navigation/ecs/components/PathSerializationUpgrader_2_3.d.ts.map +1 -0
- package/src/engine/navigation/ecs/components/PathSerializationUpgrader_2_3.js +38 -0
- package/src/engine/network/orchestrator/ServerAuthoritativeClient.d.ts.map +1 -1
- package/src/engine/network/orchestrator/ServerAuthoritativeClient.js +433 -425
- package/src/engine/physics/constraint/solve_constraints.d.ts +4 -1
- package/src/engine/physics/constraint/solve_constraints.d.ts.map +1 -1
- package/src/engine/physics/constraint/solve_constraints.js +38 -13
- package/src/engine/physics/contact/ManifoldStore.d.ts +15 -3
- package/src/engine/physics/contact/ManifoldStore.d.ts.map +1 -1
- package/src/engine/physics/contact/ManifoldStore.js +15 -3
- package/src/engine/physics/ecs/Joint.d.ts +7 -4
- package/src/engine/physics/ecs/Joint.d.ts.map +1 -1
- package/src/engine/physics/ecs/Joint.js +7 -4
- package/src/engine/physics/ecs/PhysicsSystem.d.ts +14 -0
- package/src/engine/physics/ecs/PhysicsSystem.d.ts.map +1 -1
- package/src/engine/physics/ecs/PhysicsSystem.js +16 -0
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
- package/src/engine/physics/fluid/ecs/FluidSystem.d.ts +3 -3
- package/src/engine/physics/narrowphase/convex_convex_manifold.d.ts +15 -7
- package/src/engine/physics/narrowphase/convex_convex_manifold.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/convex_convex_manifold.js +33 -10
- package/src/engine/physics/narrowphase/refine_ray_concave.d.ts +6 -2
- package/src/engine/physics/narrowphase/refine_ray_concave.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/refine_ray_concave.js +6 -2
- package/src/engine/physics/narrowphase/refine_ray_hit.d.ts +6 -2
- package/src/engine/physics/narrowphase/refine_ray_hit.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/refine_ray_hit.js +6 -2
- package/src/engine/physics/queries/raycast.d.ts.map +1 -1
- package/src/engine/physics/queries/raycast.js +11 -4
- package/src/engine/save/storage/IndexedDBStorage.d.ts.map +1 -1
- package/src/engine/save/storage/IndexedDBStorage.js +21 -3
- package/src/engine/simulation/Ticker.d.ts +12 -0
- package/src/engine/simulation/Ticker.d.ts.map +1 -1
- package/src/engine/simulation/Ticker.js +18 -0
- package/src/engine/sound/simulation/AcousticSimulator.d.ts.map +1 -1
- package/src/engine/sound/simulation/AcousticSimulator.js +9 -1
- package/src/engine/sound/simulation/core/VolumeField.d.ts +6 -2
- package/src/engine/sound/simulation/core/VolumeField.d.ts.map +1 -1
- package/src/engine/sound/simulation/core/VolumeField.js +6 -2
- package/src/engine/sound/simulation/probe/AcousticProbeField.d.ts +6 -2
- package/src/engine/sound/simulation/probe/AcousticProbeField.d.ts.map +1 -1
- package/src/engine/sound/simulation/probe/AcousticProbeField.js +6 -2
- package/src/engine/sound/simulation/probe/acoustic_probe_transfer.d.ts +6 -2
- package/src/engine/sound/simulation/probe/acoustic_probe_transfer.d.ts.map +1 -1
- package/src/engine/sound/simulation/probe/acoustic_probe_transfer.js +6 -2
- package/src/engine/sound/simulation/probe/bakeProbeReflectors.d.ts +3 -1
- package/src/engine/sound/simulation/probe/bakeProbeReflectors.d.ts.map +1 -1
- package/src/engine/sound/simulation/probe/bakeProbeReflectors.js +3 -1
- package/src/engine/ui/GUIEngine.d.ts.map +1 -1
- package/src/engine/ui/GUIEngine.js +8 -1
- package/src/generation/theme/TerrainTheme.d.ts.map +1 -1
- package/src/generation/theme/TerrainTheme.js +2 -1
- package/src/generation/theme/ThemeEngine.d.ts.map +1 -1
- package/src/generation/theme/ThemeEngine.js +6 -5
- package/src/view/ViewGroup.d.ts.map +1 -1
- package/src/view/ViewGroup.js +9 -7
- package/src/view/graphics/WebGLContextFailureView.d.ts +19 -0
- package/src/view/graphics/WebGLContextFailureView.d.ts.map +1 -0
- package/src/view/graphics/WebGLContextFailureView.js +76 -0
- package/src/view/minimap/Minimap.d.ts +8 -0
- package/src/view/minimap/Minimap.d.ts.map +1 -1
- package/src/view/minimap/Minimap.js +16 -3
- package/src/view/minimap/dom/MinimapMarkerView.d.ts.map +1 -1
- package/src/view/minimap/dom/MinimapMarkerView.js +3 -1
|
@@ -61,11 +61,18 @@ function aabb_face_normal(out, min_x, min_y, min_z, max_x, max_y, max_z, hx, hy,
|
|
|
61
61
|
* cannot contain a closer hit. A leaf whose ray crosses the fat AABB but misses
|
|
62
62
|
* the true shape contributes nothing — the correctness gain over broadphase.
|
|
63
63
|
*
|
|
64
|
-
* @param {BVH} bvh
|
|
64
|
+
* @param {BVH} bvh
|
|
65
|
+
* @param {number} root
|
|
65
66
|
* @param {PhysicsSystem} system
|
|
66
|
-
* @param {number} ox
|
|
67
|
-
* @param {number}
|
|
68
|
-
* @param {number}
|
|
67
|
+
* @param {number} ox ray origin x
|
|
68
|
+
* @param {number} oy ray origin y
|
|
69
|
+
* @param {number} oz ray origin z
|
|
70
|
+
* @param {number} dx ray dir x (unit)
|
|
71
|
+
* @param {number} dy ray dir y (unit)
|
|
72
|
+
* @param {number} dz ray dir z (unit)
|
|
73
|
+
* @param {number} inv_dx
|
|
74
|
+
* @param {number} inv_dy
|
|
75
|
+
* @param {number} inv_dz
|
|
69
76
|
* @param {number} max_distance
|
|
70
77
|
* @param {(entity:number, collider:Collider)=>boolean} filter
|
|
71
78
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IndexedDBStorage.d.ts","sourceRoot":"","sources":["../../../../../src/engine/save/storage/IndexedDBStorage.js"],"names":[],"mappings":"AAMA;;GAEG;AACH;IACI,uBAgCC;IAnBG;;;OAGG;IACH,IAFU,QAAQ,WAAW,CAAC,CAe5B;IAIN,kDA+BC;
|
|
1
|
+
{"version":3,"file":"IndexedDBStorage.d.ts","sourceRoot":"","sources":["../../../../../src/engine/save/storage/IndexedDBStorage.js"],"names":[],"mappings":"AAMA;;GAEG;AACH;IACI,uBAgCC;IAnBG;;;OAGG;IACH,IAFU,QAAQ,WAAW,CAAC,CAe5B;IAIN,kDA+BC;IAwED,sCAkBC;CACJ;oBAtKmB,eAAe"}
|
|
@@ -105,10 +105,20 @@ export class IndexedDBStorage extends Storage {
|
|
|
105
105
|
|
|
106
106
|
const idbRequest = objectStore.put(value, key);
|
|
107
107
|
|
|
108
|
+
// A successful request only means the write was queued. Durability
|
|
109
|
+
// is guaranteed at transaction commit, and a transaction can still
|
|
110
|
+
// abort afterwards -- on quota exhaustion, for instance. Reporting
|
|
111
|
+
// success off the request turns a lost save into a reported save.
|
|
112
|
+
let result;
|
|
113
|
+
|
|
114
|
+
idbRequest.addEventListener('success', (event) => {
|
|
115
|
+
result = event.target.result;
|
|
116
|
+
});
|
|
117
|
+
|
|
108
118
|
if (typeof resolve === "function") {
|
|
109
119
|
|
|
110
|
-
|
|
111
|
-
resolve(
|
|
120
|
+
transaction.addEventListener('complete', () => {
|
|
121
|
+
resolve(result);
|
|
112
122
|
});
|
|
113
123
|
|
|
114
124
|
}
|
|
@@ -119,6 +129,14 @@ export class IndexedDBStorage extends Storage {
|
|
|
119
129
|
reject(event);
|
|
120
130
|
});
|
|
121
131
|
|
|
132
|
+
transaction.addEventListener('abort', (event) => {
|
|
133
|
+
reject(event);
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
transaction.addEventListener('error', (event) => {
|
|
137
|
+
reject(event);
|
|
138
|
+
});
|
|
139
|
+
|
|
122
140
|
}
|
|
123
141
|
});
|
|
124
142
|
|
|
@@ -130,7 +148,7 @@ export class IndexedDBStorage extends Storage {
|
|
|
130
148
|
list(resolve, reject) {
|
|
131
149
|
this.db
|
|
132
150
|
.then((db) => {
|
|
133
|
-
const transaction = db.transaction(MAIN_STORE_NAME,
|
|
151
|
+
const transaction = db.transaction(MAIN_STORE_NAME, IndexedDBTransactionMode.ReadOnly);
|
|
134
152
|
|
|
135
153
|
const objectStore = transaction.objectStore(MAIN_STORE_NAME);
|
|
136
154
|
|
|
@@ -40,6 +40,18 @@ declare class Ticker {
|
|
|
40
40
|
* @type {Signal<number>}
|
|
41
41
|
*/
|
|
42
42
|
readonly onTick: any;
|
|
43
|
+
/**
|
|
44
|
+
* Whether the update loop is cycling. {@link Ticker#pause} and {@link Ticker#resume} require this,
|
|
45
|
+
* they throw otherwise.
|
|
46
|
+
* @returns {boolean}
|
|
47
|
+
*/
|
|
48
|
+
get is_active(): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Whether tick dispatch is currently stopped via {@link Ticker#pause}. Suspension caused by the host
|
|
51
|
+
* page going into the background is not reported here, see {@link Ticker#suspend_in_background}.
|
|
52
|
+
* @returns {boolean}
|
|
53
|
+
*/
|
|
54
|
+
get is_paused(): boolean;
|
|
43
55
|
/**
|
|
44
56
|
*
|
|
45
57
|
* @param {number} [maxTimeout]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ticker.d.ts","sourceRoot":"","sources":["../../../../src/engine/simulation/Ticker.js"],"names":[],"mappings":";AAIA;;;;;;;;;;;;;;GAcG;AACH;IACI;;;OAGG;IACH,gBAFU,KAAK,CAEK;IAEpB;;;;;;;;;;;;OAYG;IACH,uBAFU,OAAO,CAEY;IAwB7B;;;;OAIG;IACH,qBAAsB;
|
|
1
|
+
{"version":3,"file":"Ticker.d.ts","sourceRoot":"","sources":["../../../../src/engine/simulation/Ticker.js"],"names":[],"mappings":";AAIA;;;;;;;;;;;;;;GAcG;AACH;IACI;;;OAGG;IACH,gBAFU,KAAK,CAEK;IAEpB;;;;;;;;;;;;OAYG;IACH,uBAFU,OAAO,CAEY;IAwB7B;;;;OAIG;IACH,qBAAsB;IAUtB;;;;OAIG;IACH,yBAEC;IAED;;;;OAIG;IACH,yBAEC;IAuGD;;;OAGG;IACH,uBAFW,MAAM,QAyDhB;IAED,cAWC;IAED,eAaC;IAED,aAUC;;CACJ;kBAvSiB,aAAa"}
|
|
@@ -76,6 +76,24 @@ class Ticker {
|
|
|
76
76
|
return this.#timeoutHandle !== -1 && this.#animationFrameHandle !== -1;
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
+
/**
|
|
80
|
+
* Whether the update loop is cycling. {@link Ticker#pause} and {@link Ticker#resume} require this,
|
|
81
|
+
* they throw otherwise.
|
|
82
|
+
* @returns {boolean}
|
|
83
|
+
*/
|
|
84
|
+
get is_active() {
|
|
85
|
+
return this.#isUpdateLoopActive();
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Whether tick dispatch is currently stopped via {@link Ticker#pause}. Suspension caused by the host
|
|
90
|
+
* page going into the background is not reported here, see {@link Ticker#suspend_in_background}.
|
|
91
|
+
* @returns {boolean}
|
|
92
|
+
*/
|
|
93
|
+
get is_paused() {
|
|
94
|
+
return !this.#isRunning;
|
|
95
|
+
}
|
|
96
|
+
|
|
79
97
|
/**
|
|
80
98
|
* Stop dispatching ticks because the host page moved to the background.
|
|
81
99
|
* The clock is paused so no simulation time accrues while suspended. The
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcousticSimulator.d.ts","sourceRoot":"","sources":["../../../../../src/engine/sound/simulation/AcousticSimulator.js"],"names":[],"mappings":"AAyCA;;;;;;;;;GASG;AACH;IACI;;;OAGG;IACH,UAFU,MAAM,CAEF;IAEd;;;OAGG;IACH,WAFU,MAAM,CAEA;IAEhB;;;;;OAKG;IACH,SAFU,OAAO,CAED;IAEhB;;;;;;OAMG;IACH,gBAFU,OAAO,CAEM;IAEvB;;;;OAIG;IACH,eAFU,MAAM,CAEE;IAgGlB,6BAGC;IAZD;;;;OAIG;IACH,0BAEC;IAiBD,gCAEC;IAZD;;;;;OAKG;IACH,6BAEC;IAMD;;;;OAIG;IACH,2CAEC;IAED;;;;;;;OAOG;IACH,yEAHW,YAAY,GAAC,MAAM,EAAE,GACnB,MAAM,CAIlB;IAED;;;OAGG;IACH,6BAHW,MAAM,UACN,YAAY,GAAC,MAAM,EAAE,QAI/B;IAED;;OAEG;IACH,uBAFW,MAAM,QAIhB;IAED;;;OAGG;IACH,8DAEC;IAED;;OAEG;IACH,iDAEC;IAED;;;;OAIG;IACH,sBAEC;IAED;;;;;OAKG;IACH,qBAFW,qBAAmB,IAAI,QAMjC;IAED;;;;;;;;OAQG;IACH,mBAPW,OAAO,UACP,OAAO,gBACP,MAAM,SAEN,mBAAmB,OACnB,gBAAgB,QAkB1B;IAED;;;;;;OAMG;IACH,qBAHW,eAAe,YACf,OAAO,QAuFjB;
|
|
1
|
+
{"version":3,"file":"AcousticSimulator.d.ts","sourceRoot":"","sources":["../../../../../src/engine/sound/simulation/AcousticSimulator.js"],"names":[],"mappings":"AAyCA;;;;;;;;;GASG;AACH;IACI;;;OAGG;IACH,UAFU,MAAM,CAEF;IAEd;;;OAGG;IACH,WAFU,MAAM,CAEA;IAEhB;;;;;OAKG;IACH,SAFU,OAAO,CAED;IAEhB;;;;;;OAMG;IACH,gBAFU,OAAO,CAEM;IAEvB;;;;OAIG;IACH,eAFU,MAAM,CAEE;IAgGlB,6BAGC;IAZD;;;;OAIG;IACH,0BAEC;IAiBD,gCAEC;IAZD;;;;;OAKG;IACH,6BAEC;IAMD;;;;OAIG;IACH,2CAEC;IAED;;;;;;;OAOG;IACH,yEAHW,YAAY,GAAC,MAAM,EAAE,GACnB,MAAM,CAIlB;IAED;;;OAGG;IACH,6BAHW,MAAM,UACN,YAAY,GAAC,MAAM,EAAE,QAI/B;IAED;;OAEG;IACH,uBAFW,MAAM,QAIhB;IAED;;;OAGG;IACH,8DAEC;IAED;;OAEG;IACH,iDAEC;IAED;;;;OAIG;IACH,sBAEC;IAED;;;;;OAKG;IACH,qBAFW,qBAAmB,IAAI,QAMjC;IAED;;;;;;;;OAQG;IACH,mBAPW,OAAO,UACP,OAAO,gBACP,MAAM,SAEN,mBAAmB,OACnB,gBAAgB,QAkB1B;IAED;;;;;;OAMG;IACH,qBAHW,eAAe,YACf,OAAO,QAuFjB;IAgPD;;;OAGG;IACH,sCAOC;;CACJ;+BA/nB8B,0BAA0B;sCACnB,iCAAiC;wBAL/C,+BAA+B;oCAQW,+BAA+B;iCADhE,4BAA4B"}
|
|
@@ -554,6 +554,12 @@ export class AcousticSimulator {
|
|
|
554
554
|
* degenerate (zero-length) direction → 1 (no gate). See {@link AcousticProbeField#probeTransfer} /
|
|
555
555
|
* PROBE_TRANSFER_RESEARCH.md §3.
|
|
556
556
|
* @param {number} p probe index
|
|
557
|
+
* @param {number} inx incoming propagation direction x; need not be unit
|
|
558
|
+
* @param {number} iny incoming propagation direction y
|
|
559
|
+
* @param {number} inz incoming propagation direction z
|
|
560
|
+
* @param {number} outx outgoing propagation direction x; need not be unit
|
|
561
|
+
* @param {number} outy outgoing propagation direction y
|
|
562
|
+
* @param {number} outz outgoing propagation direction z
|
|
557
563
|
* @returns {number} gain in [0, 1]
|
|
558
564
|
*/
|
|
559
565
|
#turnGain(p, inx, iny, inz, outx, outy, outz) {
|
|
@@ -584,7 +590,9 @@ export class AcousticSimulator {
|
|
|
584
590
|
* PRECONDITION: only called for a non-omni `instance.directivity`, which (being authored on the source)
|
|
585
591
|
* always travels with the source's `orientation`.
|
|
586
592
|
* @param {EventInstance} instance the source — position + orientation + directivity
|
|
587
|
-
* @param {number} tx
|
|
593
|
+
* @param {number} tx target point x
|
|
594
|
+
* @param {number} ty target point y
|
|
595
|
+
* @param {number} tz target point z
|
|
588
596
|
* @returns {number} radiation gain ≥ 0
|
|
589
597
|
*/
|
|
590
598
|
#directivityGainToward(instance, tx, ty, tz) {
|
|
@@ -44,8 +44,12 @@ export class VolumeField {
|
|
|
44
44
|
* midpoints, blending the medium at each via {@link sample}. Allocation-free (module scratch).
|
|
45
45
|
*
|
|
46
46
|
* @param {AcousticRegionIndex} regionIndex
|
|
47
|
-
* @param {number} sx
|
|
48
|
-
* @param {number}
|
|
47
|
+
* @param {number} sx source position x
|
|
48
|
+
* @param {number} sy source position y
|
|
49
|
+
* @param {number} sz source position z
|
|
50
|
+
* @param {number} lx listener position x
|
|
51
|
+
* @param {number} ly listener position y
|
|
52
|
+
* @param {number} lz listener position z
|
|
49
53
|
* @param {Float32Array} outLoss `[low, mid, high]` total dB attenuation over the path
|
|
50
54
|
*/
|
|
51
55
|
integrateAbsorption(regionIndex: AcousticRegionIndex, sx: number, sy: number, sz: number, lx: number, ly: number, lz: number, outLoss: Float32Array): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VolumeField.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/sound/simulation/core/VolumeField.js"],"names":[],"mappings":"AAaA;;;;;GAKG;AACH;IAMI;;OAEG;IACH,4BAFW,cAAc,EAIxB;IASD;;OAEG;IACH,uCAEC;IAZD;;OAEG;IACH,oCAEC;IASD;;;;;;;;;;;;OAYG;IACH,4CALW,MAAM,KACN,MAAM,KACN,MAAM,OACN,cAAc,QA0BxB;IAED
|
|
1
|
+
{"version":3,"file":"VolumeField.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/sound/simulation/core/VolumeField.js"],"names":[],"mappings":"AAaA;;;;;GAKG;AACH;IAMI;;OAEG;IACH,4BAFW,cAAc,EAIxB;IASD;;OAEG;IACH,uCAEC;IAZD;;OAEG;IACH,oCAEC;IASD;;;;;;;;;;;;OAYG;IACH,4CALW,MAAM,KACN,MAAM,KACN,MAAM,OACN,cAAc,QA0BxB;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,0DARW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,WACN,YAAY,QA2CtB;;CACJ;+BApJ8B,qBAAqB"}
|
|
@@ -96,8 +96,12 @@ export class VolumeField {
|
|
|
96
96
|
* midpoints, blending the medium at each via {@link sample}. Allocation-free (module scratch).
|
|
97
97
|
*
|
|
98
98
|
* @param {AcousticRegionIndex} regionIndex
|
|
99
|
-
* @param {number} sx
|
|
100
|
-
* @param {number}
|
|
99
|
+
* @param {number} sx source position x
|
|
100
|
+
* @param {number} sy source position y
|
|
101
|
+
* @param {number} sz source position z
|
|
102
|
+
* @param {number} lx listener position x
|
|
103
|
+
* @param {number} ly listener position y
|
|
104
|
+
* @param {number} lz listener position z
|
|
101
105
|
* @param {Float32Array} outLoss `[low, mid, high]` total dB attenuation over the path
|
|
102
106
|
*/
|
|
103
107
|
integrateAbsorption(regionIndex, sx, sy, sz, lx, ly, lz, outLoss) {
|
|
@@ -201,8 +201,12 @@ export class AcousticProbeField {
|
|
|
201
201
|
* passthrough term alone. Directions are unit PROPAGATION directions.
|
|
202
202
|
* @param {Float32Array|number[]} out length ≥ 3
|
|
203
203
|
* @param {number} i probe index
|
|
204
|
-
* @param {number} inx
|
|
205
|
-
* @param {number}
|
|
204
|
+
* @param {number} inx ω_in x
|
|
205
|
+
* @param {number} iny ω_in y
|
|
206
|
+
* @param {number} inz ω_in z
|
|
207
|
+
* @param {number} outx ω_out x
|
|
208
|
+
* @param {number} outy ω_out y
|
|
209
|
+
* @param {number} outz ω_out z
|
|
206
210
|
*/
|
|
207
211
|
probeTransfer(out: Float32Array | number[], i: number, inx: number, iny: number, inz: number, outx: number, outy: number, outz: number): void;
|
|
208
212
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcousticProbeField.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/sound/simulation/probe/AcousticProbeField.js"],"names":[],"mappings":"AAmCA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH;IAmDI;;OAEG;IACH,mBAEC;IAED;;;OAGG;IACH,6BAEC;IAED;;;;OAIG;IACH,2BAEC;IAED;;;OAGG;IACH,2BAEC;IAED;;;;OAIG;IACH,kBAHW,MAAM,GACJ,MAAM,CAIlB;IAwBD;;;;;;;;;OASG;IACH,wBALW,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,QAsBhB;IAED;;;;;;;;OAQG;IACH,2BALW,MAAM,OACN,MAAM,OACN,MAAM,QACN,MAAM,QAShB;IAED;;;;;;;OAOG;IACH,gCAHW,MAAM,cACN,YAAY,GAAC,MAAM,EAAE,QAS/B;IAED;;;OAGG;IACH,UAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;OAGG;IACH,UAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;OAGG;IACH,UAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;;;OAKG;IACH,cAJW,MAAM,QACN,MAAM,GACJ,MAAM,CAIlB;IAED;;;;;;OAMG;IACH,mBAJW,MAAM,QACN,MAAM,OACN,YAAY,GAAC,MAAM,EAAE,QAS/B;IAED;;;;OAIG;IACH,eAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;;;;OAMG;IACH,gBALW,MAAM,KACN,MAAM,KACN,MAAM,GACJ,MAAM,CAKlB;IAED;;;;;;;;;;;;;OAaG;IACH,uBANW,MAAM,KACN,MAAM,KACN,MAAM,yCAEJ,MAAM,CAyBlB;IAED;;;;;;;;;;;;;;;OAeG;IACH,2BARW,MAAM,EAAE,GAAC,WAAW,iBACpB,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,UACN,MAAM,GACJ,MAAM,CAKlB;IAED;;;;;;;OAOG;IACH,iBALW,MAAM,KACN,MAAM,KACN,MAAM,GACJ,MAAM,CAKlB;IAED;;;;;;;OAOG;IACH,iBALW,MAAM,KACN,MAAM,KACN,MAAM,OACN,YAAY,GAAC,MAAM,EAAE,QAe/B;IAED;;;;;;;OAOG;IACH,sBALW,MAAM,KACN,MAAM,KACN,MAAM,OACN,YAAY,GAAC,MAAM,EAAE,QAkB/B;IAmCD;;;;;;OAMG;IACH,0CAEC;IAED;;;;;;OAMG;IACH,kBAHW,WAAW,QACX,YAAY,QAKtB;IAED
|
|
1
|
+
{"version":3,"file":"AcousticProbeField.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/sound/simulation/probe/AcousticProbeField.js"],"names":[],"mappings":"AAmCA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH;IAmDI;;OAEG;IACH,mBAEC;IAED;;;OAGG;IACH,6BAEC;IAED;;;;OAIG;IACH,2BAEC;IAED;;;OAGG;IACH,2BAEC;IAED;;;;OAIG;IACH,kBAHW,MAAM,GACJ,MAAM,CAIlB;IAwBD;;;;;;;;;OASG;IACH,wBALW,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,QAsBhB;IAED;;;;;;;;OAQG;IACH,2BALW,MAAM,OACN,MAAM,OACN,MAAM,QACN,MAAM,QAShB;IAED;;;;;;;OAOG;IACH,gCAHW,MAAM,cACN,YAAY,GAAC,MAAM,EAAE,QAS/B;IAED;;;OAGG;IACH,UAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;OAGG;IACH,UAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;OAGG;IACH,UAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;;;OAKG;IACH,cAJW,MAAM,QACN,MAAM,GACJ,MAAM,CAIlB;IAED;;;;;;OAMG;IACH,mBAJW,MAAM,QACN,MAAM,OACN,YAAY,GAAC,MAAM,EAAE,QAS/B;IAED;;;;OAIG;IACH,eAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;;;;OAMG;IACH,gBALW,MAAM,KACN,MAAM,KACN,MAAM,GACJ,MAAM,CAKlB;IAED;;;;;;;;;;;;;OAaG;IACH,uBANW,MAAM,KACN,MAAM,KACN,MAAM,yCAEJ,MAAM,CAyBlB;IAED;;;;;;;;;;;;;;;OAeG;IACH,2BARW,MAAM,EAAE,GAAC,WAAW,iBACpB,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,UACN,MAAM,GACJ,MAAM,CAKlB;IAED;;;;;;;OAOG;IACH,iBALW,MAAM,KACN,MAAM,KACN,MAAM,GACJ,MAAM,CAKlB;IAED;;;;;;;OAOG;IACH,iBALW,MAAM,KACN,MAAM,KACN,MAAM,OACN,YAAY,GAAC,MAAM,EAAE,QAe/B;IAED;;;;;;;OAOG;IACH,sBALW,MAAM,KACN,MAAM,KACN,MAAM,OACN,YAAY,GAAC,MAAM,EAAE,QAkB/B;IAmCD;;;;;;OAMG;IACH,0CAEC;IAED;;;;;;OAMG;IACH,kBAHW,WAAW,QACX,YAAY,QAKtB;IAED;;;;;;;;;;;;OAYG;IACH,mBATW,YAAY,GAAC,MAAM,EAAE,KACrB,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QAQhB;IAED;;;;;;;OAOG;IACH,mBAJW,MAAM,MACN,MAAM,GACJ,MAAM,EAAE,GAAC,IAAI,CAQzB;IAED;;;;;;;;MA0BC;IAED;;;;OAIG;IACH;gBAFmB;YAAC,CAAC,EAAC,MAAM,CAAC;YAAA,CAAC,EAAC,MAAM,CAAC;YAAA,CAAC,EAAC,MAAM,CAAC;YAAA,WAAW,EAAC,MAAM,EAAE,CAAC;YAAA,eAAe,EAAC,MAAM,EAAE,CAAA;SAAC,EAAE;aAoB9F;;CACJ"}
|
|
@@ -490,8 +490,12 @@ export class AcousticProbeField {
|
|
|
490
490
|
* passthrough term alone. Directions are unit PROPAGATION directions.
|
|
491
491
|
* @param {Float32Array|number[]} out length ≥ 3
|
|
492
492
|
* @param {number} i probe index
|
|
493
|
-
* @param {number} inx
|
|
494
|
-
* @param {number}
|
|
493
|
+
* @param {number} inx ω_in x
|
|
494
|
+
* @param {number} iny ω_in y
|
|
495
|
+
* @param {number} inz ω_in z
|
|
496
|
+
* @param {number} outx ω_out x
|
|
497
|
+
* @param {number} outy ω_out y
|
|
498
|
+
* @param {number} outz ω_out z
|
|
495
499
|
*/
|
|
496
500
|
probeTransfer(out, i, inx, iny, inz, outx, outy, outz) {
|
|
497
501
|
const offsets = this.#lobeOffsets;
|
|
@@ -19,8 +19,12 @@ export function forward_plateau(c: number): number;
|
|
|
19
19
|
* @param {Float32Array} lobes flat lobe array (LOBE_STRIDE floats each)
|
|
20
20
|
* @param {number} lobeOffset start index of this probe's lobes in `lobes`
|
|
21
21
|
* @param {number} lobeCount number of lobes for this probe
|
|
22
|
-
* @param {number} inx
|
|
23
|
-
* @param {number}
|
|
22
|
+
* @param {number} inx ω_in x (unit)
|
|
23
|
+
* @param {number} iny ω_in y (unit)
|
|
24
|
+
* @param {number} inz ω_in z (unit)
|
|
25
|
+
* @param {number} outx ω_out x (unit)
|
|
26
|
+
* @param {number} outy ω_out y (unit)
|
|
27
|
+
* @param {number} outz ω_out z (unit)
|
|
24
28
|
*/
|
|
25
29
|
export function acoustic_probe_transfer(out: Float32Array | number[], lobes: Float32Array, lobeOffset: number, lobeCount: number, inx: number, iny: number, inz: number, outx: number, outy: number, outz: number): void;
|
|
26
30
|
export const LOBE_STRIDE: 7;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acoustic_probe_transfer.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/sound/simulation/probe/acoustic_probe_transfer.js"],"names":[],"mappings":"AAgCA;;;;;GAKG;AACH,mCAHW,MAAM,GACJ,MAAM,CAOlB;AAED
|
|
1
|
+
{"version":3,"file":"acoustic_probe_transfer.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/sound/simulation/probe/acoustic_probe_transfer.js"],"names":[],"mappings":"AAgCA;;;;;GAKG;AACH,mCAHW,MAAM,GACJ,MAAM,CAOlB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,6CAXW,YAAY,GAAC,MAAM,EAAE,SACrB,YAAY,cACZ,MAAM,aACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QAsChB;AAtFD,4BAA6B;AAU7B,wCAAyC;AACzC,gCAAiC"}
|
|
@@ -57,8 +57,12 @@ export function forward_plateau(c) {
|
|
|
57
57
|
* @param {Float32Array} lobes flat lobe array (LOBE_STRIDE floats each)
|
|
58
58
|
* @param {number} lobeOffset start index of this probe's lobes in `lobes`
|
|
59
59
|
* @param {number} lobeCount number of lobes for this probe
|
|
60
|
-
* @param {number} inx
|
|
61
|
-
* @param {number}
|
|
60
|
+
* @param {number} inx ω_in x (unit)
|
|
61
|
+
* @param {number} iny ω_in y (unit)
|
|
62
|
+
* @param {number} inz ω_in z (unit)
|
|
63
|
+
* @param {number} outx ω_out x (unit)
|
|
64
|
+
* @param {number} outy ω_out y (unit)
|
|
65
|
+
* @param {number} outz ω_out z (unit)
|
|
62
66
|
*/
|
|
63
67
|
export function acoustic_probe_transfer(out, lobes, lobeOffset, lobeCount, inx, iny, inz, outx, outy, outz) {
|
|
64
68
|
const c = inx * outx + iny * outy + inz * outz; // ω_in·ω_out
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
* occluder within `radius`) yields 0 lobes — pure forward transfer.
|
|
5
5
|
*
|
|
6
6
|
* @param {AcousticOccluderIndex} index the acoustic scene
|
|
7
|
-
* @param {number} x
|
|
7
|
+
* @param {number} x probe position x
|
|
8
|
+
* @param {number} y probe position y
|
|
9
|
+
* @param {number} z probe position z
|
|
8
10
|
* @param {number} radius probe-local reflector radius (a reflector beyond this can't bend a local probe)
|
|
9
11
|
* @param {number} rayCount rays to shoot (more = finer reflector coverage)
|
|
10
12
|
* @param {Float32Array} outLobes destination, ≥ MAX_LOBES·LOBE_STRIDE floats
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bakeProbeReflectors.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/sound/simulation/probe/bakeProbeReflectors.js"],"names":[],"mappings":"AAgCA
|
|
1
|
+
{"version":3,"file":"bakeProbeReflectors.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/sound/simulation/probe/bakeProbeReflectors.js"],"names":[],"mappings":"AAgCA;;;;;;;;;;;;;GAaG;AACH,qEARW,MAAM,KACN,MAAM,KACN,MAAM,UACN,MAAM,YACN,MAAM,YACN,YAAY,GACV,MAAM,CA+DlB;AA9FD,0BAAoB"}
|
|
@@ -36,7 +36,9 @@ const C_COUNT = new Float32Array(MAX_LOBES);
|
|
|
36
36
|
* occluder within `radius`) yields 0 lobes — pure forward transfer.
|
|
37
37
|
*
|
|
38
38
|
* @param {AcousticOccluderIndex} index the acoustic scene
|
|
39
|
-
* @param {number} x
|
|
39
|
+
* @param {number} x probe position x
|
|
40
|
+
* @param {number} y probe position y
|
|
41
|
+
* @param {number} z probe position z
|
|
40
42
|
* @param {number} radius probe-local reflector radius (a reflector beyond this can't bend a local probe)
|
|
41
43
|
* @param {number} rayCount rays to shoot (more = finer reflector coverage)
|
|
42
44
|
* @param {Float32Array} outLobes destination, ≥ MAX_LOBES·LOBE_STRIDE floats
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GUIEngine.d.ts","sourceRoot":"","sources":["../../../../src/engine/ui/GUIEngine.js"],"names":[],"mappings":";AA4BA;IACI,mBAAqB;IAErB;;;OAGG;IACH,eAFU,gBAAc,IAAI,CAEP;IAErB;;;OAGG;IACH,eAAc;IAEd;;;OAGG;IACH,eAFU,eAAe,eAAe,CAAC,CAEX;IAE9B;;;OAGG;IACH,UAFU,cAAc,CAEQ;IAEhC;;;OAGG;IACH,cAFU,iBAAiB,CAEyB;IAGpD;;;OAGG;IACH,QAFU,MAAM,CAEM;IAEtB,gBAOG;IAEH;;;OAGG;IACH,KAFU,SAAS,CAEG;IAEtB;;;OAGG;IACH,QAFU,cAAc,CAEuB;IAG/C;;;OAGG;IACH,cAFU,eAAa,IAAI,CAEP;IAqBpB;;;;;;OAMG;IACH,mDANW,OAAO,GAIL,MAAM,CAoClB;IAED;;;;;;OAMG;IACH,0CALW,IAAI,GAGF,eAAe,CA+D3B;IAED;;;;;;OAMG;IACH,iEALW,MAAM,GAGJ,QAAQ,GAAG,CAAC,CA0DxB;IAED;;;;OAIG;IACH,mCAJW,MAAM,gBAWhB;IAED;;;;;OAKG;IACH,iCAJW,MAAM,gBAUhB;IAED;;;;;;;;OAQG;IACH,gEAPW,IAAI,gBA0Dd;IAED;;;;OAIG;IACH,kCAFY,eAAe,CAgB1B;IAED;;OAEG;IACH,yBAFa,eAAe,GAAC,IAAI,CAkBhC;IAED;;;OAGG;IACH,8BAKC;IAED;;;OAGG;IACH,
|
|
1
|
+
{"version":3,"file":"GUIEngine.d.ts","sourceRoot":"","sources":["../../../../src/engine/ui/GUIEngine.js"],"names":[],"mappings":";AA4BA;IACI,mBAAqB;IAErB;;;OAGG;IACH,eAFU,gBAAc,IAAI,CAEP;IAErB;;;OAGG;IACH,eAAc;IAEd;;;OAGG;IACH,eAFU,eAAe,eAAe,CAAC,CAEX;IAE9B;;;OAGG;IACH,UAFU,cAAc,CAEQ;IAEhC;;;OAGG;IACH,cAFU,iBAAiB,CAEyB;IAGpD;;;OAGG;IACH,QAFU,MAAM,CAEM;IAEtB,gBAOG;IAEH;;;OAGG;IACH,KAFU,SAAS,CAEG;IAEtB;;;OAGG;IACH,QAFU,cAAc,CAEuB;IAG/C;;;OAGG;IACH,cAFU,eAAa,IAAI,CAEP;IAqBpB;;;;;;OAMG;IACH,mDANW,OAAO,GAIL,MAAM,CAoClB;IAED;;;;;;OAMG;IACH,0CALW,IAAI,GAGF,eAAe,CA+D3B;IAED;;;;;;OAMG;IACH,iEALW,MAAM,GAGJ,QAAQ,GAAG,CAAC,CA0DxB;IAED;;;;OAIG;IACH,mCAJW,MAAM,gBAWhB;IAED;;;;;OAKG;IACH,iCAJW,MAAM,gBAUhB;IAED;;;;;;;;OAQG;IACH,gEAPW,IAAI,gBA0Dd;IAED;;;;OAIG;IACH,kCAFY,eAAe,CAgB1B;IAED;;OAEG;IACH,yBAFa,eAAe,GAAC,IAAI,CAkBhC;IAED;;;OAGG;IACH,8BAKC;IAED;;;OAGG;IACH,wCAiEC;IAED,2BAYC;CACJ;iBAxgBgB,oCAAoC;gCAyBrB,4BAA4B;+BAf7B,sCAAsC;kCAFnC,yCAAyC;mBAexD,yBAAyB;sBAjBtB,kCAAkC;0BAG9B,qCAAqC;2BAPpC,oCAAoC;mBAiB5C,kBAAkB;iBAPpB,oBAAoB;gCATqB,uCAAuC"}
|
|
@@ -478,7 +478,14 @@ class GUIEngine {
|
|
|
478
478
|
return `cursor-${cursorName}`;
|
|
479
479
|
}
|
|
480
480
|
|
|
481
|
-
const
|
|
481
|
+
const graphics = engine.graphics;
|
|
482
|
+
|
|
483
|
+
if (graphics === null) {
|
|
484
|
+
// headless: there is no canvas to carry the cursor class
|
|
485
|
+
return;
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
const classList = graphics.domElement.classList;
|
|
482
489
|
|
|
483
490
|
if (typeof oldValue === 'string') {
|
|
484
491
|
classList.remove(className(oldValue));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TerrainTheme.d.ts","sourceRoot":"","sources":["../../../../src/generation/theme/TerrainTheme.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TerrainTheme.d.ts","sourceRoot":"","sources":["../../../../src/generation/theme/TerrainTheme.js"],"names":[],"mappings":"AAIA;IACI;;;OAGG;IACH,OAFU,kBAAkB,CAEjB;IAGX;;;;OAIG;IACH,iCAFW,MAAM,QAkBhB;CACJ"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { assert } from "../../core/assert.js";
|
|
2
|
+
import { randomSeed } from "../../core/math/random/randomSeed.js";
|
|
2
3
|
import { seededRandom } from "../../core/math/random/seededRandom.js";
|
|
3
4
|
|
|
4
5
|
export class TerrainTheme {
|
|
@@ -26,7 +27,7 @@ export class TerrainTheme {
|
|
|
26
27
|
for (let i = 0; i < n; i++) {
|
|
27
28
|
const rule = rules[i];
|
|
28
29
|
|
|
29
|
-
const ruleSeed = random
|
|
30
|
+
const ruleSeed = randomSeed(random);
|
|
30
31
|
|
|
31
32
|
rule.filter.initialize(grid, ruleSeed);
|
|
32
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeEngine.d.ts","sourceRoot":"","sources":["../../../../src/generation/theme/ThemeEngine.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ThemeEngine.d.ts","sourceRoot":"","sources":["../../../../src/generation/theme/ThemeEngine.js"],"names":[],"mappings":"AAqFA;IAEI;;;OAGG;IACH,OAFU,uBAAuB,CAEN;IAE3B;;;OAGG;IACH,uBAFqB,MAAM,CAEF;IAEzB;;;;OAIG;IACH,uBAAsB;IAEtB,2BAEC;IAED;;;OAGG;IACH,sBAEC;IAED;;;OAGG;IACH,mBAEC;IAED;;;OAGG;IACH,4BAUC;IAED;;;;;;OAMG;IACH,4BALW,WAAW,KACX,MAAM,KACN,MAAM,GACJ,MAAM,CA8BlB;IAED;;;;;;OAMG;IACH,oEAHW,MAAM,GACJ,IAAI,CAmChB;IAED;;;;;OAKG;IACH,sDAFa,SAAS,CAgLrB;IAED;;;;;;OAMG;IACH,+DAHW,MAAM,GACJ,IAAI,GAAC,SAAS,CA2G1B;IAED;;;;OAIG;IACH,kEAqCC;IAED;;;;;;;;;;;;;OAaG;IACH,iCAFa,IAAI,CA+BhB;IAED;;;;OAIG;IACH,uCAHa,SAAS,CAYrB;IAED;;;;;OAKG;IACH,oDAFa,SAAS,CA6DrB;CACJ;6BA7qB4B,8CAA8C;iBAO1D,iCAAiC;sBAC5B,sCAAsC"}
|
|
@@ -4,6 +4,7 @@ import { HashMap } from "../../core/collection/map/HashMap.js";
|
|
|
4
4
|
import { QuadTreeNode } from "../../core/geom/2d/quad-tree/QuadTreeNode.js";
|
|
5
5
|
import { randomFloatBetween } from "../../core/math/random/randomFloatBetween.js";
|
|
6
6
|
import { randomIntegerBetween } from "../../core/math/random/randomIntegerBetween.js";
|
|
7
|
+
import { randomSeed } from "../../core/math/random/randomSeed.js";
|
|
7
8
|
import { seededRandom } from "../../core/math/random/seededRandom.js";
|
|
8
9
|
import { number_compare_ascending } from "../../core/primitives/numbers/number_compare_ascending.js";
|
|
9
10
|
import Future from "../../core/process/Future.js";
|
|
@@ -185,6 +186,8 @@ export class ThemeEngine {
|
|
|
185
186
|
*/
|
|
186
187
|
initializeThemes(grid, ecd, seed) {
|
|
187
188
|
|
|
189
|
+
const random = seededRandom(seed);
|
|
190
|
+
|
|
188
191
|
return actionTask(() => {
|
|
189
192
|
/**
|
|
190
193
|
*
|
|
@@ -209,9 +212,7 @@ export class ThemeEngine {
|
|
|
209
212
|
if (themes.indexOf(theme) === -1) {
|
|
210
213
|
themes.push(theme);
|
|
211
214
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
theme.initialize(grid, ecd, seed);
|
|
215
|
+
theme.initialize(grid, ecd, randomSeed(random));
|
|
215
216
|
}
|
|
216
217
|
}
|
|
217
218
|
|
|
@@ -628,9 +629,9 @@ export class ThemeEngine {
|
|
|
628
629
|
apply(grid, ecd) {
|
|
629
630
|
const terrain = obtainTerrain(ecd);
|
|
630
631
|
|
|
631
|
-
const tInitializeThemes = this.initializeThemes(grid, ecd, this.random
|
|
632
|
+
const tInitializeThemes = this.initializeThemes(grid, ecd, randomSeed(this.random));
|
|
632
633
|
|
|
633
|
-
const tNodes = this.applyNodes(grid, ecd);
|
|
634
|
+
const tNodes = this.applyNodes(grid, ecd, randomSeed(this.random));
|
|
634
635
|
|
|
635
636
|
const tCells = this.applyCellRules(grid, ecd);
|
|
636
637
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewGroup.d.ts","sourceRoot":"","sources":["../../../src/view/ViewGroup.js"],"names":[],"mappings":"AAAA;IAEQ;;;OAGG;IACH,iBAAyB;IAGzB;;;OAGG;IACH,kBAAqB;IAGzB;;;OAGG;IACH,sBAMC;IAED;;;OAGG;IACH,4BAYC;IAED;;;OAGG;IACH,+BAqBC;IAED,
|
|
1
|
+
{"version":3,"file":"ViewGroup.d.ts","sourceRoot":"","sources":["../../../src/view/ViewGroup.js"],"names":[],"mappings":"AAAA;IAEQ;;;OAGG;IACH,iBAAyB;IAGzB;;;OAGG;IACH,kBAAqB;IAGzB;;;OAGG;IACH,sBAMC;IAED;;;OAGG;IACH,4BAYC;IAED;;;OAGG;IACH,+BAqBC;IAED,mBAiBC;CACJ"}
|
package/src/view/ViewGroup.js
CHANGED
|
@@ -31,7 +31,7 @@ export class ViewGroup {
|
|
|
31
31
|
* @param {View} view
|
|
32
32
|
*/
|
|
33
33
|
remove(view) {
|
|
34
|
-
const removedElement = this.elements.
|
|
34
|
+
const removedElement = this.elements.delete(view);
|
|
35
35
|
|
|
36
36
|
if (removedElement) {
|
|
37
37
|
if (this.container !== null) {
|
|
@@ -72,17 +72,19 @@ export class ViewGroup {
|
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
disconnect() {
|
|
75
|
-
const
|
|
75
|
+
const container = this.container;
|
|
76
76
|
|
|
77
|
-
|
|
77
|
+
if (container === null) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
const views = Array.from(this.elements.values());
|
|
78
82
|
|
|
79
83
|
const l = views.length;
|
|
80
84
|
|
|
81
85
|
for (let i = 0; i < l; i++) {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
this.container.addChild(view);
|
|
86
|
+
// detach: this is the inverse of connect(), which adds them
|
|
87
|
+
container.removeChild(views[i]);
|
|
86
88
|
}
|
|
87
89
|
|
|
88
90
|
this.container = null;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shown when WebGL context recovery has been abandoned, so the player sees an explanation instead of a
|
|
3
|
+
* black canvas.
|
|
4
|
+
*
|
|
5
|
+
* Strings are supplied by the caller. They default to English because this view exists precisely for the
|
|
6
|
+
* case where the renderer is dead, which is not a good moment to depend on the localization pipeline
|
|
7
|
+
* having the keys; an application that has them should pass localized strings in.
|
|
8
|
+
*/
|
|
9
|
+
export class WebGLContextFailureView extends EmptyView {
|
|
10
|
+
/**
|
|
11
|
+
* @param {string} [title]
|
|
12
|
+
* @param {string} [text]
|
|
13
|
+
* @param {string} [action_label]
|
|
14
|
+
* @param {function} [action] invoked when the button is pressed, defaults to reloading the page
|
|
15
|
+
*/
|
|
16
|
+
constructor({ title, text, action_label, action }?: string);
|
|
17
|
+
}
|
|
18
|
+
import EmptyView from "../elements/EmptyView.js";
|
|
19
|
+
//# sourceMappingURL=WebGLContextFailureView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebGLContextFailureView.d.ts","sourceRoot":"","sources":["../../../../src/view/graphics/WebGLContextFailureView.js"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH;IACI;;;;;OAKG;IACH,oDALW,MAAM,EA4DhB;CACJ;sBA1EqB,0BAA0B"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import ButtonView from "../elements/button/ButtonView.js";
|
|
2
|
+
import EmptyView from "../elements/EmptyView.js";
|
|
3
|
+
import LabelView from "../common/LabelView.js";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Shown when WebGL context recovery has been abandoned, so the player sees an explanation instead of a
|
|
7
|
+
* black canvas.
|
|
8
|
+
*
|
|
9
|
+
* Strings are supplied by the caller. They default to English because this view exists precisely for the
|
|
10
|
+
* case where the renderer is dead, which is not a good moment to depend on the localization pipeline
|
|
11
|
+
* having the keys; an application that has them should pass localized strings in.
|
|
12
|
+
*/
|
|
13
|
+
export class WebGLContextFailureView extends EmptyView {
|
|
14
|
+
/**
|
|
15
|
+
* @param {string} [title]
|
|
16
|
+
* @param {string} [text]
|
|
17
|
+
* @param {string} [action_label]
|
|
18
|
+
* @param {function} [action] invoked when the button is pressed, defaults to reloading the page
|
|
19
|
+
*/
|
|
20
|
+
constructor({
|
|
21
|
+
title = 'Graphics device lost',
|
|
22
|
+
text = 'The graphics device stopped responding and could not be recovered. Reloading should fix it.',
|
|
23
|
+
action_label = 'Reload',
|
|
24
|
+
action = () => window.location.reload()
|
|
25
|
+
} = {}) {
|
|
26
|
+
super({
|
|
27
|
+
classList: ['webgl-context-failure-view'],
|
|
28
|
+
css: {
|
|
29
|
+
position: 'absolute',
|
|
30
|
+
left: 0,
|
|
31
|
+
top: 0,
|
|
32
|
+
width: '100%',
|
|
33
|
+
height: '100%',
|
|
34
|
+
display: 'flex',
|
|
35
|
+
flexDirection: 'column',
|
|
36
|
+
alignItems: 'center',
|
|
37
|
+
justifyContent: 'center',
|
|
38
|
+
// the canvas underneath holds whatever was on screen when the device died, dim it out
|
|
39
|
+
backgroundColor: 'rgba(0,0,0,0.82)',
|
|
40
|
+
color: '#f0f0f0',
|
|
41
|
+
fontFamily: 'sans-serif',
|
|
42
|
+
textAlign: 'center',
|
|
43
|
+
pointerEvents: 'auto',
|
|
44
|
+
zIndex: 1000
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
this.addChild(new LabelView(title, {
|
|
49
|
+
classList: ['title'],
|
|
50
|
+
css: {
|
|
51
|
+
fontSize: '1.6em',
|
|
52
|
+
marginBottom: '0.6em'
|
|
53
|
+
}
|
|
54
|
+
}));
|
|
55
|
+
|
|
56
|
+
this.addChild(new LabelView(text, {
|
|
57
|
+
classList: ['text'],
|
|
58
|
+
css: {
|
|
59
|
+
maxWidth: '30em',
|
|
60
|
+
marginBottom: '1.4em',
|
|
61
|
+
lineHeight: '1.4'
|
|
62
|
+
}
|
|
63
|
+
}));
|
|
64
|
+
|
|
65
|
+
this.addChild(new ButtonView({
|
|
66
|
+
action,
|
|
67
|
+
name: action_label,
|
|
68
|
+
classList: ['action'],
|
|
69
|
+
css: {
|
|
70
|
+
cursor: 'pointer',
|
|
71
|
+
padding: '0.5em 1.5em',
|
|
72
|
+
border: '1px solid #f0f0f0'
|
|
73
|
+
}
|
|
74
|
+
}));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
@@ -21,6 +21,14 @@ declare class MinimapView extends View {
|
|
|
21
21
|
__cameraViews: MinimapCameraView[];
|
|
22
22
|
cameraObserver: EntityObserver;
|
|
23
23
|
pointer: PointerDevice;
|
|
24
|
+
/**
|
|
25
|
+
* Detaches every camera view and forgets it.
|
|
26
|
+
*
|
|
27
|
+
* Called from {@link unlink}, where the observer teardown has usually
|
|
28
|
+
* emptied the list already, but it is also the only way for a caller to
|
|
29
|
+
* reset the view: leaving the entries behind would let a later camera
|
|
30
|
+
* removal detach a child that is no longer attached.
|
|
31
|
+
*/
|
|
24
32
|
clear(): void;
|
|
25
33
|
}
|
|
26
34
|
import View from "../View.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Minimap.d.ts","sourceRoot":"","sources":["../../../../src/view/minimap/Minimap.js"],"names":[],"mappings":";AAmBA;IACI;;;;;OAKG;IACH,+EA0JC;IAvJG,YAAsD;IAEtD;;;OAGG;IACH,sCAAkC;IASpB,OAFJ,SAAS,CAEiC;IAKpD,wBAAgF;IAmBhF,oBAAwE;IAGxE,uBAAyB;IACzB,gCAA6B;IAMT,eAFV,iBAAiB,EAAE,CAEc;IA+B3C,+BAAyF;IA+BzE,uBAA2C;IA0C/D,
|
|
1
|
+
{"version":3,"file":"Minimap.d.ts","sourceRoot":"","sources":["../../../../src/view/minimap/Minimap.js"],"names":[],"mappings":";AAmBA;IACI;;;;;OAKG;IACH,+EA0JC;IAvJG,YAAsD;IAEtD;;;OAGG;IACH,sCAAkC;IASpB,OAFJ,SAAS,CAEiC;IAKpD,wBAAgF;IAmBhF,oBAAwE;IAGxE,uBAAyB;IACzB,gCAA6B;IAMT,eAFV,iBAAiB,EAAE,CAEc;IA+B3C,+BAAyF;IA+BzE,uBAA2C;IA0C/D;;;;;;;OAOG;IACH,cAUC;CAkDJ;iBA/OgB,YAAY;sBAXP,iCAAiC;+BAgBxB,wBAAwB;sBANjC,0BAA0B;iCAKf,0BAA0B;kCAHzB,4BAA4B;+BAV/B,oCAAoC;8BAMrC,6CAA6C"}
|
|
@@ -180,11 +180,24 @@ class MinimapView extends View {
|
|
|
180
180
|
|
|
181
181
|
}
|
|
182
182
|
|
|
183
|
+
/**
|
|
184
|
+
* Detaches every camera view and forgets it.
|
|
185
|
+
*
|
|
186
|
+
* Called from {@link unlink}, where the observer teardown has usually
|
|
187
|
+
* emptied the list already, but it is also the only way for a caller to
|
|
188
|
+
* reset the view: leaving the entries behind would let a later camera
|
|
189
|
+
* removal detach a child that is no longer attached.
|
|
190
|
+
*/
|
|
183
191
|
clear() {
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
192
|
+
const views = this.__cameraViews;
|
|
193
|
+
|
|
194
|
+
// this used to call addChild, which attached each camera view a second
|
|
195
|
+
// time rather than removing it
|
|
196
|
+
for (let i = 0, l = views.length; i < l; i++) {
|
|
197
|
+
this.__worldView.removeChild(views[i]);
|
|
187
198
|
}
|
|
199
|
+
|
|
200
|
+
views.length = 0;
|
|
188
201
|
}
|
|
189
202
|
|
|
190
203
|
link() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MinimapMarkerView.d.ts","sourceRoot":"","sources":["../../../../../src/view/minimap/dom/MinimapMarkerView.js"],"names":[],"mappings":"AAMA;IACI;;;;;;;OAOG;IACH,
|
|
1
|
+
{"version":3,"file":"MinimapMarkerView.d.ts","sourceRoot":"","sources":["../../../../../src/view/minimap/dom/MinimapMarkerView.js"],"names":[],"mappings":"AAMA;IACI;;;;;;;OAOG;IACH,0FAmCC;IA9BG,SAAsD;IAEtD;;;OAGG;IACH,sBAAoB;IACpB;;;OAGG;IACH,qBAA0B;IAC1B,gBAA4B;IAoBhC,8DAEK;IAEL,+CAIK;IAEL,8CAGK;CAYR;iBA7EgB,eAAe"}
|
|
@@ -14,7 +14,9 @@ export class MinimapMarkerView extends View {
|
|
|
14
14
|
* @constructor
|
|
15
15
|
*/
|
|
16
16
|
constructor(entity, marker, transform, worldScale) {
|
|
17
|
-
|
|
17
|
+
// `this` is not available until super() returns; reading it here threw
|
|
18
|
+
// a ReferenceError on every construction
|
|
19
|
+
super(entity, marker, transform, worldScale);
|
|
18
20
|
|
|
19
21
|
this.el = MinimapMarkerDOMElementPrototype.cloneNode();
|
|
20
22
|
|