Releases: itsBuggingMe/Frent
Releases · itsBuggingMe/Frent
Frent v0.5.7-beta
Sparse Components!
- Just implement
ISparseComponent
on a component, and Frent will store it in sparse sets rather than archetypes. Entity.ArchetypicalComponentTypes
api returns an array of allComponentID
s on an entity that are not sparse.Entity.ComponentTypes
will return an array of allComponentID
s on an entity, and may allocate if a sparse component is present.Entity
can be used in aforeach
loop to get allComponentID
s without allocating.WorldMarshal.GetSparseSet<T>
to get raw sparse set data.
Full Changelog: v0.5.6-beta...v0.5.7-beta
Frent v0.5.6-beta
Changes
- #8 Added
Entity.AddFromHandles(params ReadOnlySpan<ComponentHandle>)
api. - #8 Added
World.CreateFromHandles(ReadOnlySpan<ComponentHandle> componentHandles, ReadOnlySpan<TagID> tags = default);
api. - #17 New
MultithreadUpdateTypeAttribute
class. Filter attributes that inherit this class will be multithreaded when called in aWorld.Update
method. - #15 Multiple component update interfaces!
- A component can now implement multiple component update interfaces.
- Update methods can have more than one filter attribute as well.
- The interface types must be different; the same interface cannot be implemented twice.
Breaking Changes
- New builder style query syntax.
Bug Fixes
- #13:
World.Dispose
now calls the destroyer on components. - #12:
Entity.AddAs
now properly invokes component events. - Fix issue with source generation on unity.
Full Changelog: v0.5.5.1-beta...v0.5.6-beta
Frent v0.5.5.1-beta
Changes
- Complete internal refactoring of the source generator
- Source generator now supports inner types, private inner types, and unbound generic interface components.
- New diagnostics for some non-partial components and components that implement multiple component interfaces.
World.UpdateComponent(ComponentID)
for updating all entities with a specific component type.- Entity creation during world updates fully supported.
- You can create entities during world updates and call entity methods like
Get<T>
immediately. - Minimal performance penalty for creating components during world updates - usually not even a component copy.
- You can create entities during world updates and call entity methods like
Breaking Changes
DeferredCreate
is no longer present on entities created during a world update, as it is no longer needed.
Bug Fixes
- Fixed optimization with archetype traversal when using non-generic entity methods.
- Fix
IndexOfOutRangeException
in query enumerator - Fix bug with premature ID recycling with component handles.
- Fix issue with component flags and versioning with traversing archetypes.
- Fix issue with the last component not being copies in
World.CreateFromObjects()
.
Full Changelog: v0.5.4.3-beta...v0.5.5.1-beta
v0.5.4.3-beta
Bug Fixes
- Fixed bug relating to interface ordering and source generation.
Full Changelog: v0.5.4.2-beta...v0.5.4.3-beta
Frent v0.5.4.2-beta
Bug Fixes
- Improved how the source generator handled multiple base interfaces.
Full Changelog: v0.5.4.1-beta...v0.5.4.2-beta
Frent v0.5.4.1-beta
Changes
Component<T>.StoreComponent()
marked obsolete due toComponentHandle.Create<T>()
RuleTypes
marked obsolete as it was unused.
Bug Fixes
- Fix off-by-one when iterating through with delegates.
Initable
andIDestroyable
no longer require a component interface implementation.
Full Changelog: v0.5.4-beta...v0.5.4.1-beta
v0.5.4-beta
Changes
- More optimized world update when filtering by attribute.
- New
Config.UpdateDeferredCreationEntities
option to allow updating newly created entities on the same tick. - Removed array allocation in netstandard when adding more than 1 component.
- Added
Tag()
andDetach()
methods toCommandBuffer
.
Bug Fixes
- Fix
IndexOutOfRangeException
inEntityQueryEnumerator
by @reejk - Command Buffer now throws
InvalidOperationException
whenPlayback
is called during world update.
New Contributors
Full Changelog: v0.5.3.1-beta...v0.5.4-beta
v0.5.3.1-beta
- Fixed issues with generic source generator.
Full Changelog: v0.5.3-beta...v0.5.3.1-beta
v0.5.3-beta
Changes
- Removed array allocation on netstandard2.1 when adding/removing 1 component
- Added support for generic components e.g.
SomeComponent<T> : IComponent
Full Changelog: v0.5.2-beta...v0.5.3-beta
v0.5.2-beta
First GitHub release!
I plan on using this in the future as a changelog and to track breaking changes.