- New Feature: per-component filters, via
Stream.Where(...))
var myStream = _world.Query<Vector3, int>().Stream();
var myStreamOver9000 = myStream.Where((in int i) => i > 9000);
var myStreamOver9000LeftOnly = myStreamOver9000.Where((in Vector3 v) => v.X < 0.0f);-
New Feature: binary packaged for .NET 8, .NET 9, and .NET 10 frameworks.
-
Breaking Change: Streams as readonly record structs. (only marginally affects API, but does have implications for Subset/Exclude Filter states, which can only be set when creating a new Stream instance, e.g. via the
withkeyword) -
Breaking Change: Streams no longer inherit all the subset methods (e.g., a
Stream<ComponentA, ComponentB>no longer possesses aFor(ComponentAction<ComponentA>)action, the stream will always enumerate all component data. You can obtain a newStreamthrough the exposedQueryfield on an existingStream. -
Fix: Isse #38,
InvalidOperationExceptioninComponent.ToString() -
Fix: Double-Free in
QueryBuilderlead to corruption ofMaskPool. -
Improvement: reduced thread locks everywhere.
Full Changelog: 0.5.16-beta...0.6.0