Skip to content

Releases: itsBuggingMe/Frent

Frent v0.5.7-beta

23 Aug 18:27
Compare
Choose a tag to compare

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 all ComponentIDs on an entity that are not sparse.
  • Entity.ComponentTypes will return an array of all ComponentIDs on an entity, and may allocate if a sparse component is present.
  • Entity can be used in a foreach loop to get all ComponentIDs 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

19 Jun 17:14
Compare
Choose a tag to compare

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 a World.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

14 Apr 19:25
Compare
Choose a tag to compare

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.

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

25 Mar 12:41
Compare
Choose a tag to compare

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

24 Mar 21:01
Compare
Choose a tag to compare

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

24 Mar 20:10
Compare
Choose a tag to compare

Changes

  • Component<T>.StoreComponent() marked obsolete due to ComponentHandle.Create<T>()
  • RuleTypes marked obsolete as it was unused.

Bug Fixes

  • Fix off-by-one when iterating through with delegates.
  • Initable and IDestroyable no longer require a component interface implementation.

Full Changelog: v0.5.4-beta...v0.5.4.1-beta

v0.5.4-beta

23 Mar 13:05
Compare
Choose a tag to compare

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() and Detach() methods to CommandBuffer.

Bug Fixes

  • Fix IndexOutOfRangeException in EntityQueryEnumerator by @reejk
  • Command Buffer now throws InvalidOperationException when Playback is called during world update.

New Contributors

  • @reejk made their first contribution in #6

Full Changelog: v0.5.3.1-beta...v0.5.4-beta

v0.5.3.1-beta

19 Mar 20:10
Compare
Choose a tag to compare
  • Fixed issues with generic source generator.

Full Changelog: v0.5.3-beta...v0.5.3.1-beta

v0.5.3-beta

19 Mar 01:45
bf14619
Compare
Choose a tag to compare

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

17 Mar 23:59
a6382ea
Compare
Choose a tag to compare

First GitHub release!

I plan on using this in the future as a changelog and to track breaking changes.