Releases: nilpunch/massive-ecs
Releases · nilpunch/massive-ecs
v19.0.1
v19.0.0
BREAKING CHANGE: Major renaming, groups removal.
Changed
- Renamed
Registryclass toWorld. - Changed sets API:
- Renamed
Assign(id)toAdd(id). - Renamed
Unassign(id)toRemove(id). - Renamed
IsAssigned(id)toHas(id). - Renamed
Assign(id, data)shortcut toSet(id, data). Add(id)andRemove(id)returnstrueif the component is added or removed
andfalseif it is already present or not there.
- Renamed
- Added assertions for negative arguments in some methods.
Added
Clone()andCopyTo(other)methods toSparseSet,DataSet<T>andWorld.
Removed
- Groups.
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
TrimmedFiltertoReducedFiltedand tweak some internal method names. - Reworked
TypeIdentifierandGenericLookup. - 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.
PageSequencenow usePagestruct to iterate.MassiveRegistrynow saves first empty forMassiveEntitieson creation.
Fixed
- IL2CPP stripping for
ICopyable<T>. Entities.HasHolesworked 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
TrimmedFiltertoReducedFiltedand tweak some internal method names. - Reworked
TypeIdentifierandGenericLookup. - 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.
PageSequencenow usePagestruct to iterate.MassiveRegistrynow saves first empty forMassiveEntitieson 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:
DynamicFilterfor 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
PackingModetoPacking. - Changed:
Packingnow 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
IdsSourcetoPackedSet. - Changed: Renamed
IManaged<T>toICopyable<T>. Now used also for entity components cloning. - Changed: Renamed
NonOwningGrouptoGroup. - Removed:
OwningGroupfor SoA access. It may return in some form in the future. - Removed:
GroupView. Groups are now used directly as is. - Removed:
GroupPage,GroupPageSequenceandIOwnSelector. - Removed: Runtime/Utils folder.
- Removed:
RegistryReflectionExtensions. Reflection methods remain directly accessible. - Fixed:
Il2CppSetOptionwas not applied correctly.
v17.0.0-beta
Iteration stability improvements and groups rework.
- Changed:
PackingModenow 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
NonOwningGrouptoGroup. - Removed:
OwningGroupfor SoA access. It may return in some form in the future. - Removed:
GroupView. Groups are now used directly. - Removed:
GroupPage,GroupPageSequenceandIOwnSelector. - Removed: Utils folder.
- Removed:
RegistryReflectionExtensions. Reflection methods remain directly accessible. - Fixed:
Il2CppSetOptionwas not applied.
v16.2.0
Some minor improvements.
- Added:
Clearmethod forEntities. - Added:
ClearandClear<T>extension methods forRegistry. - Added: Enumerator for
Group. - Changed: Renamed
IncludeandExcludeproperties toIncludedandExcluded.
This change affects filters, groups, and some variables. - Removed:
AsIdsextension method for groups. Use the new enumerator instead.