- Changed: Divided
Assign<T>()
into two distinct overloads - with data initialization and without it. This will allow the sets to be used as objects pools. - Changed: Order of groups to more common pattern
Group<Include, Exclude, Owned>
.
Devirtualize usages for better inlining and performance.
- Changed: Replaced
ISet
andIReadOnlySet
withSparseSet
. - Changed: Replaced
IDataSet<T>
andIReadOnlyDataSet<T>
withDataSet<T>
. - Changed: Replaced
IRegistry
withRegistry
. - Changed: Replaced
IEntities
withEntities
. - Removed:
IEntities
andIRegistry
interfaces.
Refactoring and some API change.
- Changed: Renamed registry
Components<T>
extension method toDataSet<T>
. - Changed: Renamed registry
Any<T>
extension method toSet<T>
.
Minor API renaming, but major up. None the less.
- Changed: Renamed
IView
methods. - Changed: Renamed
Invokers
toActions
.
- Changed: Renamed
EntityFillInvoker
andEntityFillEntitiesInvoker
toFillIdsInvoker
andFillEntitiesInvoker
.
- Changed: Removed final bits of unsafe code from the project.
- Added: Id enumerators for the views.
- Added:
Include()
andExclude()
extension methods for basicView
. That simplifies querying.
- Changed: Major redesign of the views API for ease of use and extensibility.
- Removed:
Fill()
extension methods fromIRegistry
. Views still have them.
- Optimized: Added funky bitwise stuff into filters, so now they are working 20% faster.
- Added:
Fill()
extension methods forIRegistry
to populate the result list with filtered ids and entities.
- Changed: Removed
SetRegistry
parameter fromGet()
method inFilterRegistry
andGroupRegistry
. Now it is proper dependency. - Removed:
MassiveGroupRegistry
has been removed, and nowMassiveRegistry
is responsible for saving and rollbacking groups. - Changed: Reworked protected
Registry
ctor to fit API changes.
- Changed: Set selectors now return distinct sets. This is useful when the user duplicates generic arguments. We can't prevent this from happening at compile time, so now at least it doesn't affect runtime.
- Changed: Items sorting in
GenericLookup
now works with full type names instead of type names hashes, which eliminates possible problems related to hash collisions.
- Added:
ActionRef
delegates similar toEntityActionRef
, but without id parameter. - Added:
ForEach()
andForEachExtra()
extension methods overloads withActionRef
andActionRefExtra
parameters forIView
.
- Added:
Clone()
extension method forIRegistry
to clone entities.
- Added:
Fill()
extension method forIView
to populate the result list with filtered ids.
- Changed: Replaced
IRegistry
parameter in views ctors with fields initialization.