scene_dash_v2 0.8.1
scene_dash_v2: ^0.8.1 copied to clipboard
ECS gameplay architecture for flutter_scene 3D games: entities, systems, schedules, events, state machines, input, physics, reactive widgets, headless tests.
Changelog #
0.8.1 #
game.visuals<T>(build, runIf:)builds an entity's node and render-side components when it gainsT, only while aSceneexists (the default gate). The builder runs at the command boundary after the whole spawn has landed, and the node mounts in that same boundary. Bundles stay pure data, so headless tests spawn the real ones.- Ground-plane helpers:
position.planarDistanceTo(other),position.headingTo(other),headingDirection(yaw),angleDifference(a, b)andturnToward(from, to, maxDelta). world.entityOf(node)resolves a node, or its nearest bound ancestor, to its entity.overlapSphereEntitiesandoverlapBoxEntitiesare onWorldand no longer take aSceneNodeIndex.- Removed
NodeTransformOps.localTranslationInto.
0.8.0 #
- Requires
scene_dash_v2_core0.8.0. EntityBuilder<T>reads a subtype through its supertype's store instead of creating a split store for it.InterpolateTransformdocs: writeSceneTransformonly in fixed schedules, andsnap()after a respawn as well as a teleport.
0.7.1 #
- Under a scene
PhysicsWorld,FixedTime.alphareadsPhysicsWorld.interpolationAlphainstead of re-deriving the engine's accumulator.
0.7.0 #
InputBindings<A>(keys: {...})andTouchAction<A>map keys and touch areas ontoButtonInput<A>. Sources on one action are counted; losing focus, pausing the app or unmounting cancels what they held.TouchAction(cancelOnDrag: true)cancels once the pointer leaves touch slop. Debug builds warn when the bound input is not the world's resource, since its edges would never latch.InterpolateTransform: an opt-in component whose node gets the blend of the last two fixed steps atFixedTime.alpha.snap()skips the blend after a teleport.SceneTransformkeeps the real value. Under aPhysicsWorldthe alpha follows the scene's physics accumulator.Static: transform sync writes the entity once, and again only when itsSceneTransformis re-added orStaticis removed. Only the changed rows are rewritten.onTickclamps the wall delta tomaxFrameDelta(0.25 s, abootparameter) before the clock scales it, so bothdeltaandunscaledDeltaare clamped.WorldGame.reassemblereports once in debug that schedule changes need a hot restart.- Requires scene_dash_v2_core 0.7.0.
0.6.1 #
- minor perf upgrades
- upgrade to flutter scene 0.24.3
0.6.0 #
SceneTransformsync writes a node only when its transform or bound node changed (or the node's matrix was replaced); unchanged entities cost about half as much per frame.- Scene mounting tracks
NodeRefrow changes instead of rescanning every bound entity. A node shared by several entities stays mounted until the last one drops it, and every entity whose node is mounted isMounted. EntityBuilder.matchingtakeswhere: (q) => q.having<T>()instead ofrequire:/exclude:Typelists.Game.emitroutes likeworld.emit.- Requires scene_dash_v2_core 0.6.0.
0.5.6 #
- upgrade to flutter scene 0.24
0.5.5 #
- breaking: removed
equalsfromEntityBuilder,WorldBuilder, andWorldBuilder.pulse.selectnow compares lists, sets, maps, and iterables by contents, one level deep, against a kept copy, so returning a live list works without copying it. WorldBuilder.pulsepasses that kept copy totriggerasprevious, so in-place changes are visible to it.EntityBuilder.matchingkeeps its entity while it matches and skips rescans until a watched store changes. Per-frame cost no longer grows with world size.- Split the combat sample's skill bar into one builder per slot.
- Requires scene_dash_v2_core 0.5.4.
0.5.4 #
- Fix transform sync leaving a node's authored decomposition stale, so a
later
node.rotation/node.scalewrite snapped it back. - Fix headless games booted with
physics:never running fixed schedules. - Ignore
onTickaftershutdowninstead of throwing every frame. - Remove the unused
Game.dispatch. useworld.sendEventorworld.emit.
0.5.3 #
- Dispose widget event readers on unmount instead of retaining a reader pool.
- Complete scene-driver and frame-notifier cleanup when app shutdown fails.
- Send unclaimed-component diagnostics to the default debug diagnostic sink.
- Update node-binding documentation and compile representative examples in CI.
- Remove the inspector widgets, inspector snapshot API, package references, documentation, and example overlay controls.
- Add
equals:to bothEntityBuilderforms and document snapshot selections. - Prevent event callback failures from replaying UI effects; report failures through Flutter and continue delivering the batch.
- Reject negative polling intervals and non-finite or non-positive pulse durations, including when widgets update in release builds.
- Refresh entity and world selections when widgets update, including during polling intervals.
- Reset pulse feedback on game and builder mode changes while preserving active feedback across parent rebuilds.
- Restart polling when the game or interval change.
0.5.2 #
- A variety of ordering fixes for events and command buffers.
0.5.1 #
- breaking: removed debugDraw since flutterscene now provides DebugDraw itself.
- upgrade to flutter_scene 0.23
- updated examples
0.5.0 #
- upgrade to flutter scene 0.22.1 and introduces a way to use authored components for .fscene in ecs via installSceneBaker
0.4.0 #
- upgrade deps
0.3.0 #
- adds gameTween, vector3Tween, colorTween, smoothTo and moveToward
0.2.0 #
- adds new routine mechanism for better organizing sequenced game logic
0.1.3 #
- adds custom schedules feature
0.1.2 #
- minor fixes for pub dev
0.1.0 #
First release.