@woosh/meep-engine 3.15.0 → 3.16.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/editor/Editor.js +7 -7
- package/editor/actions/concrete/TransformModifyAction.d.ts +4 -4
- package/editor/actions/concrete/TransformModifyAction.d.ts.map +1 -1
- package/editor/actions/concrete/TransformModifyAction.js +4 -4
- package/editor/camera/camera_framing.js +7 -7
- package/editor/ecs/component/editors/ecs/Transform64Editor.d.ts +20 -0
- package/editor/ecs/component/editors/ecs/Transform64Editor.d.ts.map +1 -0
- package/editor/ecs/component/editors/ecs/Transform64Editor.js +70 -0
- package/editor/ecs/component/prototypeObjectEditor.js +2 -2
- package/editor/ecs/component/registerEngineComponentEditors.js +3 -3
- package/editor/particles/effect/ParticleEffectDocument.d.ts +396 -0
- package/editor/particles/effect/ParticleEffectDocument.d.ts.map +1 -0
- package/editor/particles/effect/ParticleEffectDocument.js +989 -0
- package/editor/particles/effect/ParticleReferenceSimulation.d.ts +113 -0
- package/editor/particles/effect/ParticleReferenceSimulation.d.ts.map +1 -0
- package/editor/particles/effect/ParticleReferenceSimulation.js +377 -0
- package/editor/particles/effect/actions/ParticleGroupDefineAction.d.ts +35 -0
- package/editor/particles/effect/actions/ParticleGroupDefineAction.d.ts.map +1 -0
- package/editor/particles/effect/actions/ParticleGroupDefineAction.js +45 -0
- package/editor/particles/effect/make_starter_particle_effect.d.ts +23 -0
- package/editor/particles/effect/make_starter_particle_effect.d.ts.map +1 -0
- package/editor/particles/effect/make_starter_particle_effect.js +177 -0
- package/editor/persistence/buildNewSceneDataset.d.ts.map +1 -1
- package/editor/persistence/buildNewSceneDataset.js +10 -8
- package/editor/process/symbolic/AudioEmitterSymbolicDisplay.js +67 -67
- package/editor/process/symbolic/CameraSymbolicDisplay.js +146 -146
- package/editor/process/symbolic/GridPositionSymbolicDisplay.js +6 -6
- package/editor/process/symbolic/LightSymbolicDisplay.js +172 -172
- package/editor/process/symbolic/ParticleEmitterSymbolicDisplay.d.ts.map +1 -1
- package/editor/process/symbolic/ParticleEmitterSymbolicDisplay.js +6 -3
- package/editor/process/symbolic/PositionedMarkerSymbolicDisplay.js +6 -6
- package/editor/selection/editor_pick.js +130 -130
- package/editor/templates/entity_templates.js +7 -7
- package/editor/tools/TransformToolV2.d.ts +3 -3
- package/editor/tools/TransformToolV2.d.ts.map +1 -1
- package/editor/tools/TransformToolV2.js +58 -25
- package/editor/tools/paint/TerrainHeightPaintTool.d.ts.map +1 -1
- package/editor/tools/paint/TerrainHeightPaintTool.js +11 -9
- package/editor/tools/v2/GizmoNode.js +2 -2
- package/editor/tools/v2/TransformControls.d.ts +3 -3
- package/editor/tools/v2/TransformControls.d.ts.map +1 -1
- package/editor/tools/v2/TransformControls.js +1003 -971
- package/editor/tools/v2/handle/gizmo_drag_plane.d.ts.map +1 -1
- package/editor/tools/v2/handle/gizmo_drag_plane.js +6 -1
- package/editor/view/ecs/components/common/AutoCanvasView.js +17 -0
- package/editor/view/node-graph/NodeGraphEditorView.d.ts +143 -2
- package/editor/view/node-graph/NodeGraphEditorView.d.ts.map +1 -1
- package/editor/view/node-graph/NodeGraphEditorView.js +358 -6
- package/editor/view/node-graph/NodeGraphMinimapView.d.ts +120 -0
- package/editor/view/node-graph/NodeGraphMinimapView.d.ts.map +1 -0
- package/editor/view/node-graph/NodeGraphMinimapView.js +859 -0
- package/editor/view/node-graph/NodeGraphPaletteView.d.ts +112 -0
- package/editor/view/node-graph/NodeGraphPaletteView.d.ts.map +1 -0
- package/editor/view/node-graph/NodeGraphPaletteView.js +352 -0
- package/editor/view/node-graph/NodeGraphSearchMenuView.d.ts +76 -0
- package/editor/view/node-graph/NodeGraphSearchMenuView.d.ts.map +1 -0
- package/editor/view/node-graph/NodeGraphSearchMenuView.js +247 -0
- package/editor/view/node-graph/NodeGraphView.d.ts +147 -5
- package/editor/view/node-graph/NodeGraphView.d.ts.map +1 -1
- package/editor/view/node-graph/NodeGraphView.js +809 -76
- package/editor/view/node-graph/NodeIconView.d.ts +33 -0
- package/editor/view/node-graph/NodeIconView.d.ts.map +1 -0
- package/editor/view/node-graph/NodeIconView.js +54 -0
- package/editor/view/node-graph/NodeView.d.ts +71 -1
- package/editor/view/node-graph/NodeView.d.ts.map +1 -1
- package/editor/view/node-graph/NodeView.js +318 -17
- package/editor/view/node-graph/PortView.d.ts +41 -1
- package/editor/view/node-graph/PortView.d.ts.map +1 -1
- package/editor/view/node-graph/PortView.js +121 -69
- package/editor/view/node-graph/actions/ConnectionDeleteAction.d.ts +16 -3
- package/editor/view/node-graph/actions/ConnectionDeleteAction.d.ts.map +1 -1
- package/editor/view/node-graph/actions/ConnectionDeleteAction.js +29 -3
- package/editor/view/node-graph/actions/NodeCreateAction.d.ts +65 -0
- package/editor/view/node-graph/actions/NodeCreateAction.d.ts.map +1 -0
- package/editor/view/node-graph/actions/NodeCreateAction.js +108 -0
- package/editor/view/node-graph/actions/NodeDeleteAction.d.ts +6 -0
- package/editor/view/node-graph/actions/NodeDeleteAction.d.ts.map +1 -1
- package/editor/view/node-graph/actions/NodeDeleteAction.js +24 -2
- package/editor/view/node-graph/connection_wire_geometry.d.ts +34 -0
- package/editor/view/node-graph/connection_wire_geometry.d.ts.map +1 -1
- package/editor/view/node-graph/connection_wire_geometry.js +79 -3
- package/editor/view/node-graph/node-graph.css +678 -0
- package/editor/view/particles/effect/ParticleCodeEditorView.d.ts +37 -0
- package/editor/view/particles/effect/ParticleCodeEditorView.d.ts.map +1 -0
- package/editor/view/particles/effect/ParticleCodeEditorView.js +479 -0
- package/editor/view/particles/effect/ParticleEffectEditorView.d.ts +61 -0
- package/editor/view/particles/effect/ParticleEffectEditorView.d.ts.map +1 -0
- package/editor/view/particles/effect/ParticleEffectEditorView.js +223 -0
- package/editor/view/particles/effect/ParticleEmitterInspectorView.d.ts +25 -0
- package/editor/view/particles/effect/ParticleEmitterInspectorView.d.ts.map +1 -0
- package/editor/view/particles/effect/ParticleEmitterInspectorView.js +606 -0
- package/editor/view/particles/effect/ParticleGraphEditorView.d.ts +156 -0
- package/editor/view/particles/effect/ParticleGraphEditorView.d.ts.map +1 -0
- package/editor/view/particles/effect/ParticleGraphEditorView.js +1636 -0
- package/editor/view/particles/effect/ParticleNodeParametersView.d.ts +22 -0
- package/editor/view/particles/effect/ParticleNodeParametersView.d.ts.map +1 -0
- package/editor/view/particles/effect/ParticleNodeParametersView.js +520 -0
- package/editor/view/particles/effect/ParticlePreviewView.d.ts +52 -0
- package/editor/view/particles/effect/ParticlePreviewView.d.ts.map +1 -0
- package/editor/view/particles/effect/ParticlePreviewView.js +533 -0
- package/editor/view/particles/effect/particle-editor.css +556 -0
- package/editor/view/prepareMeshLibrary.d.ts.map +1 -1
- package/editor/view/prepareMeshLibrary.js +8 -4
- package/package.json +1 -1
- package/samples/engine/first-scene/main.js +152 -152
- package/samples/generation/generators/mir_generator_place_bases.js +3 -3
- package/src/core/assert.d.ts +28 -24
- package/src/core/assert.d.ts.map +1 -1
- package/src/core/assert.js +34 -26
- package/src/core/geom/3d/shape/PosedShape3D.d.ts +17 -0
- package/src/core/geom/3d/shape/PosedShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/PosedShape3D.js +34 -2
- package/src/core/graph/format/graphviz/graphviz_escape_html_label.d.ts +17 -0
- package/src/core/graph/format/graphviz/graphviz_escape_html_label.d.ts.map +1 -0
- package/src/core/graph/format/graphviz/graphviz_escape_html_label.js +25 -0
- package/src/core/graph/format/graphviz/graphviz_escape_quoted.d.ts +16 -0
- package/src/core/graph/format/graphviz/graphviz_escape_quoted.d.ts.map +1 -0
- package/src/core/graph/format/graphviz/graphviz_escape_quoted.js +24 -0
- package/src/core/model/node-graph/NodeGraph.d.ts +12 -0
- package/src/core/model/node-graph/NodeGraph.d.ts.map +1 -1
- package/src/core/model/node-graph/NodeGraph.js +21 -6
- package/src/core/model/node-graph/node/NodeDescription.d.ts +36 -0
- package/src/core/model/node-graph/node/NodeDescription.d.ts.map +1 -1
- package/src/core/model/node-graph/node/NodeDescription.js +41 -0
- package/src/core/model/node-graph/visual/ConnectionVisualData.d.ts +119 -0
- package/src/core/model/node-graph/visual/ConnectionVisualData.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/ConnectionVisualData.js +317 -0
- package/src/core/model/node-graph/visual/NodeDescriptionVisualRegistry.d.ts +4 -0
- package/src/core/model/node-graph/visual/NodeDescriptionVisualRegistry.d.ts.map +1 -1
- package/src/core/model/node-graph/visual/NodeDescriptionVisualRegistry.js +125 -22
- package/src/core/model/node-graph/visual/NodeGraphVisualData.d.ts +91 -2
- package/src/core/model/node-graph/visual/NodeGraphVisualData.d.ts.map +1 -1
- package/src/core/model/node-graph/visual/NodeGraphVisualData.js +164 -113
- package/src/core/model/node-graph/visual/layout/LayoutBoxGraph.d.ts +162 -0
- package/src/core/model/node-graph/visual/layout/LayoutBoxGraph.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/LayoutBoxGraph.js +288 -0
- package/src/core/model/node-graph/visual/layout/LayoutProblem.d.ts +109 -0
- package/src/core/model/node-graph/visual/layout/LayoutProblem.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/LayoutProblem.js +141 -0
- package/src/core/model/node-graph/visual/layout/NodeGraphLayoutOptions.d.ts +149 -0
- package/src/core/model/node-graph/visual/layout/NodeGraphLayoutOptions.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/NodeGraphLayoutOptions.js +175 -0
- package/src/core/model/node-graph/visual/layout/RouteGrid.d.ts +137 -0
- package/src/core/model/node-graph/visual/layout/RouteGrid.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/RouteGrid.js +242 -0
- package/src/core/model/node-graph/visual/layout/RouteSearch.d.ts +114 -0
- package/src/core/model/node-graph/visual/layout/RouteSearch.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/RouteSearch.js +300 -0
- package/src/core/model/node-graph/visual/layout/RouteSet.d.ts +86 -0
- package/src/core/model/node-graph/visual/layout/RouteSet.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/RouteSet.js +168 -0
- package/src/core/model/node-graph/visual/layout/layout_assign_coordinates.d.ts +48 -0
- package/src/core/model/node-graph/visual/layout/layout_assign_coordinates.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/layout_assign_coordinates.js +555 -0
- package/src/core/model/node-graph/visual/layout/layout_assign_layers.d.ts +34 -0
- package/src/core/model/node-graph/visual/layout/layout_assign_layers.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/layout_assign_layers.js +202 -0
- package/src/core/model/node-graph/visual/layout/layout_break_cycles.d.ts +34 -0
- package/src/core/model/node-graph/visual/layout/layout_break_cycles.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/layout_break_cycles.js +254 -0
- package/src/core/model/node-graph/visual/layout/layout_build_problem.d.ts +29 -0
- package/src/core/model/node-graph/visual/layout/layout_build_problem.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/layout_build_problem.js +184 -0
- package/src/core/model/node-graph/visual/layout/layout_insert_lanes.d.ts +29 -0
- package/src/core/model/node-graph/visual/layout/layout_insert_lanes.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/layout_insert_lanes.js +95 -0
- package/src/core/model/node-graph/visual/layout/layout_node_graph.d.ts +56 -0
- package/src/core/model/node-graph/visual/layout/layout_node_graph.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/layout_node_graph.js +131 -0
- package/src/core/model/node-graph/visual/layout/layout_order_layers.d.ts +36 -0
- package/src/core/model/node-graph/visual/layout/layout_order_layers.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/layout_order_layers.js +415 -0
- package/src/core/model/node-graph/visual/layout/layout_orient_links.d.ts +21 -0
- package/src/core/model/node-graph/visual/layout/layout_orient_links.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/layout_orient_links.js +49 -0
- package/src/core/model/node-graph/visual/layout/route_connections.d.ts +41 -0
- package/src/core/model/node-graph/visual/layout/route_connections.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/route_connections.js +309 -0
- package/src/core/model/node-graph/visual/layout/route_grid_build.d.ts +33 -0
- package/src/core/model/node-graph/visual/layout/route_grid_build.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/route_grid_build.js +237 -0
- package/src/core/model/node-graph/visual/layout/route_nudge.d.ts +25 -0
- package/src/core/model/node-graph/visual/layout/route_nudge.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/route_nudge.js +220 -0
- package/src/core/model/node-graph/visual/layout/route_to_spline.d.ts +29 -0
- package/src/core/model/node-graph/visual/layout/route_to_spline.d.ts.map +1 -0
- package/src/core/model/node-graph/visual/layout/route_to_spline.js +120 -0
- package/src/engine/EngineHarness.d.ts.map +1 -1
- package/src/engine/EngineHarness.js +593 -586
- package/src/engine/EntityCreator.js +116 -116
- package/src/engine/achievements/AchievementManager.js +437 -437
- package/src/engine/animation/AnimatedActions.js +111 -111
- package/src/engine/animation/AnimationUtils.d.ts.map +1 -1
- package/src/engine/animation/AnimationUtils.js +246 -234
- package/src/engine/animation/Animations.d.ts +1 -0
- package/src/engine/animation/Animations.d.ts.map +1 -1
- package/src/engine/animation/Animations.js +13 -5
- package/src/engine/animation/clip/bind_property_writer.d.ts.map +1 -1
- package/src/engine/animation/clip/bind_property_writer.js +12 -5
- package/src/engine/animation/curve/binding/BoundTransform64Writer.d.ts +29 -0
- package/src/engine/animation/curve/binding/BoundTransform64Writer.d.ts.map +1 -0
- package/src/engine/animation/curve/binding/BoundTransform64Writer.js +80 -0
- package/src/engine/animation/removeEntityWithMeshParticlesEffect.js +4 -4
- package/src/engine/asset/loaders/gltf_test_fixtures.d.ts.map +1 -1
- package/src/engine/asset/loaders/gltf_test_fixtures.js +5 -4
- package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.d.ts +12 -12
- package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.d.ts.map +1 -1
- package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.js +77 -44
- package/src/engine/control/first-person/abilities/LedgeGrab.js +1 -1
- package/src/engine/control/first-person/abilities/Mantle.js +1 -1
- package/src/engine/control/first-person/abilities/Slide.js +1 -1
- package/src/engine/control/first-person/collision/KinematicMover.d.ts +5 -9
- package/src/engine/control/first-person/collision/KinematicMover.d.ts.map +1 -1
- package/src/engine/control/first-person/collision/KinematicMover.js +59 -29
- package/src/engine/control/first-person/sensors/FirstPersonSensorsSystem.d.ts +2 -2
- package/src/engine/control/first-person/sensors/FirstPersonSensorsSystem.d.ts.map +1 -1
- package/src/engine/control/first-person/sensors/FirstPersonSensorsSystem.js +7 -7
- package/src/engine/ecs/EventType.d.ts +1 -0
- package/src/engine/ecs/EventType.js +35 -10
- package/src/engine/ecs/dynamic_actions/actions/definition/SendRequestActionDescription.d.ts.map +1 -1
- package/src/engine/ecs/dynamic_actions/actions/definition/SendRequestActionDescription.js +12 -4
- package/src/engine/ecs/fow/FogOfWarRevealerSystem.d.ts +4 -4
- package/src/engine/ecs/fow/FogOfWarRevealerSystem.d.ts.map +1 -1
- package/src/engine/ecs/fow/FogOfWarRevealerSystem.js +10 -11
- package/src/engine/ecs/grid/pick.js +1 -1
- package/src/engine/ecs/gui/hud/HeadsUpDisplaySystem.d.ts +1 -1
- package/src/engine/ecs/gui/hud/HeadsUpDisplaySystem.js +13 -13
- package/src/engine/ecs/gui/hud/testHudEdgeStick.js +3 -3
- package/src/engine/ecs/ik/InverseKinematicsSystem.d.ts +10 -10
- package/src/engine/ecs/ik/InverseKinematicsSystem.d.ts.map +1 -1
- package/src/engine/ecs/ik/InverseKinematicsSystem.js +8 -8
- package/src/engine/ecs/ik/TwoBoneInverseKinematicsSolver.d.ts.map +1 -1
- package/src/engine/ecs/ik/TwoBoneInverseKinematicsSolver.js +120 -97
- package/src/engine/ecs/ik/ik_bone_chain.d.ts +16 -5
- package/src/engine/ecs/ik/ik_bone_chain.d.ts.map +1 -1
- package/src/engine/ecs/ik/ik_bone_chain.js +16 -4
- package/src/engine/ecs/ik/ik_probe_terrain_contact.d.ts +7 -3
- package/src/engine/ecs/ik/ik_probe_terrain_contact.d.ts.map +1 -1
- package/src/engine/ecs/ik/ik_probe_terrain_contact.js +20 -16
- package/src/engine/ecs/ik/ik_write_local_rotation.d.ts +18 -0
- package/src/engine/ecs/ik/ik_write_local_rotation.d.ts.map +1 -0
- package/src/engine/ecs/ik/ik_write_local_rotation.js +30 -0
- package/src/engine/ecs/parent/EntityNode.d.ts +24 -6
- package/src/engine/ecs/parent/EntityNode.d.ts.map +1 -1
- package/src/engine/ecs/parent/EntityNode.js +54 -42
- package/src/engine/ecs/parent/EntityNodeFlags.d.ts +0 -1
- package/src/engine/ecs/parent/EntityNodeFlags.js +7 -8
- package/src/engine/ecs/speaker/VoiceSystem.d.ts +2 -2
- package/src/engine/ecs/speaker/VoiceSystem.d.ts.map +1 -1
- package/src/engine/ecs/speaker/VoiceSystem.js +4 -4
- package/src/engine/ecs/storage/populateEngineSerializationRegistry.d.ts.map +1 -1
- package/src/engine/ecs/storage/populateEngineSerializationRegistry.js +2 -0
- package/src/engine/ecs/terrain/ecs/Terrain.d.ts +5 -2
- package/src/engine/ecs/terrain/ecs/Terrain.d.ts.map +1 -1
- package/src/engine/ecs/terrain/ecs/Terrain.js +7 -4
- package/src/engine/ecs/terrain/ecs/TerrainSystem.js +3 -3
- package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.d.ts +7 -7
- package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.d.ts.map +1 -1
- package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.js +84 -36
- package/src/engine/ecs/transform/TRANSFORM64_MIGRATION_PLAN_2026_09_04.md +513 -0
- package/src/engine/ecs/transform/Transform64.d.ts +48 -11
- package/src/engine/ecs/transform/Transform64.d.ts.map +1 -1
- package/src/engine/ecs/transform/Transform64.js +54 -15
- package/src/engine/ecs/transform/Transform64SerializationAdapter.d.ts +37 -0
- package/src/engine/ecs/transform/Transform64SerializationAdapter.d.ts.map +1 -0
- package/src/engine/ecs/transform/Transform64SerializationAdapter.js +75 -0
- package/src/engine/ecs/transform/__probe.d.ts +4 -0
- package/src/engine/ecs/transform/__probe.d.ts.map +1 -0
- package/src/engine/ecs/transform/t64_allocation_probe.d.ts +31 -0
- package/src/engine/ecs/transform/t64_allocation_probe.d.ts.map +1 -0
- package/src/engine/ecs/transform/t64_allocation_probe.js +78 -0
- package/src/engine/ecs/transform/t64_announce_change.d.ts +33 -0
- package/src/engine/ecs/transform/t64_announce_change.d.ts.map +1 -0
- package/src/engine/ecs/transform/t64_announce_change.js +39 -0
- package/src/engine/ecs/transform/t64_equals_components.d.ts +30 -0
- package/src/engine/ecs/transform/t64_equals_components.d.ts.map +1 -0
- package/src/engine/ecs/transform/t64_equals_components.js +59 -0
- package/src/engine/ecs/transform/t64_read_rotation.d.ts +13 -0
- package/src/engine/ecs/transform/t64_read_rotation.d.ts.map +1 -0
- package/src/engine/ecs/transform/t64_read_rotation.js +16 -0
- package/src/engine/ecs/transform/t64_read_translation.d.ts +14 -0
- package/src/engine/ecs/transform/t64_read_translation.d.ts.map +1 -0
- package/src/engine/ecs/transform/t64_read_translation.js +17 -0
- package/src/engine/ecs/transform-attachment/TransformAttachment.d.ts +5 -5
- package/src/engine/ecs/transform-attachment/TransformAttachment.d.ts.map +1 -1
- package/src/engine/ecs/transform-attachment/TransformAttachment.js +4 -4
- package/src/engine/ecs/transform-attachment/TransformAttachmentSystem.d.ts +10 -10
- package/src/engine/ecs/transform-attachment/TransformAttachmentSystem.d.ts.map +1 -1
- package/src/engine/ecs/transform-attachment/TransformAttachmentSystem.js +71 -20
- package/src/engine/graphics/debug/createDebugLabel.js +3 -3
- package/src/engine/graphics/ecs/camera/pp/PerfectPanner.d.ts.map +1 -1
- package/src/engine/graphics/ecs/camera/pp/PerfectPanner.js +5 -4
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.d.ts.map +1 -1
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.js +8 -3
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.d.ts +6 -6
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.js +25 -13
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraLanderSystem.js +1 -1
- package/src/engine/graphics/ecs/mesh/setMesh.js +2 -2
- package/src/engine/graphics/ecs/path/entity/EntityPath.d.ts.map +1 -1
- package/src/engine/graphics/ecs/path/entity/EntityPath.js +21 -7
- package/src/engine/graphics/ecs/path/entity/EntityPathMarkerDefinition.d.ts +4 -4
- package/src/engine/graphics/ecs/path/entity/EntityPathMarkerDefinition.d.ts.map +1 -1
- package/src/engine/graphics/ecs/path/entity/EntityPathMarkerDefinition.js +4 -4
- package/src/engine/graphics/ecs/sprite/SpriteSystemPE.d.ts +2 -2
- package/src/engine/graphics/ecs/sprite/SpriteSystemPE.d.ts.map +1 -1
- package/src/engine/graphics/ecs/sprite/SpriteSystemPE.js +145 -135
- package/src/engine/graphics/geometry/MikkT/Build4RuleGroups.js +2 -2
- package/src/engine/graphics/geometry/MikkT/DegenEpilogue.js +1 -1
- package/src/engine/graphics/geometry/MikkT/DegenPrologue.js +1 -1
- package/src/engine/graphics/geometry/MikkT/EvalTspace.js +1 -1
- package/src/engine/graphics/geometry/MikkT/GenerateTSpaces.js +3 -3
- package/src/engine/graphics/render/frame_graph/CORRECTNESS_FIXES_2026_09_04.md +659 -0
- package/src/engine/graphics/render/frame_graph/FRAME_GRAPH_RECOMMENDATIONS.md +21 -5
- package/src/engine/graphics/render/frame_graph/FrameGraph.d.ts +45 -0
- package/src/engine/graphics/render/frame_graph/FrameGraph.d.ts.map +1 -1
- package/src/engine/graphics/render/frame_graph/FrameGraph.js +282 -60
- package/src/engine/graphics/render/frame_graph/FramePassBuilder.d.ts.map +1 -1
- package/src/engine/graphics/render/frame_graph/FramePassBuilder.js +20 -9
- package/src/engine/graphics/render/frame_graph/FramePassNode.d.ts +12 -0
- package/src/engine/graphics/render/frame_graph/FramePassNode.d.ts.map +1 -1
- package/src/engine/graphics/render/frame_graph/FramePassNode.js +13 -0
- package/src/engine/graphics/render/frame_graph/FramePassResources.d.ts.map +1 -1
- package/src/engine/graphics/render/frame_graph/FramePassResources.js +5 -0
- package/src/engine/graphics/render/frame_graph/ResourceEntry.d.ts +19 -1
- package/src/engine/graphics/render/frame_graph/ResourceEntry.d.ts.map +1 -1
- package/src/engine/graphics/render/frame_graph/ResourceEntry.js +23 -1
- package/src/engine/graphics/render/frame_graph/backend/void/VoidRenderContext.d.ts +15 -1
- package/src/engine/graphics/render/frame_graph/backend/void/VoidRenderContext.d.ts.map +1 -1
- package/src/engine/graphics/render/frame_graph/backend/void/VoidRenderContext.js +33 -16
- package/src/engine/graphics/render/frame_graph/resource/RenderResourceManager.d.ts.map +1 -1
- package/src/engine/graphics/render/frame_graph/resource/RenderResourceManager.js +19 -1
- package/src/engine/graphics/sh3/path_tracer/populate_path_traced_scene_from_ecd.js +6 -6
- package/src/engine/graphics3/CameraSystem.d.ts +6 -6
- package/src/engine/graphics3/CameraSystem.d.ts.map +1 -1
- package/src/engine/graphics3/CameraSystem.js +170 -170
- package/src/engine/graphics3/DecalSystem.d.ts +6 -6
- package/src/engine/graphics3/DecalSystem.d.ts.map +1 -1
- package/src/engine/graphics3/DecalSystem.js +449 -449
- package/src/engine/graphics3/LightSystem.d.ts +6 -6
- package/src/engine/graphics3/LightSystem.d.ts.map +1 -1
- package/src/engine/graphics3/LightSystem.js +234 -221
- package/src/engine/graphics3/MeshSystem.d.ts +6 -6
- package/src/engine/graphics3/MeshSystem.d.ts.map +1 -1
- package/src/engine/graphics3/MeshSystem.js +53 -22
- package/src/engine/graphics3/ParticipatingMediaSystem.d.ts +20 -15
- package/src/engine/graphics3/ParticipatingMediaSystem.d.ts.map +1 -1
- package/src/engine/graphics3/ParticipatingMediaSystem.js +198 -184
- package/src/engine/graphics3/ParticleEmitterSystem.d.ts +6 -6
- package/src/engine/graphics3/ParticleEmitterSystem.d.ts.map +1 -1
- package/src/engine/graphics3/ParticleEmitterSystem.js +310 -289
- package/src/engine/graphics3/PickingSystem.d.ts +6 -6
- package/src/engine/graphics3/PickingSystem.d.ts.map +1 -1
- package/src/engine/graphics3/PickingSystem.js +273 -273
- package/src/engine/graphics3/ShadedGeometrySystem.d.ts +6 -6
- package/src/engine/graphics3/ShadedGeometrySystem.d.ts.map +1 -1
- package/src/engine/graphics3/ShadedGeometrySystem.js +180 -169
- package/src/engine/graphics3/TerrainSystem.d.ts.map +1 -1
- package/src/engine/graphics3/TerrainSystem.js +565 -566
- package/src/engine/graphics3/Trail3DSystem.d.ts +6 -6
- package/src/engine/graphics3/Trail3DSystem.d.ts.map +1 -1
- package/src/engine/graphics3/Trail3DSystem.js +221 -221
- package/src/engine/graphics3/camera_sync_from_transform.d.ts +2 -2
- package/src/engine/graphics3/camera_sync_from_transform.d.ts.map +1 -1
- package/src/engine/graphics3/camera_sync_from_transform.js +2 -1
- package/src/engine/graphics3/debug/gizmo_view_from_camera.js +4 -4
- package/src/engine/graphics3/particles/GPUParticularRenderer.d.ts +6 -0
- package/src/engine/graphics3/particles/GPUParticularRenderer.d.ts.map +1 -1
- package/src/engine/graphics3/particles/GPUParticularRenderer.js +82 -53
- package/src/engine/graphics3/particles/particle_gpu_records.d.ts +12 -8
- package/src/engine/graphics3/particles/particle_gpu_records.d.ts.map +1 -1
- package/src/engine/graphics3/particles/particle_gpu_records.js +53 -45
- package/src/engine/graphics3/preview/make_model_preview_scene.js +1 -1
- package/src/engine/graphics3/shade_camera_projection_ray.js +4 -4
- package/src/engine/graphics3/shade_node_to_entity_composition.d.ts.map +1 -1
- package/src/engine/graphics3/shade_node_to_entity_composition.js +88 -84
- package/src/engine/grid/grid2transform/GridPosition2TransformSystem.d.ts +7 -7
- package/src/engine/grid/grid2transform/GridPosition2TransformSystem.d.ts.map +1 -1
- package/src/engine/grid/grid2transform/GridPosition2TransformSystem.js +8 -8
- package/src/engine/grid/transform2grid/Transform2GridPositionSystem.d.ts +9 -8
- package/src/engine/grid/transform2grid/Transform2GridPositionSystem.d.ts.map +1 -1
- package/src/engine/grid/transform2grid/Transform2GridPositionSystem.js +29 -8
- package/src/engine/input/ecs/controllers/KeyboardCameraController.js +2 -2
- package/src/engine/intelligence/behavior/ecs/OrbitingBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/ecs/OrbitingBehavior.js +35 -21
- package/src/engine/intelligence/behavior/util/RotationBehavior.js +5 -5
- package/src/engine/intelligence/mcts/StateNode.js +1 -1
- package/src/engine/interpolation/TransformPoseSerializationAdapter.d.ts +7 -7
- package/src/engine/interpolation/TransformPoseSerializationAdapter.d.ts.map +1 -1
- package/src/engine/interpolation/TransformPoseSerializationAdapter.js +14 -15
- package/src/engine/interpolation/pose_interpoland.d.ts +2 -2
- package/src/engine/interpolation/pose_interpoland.js +4 -4
- package/src/engine/navigation/ecs/path_following/PathFollowingSystem.d.ts +4 -4
- package/src/engine/navigation/ecs/path_following/PathFollowingSystem.d.ts.map +1 -1
- package/src/engine/navigation/ecs/path_following/PathFollowingSystem.js +39 -14
- package/src/engine/network/adapters/TransformReplicationAdapter.d.ts +7 -7
- package/src/engine/network/adapters/TransformReplicationAdapter.d.ts.map +1 -1
- package/src/engine/network/adapters/TransformReplicationAdapter.js +19 -20
- package/src/engine/network/replication/Replicator.d.ts +5 -3
- package/src/engine/network/replication/Replicator.d.ts.map +1 -1
- package/src/engine/network/replication/Replicator.js +65 -16
- package/src/engine/physics/broadphase/compute_fat_world_aabb.js +3 -3
- package/src/engine/physics/ccd/linear_sweep.d.ts.map +1 -1
- package/src/engine/physics/ccd/linear_sweep.js +9 -3
- package/src/engine/physics/constraint/solve_constraints.js +10 -10
- package/src/engine/physics/ecs/ColliderObserverSystem.d.ts +8 -8
- package/src/engine/physics/ecs/ColliderObserverSystem.d.ts.map +1 -1
- package/src/engine/physics/ecs/ColliderObserverSystem.js +6 -6
- package/src/engine/physics/ecs/PhysicsSystem.d.ts +22 -32
- package/src/engine/physics/ecs/PhysicsSystem.d.ts.map +1 -1
- package/src/engine/physics/ecs/PhysicsSystem.js +2337 -2310
- package/src/engine/physics/ecs/find_non_finite_physics_state.js +6 -6
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +7 -7
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts.map +1 -1
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.js +16 -8
- package/src/engine/physics/fluid/ecs/FluidSystem.d.ts +4 -4
- package/src/engine/physics/fluid/ecs/FluidSystem.d.ts.map +1 -1
- package/src/engine/physics/fluid/ecs/FluidSystem.js +6 -6
- package/src/engine/physics/fluid/ecs/WorkerFluidSystem.d.ts +2 -2
- package/src/engine/physics/fluid/ecs/WorkerFluidSystem.d.ts.map +1 -1
- package/src/engine/physics/fluid/ecs/WorkerFluidSystem.js +4 -4
- package/src/engine/physics/fluid/ecs/fluid_reanchor_field.js +7 -7
- package/src/engine/physics/fluid/effector/ImpulseFluidEffector.js +4 -4
- package/src/engine/physics/fluid/effector/WakeFluidEffector.js +7 -7
- package/src/engine/physics/inertia/world_inverse_inertia.js +1 -1
- package/src/engine/physics/integration/integrate_position.d.ts.map +1 -1
- package/src/engine/physics/integration/integrate_position.js +13 -12
- package/src/engine/physics/inverse_kinematics/fabrik/fabrik_solve.d.ts.map +1 -1
- package/src/engine/physics/inverse_kinematics/fabrik/fabrik_solve.js +23 -5
- package/src/engine/physics/narrowphase/compute_penetration.js +18 -14
- package/src/engine/physics/narrowphase/convex_convex_manifold.js +2 -2
- package/src/engine/physics/narrowphase/mesh_mesh_tet_manifold.js +9 -9
- package/src/engine/physics/narrowphase/narrowphase_step.d.ts.map +1 -1
- package/src/engine/physics/narrowphase/narrowphase_step.js +95 -68
- package/src/engine/physics/narrowphase/refine_ray_concave.js +1 -1
- package/src/engine/physics/narrowphase/refine_ray_hit.js +3 -3
- package/src/engine/physics/queries/overlap_shape.d.ts.map +1 -1
- package/src/engine/physics/queries/overlap_shape.js +19 -7
- package/src/engine/physics/queries/raycast.js +3 -3
- package/src/engine/physics/queries/shape_cast.d.ts.map +1 -1
- package/src/engine/physics/queries/shape_cast.js +628 -620
- package/src/engine/physics/solver/solve_contacts.js +10 -10
- package/src/engine/physics/vehicle/RaycastVehicle.d.ts +6 -5
- package/src/engine/physics/vehicle/RaycastVehicle.d.ts.map +1 -1
- package/src/engine/physics/vehicle/RaycastVehicle.js +10 -5
- package/src/engine/sound/ecs/SoundListenerSystem.d.ts +16 -4
- package/src/engine/sound/ecs/SoundListenerSystem.d.ts.map +1 -1
- package/src/engine/sound/ecs/SoundListenerSystem.js +70 -11
- package/src/engine/sound/ecs/audio/AudioEmitterSystem.d.ts +7 -7
- package/src/engine/sound/ecs/audio/AudioEmitterSystem.d.ts.map +1 -1
- package/src/engine/sound/ecs/audio/AudioEmitterSystem.js +343 -338
- package/src/engine/sound/ecs/audio/LiveEmitterSet.d.ts +2 -2
- package/src/engine/sound/ecs/audio/LiveEmitterSet.d.ts.map +1 -1
- package/src/engine/sound/ecs/audio/LiveEmitterSet.js +356 -345
- package/src/engine/sound/ecs/audio/SpatialAudioIndex.d.ts +23 -2
- package/src/engine/sound/ecs/audio/SpatialAudioIndex.d.ts.map +1 -1
- package/src/engine/sound/ecs/audio/SpatialAudioIndex.js +174 -140
- package/src/engine/sound/ecs/trigger/AudioEventTriggerSystem.d.ts +6 -6
- package/src/engine/sound/ecs/trigger/AudioEventTriggerSystem.d.ts.map +1 -1
- package/src/engine/sound/ecs/trigger/AudioEventTriggerSystem.js +185 -184
- package/src/engine/sound/material/detector/terrain/TerrainSoundMaterialSurfaceDetector.js +1 -1
- package/src/engine/sound/simulation/core/AcousticRegionIndex.d.ts +2 -1
- package/src/engine/sound/simulation/core/AcousticRegionIndex.d.ts.map +1 -1
- package/src/engine/sound/simulation/core/AcousticRegionIndex.js +4 -3
- package/src/engine/sound/simulation/core/AcousticVolumeRegion.d.ts +3 -2
- package/src/engine/sound/simulation/core/AcousticVolumeRegion.d.ts.map +1 -1
- package/src/engine/sound/simulation/core/AcousticVolumeRegion.js +6 -4
- package/src/engine/sound/simulation/ecs/AcousticSimulationSystem.d.ts +10 -6
- package/src/engine/sound/simulation/ecs/AcousticSimulationSystem.d.ts.map +1 -1
- package/src/engine/sound/simulation/ecs/AcousticSimulationSystem.js +32 -7
- package/src/engine/sound/simulation/ecs/AcousticVolumeSystem.d.ts +7 -7
- package/src/engine/sound/simulation/ecs/AcousticVolumeSystem.d.ts.map +1 -1
- package/src/engine/sound/simulation/ecs/AcousticVolumeSystem.js +6 -6
- package/src/engine/sound/sopra/runtime/EventInstance.d.ts.map +1 -1
- package/src/engine/sound/sopra/runtime/EventInstance.js +8 -2
- package/src/format/scene/gltf/gltf_component_type.d.ts.map +1 -1
- package/src/format/scene/gltf/gltf_component_type.js +3 -1
- package/src/format/texture/ktx2/ktx2_read.d.ts.map +1 -1
- package/src/format/texture/ktx2/ktx2_read.js +2 -1
- package/src/generation/grid/generation/GridTaskDensityMarkerDistribution.d.ts.map +1 -1
- package/src/generation/grid/generation/GridTaskDensityMarkerDistribution.js +8 -1
- package/src/generation/markers/GridCellActionPlaceMarker.d.ts +4 -4
- package/src/generation/markers/GridCellActionPlaceMarker.d.ts.map +1 -1
- package/src/generation/markers/GridCellActionPlaceMarker.js +16 -6
- package/src/generation/markers/MarkerNode.d.ts +3 -3
- package/src/generation/markers/MarkerNode.d.ts.map +1 -1
- package/src/generation/markers/MarkerNode.js +3 -3
- package/src/generation/markers/actions/MarkerNodeActionEntityPlacement.d.ts +4 -4
- package/src/generation/markers/actions/MarkerNodeActionEntityPlacement.d.ts.map +1 -1
- package/src/generation/markers/actions/MarkerNodeActionEntityPlacement.js +7 -7
- package/src/generation/markers/actions/MarkerNodeActionImaginary.d.ts.map +1 -1
- package/src/generation/markers/actions/MarkerNodeActionImaginary.js +20 -2
- package/src/generation/markers/actions/placement/MarkerNodeEntityProcessorClingToTerrain.js +1 -1
- package/src/generation/markers/actions/placement/MarkerNodeEntityProcessorRandomRotation.d.ts.map +1 -1
- package/src/generation/markers/actions/placement/MarkerNodeEntityProcessorRandomRotation.js +13 -3
- package/src/generation/markers/transform/MarkerNodeTransformRotateRandom.d.ts.map +1 -1
- package/src/generation/markers/transform/MarkerNodeTransformRotateRandom.js +11 -1
- package/src/generation/markers/transform/MarkerNodeTransformerAddPositionYFromFilter.d.ts.map +1 -1
- package/src/generation/markers/transform/MarkerNodeTransformerAddPositionYFromFilter.js +8 -4
- package/src/generation/markers/transform/MarkerNodeTransformerOffsetPosition.d.ts.map +1 -1
- package/src/generation/markers/transform/MarkerNodeTransformerOffsetPosition.js +13 -5
- package/src/generation/markers/transform/MarkerNodeTransformerYRotateByFilter.d.ts.map +1 -1
- package/src/generation/markers/transform/MarkerNodeTransformerYRotateByFilter.js +8 -2
- package/src/generation/markers/transform/MarkerNodeTransformerYRotateByFilterGradient.d.ts.map +1 -1
- package/src/generation/markers/transform/MarkerNodeTransformerYRotateByFilterGradient.js +16 -2
- package/src/shade/device/graph/BufferResourceDescriptor.d.ts.map +1 -1
- package/src/shade/device/graph/BufferResourceDescriptor.js +193 -184
- package/src/shade/device/graph/TextureResourceDescriptor.d.ts.map +1 -1
- package/src/shade/device/graph/TextureResourceDescriptor.js +12 -0
- package/src/shade/device/mock/SoftwareGPUDevice.d.ts.map +1 -1
- package/src/shade/device/mock/SoftwareGPUDevice.js +8 -0
- package/src/shade/playground/avboit/main.js +3 -3
- package/src/shade/playground/basis_textures/main.js +1 -1
- package/src/shade/playground/ground_seam/main.js +1 -1
- package/src/shade/playground/particle_editor/README.md +175 -0
- package/src/shade/playground/particle_editor/index.html +76 -0
- package/src/shade/playground/particle_editor/main.d.ts +2 -0
- package/src/shade/playground/particle_editor/main.d.ts.map +1 -0
- package/src/shade/playground/particle_editor/main.js +139 -0
- package/src/shade/playground/particle_system/README.md +92 -62
- package/src/shade/playground/particle_system/index.html +67 -21
- package/src/shade/playground/particle_system/main.js +247 -102
- package/src/shade/{renderer/particles → playground/particle_system}/particle_prototype.d.ts +21 -18
- package/src/shade/playground/particle_system/particle_prototype.d.ts.map +1 -0
- package/src/shade/{renderer/particles → playground/particle_system}/particle_prototype.js +197 -181
- package/src/shade/playground/particle_system/particle_scene.d.ts +136 -20
- package/src/shade/playground/particle_system/particle_scene.d.ts.map +1 -1
- package/src/shade/playground/particle_system/particle_scene.js +487 -670
- package/src/shade/playground/skinned_blas_refit/sweep_views.js +2 -2
- package/src/shade/playground/skinned_blas_refit/verify_instance_bounds.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/verify_instance_bounds.js +2 -1
- package/src/shade/playground/skinned_blas_refit/verify_skinned_blas_refit.d.ts.map +1 -1
- package/src/shade/playground/skinned_blas_refit/verify_skinned_blas_refit.js +2 -1
- package/src/shade/playground/sponza_path_trace/main.js +1 -1
- package/src/shade/playground/volumetrics_froxel/main.js +917 -917
- package/src/shade/playground/volumetrics_froxel/measure.js +559 -559
- package/src/shade/renderer/Renderer.d.ts +28 -0
- package/src/shade/renderer/Renderer.d.ts.map +1 -1
- package/src/shade/renderer/Renderer.js +140 -8
- package/src/shade/renderer/atmosphere/GPUSky.d.ts.map +1 -1
- package/src/shade/renderer/atmosphere/GPUSky.js +4 -2
- package/src/shade/renderer/buffer/graph_read_buffer.d.ts.map +1 -1
- package/src/shade/renderer/buffer/graph_read_buffer.js +8 -1
- package/src/shade/renderer/buffer/table/GPUTypedTable.js +1 -1
- package/src/shade/renderer/buffer/table/GPUTypedTableDescriptor.d.ts +30 -0
- package/src/shade/renderer/buffer/table/GPUTypedTableDescriptor.d.ts.map +1 -1
- package/src/shade/renderer/buffer/table/GPUTypedTableDescriptor.js +84 -0
- package/src/shade/renderer/buffer/table/gpu_database_emulator_image.d.ts +27 -0
- package/src/shade/renderer/buffer/table/gpu_database_emulator_image.d.ts.map +1 -0
- package/src/shade/renderer/buffer/table/gpu_database_words.d.ts +24 -0
- package/src/shade/renderer/buffer/table/gpu_database_words.d.ts.map +1 -0
- package/src/shade/renderer/buffer/table/gpu_database_words.js +92 -0
- package/src/shade/renderer/camera/Camera.d.ts +2 -2
- package/src/shade/renderer/camera/Camera.d.ts.map +1 -1
- package/src/shade/renderer/camera/Camera.js +11 -5
- package/src/shade/renderer/camera/GPUCameraContext.d.ts.map +1 -1
- package/src/shade/renderer/camera/GPUCameraContext.js +2 -1
- package/src/shade/renderer/camera/OrbitalCameraController.d.ts +3 -3
- package/src/shade/renderer/camera/OrbitalCameraController.d.ts.map +1 -1
- package/src/shade/renderer/camera/OrbitalCameraController.js +31 -16
- package/src/shade/renderer/camera/orbital/OrbitalCameraController.d.ts +2 -2
- package/src/shade/renderer/camera/orbital/OrbitalCameraController.d.ts.map +1 -1
- package/src/shade/renderer/camera/orbital/OrbitalCameraController.js +4 -3
- package/src/shade/renderer/camera/orbital/OrbitalCameraRig.d.ts +10 -5
- package/src/shade/renderer/camera/orbital/OrbitalCameraRig.d.ts.map +1 -1
- package/src/shade/renderer/camera/orbital/OrbitalCameraRig.js +8 -4
- package/src/shade/renderer/extension/FrameContext.d.ts.map +1 -1
- package/src/shade/renderer/extension/FrameContext.js +5 -0
- package/src/shade/renderer/extension/FrameRecord.d.ts +16 -0
- package/src/shade/renderer/extension/FrameRecord.d.ts.map +1 -1
- package/src/shade/renderer/extension/FrameRecord.js +31 -0
- package/src/shade/renderer/extension/GBufferTextures.d.ts +11 -0
- package/src/shade/renderer/extension/GBufferTextures.d.ts.map +1 -1
- package/src/shade/renderer/extension/GBufferTextures.js +14 -0
- package/src/shade/renderer/geometry/attribute/gpu_vertex_buffer_layout_from_spec.js +1 -1
- package/src/shade/renderer/geometry/util/geometry_stripify.js +6 -6
- package/src/shade/renderer/geometry/virtual/format/prototypeVGEOFormatViewer.js +8 -8
- package/src/shade/renderer/global_illumination/lpv/lpv_visualise_probes.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/lpv/lpv_visualise_probes.js +14 -5
- package/src/shade/renderer/global_illumination/probe/octahedral/GPUProbeAtlas.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe/octahedral/GPUProbeAtlas.js +17 -9
- package/src/shade/renderer/global_illumination/probe/octahedral/border/graph_lpv_paint_border_depth.d.ts +2 -1
- package/src/shade/renderer/global_illumination/probe/octahedral/border/graph_lpv_paint_border_depth.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe/octahedral/border/graph_lpv_paint_border_depth.js +4 -1
- package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_lvp_atlas_to_sh.d.ts +2 -1
- package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_lvp_atlas_to_sh.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_lvp_atlas_to_sh.js +11 -1
- package/src/shade/renderer/global_illumination/probe/octahedral/graph_lpv_shade.d.ts +1 -1
- package/src/shade/renderer/global_illumination/probe/octahedral/graph_lpv_shade.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/probe/octahedral/graph_lpv_shade.js +4 -2
- package/src/shade/renderer/global_illumination/sharc/SpatialHashRadianceCache.d.ts.map +1 -1
- package/src/shade/renderer/global_illumination/sharc/SpatialHashRadianceCache.js +5 -1
- package/src/shade/renderer/light/cluster/cull/graph_cull_lights.d.ts.map +1 -1
- package/src/shade/renderer/light/cluster/cull/graph_cull_lights.js +35 -11
- package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
- package/src/shade/renderer/particles/DESIGN.md +271 -112
- package/src/shade/renderer/particles/GPUParticleSystem.d.ts +251 -86
- package/src/shade/renderer/particles/GPUParticleSystem.d.ts.map +1 -1
- package/src/shade/renderer/particles/GPUParticleSystem.js +822 -146
- package/src/shade/renderer/particles/ParticleConstants.d.ts +96 -3
- package/src/shade/renderer/particles/ParticleConstants.d.ts.map +1 -1
- package/src/shade/renderer/particles/ParticleConstants.js +103 -4
- package/src/shade/renderer/particles/coherence/graph_particle_bucket.d.ts +5 -4
- package/src/shade/renderer/particles/coherence/graph_particle_bucket.d.ts.map +1 -1
- package/src/shade/renderer/particles/coherence/graph_particle_bucket.js +11 -15
- package/src/shade/renderer/particles/coherence/shader_particle_bucket.d.ts +2 -2
- package/src/shade/renderer/particles/coherence/shader_particle_bucket.d.ts.map +1 -1
- package/src/shade/renderer/particles/coherence/shader_particle_bucket.js +20 -15
- package/src/shade/renderer/particles/data/PARTICLE_COUNTERS.d.ts +7 -8
- package/src/shade/renderer/particles/data/PARTICLE_COUNTERS.d.ts.map +1 -1
- package/src/shade/renderer/particles/data/PARTICLE_COUNTERS.js +7 -17
- package/src/shade/renderer/particles/data/PARTICLE_DATABASE_SPEC.d.ts +56 -0
- package/src/shade/renderer/particles/data/PARTICLE_DATABASE_SPEC.d.ts.map +1 -0
- package/src/shade/renderer/particles/data/PARTICLE_DATABASE_SPEC.js +68 -0
- package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STATE.d.ts +39 -0
- package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STATE.d.ts.map +1 -0
- package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STATE.js +52 -0
- package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STRUCT.d.ts +83 -0
- package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STRUCT.d.ts.map +1 -0
- package/src/shade/renderer/particles/data/PARTICLE_EMITTER_STRUCT.js +166 -0
- package/src/shade/renderer/particles/data/chunk_particle_emitter.d.ts +21 -5
- package/src/shade/renderer/particles/data/chunk_particle_emitter.d.ts.map +1 -1
- package/src/shade/renderer/particles/data/chunk_particle_emitter.js +44 -85
- package/src/shade/renderer/particles/data/particle_header.d.ts +62 -0
- package/src/shade/renderer/particles/data/particle_header.d.ts.map +1 -0
- package/src/shade/renderer/particles/data/particle_header.js +103 -0
- package/src/shade/renderer/particles/graph/ParticleGroupBuilder.d.ts +179 -0
- package/src/shade/renderer/particles/graph/ParticleGroupBuilder.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/ParticleGroupBuilder.js +303 -0
- package/src/shade/renderer/particles/graph/ParticleNodeDescription.d.ts +120 -1
- package/src/shade/renderer/particles/graph/ParticleNodeDescription.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/ParticleNodeDescription.js +90 -1
- package/src/shade/renderer/particles/graph/ParticleNodeGroup.d.ts +283 -0
- package/src/shade/renderer/particles/graph/ParticleNodeGroup.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/ParticleNodeGroup.js +419 -0
- package/src/shade/renderer/particles/graph/ParticleNodeRegistry.d.ts +44 -2
- package/src/shade/renderer/particles/graph/ParticleNodeRegistry.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/ParticleNodeRegistry.js +476 -40
- package/src/shade/renderer/particles/graph/ParticleValueType.d.ts +188 -0
- package/src/shade/renderer/particles/graph/ParticleValueType.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/ParticleValueType.js +287 -0
- package/src/shade/renderer/particles/graph/compile_particle_graph.d.ts +16 -9
- package/src/shade/renderer/particles/graph/compile_particle_graph.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/compile_particle_graph.js +464 -205
- package/src/shade/renderer/particles/graph/flatten_particle_graph.d.ts +11 -0
- package/src/shade/renderer/particles/graph/flatten_particle_graph.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/flatten_particle_graph.js +213 -0
- package/src/shade/renderer/particles/graph/groups/particle_builtin_groups.d.ts +27 -0
- package/src/shade/renderer/particles/graph/groups/particle_builtin_groups.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/groups/particle_builtin_groups.js +75 -0
- package/src/shade/renderer/particles/graph/groups/particle_groups_geometry.d.ts +83 -0
- package/src/shade/renderer/particles/graph/groups/particle_groups_geometry.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/groups/particle_groups_geometry.js +319 -0
- package/src/shade/renderer/particles/graph/groups/particle_groups_noise.d.ts +22 -0
- package/src/shade/renderer/particles/graph/groups/particle_groups_noise.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/groups/particle_groups_noise.js +517 -0
- package/src/shade/renderer/particles/graph/groups/particle_groups_utility.d.ts +70 -0
- package/src/shade/renderer/particles/graph/groups/particle_groups_utility.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/groups/particle_groups_utility.js +161 -0
- package/src/shade/renderer/particles/graph/groups/simplex_reference.d.ts +8 -0
- package/src/shade/renderer/particles/graph/groups/simplex_reference.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/groups/simplex_reference.js +159 -0
- package/src/shade/renderer/particles/graph/infer_particle_graph_types.d.ts +88 -0
- package/src/shade/renderer/particles/graph/infer_particle_graph_types.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/infer_particle_graph_types.js +234 -0
- package/src/shade/renderer/particles/graph/make_particle_group.d.ts +98 -0
- package/src/shade/renderer/particles/graph/make_particle_group.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/make_particle_group.js +427 -0
- package/src/shade/renderer/particles/graph/particle_graph_authoring.d.ts +11 -4
- package/src/shade/renderer/particles/graph/particle_graph_authoring.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph/particle_graph_authoring.js +121 -108
- package/src/shade/renderer/particles/graph/particle_graph_diagnostic.d.ts +38 -0
- package/src/shade/renderer/particles/graph/particle_graph_diagnostic.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/particle_graph_diagnostic.js +25 -0
- package/src/shade/renderer/particles/graph/particle_graph_distributions.d.ts +29 -0
- package/src/shade/renderer/particles/graph/particle_graph_distributions.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/particle_graph_distributions.js +170 -0
- package/src/shade/renderer/particles/graph/particle_graph_json.d.ts +87 -0
- package/src/shade/renderer/particles/graph/particle_graph_json.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/particle_graph_json.js +196 -0
- package/src/shade/renderer/particles/graph/particle_group_json.d.ts +86 -0
- package/src/shade/renderer/particles/graph/particle_group_json.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/particle_group_json.js +182 -0
- package/src/shade/renderer/particles/graph/particle_group_library.d.ts +33 -0
- package/src/shade/renderer/particles/graph/particle_group_library.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/particle_group_library.js +75 -0
- package/src/shade/renderer/particles/graph/particle_node_library.d.ts +37 -0
- package/src/shade/renderer/particles/graph/particle_node_library.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/particle_node_library.js +64 -0
- package/src/shade/renderer/particles/graph/particle_node_parameters.d.ts +146 -0
- package/src/shade/renderer/particles/graph/particle_node_parameters.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/particle_node_parameters.js +234 -0
- package/src/shade/renderer/particles/graph/particle_node_presentation.d.ts +30 -0
- package/src/shade/renderer/particles/graph/particle_node_presentation.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/particle_node_presentation.js +286 -0
- package/src/shade/renderer/particles/graph/validate_particle_graph.d.ts +66 -0
- package/src/shade/renderer/particles/graph/validate_particle_graph.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph/validate_particle_graph.js +439 -0
- package/src/shade/renderer/particles/graph_particles.d.ts +143 -68
- package/src/shade/renderer/particles/graph_particles.d.ts.map +1 -1
- package/src/shade/renderer/particles/graph_particles.js +424 -71
- package/src/shade/renderer/particles/graph_particles_avboit.d.ts +107 -0
- package/src/shade/renderer/particles/graph_particles_avboit.d.ts.map +1 -0
- package/src/shade/renderer/particles/graph_particles_avboit.js +312 -0
- package/src/shade/renderer/particles/isa/InstructionStream.d.ts +41 -8
- package/src/shade/renderer/particles/isa/InstructionStream.d.ts.map +1 -1
- package/src/shade/renderer/particles/isa/InstructionStream.js +111 -33
- package/src/shade/renderer/particles/isa/ParticleAssembler.d.ts +13 -10
- package/src/shade/renderer/particles/isa/ParticleAssembler.d.ts.map +1 -1
- package/src/shade/renderer/particles/isa/ParticleAssembler.js +30 -26
- package/src/shade/renderer/particles/isa/ParticleProgram.d.ts +27 -15
- package/src/shade/renderer/particles/isa/ParticleProgram.d.ts.map +1 -1
- package/src/shade/renderer/particles/isa/ParticleProgram.js +139 -34
- package/src/shade/renderer/particles/isa/ParticleVMISA.d.ts +117 -9
- package/src/shade/renderer/particles/isa/ParticleVMISA.d.ts.map +1 -1
- package/src/shade/renderer/particles/isa/ParticleVMISA.js +296 -37
- package/src/shade/renderer/particles/isa/particle_assembly.d.ts +149 -0
- package/src/shade/renderer/particles/isa/particle_assembly.d.ts.map +1 -0
- package/src/shade/renderer/particles/isa/particle_assembly.js +999 -0
- package/src/shade/renderer/particles/layout/ParticleLayout.d.ts +25 -3
- package/src/shade/renderer/particles/layout/ParticleLayout.d.ts.map +1 -1
- package/src/shade/renderer/particles/layout/ParticleLayout.js +33 -5
- package/src/shade/renderer/particles/optimizer/optimize_particle_program.d.ts +160 -0
- package/src/shade/renderer/particles/optimizer/optimize_particle_program.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/optimize_particle_program.js +478 -0
- package/src/shade/renderer/particles/optimizer/particle_program_analysis.d.ts +291 -0
- package/src/shade/renderer/particles/optimizer/particle_program_analysis.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/particle_program_analysis.js +647 -0
- package/src/shade/renderer/particles/optimizer/particle_program_equivalence.d.ts +95 -0
- package/src/shade/renderer/particles/optimizer/particle_program_equivalence.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/particle_program_equivalence.js +213 -0
- package/src/shade/renderer/particles/optimizer/particle_program_fuzz.d.ts +16 -0
- package/src/shade/renderer/particles/optimizer/particle_program_fuzz.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/particle_program_fuzz.js +223 -0
- package/src/shade/renderer/particles/optimizer/particle_vm_semantics.d.ts +121 -0
- package/src/shade/renderer/particles/optimizer/particle_vm_semantics.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/particle_vm_semantics.js +206 -0
- package/src/shade/renderer/particles/optimizer/pass_dedup_constants.d.ts +11 -0
- package/src/shade/renderer/particles/optimizer/pass_dedup_constants.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/pass_dedup_constants.js +197 -0
- package/src/shade/renderer/particles/optimizer/pass_eliminate_dead_code.d.ts +4 -0
- package/src/shade/renderer/particles/optimizer/pass_eliminate_dead_code.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/pass_eliminate_dead_code.js +51 -0
- package/src/shade/renderer/particles/optimizer/pass_fold_constants.d.ts +4 -0
- package/src/shade/renderer/particles/optimizer/pass_fold_constants.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/pass_fold_constants.js +561 -0
- package/src/shade/renderer/particles/optimizer/pass_narrow_widths.d.ts +4 -0
- package/src/shade/renderer/particles/optimizer/pass_narrow_widths.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/pass_narrow_widths.js +72 -0
- package/src/shade/renderer/particles/optimizer/pass_pack_registers.d.ts +4 -0
- package/src/shade/renderer/particles/optimizer/pass_pack_registers.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/pass_pack_registers.js +86 -0
- package/src/shade/renderer/particles/optimizer/pass_peephole.d.ts +4 -0
- package/src/shade/renderer/particles/optimizer/pass_peephole.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/pass_peephole.js +271 -0
- package/src/shade/renderer/particles/optimizer/pass_propagate_copies.d.ts +4 -0
- package/src/shade/renderer/particles/optimizer/pass_propagate_copies.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/pass_propagate_copies.js +268 -0
- package/src/shade/renderer/particles/optimizer/pass_share_subexpressions.d.ts +4 -0
- package/src/shade/renderer/particles/optimizer/pass_share_subexpressions.d.ts.map +1 -0
- package/src/shade/renderer/particles/optimizer/pass_share_subexpressions.js +151 -0
- package/src/shade/renderer/particles/particle_test_fixtures.d.ts +131 -0
- package/src/shade/renderer/particles/particle_test_fixtures.d.ts.map +1 -0
- package/src/shade/renderer/particles/particle_test_fixtures.js +203 -0
- package/src/shade/renderer/particles/runtime/Emitter.d.ts +219 -0
- package/src/shade/renderer/particles/runtime/Emitter.d.ts.map +1 -0
- package/src/shade/renderer/particles/runtime/EmitterRegistry.d.ts +128 -60
- package/src/shade/renderer/particles/runtime/EmitterRegistry.d.ts.map +1 -1
- package/src/shade/renderer/particles/runtime/EmitterRegistry.js +286 -117
- package/src/shade/renderer/particles/runtime/ParticleEmitter.d.ts +264 -0
- package/src/shade/renderer/particles/runtime/ParticleEmitter.d.ts.map +1 -0
- package/src/shade/renderer/particles/runtime/ParticleEmitter.js +404 -0
- package/src/shade/renderer/particles/runtime/ParticleSpawnScheduler.d.ts +49 -15
- package/src/shade/renderer/particles/runtime/ParticleSpawnScheduler.d.ts.map +1 -1
- package/src/shade/renderer/particles/runtime/ProgramArena.d.ts +51 -18
- package/src/shade/renderer/particles/runtime/ProgramArena.d.ts.map +1 -1
- package/src/shade/renderer/particles/runtime/ProgramArena.js +72 -32
- package/src/shade/renderer/particles/runtime/create_particle_effect.d.ts +4 -4
- package/src/shade/renderer/particles/runtime/create_particle_effect.d.ts.map +1 -1
- package/src/shade/renderer/particles/runtime/create_particle_effect.js +4 -4
- package/src/shade/renderer/particles/runtime/emitter_database_image.d.ts +15 -0
- package/src/shade/renderer/particles/runtime/emitter_database_image.d.ts.map +1 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_avboit_contribution.d.ts +17 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_avboit_contribution.d.ts.map +1 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_avboit_contribution.js +75 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_billboard_vertex.d.ts +20 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_billboard_vertex.d.ts.map +1 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_billboard_vertex.js +94 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_context.d.ts +15 -5
- package/src/shade/renderer/particles/shaders/chunk_particle_context.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/chunk_particle_curve_animation.d.ts +1 -2
- package/src/shade/renderer/particles/shaders/chunk_particle_curve_animation.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/chunk_particle_curve_animation.js +1 -2
- package/src/shade/renderer/particles/shaders/chunk_particle_curve_disabled.d.ts +11 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_curve_disabled.d.ts.map +1 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_curve_disabled.js +13 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_emitter_age.d.ts +17 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_emitter_age.d.ts.map +1 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_emitter_age.js +22 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_emitter_world_sphere.d.ts +14 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_emitter_world_sphere.d.ts.map +1 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_emitter_world_sphere.js +23 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_render_math.js +1 -1
- package/src/shade/renderer/particles/shaders/chunk_particle_scene_view_depth.d.ts +18 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_scene_view_depth.d.ts.map +1 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_scene_view_depth.js +24 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_setup_context.d.ts +26 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_setup_context.d.ts.map +1 -0
- package/src/shade/renderer/particles/shaders/chunk_particle_setup_context.js +59 -0
- package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.d.ts +14 -0
- package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.d.ts.map +1 -0
- package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.js +153 -0
- package/src/shade/renderer/particles/shaders/shader_particle_avboit_occupancy.d.ts +3 -0
- package/src/shade/renderer/particles/shaders/shader_particle_avboit_occupancy.d.ts.map +1 -0
- package/src/shade/renderer/particles/shaders/shader_particle_avboit_occupancy.js +124 -0
- package/src/shade/renderer/particles/shaders/shader_particle_avboit_splat.d.ts +19 -0
- package/src/shade/renderer/particles/shaders/shader_particle_avboit_splat.d.ts.map +1 -0
- package/src/shade/renderer/particles/shaders/shader_particle_avboit_splat.js +147 -0
- package/src/shade/renderer/particles/shaders/shader_particle_emit.d.ts +18 -8
- package/src/shade/renderer/particles/shaders/shader_particle_emit.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_emit.js +72 -37
- package/src/shade/renderer/particles/shaders/shader_particle_emitter_tick.d.ts +5 -0
- package/src/shade/renderer/particles/shaders/shader_particle_emitter_tick.d.ts.map +1 -0
- package/src/shade/renderer/particles/shaders/shader_particle_emitter_tick.js +216 -0
- package/src/shade/renderer/particles/shaders/shader_particle_finalize.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_finalize.js +7 -3
- package/src/shade/renderer/particles/shaders/shader_particle_render.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_render.js +132 -197
- package/src/shade/renderer/particles/shaders/shader_particle_simulate.d.ts.map +1 -1
- package/src/shade/renderer/particles/shaders/shader_particle_simulate.js +78 -24
- package/src/shade/renderer/particles/shaders/shader_particle_spawn_commands.d.ts +26 -0
- package/src/shade/renderer/particles/shaders/shader_particle_spawn_commands.d.ts.map +1 -0
- package/src/shade/renderer/particles/shaders/shader_particle_spawn_commands.js +66 -0
- package/src/shade/renderer/particles/sort/shader_particle_sort.d.ts +1 -1
- package/src/shade/renderer/particles/sort/shader_particle_sort.d.ts.map +1 -1
- package/src/shade/renderer/particles/sort/shader_particle_sort.js +21 -36
- package/src/shade/renderer/particles/vm/ParticleVMReference.d.ts +2 -2
- package/src/shade/renderer/particles/vm/ParticleVMReference.d.ts.map +1 -1
- package/src/shade/renderer/particles/vm/ParticleVMReference.js +100 -90
- package/src/shade/renderer/particles/vm/chunk_particle_vm.d.ts.map +1 -1
- package/src/shade/renderer/particles/vm/chunk_particle_vm.js +270 -138
- package/src/shade/renderer/postprocess/denoise/debug/graph_pass_debug_reprojection.d.ts +1 -2
- package/src/shade/renderer/postprocess/denoise/debug/graph_pass_debug_reprojection.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/denoise/debug/graph_pass_debug_reprojection.js +0 -3
- package/src/shade/renderer/postprocess/dof/gather/DepthOfFieldU.js +1 -1
- package/src/shade/renderer/postprocess/dof/raymarch/DepthOfField.js +1 -1
- package/src/shade/renderer/postprocess/nss/NSS.d.ts +1 -1
- package/src/shade/renderer/postprocess/nss/NSS.d.ts.map +1 -1
- package/src/shade/renderer/postprocess/nss/NSS.js +3 -2
- package/src/shade/renderer/postprocess/nss/generate_NSS_WEIGHTS_ACTUAL.js +3 -2
- package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts +87 -0
- package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.d.ts.map +1 -0
- package/src/shade/renderer/rasterize/native/avboit/AVBOITSideChannel.js +61 -0
- package/src/shade/renderer/rasterize/native/avboit/AVBOIT_LEDGER.md +179 -0
- package/src/shade/renderer/rasterize/native/avboit/AVBOIT_PLAN_2026_09_03.md +27 -2
- package/src/shade/renderer/rasterize/native/avboit/avboit_draw_fragment_body.d.ts +9 -2
- package/src/shade/renderer/rasterize/native/avboit/avboit_draw_fragment_body.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/avboit/avboit_draw_fragment_body.js +12 -3
- package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_splat_slice.d.ts +18 -0
- package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_splat_slice.d.ts.map +1 -0
- package/src/shade/renderer/rasterize/native/avboit/chunk_avboit_splat_slice.js +58 -0
- package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.d.ts +25 -1
- package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/avboit/graph_rasterize_meshes_transparent_avboit.js +69 -10
- package/src/shade/renderer/rasterize/native/avboit/shader_avboit_resolve.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/avboit/shader_avboit_resolve.js +10 -4
- package/src/shade/renderer/rasterize/native/avboit/shader_avboit_splat.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/native/avboit/shader_avboit_splat.js +4 -39
- package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.d.ts +7 -2
- package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.d.ts.map +1 -1
- package/src/shade/renderer/rasterize/standard/graph_rasterize_scene.js +16 -2
- package/src/shade/renderer/scene/optimization/geometry/geometry_deduplicate.d.ts +3 -3
- package/src/shade/renderer/scene/optimization/geometry/geometry_deduplicate.d.ts.map +1 -1
- package/src/shade/renderer/scene/optimization/geometry/geometry_deduplicate.js +29 -23
- package/src/shade/renderer/scene/optimization/geometry/internal/anchor_grow_topological.d.ts +2 -2
- package/src/shade/renderer/scene/optimization/geometry/internal/anchor_grow_topological.d.ts.map +1 -1
- package/src/shade/renderer/scene/optimization/geometry/internal/anchor_grow_topological.js +3 -3
- package/src/shade/renderer/scene/optimization/geometry/internal/cover_greedy.d.ts +4 -4
- package/src/shade/renderer/scene/optimization/geometry/internal/cover_greedy.d.ts.map +1 -1
- package/src/shade/renderer/scene/optimization/geometry/internal/cover_greedy.js +2 -2
- package/src/shade/renderer/scene/optimization/geometry/internal/match_refit_validate.d.ts +2 -2
- package/src/shade/renderer/scene/optimization/geometry/internal/match_refit_validate.d.ts.map +1 -1
- package/src/shade/renderer/scene/optimization/geometry/internal/match_refit_validate.js +2 -2
- package/src/shade/renderer/scene/optimization/geometry/internal/match_solve_transform.d.ts +7 -7
- package/src/shade/renderer/scene/optimization/geometry/internal/match_solve_transform.d.ts.map +1 -1
- package/src/shade/renderer/scene/optimization/geometry/internal/match_solve_transform.js +79 -71
- package/src/shade/renderer/shader/chunk/math/chunk_lower_bound_branchless.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/math/chunk_lower_bound_branchless.js +3 -1
- package/src/shade/renderer/shader/chunk/random/chunk_hash_to_float01.d.ts +13 -3
- package/src/shade/renderer/shader/chunk/random/chunk_hash_to_float01.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/random/chunk_hash_to_float01.js +15 -5
- package/src/shade/renderer/shader/chunk/random/chunk_random_uint.d.ts +8 -0
- package/src/shade/renderer/shader/chunk/random/chunk_random_uint.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/random/chunk_random_uint.js +15 -5
- package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg.d.ts +7 -0
- package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg.d.ts.map +1 -1
- package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg.js +17 -7
- package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg_advance.d.ts +17 -0
- package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg_advance.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg_advance.js +26 -0
- package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg_output.d.ts +15 -0
- package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg_output.d.ts.map +1 -0
- package/src/shade/renderer/shader/chunk/random/pcg/chunk_pcg_output.js +26 -0
- package/src/shade/renderer/shadow/map/DirectionalLightShadowmap.d.ts.map +1 -1
- package/src/shade/renderer/shadow/map/DirectionalLightShadowmap.js +8 -2
- package/src/shade/renderer/shadow/map/PointLightShadowmap.d.ts.map +1 -1
- package/src/shade/renderer/shadow/map/PointLightShadowmap.js +7 -2
- package/src/shade/renderer/shadow/map/SpotLightShadowmap.d.ts.map +1 -1
- package/src/shade/renderer/shadow/map/SpotLightShadowmap.js +3 -15
- package/src/shade/renderer/shadow/map/TetrahedronPointLightShadowmap.d.ts.map +1 -1
- package/src/shade/renderer/shadow/map/TetrahedronPointLightShadowmap.js +10 -4
- package/src/shade/renderer/shadow/vsm/GPUViewShadowMaps.d.ts.map +1 -1
- package/src/shade/renderer/shadow/vsm/GPUViewShadowMaps.js +7 -2
- package/src/shade/renderer/volumetrics/GPUViewVolumetrics.js +2 -2
- package/src/shade/renderer/volumetrics/ParticipatingMediaVolume.d.ts +3 -3
- package/src/shade/renderer/volumetrics/ParticipatingMediaVolume.d.ts.map +1 -1
- package/src/shade/renderer/volumetrics/ParticipatingMediaVolume.js +3 -3
- package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.d.ts.map +1 -1
- package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.js +66 -5
- package/src/shade/wgsl/emulator/WGSLLanguageCore.d.ts.map +1 -1
- package/src/shade/wgsl/emulator/WGSLLanguageCore.js +35 -4
- package/src/view/minimap/Minimap.d.ts.map +1 -1
- package/src/view/minimap/Minimap.js +227 -225
- package/src/view/minimap/MinimapCanvasView.js +3 -3
- package/src/view/minimap/MinimapMarker.d.ts +45 -0
- package/src/view/minimap/MinimapMarker.d.ts.map +1 -0
- package/src/view/minimap/MinimapMarker.js +80 -0
- package/src/view/minimap/MinimapMarkerCollection.d.ts +6 -5
- package/src/view/minimap/MinimapMarkerCollection.d.ts.map +1 -1
- package/src/view/minimap/MinimapMarkerCollection.js +6 -6
- package/src/view/minimap/MinimapMarkerSerializationAdapter.d.ts +19 -0
- package/src/view/minimap/MinimapMarkerSerializationAdapter.d.ts.map +1 -0
- package/src/view/minimap/MinimapMarkerSerializationAdapter.js +42 -0
- package/src/view/minimap/dom/MinimapCameraView.d.ts +1 -1
- package/src/view/minimap/dom/MinimapCameraView.d.ts.map +1 -1
- package/src/view/minimap/dom/MinimapCameraView.js +23 -4
- package/src/view/minimap/dom/MinimapMarkerView.js +3 -3
- package/src/view/minimap/gl/MarkerGL.js +3 -3
- package/src/view/util/DomLayoutFrame.d.ts +53 -0
- package/src/view/util/DomLayoutFrame.d.ts.map +1 -0
- package/src/view/util/DomLayoutFrame.js +122 -0
- package/src/core/model/node-graph/visual/layout/BoxLayoutSpec.js +0 -19
- package/src/core/model/node-graph/visual/layout/ConnectedBoxLayouter.js +0 -241
- package/src/core/model/node-graph/visual/layout/ConnectionEndpointLayoutSpec.js +0 -40
- package/src/core/model/node-graph/visual/layout/ConnectionLayoutSpec.js +0 -28
- package/src/engine/ecs/util/hideEntityGracefully.js +0 -196
- package/src/shade/renderer/particles/cull/chunk_particle_cull.js +0 -38
- package/src/shade/renderer/particles/data/PARTICLE_EMITTER_LAYOUT.js +0 -214
- package/src/shade/renderer/particles/particle_prototype.d.ts.map +0 -1
- package/src/shade/renderer/particles/runtime/ParticleSpawnScheduler.js +0 -86
- package/src/shade/renderer/particles/runtime/spawn_request_encoding.js +0 -52
- package/src/shade/renderer/particles/shaders/chunk_particle_context.js +0 -58
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import Quaternion from "../../../../core/geom/Quaternion.js";
|
|
2
|
+
import { BoundValueWriter } from "./BoundValueWriter.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @enum {string}
|
|
6
|
+
*/
|
|
7
|
+
export const Transform64Channel = {
|
|
8
|
+
Translation: "translation",
|
|
9
|
+
Rotation: "rotation",
|
|
10
|
+
Scale: "scale"
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @type {Quaternion}
|
|
15
|
+
*/
|
|
16
|
+
const SCRATCH_ROTATION = new Quaternion();
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Animate one component of an {@link EntityNode}'s pose.
|
|
20
|
+
*
|
|
21
|
+
* A {@link Transform64} keeps its three components as spans of one array, so there is no
|
|
22
|
+
* {@link Vector3} or {@link Quaternion} on it for {@link BoundVector3Writer} to hold on to - which
|
|
23
|
+
* is why the pose gets a writer of its own rather than reusing those.
|
|
24
|
+
*
|
|
25
|
+
* The writer owns three obligations a curve should not have to know about: only a translation write
|
|
26
|
+
* lands in the matrix by itself, so a rotation or a scale write recomposes; and the node's pose is
|
|
27
|
+
* not the entity's, so the write is followed by the sync that pushes it into the components the
|
|
28
|
+
* rest of the engine reads.
|
|
29
|
+
*/
|
|
30
|
+
export class BoundTransform64Writer extends BoundValueWriter {
|
|
31
|
+
/**
|
|
32
|
+
* @type {EntityNode|null}
|
|
33
|
+
*/
|
|
34
|
+
#node = null;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* @type {string}
|
|
38
|
+
*/
|
|
39
|
+
#channel = Transform64Channel.Translation;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* @param {EntityNode} node
|
|
43
|
+
* @param {string} channel one of {@link Transform64Channel}
|
|
44
|
+
*/
|
|
45
|
+
constructor(node, channel) {
|
|
46
|
+
super();
|
|
47
|
+
|
|
48
|
+
this.#node = node;
|
|
49
|
+
this.#channel = channel;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
write(data) {
|
|
53
|
+
const transform = this.#node.transform;
|
|
54
|
+
|
|
55
|
+
switch (this.#channel) {
|
|
56
|
+
case Transform64Channel.Translation:
|
|
57
|
+
// the translation IS the matrix's fourth column, so this is already whole
|
|
58
|
+
transform.setTranslation(data[0], data[1], data[2]);
|
|
59
|
+
break;
|
|
60
|
+
|
|
61
|
+
case Transform64Channel.Rotation:
|
|
62
|
+
// curve output is interpolated, so it is very slightly off unit length
|
|
63
|
+
SCRATCH_ROTATION.set(data[0], data[1], data[2], data[3]).normalize();
|
|
64
|
+
|
|
65
|
+
transform.setRotation(
|
|
66
|
+
SCRATCH_ROTATION.x, SCRATCH_ROTATION.y,
|
|
67
|
+
SCRATCH_ROTATION.z, SCRATCH_ROTATION.w
|
|
68
|
+
);
|
|
69
|
+
transform.updateMatrix();
|
|
70
|
+
break;
|
|
71
|
+
|
|
72
|
+
case Transform64Channel.Scale:
|
|
73
|
+
transform.setScale(data[0], data[1], data[2]);
|
|
74
|
+
transform.updateMatrix();
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
this.#node.transform_changed();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
@@ -3,7 +3,7 @@ import { SerializationMetadata } from "../ecs/components/SerializationMetadata.j
|
|
|
3
3
|
import { removeComponentsExcept } from "../ecs/util/removeComponentsExcept.js";
|
|
4
4
|
import { ParticleEmitter } from "../graphics/particles/particular/engine/emitter/ParticleEmitter.js";
|
|
5
5
|
import Trail2D from "../graphics/ecs/trail2d/Trail2D.js";
|
|
6
|
-
import {
|
|
6
|
+
import { Transform64 } from "../ecs/transform/Transform64.js";
|
|
7
7
|
import Entity from "../ecs/Entity.js";
|
|
8
8
|
import { stopEntityAndNotifyWhenStopped } from "./AnimatedActions.js";
|
|
9
9
|
|
|
@@ -157,7 +157,7 @@ export function removeEntityWithMeshParticlesEffect(
|
|
|
157
157
|
const emitter = ParticleEmitter.fromJSON(lib[particles]);
|
|
158
158
|
|
|
159
159
|
//prevent further interactions
|
|
160
|
-
removeComponentsExcept(ecd, entity, [SGMesh, ParticleEmitter, Trail2D,
|
|
160
|
+
removeComponentsExcept(ecd, entity, [SGMesh, ParticleEmitter, Trail2D, Transform64]);
|
|
161
161
|
|
|
162
162
|
//make entity volatile so it does not end up in game saves. The entity is mid-death here;
|
|
163
163
|
//without this a save taken during the effect would restore a corpse that never finishes dying.
|
|
@@ -165,9 +165,9 @@ export function removeEntityWithMeshParticlesEffect(
|
|
|
165
165
|
|
|
166
166
|
/**
|
|
167
167
|
*
|
|
168
|
-
* @type {
|
|
168
|
+
* @type {Transform64}
|
|
169
169
|
*/
|
|
170
|
-
const originalTransform = ecd.getComponent(entity,
|
|
170
|
+
const originalTransform = ecd.getComponent(entity, Transform64);
|
|
171
171
|
|
|
172
172
|
if (originalTransform === undefined) {
|
|
173
173
|
throw new Error(`entity ${entity} doesn't have Transform`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gltf_test_fixtures.d.ts","sourceRoot":"","sources":["../../../../../src/engine/asset/loaders/gltf_test_fixtures.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gltf_test_fixtures.d.ts","sourceRoot":"","sources":["../../../../../src/engine/asset/loaders/gltf_test_fixtures.js"],"names":[],"mappings":"AAqBA;;GAEG;AACH,sCAFa,WAAW,CAWvB;AAED;;;GAGG;AACH,qDAHW,MAAM,GAAC,SAAS,GACd,MAAM,CA+BlB;AAED;;;;;;;;;;GAUG;AACH,8DAJW,MAAM,aACN,MAAM,GACJ,MAAM,CAiBlB;AAED;;;;GAIG;AACH,sCAFa,WAAW,CAiCvB;AAsCD;;;;;;;;;;;;;;;;;GAiBG;AACH;IAJ4B,aAAa,GAA9B,MAAM;IACY,MAAM,GAAxB,OAAO;;YACI,WAAW;;oBAAsB,MAAM;oBAAa,MAAM;;EA2C/E;AAED;;;;;;;GAOG;AACH,iEAPW,MAAM,cACN,MAAM,GAAC,SAAS;IAEC,aAAa,GAA9B,MAAM;IACY,MAAM,GAAxB,OAAO;IACL,MAAM,CA8ElB;AAED;;;;;;GAMG;AACH,2DAJW,MAAM,kBAEJ,WAAW,CAkCvB;AA3VD,iDAAkD;AAClD,iDAAkD;AAElD;;;;GAIG;AACH,2CAFU,MAAM,CAEgC;AA2HhD;;;;;GAKG;AACH,gDAFU,MAAM,CAE8D;AAa9E;;;;GAIG;AACH,mCAFU,MAAM,EAAE,CAMhB"}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
import { encode_meshopt_attributes } from "../../../core/binary/meshopt/__meshopt_test_streams.js";
|
|
10
|
+
import { align_4 } from "../../../core/binary/align_4.js";
|
|
10
11
|
|
|
11
12
|
export const GLTF_FIXTURE_NODE_NAME = 'unit_root';
|
|
12
13
|
export const GLTF_FIXTURE_MESH_NAME = 'unit_body';
|
|
@@ -104,10 +105,10 @@ export function build_triangle_glb() {
|
|
|
104
105
|
const json_bytes = new TextEncoder().encode(JSON.stringify(build_triangle_gltf_json(undefined)));
|
|
105
106
|
|
|
106
107
|
// both chunks are padded to a four byte boundary, per the container's own rule
|
|
107
|
-
const json_length =
|
|
108
|
+
const json_length = align_4(json_bytes.byteLength);
|
|
108
109
|
|
|
109
110
|
const bin = new Uint8Array(build_triangle_bin());
|
|
110
|
-
const bin_length =
|
|
111
|
+
const bin_length = align_4(bin.byteLength);
|
|
111
112
|
|
|
112
113
|
const total = 12 + 8 + json_length + 8 + bin_length;
|
|
113
114
|
|
|
@@ -328,10 +329,10 @@ export function build_meshopt_triangle_glb(extension_name, options = {}) {
|
|
|
328
329
|
JSON.stringify(build_meshopt_triangle_gltf_json(extension_name, undefined, options))
|
|
329
330
|
);
|
|
330
331
|
|
|
331
|
-
const json_length =
|
|
332
|
+
const json_length = align_4(json_bytes.byteLength);
|
|
332
333
|
|
|
333
334
|
const bin = new Uint8Array(build_meshopt_triangle_bin(options).buffer);
|
|
334
|
-
const bin_length =
|
|
335
|
+
const bin_length = align_4(bin.byteLength);
|
|
335
336
|
|
|
336
337
|
const total = 12 + 8 + json_length + 8 + bin_length;
|
|
337
338
|
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
*/
|
|
19
19
|
export class FirstPersonPlayerControllerSystem extends System<any> {
|
|
20
20
|
constructor();
|
|
21
|
-
dependencies: (typeof
|
|
22
|
-
components_used: (ResourceAccessSpecification<typeof
|
|
21
|
+
dependencies: (typeof Transform64 | typeof FirstPersonPlayerController)[];
|
|
22
|
+
components_used: (ResourceAccessSpecification<typeof Transform64> | ResourceAccessSpecification<typeof RigidBody> | ResourceAccessSpecification<typeof Camera>)[];
|
|
23
23
|
/**
|
|
24
24
|
* Per-entity runtime, keyed by entity id.
|
|
25
25
|
* @type {Map<number, PerEntityRuntime>}
|
|
@@ -83,16 +83,16 @@ export class FirstPersonPlayerControllerSystem extends System<any> {
|
|
|
83
83
|
startup(entityManager: any): Promise<void>;
|
|
84
84
|
/**
|
|
85
85
|
* @param {FirstPersonPlayerController} controller
|
|
86
|
-
* @param {
|
|
86
|
+
* @param {Transform64} bodyTransform
|
|
87
87
|
* @param {number} entity
|
|
88
88
|
*/
|
|
89
|
-
link(controller: FirstPersonPlayerController, bodyTransform:
|
|
89
|
+
link(controller: FirstPersonPlayerController, bodyTransform: Transform64, entity: number): void;
|
|
90
90
|
/**
|
|
91
91
|
* @param {FirstPersonPlayerController} controller
|
|
92
|
-
* @param {
|
|
92
|
+
* @param {Transform64} bodyTransform
|
|
93
93
|
* @param {number} entity
|
|
94
94
|
*/
|
|
95
|
-
unlink(controller: FirstPersonPlayerController, bodyTransform:
|
|
95
|
+
unlink(controller: FirstPersonPlayerController, bodyTransform: Transform64, entity: number): void;
|
|
96
96
|
/**
|
|
97
97
|
* Look up the per-entity runtime for an entity that has this
|
|
98
98
|
* controller. Used by cross-system code (sensors system, future
|
|
@@ -163,7 +163,7 @@ export class FirstPersonPlayerControllerSystem extends System<any> {
|
|
|
163
163
|
* @private
|
|
164
164
|
* @param {FirstPersonPlayerController} controller
|
|
165
165
|
* @param {PerEntityRuntime} runtime
|
|
166
|
-
* @param {
|
|
166
|
+
* @param {Transform64} bodyTransform
|
|
167
167
|
* @param {number} dt
|
|
168
168
|
*/
|
|
169
169
|
private _advanceJumpFsm;
|
|
@@ -178,7 +178,7 @@ export class FirstPersonPlayerControllerSystem extends System<any> {
|
|
|
178
178
|
* @private
|
|
179
179
|
* @param {FirstPersonPlayerController} controller
|
|
180
180
|
* @param {PerEntityRuntime} runtime
|
|
181
|
-
* @param {
|
|
181
|
+
* @param {Transform64} bodyTransform
|
|
182
182
|
* @param {number} dt
|
|
183
183
|
*/
|
|
184
184
|
private _integrateVerticalAndResolveGround;
|
|
@@ -247,7 +247,7 @@ export class FirstPersonPlayerControllerSystem extends System<any> {
|
|
|
247
247
|
* @private
|
|
248
248
|
* @param {FirstPersonPlayerController} controller
|
|
249
249
|
* @param {PerEntityRuntime} runtime
|
|
250
|
-
* @param {
|
|
250
|
+
* @param {Transform64} bodyTransform
|
|
251
251
|
* @param {number} dt
|
|
252
252
|
* @param {boolean} isCrouchActive
|
|
253
253
|
* @param {boolean} isSprintIntent
|
|
@@ -280,7 +280,7 @@ export class FirstPersonPlayerControllerSystem extends System<any> {
|
|
|
280
280
|
* @private
|
|
281
281
|
* @param {FirstPersonPlayerController} controller
|
|
282
282
|
* @param {PerEntityRuntime} runtime
|
|
283
|
-
* @param {
|
|
283
|
+
* @param {Transform64} bodyTransform
|
|
284
284
|
*/
|
|
285
285
|
private _publishPose;
|
|
286
286
|
/**
|
|
@@ -330,7 +330,7 @@ export class FirstPersonPlayerControllerSystem extends System<any> {
|
|
|
330
330
|
private _composeEye;
|
|
331
331
|
}
|
|
332
332
|
import { System } from "../../ecs/System.js";
|
|
333
|
-
import {
|
|
333
|
+
import { Transform64 } from "../../ecs/transform/Transform64.js";
|
|
334
334
|
import { FirstPersonPlayerController } from "./FirstPersonPlayerController.js";
|
|
335
335
|
import { ResourceAccessSpecification } from "../../../core/model/ResourceAccessSpecification.js";
|
|
336
336
|
import { RigidBody } from "../../physics/ecs/RigidBody.js";
|
|
@@ -344,7 +344,7 @@ import { Camera } from "../../graphics/ecs/camera/Camera.js";
|
|
|
344
344
|
declare class PerEntityRuntime {
|
|
345
345
|
/**
|
|
346
346
|
* Co-attached kinematic body. Set by {@link FirstPersonPlayerControllerSystem.link}
|
|
347
|
-
* after asserting it's present. The controller writes
|
|
347
|
+
* after asserting it's present. The controller writes Transform64.position
|
|
348
348
|
* directly (existing motion logic); physics derives the body's velocity
|
|
349
349
|
* from the per-step delta. Other physics systems (raycasts, contact
|
|
350
350
|
* events) see the player through this body.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FirstPersonPlayerControllerSystem.d.ts","sourceRoot":"","sources":["../../../../../src/engine/control/first-person/FirstPersonPlayerControllerSystem.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FirstPersonPlayerControllerSystem.d.ts","sourceRoot":"","sources":["../../../../../src/engine/control/first-person/FirstPersonPlayerControllerSystem.js"],"names":[],"mappings":"AAyXA;;;;;;;;;;;;;;;;;GAiBG;AACH;;IAOI,0EAA0D;IAE1D,kKAIE;IAEF;;;OAGG;IACH,SAFU,IAAI,MAAM,EAAE,gBAAgB,CAAC,CAEnB;IAEpB;;;;OAIG;IACH,sBAFU,OAAO,CAEW;IAE5B;;;;OAIG;IACH,SAFU,MAAM,CAEJ;IAEZ;;;;;;;;;;;;;;;;OAgBG;IACH,oBAFc,MAAM,KAAI,MAAM,KAAI,MAAM,KAAK,MAAM,GAAC,IAAI,CAElC;IAEtB;;;;;;;OAOG;IACH,eAFU,aAAa,GAAC,IAAI,CAEP;IAErB;;;;;;;;OAQG;IACH,eAAc;IAEd,+DAA+D;IAC/D,uBAA+B;IAE/B,yDAAyD;IACzD,oBAAyB;IAEzB,2CAA2C;IAC3C,oBAAwC;IAExC,2CAMC;IAED;;;;OAIG;IACH,iBAJW,2BAA2B,iBAC3B,WAAW,UACX,MAAM,QA2IhB;IAED;;;;OAIG;IACH,mBAJW,2BAA2B,iBAC3B,WAAW,UACX,MAAM,QAWhB;IAED;;;;;;;;OAQG;IACH,mBAHW,MAAM,GACJ,gBAAgB,GAAC,SAAS,CAItC;IAUG,mBAAoB;IAYpB,yBAA0B;IAI9B;;;;OAIG;IACH,oBAiVC;IAED;;;;;OAKG;IACH;;;;;;;;;;;;;;OAcG;IACH,2BAaC;IAED,2EA0CC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,2BASC;IAED;;;;;;;;;;;OAWG;IACH,wBA+EC;IAED;;;;;;;;;;;;;OAaG;IACH,2CAIC;IAED;;;;;;;;;;;OAWG;IACH,uBAMC;IAED;;;;;OAKG;IACH,sBAWC;IAED;;;;;OAKG;IACH,sBAgDC;IAED;;;;;;;;OAQG;IACH,wBA+CC;IAED;;;;;;OAMG;IACH,gBAsBC;IAED;;;;OAIG;IACH,uBAIC;IAED;;;OAGG;IACH,wBASC;IAED;;;;;;;;;;;;;;OAcG;IACH,2BA4IC;IAED;;;;;;;;;;;;;;;OAeG;IACH,kCAsDC;IAED;;;;;;;;;;OAUG;IACH,qBAiDC;IAED;;;;;;;;OAQG;IACH,4BAUC;IAED;;;;;;;;;OASG;IACH,8BAkBC;IAED;;;;;;;;;;;;;;;OAeG;IACH,qBA0BC;IAED;;;;;OAKG;IACH,oBAyLC;CACJ;uBA1+DsB,qBAAqB;4BAChB,oCAAoC;4CASpB,kCAAkC;4CAblC,oDAAoD;0BAStE,gCAAgC;uBAJnC,qCAAqC;AAiF5D;;;;;GAKG;AACH;IACI;;;;;;;OAOG;IACH,WAFU,SAAS,GAAC,IAAI,CAEP;IAEjB;;;;;OAKG;IACH,UAFU,QAAQ,GAAC,IAAI,CAEP;IAEhB;;;;;;;;;;;OAWG;IACH,2BAA0B;IAE1B,+CAA+C;IAC/C,4BAA2B;IAE3B,+CAA+C;IAC/C,2BAA0B;IAE1B,eAAe;IACf,oBAAiB;IAEjB,2DAA2D;IAC3D,iBAAa;IAEb,6CAA6C;IAC7C,gBAAY;IAEZ,sEAAsE;IACtE,yBAAqB;IAWrB;;wBAEoB;IACpB,qBAAiB;IAEjB,uBAA8B;IAC9B,sBAA6B;IAE7B;;gDAE4C;IAC5C,oBAAmB;IAEnB;sDACkD;IAClD,kBAAc;IAEd,kBAAc;IACd,kBAAc;IAEd,qEAAqE;IACrE,sBAAqB;IAErB,oEAAoE;IACpE,wBAAuB;IAEvB,yEAAyE;IACzE,uBAAsB;IAEtB,wEAAwE;IACxE,8BAA0B;IAE1B,mEAAmE;IACnE,gBAAe;IAEf;;;;;OAKG;IACH,kBAAc;IAEd,mEAAmE;IACnE,sBAAoB;IAEpB;;;;OAIG;IACH,gBAAkB;IAElB,kEAAkE;IAClE,mBAA0B;IAE1B,0CAA0C;IAC1C,kBAA2B;IAE3B,iDAAiD;IACjD,wBAAmC;IAEnC,wEAAwE;IACxE,mBAA0B;IAE1B;;;;;;;OAOG;IACH,sBAAkB;IAElB,sEAAsE;IACtE,sBAAkB;IAElB,sBAAkB;IAElB,iDAAiD;IACjD,sBAAoB;IAEpB,uDAAuD;IACvD,kBAAc;IAEd,0EAA0E;IAC1E,qBAAiB;IAEjB,+DAA+D;IAC/D,iBAAgB;IAEhB,oDAAoD;IACpD,mBAAkB;IAElB,2EAA2E;IAC3E,wBAAoB;IAEpB,gFAAgF;IAChF,wBAAoB;IAEpB,+DAA+D;IAC/D,qBAAmB;IAEnB;;;;;;;;;;OAUG;IACH,qBAAmB;IAEnB;;;;;;OAMG;IACH,qBAAiB;IAEjB;;;;OAIG;IACH,2BAAkC;IAElC;;;;OAIG;IACH,6BAAoC;IAEpC;;;;;OAKG;IACH,4BAAmC;IAEnC;;;;OAIG;IACH,wBAA+B;IAE/B;;;;OAIG;IACH,mBAAe;IAEf;;;;;OAKG;IACH,eAAW;IAEX,eAAW;IAEX,8EAA8E;IAC9E,mBAAe;IAEf,4FAA4F;IAC5F,qBAAiB;IAEjB;;;;;OAKG;IACH,+BAAsC;IAEtC;;;;;OAKG;IACH,4BAAmC;IAEnC,sDAAsD;IACtD,kBAAe;IAEf;;;;;OAKG;IACH,4BAA2B;IAE3B;;;;;;OAMG;IACH,4BAAwB;CAC3B;8BArW6B,oCAAoC;yBADzC,+BAA+B;oBAZpC,+BAA+B;uBAwB5B,kBAAkB;+BAPV,8BAA8B;mCAW1B,iCAAiC"}
|
|
@@ -12,7 +12,7 @@ import { ResourceAccessSpecification } from "../../../core/model/ResourceAccessS
|
|
|
12
12
|
import { SerializationMetadata } from "../../ecs/components/SerializationMetadata.js";
|
|
13
13
|
import Entity from "../../ecs/Entity.js";
|
|
14
14
|
import { System } from "../../ecs/System.js";
|
|
15
|
-
import {
|
|
15
|
+
import { Transform64 } from "../../ecs/transform/Transform64.js";
|
|
16
16
|
import { Camera } from "../../graphics/ecs/camera/Camera.js";
|
|
17
17
|
import { BodyKind } from "../../physics/ecs/BodyKind.js";
|
|
18
18
|
import { Collider } from "../../physics/ecs/Collider.js";
|
|
@@ -32,6 +32,7 @@ import { stepTowards } from "./math/stepTowards.js";
|
|
|
32
32
|
import { FirstPersonActionState, FirstPersonLocomotionMode } from "./pose/FirstPersonPose.js";
|
|
33
33
|
import { FirstPersonPosture } from "./pose/FirstPersonPosture.js";
|
|
34
34
|
import { FirstPersonSensors } from "./sensors/FirstPersonSensors.js";
|
|
35
|
+
import { t64_announce_change } from "../../ecs/transform/t64_announce_change.js";
|
|
35
36
|
|
|
36
37
|
// ---------------------------------------------------------------------------
|
|
37
38
|
// Scratch allocations — reused per frame to avoid GC pressure
|
|
@@ -42,6 +43,8 @@ const SCRATCH_V3_C = new Vector3();
|
|
|
42
43
|
const SCRATCH_Q_A = new Quaternion();
|
|
43
44
|
const SCRATCH_Q_B = new Quaternion();
|
|
44
45
|
const SCRATCH_Q_C = new Quaternion();
|
|
46
|
+
/** the transform holds its rotation as four numbers, so euler and axis-angle work goes through here */
|
|
47
|
+
const SCRATCH_Q_EULER = new Quaternion();
|
|
45
48
|
|
|
46
49
|
const TWO_PI = Math.PI * 2;
|
|
47
50
|
const LN2 = Math.log(2);
|
|
@@ -100,7 +103,7 @@ function makePostureCapsule(radius, totalHeight) {
|
|
|
100
103
|
class PerEntityRuntime {
|
|
101
104
|
/**
|
|
102
105
|
* Co-attached kinematic body. Set by {@link FirstPersonPlayerControllerSystem.link}
|
|
103
|
-
* after asserting it's present. The controller writes
|
|
106
|
+
* after asserting it's present. The controller writes Transform64.position
|
|
104
107
|
* directly (existing motion logic); physics derives the body's velocity
|
|
105
108
|
* from the per-step delta. Other physics systems (raycasts, contact
|
|
106
109
|
* events) see the player through this body.
|
|
@@ -397,10 +400,10 @@ export class FirstPersonPlayerControllerSystem extends System {
|
|
|
397
400
|
// never link — the controller would appear inert with no
|
|
398
401
|
// diagnostic. The assert below catches the missing-body case
|
|
399
402
|
// explicitly.
|
|
400
|
-
dependencies = [FirstPersonPlayerController,
|
|
403
|
+
dependencies = [FirstPersonPlayerController, Transform64];
|
|
401
404
|
|
|
402
405
|
components_used = [
|
|
403
|
-
ResourceAccessSpecification.from(
|
|
406
|
+
ResourceAccessSpecification.from(Transform64, ResourceAccessKind.Write),
|
|
404
407
|
ResourceAccessSpecification.from(Camera, ResourceAccessKind.Write),
|
|
405
408
|
ResourceAccessSpecification.from(RigidBody, ResourceAccessKind.Write),
|
|
406
409
|
];
|
|
@@ -484,7 +487,7 @@ export class FirstPersonPlayerControllerSystem extends System {
|
|
|
484
487
|
|
|
485
488
|
/**
|
|
486
489
|
* @param {FirstPersonPlayerController} controller
|
|
487
|
-
* @param {
|
|
490
|
+
* @param {Transform64} bodyTransform
|
|
488
491
|
* @param {number} entity
|
|
489
492
|
*/
|
|
490
493
|
link(controller, bodyTransform, entity) {
|
|
@@ -578,14 +581,20 @@ export class FirstPersonPlayerControllerSystem extends System {
|
|
|
578
581
|
|
|
579
582
|
// Seed yaw from the starting body rotation. `toEulerAnglesYXZ`
|
|
580
583
|
// returns (pitch, yaw, roll) — we only care about y.
|
|
581
|
-
|
|
584
|
+
SCRATCH_Q_EULER.set(
|
|
585
|
+
bodyTransform.rotation_x,
|
|
586
|
+
bodyTransform.rotation_y,
|
|
587
|
+
bodyTransform.rotation_z,
|
|
588
|
+
bodyTransform.rotation_w
|
|
589
|
+
);
|
|
590
|
+
SCRATCH_Q_EULER.toEulerAnglesYXZ(SCRATCH_V3_A);
|
|
582
591
|
runtime.bodyYaw = SCRATCH_V3_A.y;
|
|
583
592
|
runtime.eyePitch = 0;
|
|
584
593
|
|
|
585
594
|
// Seed render-rate-look + position-interpolation state to the spawn pose.
|
|
586
595
|
runtime.prevFixedYaw = runtime.bodyYaw;
|
|
587
|
-
runtime.renderPrevPos.
|
|
588
|
-
runtime.renderCurPos.
|
|
596
|
+
runtime.renderPrevPos.set(bodyTransform.translation_x, bodyTransform.translation_y, bodyTransform.translation_z);
|
|
597
|
+
runtime.renderCurPos.set(bodyTransform.translation_x, bodyTransform.translation_y, bodyTransform.translation_z);
|
|
589
598
|
|
|
590
599
|
// Initialize springs to standing-eye-height baseline
|
|
591
600
|
runtime.eyeHeightSpring.settle(controller.config.body.height);
|
|
@@ -596,10 +605,10 @@ export class FirstPersonPlayerControllerSystem extends System {
|
|
|
596
605
|
if (controller.eyeEntity === -1 || !ecd.entityExists(controller.eyeEntity)) {
|
|
597
606
|
const eye = new Entity();
|
|
598
607
|
|
|
599
|
-
const eyeTransform = new
|
|
600
|
-
const baseEyePos = SCRATCH_V3_A.
|
|
608
|
+
const eyeTransform = new Transform64();
|
|
609
|
+
const baseEyePos = SCRATCH_V3_A.set(bodyTransform.translation_x, bodyTransform.translation_y, bodyTransform.translation_z);
|
|
601
610
|
baseEyePos.y += controller.config.body.height;
|
|
602
|
-
eyeTransform.
|
|
611
|
+
eyeTransform.setTranslation(baseEyePos.x, baseEyePos.y, baseEyePos.z);
|
|
603
612
|
|
|
604
613
|
const camera = new Camera();
|
|
605
614
|
camera.active.set(true);
|
|
@@ -622,7 +631,7 @@ export class FirstPersonPlayerControllerSystem extends System {
|
|
|
622
631
|
|
|
623
632
|
/**
|
|
624
633
|
* @param {FirstPersonPlayerController} controller
|
|
625
|
-
* @param {
|
|
634
|
+
* @param {Transform64} bodyTransform
|
|
626
635
|
* @param {number} entity
|
|
627
636
|
*/
|
|
628
637
|
unlink(controller, bodyTransform, entity) {
|
|
@@ -689,7 +698,7 @@ export class FirstPersonPlayerControllerSystem extends System {
|
|
|
689
698
|
const state = controller.state;
|
|
690
699
|
const sig = controller.signals;
|
|
691
700
|
|
|
692
|
-
const bodyTransform = ecd.getComponent(entity,
|
|
701
|
+
const bodyTransform = ecd.getComponent(entity, Transform64);
|
|
693
702
|
if (bodyTransform === undefined) return;
|
|
694
703
|
|
|
695
704
|
// Decay the mastery score's EMA. Doing this once per tick keeps the
|
|
@@ -716,7 +725,11 @@ export class FirstPersonPlayerControllerSystem extends System {
|
|
|
716
725
|
// Write body yaw back to the transform (pure yaw, no pitch on body) —
|
|
717
726
|
// the collision sweep + sensors use it. The camera uses runtime.bodyYaw
|
|
718
727
|
// directly, which _consumeLook keeps current at render rate.
|
|
719
|
-
|
|
728
|
+
SCRATCH_Q_EULER.fromAxisAngle(Vector3.up, runtime.bodyYaw);
|
|
729
|
+
bodyTransform.setRotation(
|
|
730
|
+
SCRATCH_Q_EULER.x, SCRATCH_Q_EULER.y, SCRATCH_Q_EULER.z, SCRATCH_Q_EULER.w
|
|
731
|
+
);
|
|
732
|
+
bodyTransform.updateMatrix();
|
|
720
733
|
|
|
721
734
|
// -- Shared flags. Computed BEFORE the ability tick so abilities
|
|
722
735
|
// can read them. `isCrouchActive` is deliberately computed
|
|
@@ -996,6 +1009,13 @@ export class FirstPersonPlayerControllerSystem extends System {
|
|
|
996
1009
|
// -- L2.h: Publish pose channels --------------------------------
|
|
997
1010
|
this._publishPose(controller, runtime, bodyTransform);
|
|
998
1011
|
|
|
1012
|
+
// -- L2.h.1: Say that the body moved ----------------------------
|
|
1013
|
+
// The yaw write above and the mover's write into the translation both land straight on the
|
|
1014
|
+
// component, and a Transform64 announces nothing on its own. One event here, at the point
|
|
1015
|
+
// where the pose is final, covers every writer in the tick and covers them once - which is
|
|
1016
|
+
// what wakes the mesh placement, the audio emitter and anything else that follows a player.
|
|
1017
|
+
t64_announce_change(ecd, entity, bodyTransform);
|
|
1018
|
+
|
|
999
1019
|
// -- L2.i: Sync collider shape to posture -----------------------
|
|
1000
1020
|
// All posture-writers (base locomotion + any active ability)
|
|
1001
1021
|
// have run for this tick. Swap the collider's shape to the
|
|
@@ -1110,7 +1130,7 @@ export class FirstPersonPlayerControllerSystem extends System {
|
|
|
1110
1130
|
const ownCollider = runtime.collider;
|
|
1111
1131
|
const filter = (_e, c) => c !== ownCollider;
|
|
1112
1132
|
const ray = this._postureRay;
|
|
1113
|
-
ray.setOrigin(bodyTransform.
|
|
1133
|
+
ray.setOrigin(bodyTransform.translation_x, bodyTransform.translation_y, bodyTransform.translation_z);
|
|
1114
1134
|
ray.setDirection(0, 1, 0);
|
|
1115
1135
|
ray.tMax = growDelta;
|
|
1116
1136
|
return !this.physicsSystem.shapeCast(ray, fromShape, bodyTransform.rotation, this._postureHit, filter);
|
|
@@ -1125,7 +1145,7 @@ export class FirstPersonPlayerControllerSystem extends System {
|
|
|
1125
1145
|
* @private
|
|
1126
1146
|
* @param {FirstPersonPlayerController} controller
|
|
1127
1147
|
* @param {PerEntityRuntime} runtime
|
|
1128
|
-
* @param {
|
|
1148
|
+
* @param {Transform64} bodyTransform
|
|
1129
1149
|
* @param {number} dt
|
|
1130
1150
|
*/
|
|
1131
1151
|
_advanceJumpFsm(controller, runtime, bodyTransform, dt) {
|
|
@@ -1189,7 +1209,7 @@ export class FirstPersonPlayerControllerSystem extends System {
|
|
|
1189
1209
|
runtime.velocityY = runtime.jumpInitialVy * masteryMul;
|
|
1190
1210
|
runtime.midJump = true;
|
|
1191
1211
|
runtime.apexFired = false;
|
|
1192
|
-
runtime.peakAltitude = bodyTransform.
|
|
1212
|
+
runtime.peakAltitude = bodyTransform.translation_y;
|
|
1193
1213
|
state.inJumpAnticipation = false;
|
|
1194
1214
|
state.isVariableJumpCut = false;
|
|
1195
1215
|
state.isAscending = true;
|
|
@@ -1220,7 +1240,7 @@ export class FirstPersonPlayerControllerSystem extends System {
|
|
|
1220
1240
|
* @private
|
|
1221
1241
|
* @param {FirstPersonPlayerController} controller
|
|
1222
1242
|
* @param {PerEntityRuntime} runtime
|
|
1223
|
-
* @param {
|
|
1243
|
+
* @param {Transform64} bodyTransform
|
|
1224
1244
|
* @param {number} dt
|
|
1225
1245
|
*/
|
|
1226
1246
|
_integrateVerticalAndResolveGround(controller, runtime, bodyTransform, dt) {
|
|
@@ -1292,7 +1312,7 @@ export class FirstPersonPlayerControllerSystem extends System {
|
|
|
1292
1312
|
const filter = (_e, c) => c !== ownCollider;
|
|
1293
1313
|
|
|
1294
1314
|
const result = this._mover.move(
|
|
1295
|
-
bodyTransform.
|
|
1315
|
+
bodyTransform.translation,
|
|
1296
1316
|
bodyTransform.rotation,
|
|
1297
1317
|
runtime.collider.shape,
|
|
1298
1318
|
v, dt, filter,
|
|
@@ -1336,8 +1356,11 @@ export class FirstPersonPlayerControllerSystem extends System {
|
|
|
1336
1356
|
_moveFlatGround(controller, runtime, bodyTransform, dt) {
|
|
1337
1357
|
const state = controller.state;
|
|
1338
1358
|
|
|
1339
|
-
|
|
1340
|
-
|
|
1359
|
+
// translation lands in the matrix as it is written, so no updateMatrix is owed here
|
|
1360
|
+
bodyTransform.setTranslation(
|
|
1361
|
+
bodyTransform.translation_x + runtime.velocityX * dt,
|
|
1362
|
+
bodyTransform.translation_y + runtime.velocityY * dt,
|
|
1363
|
+
bodyTransform.translation_z + runtime.velocityZ * dt
|
|
1341
1364
|
);
|
|
1342
1365
|
|
|
1343
1366
|
if (this.useBuiltInFlatGround || this.groundResolver !== null) {
|
|
@@ -1345,13 +1368,13 @@ export class FirstPersonPlayerControllerSystem extends System {
|
|
|
1345
1368
|
let testY = this.useBuiltInFlatGround ? this.groundY : Number.NEGATIVE_INFINITY;
|
|
1346
1369
|
if (this.groundResolver !== null) {
|
|
1347
1370
|
const resolved = this.groundResolver(
|
|
1348
|
-
bodyTransform.
|
|
1371
|
+
bodyTransform.translation_x, bodyTransform.translation_y, bodyTransform.translation_z,
|
|
1349
1372
|
);
|
|
1350
1373
|
if (resolved !== null && resolved > testY) testY = resolved;
|
|
1351
1374
|
}
|
|
1352
1375
|
const haveGround = testY !== Number.NEGATIVE_INFINITY;
|
|
1353
|
-
if (haveGround && bodyTransform.
|
|
1354
|
-
bodyTransform.
|
|
1376
|
+
if (haveGround && bodyTransform.translation_y <= testY) {
|
|
1377
|
+
bodyTransform.setTranslation(bodyTransform.translation_x, testY, bodyTransform.translation_z);
|
|
1355
1378
|
if (!state.grounded) this._onLand(controller, runtime, -runtime.velocityY);
|
|
1356
1379
|
state.grounded = true;
|
|
1357
1380
|
state.groundNormal.set(0, 1, 0);
|
|
@@ -1418,7 +1441,7 @@ export class FirstPersonPlayerControllerSystem extends System {
|
|
|
1418
1441
|
_onLeaveGround(controller, runtime, bodyTransform) {
|
|
1419
1442
|
controller.signals.onLeaveGround.send1({ reason: runtime.midJump ? "jump" : "fall" });
|
|
1420
1443
|
runtime.takeoffVy = runtime.velocityY;
|
|
1421
|
-
runtime.peakAltitude = bodyTransform.
|
|
1444
|
+
runtime.peakAltitude = bodyTransform.translation_y;
|
|
1422
1445
|
}
|
|
1423
1446
|
|
|
1424
1447
|
/**
|
|
@@ -1427,8 +1450,8 @@ export class FirstPersonPlayerControllerSystem extends System {
|
|
|
1427
1450
|
*/
|
|
1428
1451
|
_detectJumpApex(controller, runtime, bodyTransform) {
|
|
1429
1452
|
if (runtime.midJump && !runtime.apexFired) {
|
|
1430
|
-
if (bodyTransform.
|
|
1431
|
-
runtime.peakAltitude = bodyTransform.
|
|
1453
|
+
if (bodyTransform.translation_y > runtime.peakAltitude) {
|
|
1454
|
+
runtime.peakAltitude = bodyTransform.translation_y;
|
|
1432
1455
|
} else if (runtime.velocityY <= 0) {
|
|
1433
1456
|
controller.signals.onJumpApex.send0();
|
|
1434
1457
|
runtime.apexFired = true;
|
|
@@ -1445,7 +1468,7 @@ export class FirstPersonPlayerControllerSystem extends System {
|
|
|
1445
1468
|
* @private
|
|
1446
1469
|
* @param {FirstPersonPlayerController} controller
|
|
1447
1470
|
* @param {PerEntityRuntime} runtime
|
|
1448
|
-
* @param {
|
|
1471
|
+
* @param {Transform64} bodyTransform
|
|
1449
1472
|
* @param {number} dt
|
|
1450
1473
|
* @param {boolean} isCrouchActive
|
|
1451
1474
|
* @param {boolean} isSprintIntent
|
|
@@ -1674,14 +1697,14 @@ export class FirstPersonPlayerControllerSystem extends System {
|
|
|
1674
1697
|
* @private
|
|
1675
1698
|
* @param {FirstPersonPlayerController} controller
|
|
1676
1699
|
* @param {PerEntityRuntime} runtime
|
|
1677
|
-
* @param {
|
|
1700
|
+
* @param {Transform64} bodyTransform
|
|
1678
1701
|
*/
|
|
1679
1702
|
_publishPose(controller, runtime, bodyTransform) {
|
|
1680
1703
|
const cfg = controller.config;
|
|
1681
1704
|
const state = controller.state;
|
|
1682
1705
|
const pose = controller.pose;
|
|
1683
1706
|
|
|
1684
|
-
pose.rootPosition.
|
|
1707
|
+
pose.rootPosition.set(bodyTransform.translation_x, bodyTransform.translation_y, bodyTransform.translation_z);
|
|
1685
1708
|
pose.rootYawRad = runtime.bodyYaw;
|
|
1686
1709
|
pose.headYawRad = runtime.bodyYaw;
|
|
1687
1710
|
pose.headPitchRad = runtime.eyePitch;
|
|
@@ -1737,15 +1760,15 @@ export class FirstPersonPlayerControllerSystem extends System {
|
|
|
1737
1760
|
* @private
|
|
1738
1761
|
*/
|
|
1739
1762
|
_snapshotRenderPose(runtime, bodyTransform) {
|
|
1740
|
-
const p = bodyTransform
|
|
1763
|
+
const p = bodyTransform;
|
|
1741
1764
|
if (runtime.renderSnap) {
|
|
1742
1765
|
runtime.renderSnap = false;
|
|
1743
|
-
runtime.renderPrevPos.set(p.
|
|
1744
|
-
runtime.renderCurPos.set(p.
|
|
1766
|
+
runtime.renderPrevPos.set(p.translation_x, p.translation_y, p.translation_z);
|
|
1767
|
+
runtime.renderCurPos.set(p.translation_x, p.translation_y, p.translation_z);
|
|
1745
1768
|
return;
|
|
1746
1769
|
}
|
|
1747
1770
|
runtime.renderPrevPos.copy(runtime.renderCurPos);
|
|
1748
|
-
runtime.renderCurPos.set(p.
|
|
1771
|
+
runtime.renderCurPos.set(p.translation_x, p.translation_y, p.translation_z);
|
|
1749
1772
|
}
|
|
1750
1773
|
|
|
1751
1774
|
/**
|
|
@@ -1759,7 +1782,7 @@ export class FirstPersonPlayerControllerSystem extends System {
|
|
|
1759
1782
|
* @private
|
|
1760
1783
|
*/
|
|
1761
1784
|
_assertTickInvariants(controller, runtime, bodyTransform) {
|
|
1762
|
-
const p = bodyTransform
|
|
1785
|
+
const p = bodyTransform;
|
|
1763
1786
|
assert.ok(Number.isFinite(runtime.bodyYaw),
|
|
1764
1787
|
"FP invariant: runtime.bodyYaw is non-finite (camera yaw corrupted)");
|
|
1765
1788
|
assert.ok(Number.isFinite(runtime.eyePitch),
|
|
@@ -1773,7 +1796,7 @@ export class FirstPersonPlayerControllerSystem extends System {
|
|
|
1773
1796
|
"FP invariant: runtime.velocity is non-finite",
|
|
1774
1797
|
);
|
|
1775
1798
|
assert.ok(
|
|
1776
|
-
Number.isFinite(p.
|
|
1799
|
+
Number.isFinite(p.translation_x) && Number.isFinite(p.translation_y) && Number.isFinite(p.translation_z),
|
|
1777
1800
|
"FP invariant: body position is non-finite",
|
|
1778
1801
|
);
|
|
1779
1802
|
}
|
|
@@ -1841,11 +1864,11 @@ export class FirstPersonPlayerControllerSystem extends System {
|
|
|
1841
1864
|
const cfg = controller.config;
|
|
1842
1865
|
const state = controller.state;
|
|
1843
1866
|
|
|
1844
|
-
const bodyTransform = ecd.getComponent(entity,
|
|
1867
|
+
const bodyTransform = ecd.getComponent(entity, Transform64);
|
|
1845
1868
|
if (bodyTransform === undefined) return;
|
|
1846
1869
|
|
|
1847
1870
|
if (controller.eyeEntity === -1) return;
|
|
1848
|
-
const eyeTransform = ecd.getComponent(controller.eyeEntity,
|
|
1871
|
+
const eyeTransform = ecd.getComponent(controller.eyeEntity, Transform64);
|
|
1849
1872
|
const camera = ecd.getComponent(controller.eyeEntity, Camera);
|
|
1850
1873
|
if (eyeTransform === undefined || camera === undefined) return;
|
|
1851
1874
|
|
|
@@ -1928,8 +1951,11 @@ export class FirstPersonPlayerControllerSystem extends System {
|
|
|
1928
1951
|
const worldOffset = SCRATCH_V3_B.copy(stack.offset);
|
|
1929
1952
|
worldOffset.applyQuaternion(qYaw0);
|
|
1930
1953
|
|
|
1931
|
-
eyeTransform.
|
|
1932
|
-
|
|
1954
|
+
eyeTransform.setTranslation(
|
|
1955
|
+
iPosX + worldOffset.x,
|
|
1956
|
+
iPosY + worldOffset.y,
|
|
1957
|
+
iPosZ + worldOffset.z
|
|
1958
|
+
);
|
|
1933
1959
|
|
|
1934
1960
|
// -- Eye rotation: body yaw × eye pitch × roll -------------------
|
|
1935
1961
|
// Bob roll mixes in for a subtle head sway (in phase with lateral bob).
|
|
@@ -1981,16 +2007,23 @@ export class FirstPersonPlayerControllerSystem extends System {
|
|
|
1981
2007
|
const qPitch = SCRATCH_Q_B.fromAxisAngle(Vector3.right, pitchTotal);
|
|
1982
2008
|
const qRoll = SCRATCH_Q_C.fromAxisAngle(Vector3.forward, rollTotal);
|
|
1983
2009
|
|
|
1984
|
-
|
|
1985
|
-
|
|
2010
|
+
// composed in a scratch: a transform keeps its rotation as four numbers and has no
|
|
2011
|
+
// quaternion product of its own
|
|
2012
|
+
SCRATCH_Q_EULER.multiplyQuaternions(qYaw, qPitch);
|
|
2013
|
+
SCRATCH_Q_EULER.multiply(qRoll);
|
|
2014
|
+
|
|
2015
|
+
eyeTransform.setRotation(
|
|
2016
|
+
SCRATCH_Q_EULER.x, SCRATCH_Q_EULER.y, SCRATCH_Q_EULER.z, SCRATCH_Q_EULER.w
|
|
2017
|
+
);
|
|
2018
|
+
|
|
2019
|
+
eyeTransform.updateMatrix();
|
|
1986
2020
|
|
|
1987
2021
|
// Dev-only camera-output guard (compiled out of prod). The composed eye
|
|
1988
2022
|
// direction is exactly what the player sees; if a spring (head-droop,
|
|
1989
2023
|
// breath nod) or lean ever drove pitch/roll to NaN, the camera would
|
|
1990
2024
|
// snap to garbage. Assert it here, at the source of the visible jump.
|
|
1991
|
-
const er = eyeTransform.rotation;
|
|
1992
2025
|
assert.ok(
|
|
1993
|
-
Number.isFinite(
|
|
2026
|
+
Number.isFinite(eyeTransform.rotation_x) && Number.isFinite(eyeTransform.rotation_y) && Number.isFinite(eyeTransform.rotation_z) && Number.isFinite(eyeTransform.rotation_w),
|
|
1994
2027
|
"FP invariant: composed eye rotation is non-finite (camera direction corrupted)",
|
|
1995
2028
|
);
|
|
1996
2029
|
|
|
@@ -267,7 +267,7 @@ export class LedgeGrab extends Ability {
|
|
|
267
267
|
// when the ledge was reached obliquely (a facing-relative offset
|
|
268
268
|
// would sink it into a thin wall).
|
|
269
269
|
const standoff = controller.config.body.radius + cfg.hangOffsetForward;
|
|
270
|
-
bodyTransform.
|
|
270
|
+
bodyTransform.setTranslation(
|
|
271
271
|
this._anchorX + this._nx * standoff,
|
|
272
272
|
this._edgeY + cfg.hangOffsetY,
|
|
273
273
|
this._anchorZ + this._nz * standoff,
|
|
@@ -201,7 +201,7 @@ export class Mantle extends Ability {
|
|
|
201
201
|
} else {
|
|
202
202
|
y = this._startY + (this._endY - this._startY) * easeOutCubic(t);
|
|
203
203
|
}
|
|
204
|
-
bodyTransform.
|
|
204
|
+
bodyTransform.setTranslation(x, y, z);
|
|
205
205
|
// On the path — no integration; velocity stays 0 until release.
|
|
206
206
|
runtime.velocityX = 0;
|
|
207
207
|
runtime.velocityY = 0;
|
|
@@ -126,7 +126,7 @@ export class Slide extends Ability {
|
|
|
126
126
|
runtime.velocityY = runtime.jumpInitialVy * cfg.slideJumpUpFactor;
|
|
127
127
|
runtime.midJump = true;
|
|
128
128
|
runtime.apexFired = false;
|
|
129
|
-
runtime.peakAltitude = bodyTransform.
|
|
129
|
+
runtime.peakAltitude = bodyTransform.translation_y;
|
|
130
130
|
controller.state.isVariableJumpCut = false;
|
|
131
131
|
controller.state.isAscending = true;
|
|
132
132
|
// Mastery: scale the impulse via JumpImpulse evaluators if any.
|