- Split core ECS wrapper into gaemstone.ECS project
- Module loading part of gaemstone, still
- Remove ComponentHooks (for now)
- Fix IL for nullable references in IterActionGenerator
- Move from Silk.NET.Maths to System.Numerics
- Add Flecs.Core.Component and .Identifier
- Add Flecs.Doc module
- Add gaemstone.Doc module
- Add [Symbol] to register entities with symbols
This decision will probably be reversed.
- World generator picks random blocks, more color!
Changes relating to ImGui:
- Use custom ImGUI.NET version with local changes to get
access to internal functions. Currently waiting for
upstream to implement this functionality.
- Add font support, and the fonts OpenSans and ForkAwesome
- Add an entity inspector window to browse entities, see
their contents and find references to other entities.
- Update LangVersion to "preview", which allows us
to use the generic attributes feature from C# 11
- Any attribute implementing ICreateEntityAttribute
now registers an entity for the marked type
- [Proxy<T>] registers type not owned by the module
- [Add<TEntity>] and [Add<TRelation, TTarget>]
which will call EntityBuilder.Set(...) on registration
- A number of shorthand attributes for [Add<...>]
- Re-introduce [Singleton]
- IterActionGenerator has been cleaned up a bit ..
- .. and as a result now supports queries, which don't
by design don't match any (non-sourced) entities
- Add [DependsOn] to modules that were missing them
- EntityPath now operates on an array of UTF8 strings
- EntityBuilder.Build, Lookup, ... use separator-less API
- Multiple TempAllocators can be acquired nested
- Add Identifier.RelationUnsafe and .TargetUnsafe
- Identifier(Ref).AsPair returns nullable
- Throw when adding > 31 IDs to EntityBuilder
- Add static Entity.None field, represents default value
- Add Entity.IsSome property, opposite of IsNone
- EntityBase.Add(string) now looks up symbol
Add EntityPath class, wraps a UTF8 string in-memory
which represents an entity path within flecs' hierarchy.
- Path separator is now forward-slash instead of dot
- Only unicode letters, numbers, dot, dash and underscore
are valid characters to use for an entity name
Add IAllocator interface and implementations, which
handle unmanaged allocations (i.e. for use with interop).
- ToFlecs methods now use an IAllocator passed to them
- Use TempAllocator (one per thread) to allocate flecs structs
Add basic ECS-based resource handling / loading.
- Resources now loads from any assembly, including
EntityPaths that represents an assembly + resource path
- TextureManaged has been rewritten, others will follow
- Move default shaders to gaemstone.Client