Releases: nilpunch/massive-ecs
Releases · nilpunch/massive-ecs
v18.1.2
v18.1.1
v18.1.0
v18.0.0
Changed
- Empty type optimization (tags) now only applies to value types, instead of any type without fields.
- Renamed
TrimmedFilter
toReducedFilted
and tweak some internal method names. - Reworked
TypeIdentifier
andGenericLookup
. - Optimize
FilterView.ForEach()
methods for cases where a minimal set is one of the selected data sets. - Moved serialization to a separate package to eliminate unsafe code from the core library.
PageSequence
now usePage
struct to iterate.MassiveRegistry
now saves first empty forMassiveEntities
on creation.
Fixed
- IL2CPP stripping for
ICopyable<T>
. Entities.HasHoles
worked incorrectly forPacking.WithPersistentHoles
.
v18.0.0-alpha
Changed
- Empty type optimization (tags) now only applies to value types, instead of any type without fields.
- Renamed
TrimmedFilter
toReducedFilted
and tweak some internal method names. - Reworked
TypeIdentifier
andGenericLookup
. - Optimize
FilterView.ForEach()
methods for cases where a minimal set is one of the selected data sets. - Moved serialization to a separate package to eliminate unsafe code from the core library.
PageSequence
now usePage
struct to iterate.MassiveRegistry
now saves first empty forMassiveEntities
on creation.
Fixed
- IL2CPP stripping for
ICopyable<T>
.
v17.0.0
Iteration stability, sets customization, groups rework, performance improvements and more.
- Added: Copy, move, and swap customization for data sets.
- Added:
DynamicFilter
for builder-like style when working with non-generic filtering. - Added:
TrimmedFilter
, which removes the leading set from included ones, optimizing iteration. - Added: New packing option
WithPersistentHoles
. - Changed: Renamed
PackingMode
toPacking
. - Changed:
Packing
now dynamically changes for the iteration leader,
ensuring each unique entity appears only once during iteration in most cases,
or in all cases when using the new packing option. - Changed: Hide setters in data structures. Added full-state assignment API.
- Changed: Renamed
IdsSource
toPackedSet
. - Changed: Renamed
IManaged<T>
toICopyable<T>
. Now used also for entity components cloning. - Changed: Renamed
NonOwningGroup
toGroup
. - Removed:
OwningGroup
for SoA access. It may return in some form in the future. - Removed:
GroupView
. Groups are now used directly as is. - Removed:
GroupPage
,GroupPageSequence
andIOwnSelector
. - Removed: Runtime/Utils folder.
- Removed:
RegistryReflectionExtensions
. Reflection methods remain directly accessible. - Fixed:
Il2CppSetOption
was not applied correctly.
v17.0.0-beta
Iteration stability improvements and groups rework.
- Changed:
PackingMode
now dynamically changes for the iteration leader,
ensuring each unique entity appears only once during iteration in most cases. - Changed: Hide setters in data structures. Added full-state assignment API.
- Changed: Renamed
NonOwningGroup
toGroup
. - Removed:
OwningGroup
for SoA access. It may return in some form in the future. - Removed:
GroupView
. Groups are now used directly. - Removed:
GroupPage
,GroupPageSequence
andIOwnSelector
. - Removed: Utils folder.
- Removed:
RegistryReflectionExtensions
. Reflection methods remain directly accessible. - Fixed:
Il2CppSetOption
was not applied.
v16.2.0
Some minor improvements.
- Added:
Clear
method forEntities
. - Added:
Clear
andClear<T>
extension methods forRegistry
. - Added: Enumerator for
Group
. - Changed: Renamed
Include
andExclude
properties toIncluded
andExcluded
.
This change affects filters, groups, and some variables. - Removed:
AsIds
extension method for groups. Use the new enumerator instead.
v16.1.0
Non-generic API for a better IL2CPP experience.
- Added: Non-generic version of the
Get
method forGroupRegistry
, making it the primary version. - Added:
GroupPageSequence
andGroupPage
types to support working with owning groups in a non-generic manner. - Added:
PageSize
property toRegistry
. - Changed:
Entities.AfterCreated
now returns anint
instead of anEntity
. - Changed: Renamed
RegistryConfig.DataPageSize
toPageSize
. - Changed: Group serialization adjusted to align with the new non-generic primary storage.
- Fixed: Non-owning groups were not functioning when no included sets were present.
Now they default to observingEntities
.
v16.0.0
Major devirtualization and other optimizations.
- Added: Fourth generic parameter for all Views.
- Added:
Group
class, replacing theIGroup
interface. - Added:
IdsSource
class, replacing theIIdsSource
interface. - Changed: Replaced
IFilter
and other filters withFilter
. - Changed: Replaced
IGroup
andIOwningGroup
withGroup
andOwningGroup
classes. - Changed: Increased default page size from 1024 to 16384 (except
MassiveRegistry
, which remains 1024). - Removed:
IGroup
,IFilter
, andIIdsSource
interfaces. - Removed:
SetCapacity
parameter; now defaults to 0 across the board.