DeltaECS.Systems
0.0.35
See the version list below for details.
dotnet add package DeltaECS.Systems --version 0.0.35
NuGet\Install-Package DeltaECS.Systems -Version 0.0.35
<PackageReference Include="DeltaECS.Systems" Version="0.0.35" />
<PackageVersion Include="DeltaECS.Systems" Version="0.0.35" />
<PackageReference Include="DeltaECS.Systems" />
paket add DeltaECS.Systems --version 0.0.35
#r "nuget: DeltaECS.Systems, 0.0.35"
#:package DeltaECS.Systems@0.0.35
#addin nuget:?package=DeltaECS.Systems&version=0.0.35
#tool nuget:?package=DeltaECS.Systems&version=0.0.35
DeltaECS.Systems
DeltaECS.Systems runs world-bound systems in deterministic dependency
batches. Systems that only access different component ids can run together;
structural and unknown world access forms an exclusive phase.
The package contains the runtime contract and scheduler. When a system is
declared as a top-level partial class, the DeltaECS generator collects its
generated API calls and supplies the Access property automatically. Keep an
explicit Access property when the access set is dynamic or comes from an
external source. Explicit ComponentId selectors and calls outside the
generated API are treated as unknown access, so the scheduler keeps them in an
exclusive phase.
using Delta.ECS;
using Delta.ECS.Systems;
using var world = new World();
world.Layouts.Register<Velocity>(new SchemaId(1));
world.Layouts.Register<Position>(new SchemaId(2));
Query movementQuery = world.WhereAll<Position, Velocity>();
Entity mover = world.Create<Position>();
world.Add(mover, new Velocity());
using var scheduler = new SystemScheduler(world);
var movement = new MovementSystem(movementQuery) { World = world };
scheduler.Add(movement);
scheduler.Tick();
public partial class MovementSystem : ISystem
{
private readonly Query _query;
public World World { get; init; } = null!;
public MovementSystem(Query query) => _query = query;
public void Tick()
{
World.ForEach(in _query,
static (ref Position p, in Velocity v) => p.X += v.X);
}
}
public struct Position { public float X; }
public struct Velocity { public float X; }
SystemAccess uses the ComponentId values registered in the system's world.
Adds, Removes, entity creation/destruction, unknown access and nested use of
the DeltaECS parallel executor are exclusive to keep immediate world mutation
safe. The scheduler compiles its graph when systems are added or removed and
reuses the resulting batches on subsequent ticks when dependency-aware
scheduling is enabled.
To run every system sequentially in registration order, disable schedule optimization:
using var scheduler = new SystemScheduler(world, optimizeSchedule: false);
Linear mode does not inspect system access metadata or create scheduler worker
threads. WorkerCount is 1 in this mode.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.0.50 | 0 | 10/11/2026 |
| 0.0.49 | 0 | 10/11/2026 |
| 0.0.48 | 29 | 10/10/2026 |
| 0.0.47 | 37 | 10/10/2026 |
| 0.0.46 | 46 | 10/9/2026 |
| 0.0.45 | 44 | 10/9/2026 |
| 0.0.44 | 39 | 10/9/2026 |
| 0.0.43 | 49 | 10/8/2026 |
| 0.0.42 | 46 | 10/8/2026 |
| 0.0.41 | 72 | 10/5/2026 |
| 0.0.40 | 87 | 10/4/2026 |
| 0.0.39 | 96 | 10/4/2026 |
| 0.0.38 | 91 | 10/3/2026 |
| 0.0.37 | 89 | 10/3/2026 |
| 0.0.36 | 86 | 10/2/2026 |
| 0.0.35 | 92 | 10/2/2026 |
| 0.0.34 | 84 | 10/2/2026 |
| 0.0.33 | 89 | 9/30/2026 |
| 0.0.32 | 103 | 9/22/2026 |