All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
-
Implement different priprities' types for systems. Separate all systems into EARLY, NORMAL and LATE executed.
-
Now only a single world's context is supported. In later builds there should be multiple worlds supported.
-
New integration tests were added for TinyECSUnityIntegration library
-
Integration tests of TinyECSUnityIntegration library was added for Unity tests runner
-
The API of IWorldContext was extended with new public methods GetSingleEntityWithAll and GetSingleEntityWithAny
-
A new method IWorldContext.GetUniqueEntity was added.
-
Now disposable entities can live for extra frames using a new builtin component TEntityLifetimeComponent
-
Two new types which are EntityId and SystemId were introduced as strongly typed versions of identifiers.
-
Issue #31 : DependencyInjector throws NullReferenceException when DependencyInjector.Init is called before WorldContext's instance is created
-
Issue #30 : DependencyInjector class doesn't work correctly for nested views
-
Issue #29: If you try to create a new entity no matter disposable or not the application is freezed
-
Issue #27 : RegisterViewSystem initializes its views for a few times
-
Issue #26 : WorldContext.GetSingleEntityWithAll and WorldContext.GetSingleEntityWithAny return null in some cases
-
Issue #25 : ComponentManager.AddComponent throws ComponentAlreadyExistsException for entity which even has no component of this type
-
Issue #24 : BaseView.mLinkedEntityId has invalid value when RegisterSubscription is invoked for BaseStaticView's instances
- Issue #31 : DependencyInjector throws NullReferenceException when DependencyInjector.Init is called before WorldContext's instance is created
- New integration tests were added for TinyECSUnityIntegration library
- Issue #30 : DependencyInjector class doesn't work correctly for nested views
- Integration tests of TinyECSUnityIntegration library was added for Unity tests runner
- Now disposable entities can live for extra frames using a new builtin component TEntityLifetimeComponent
- Issue #29: If you try to create a new entity no matter disposable or not the application is freezed
- Issue #27 : RegisterViewSystem initializes its views for a few times
- Issue #26 : WorldContext.GetSingleEntityWithAll and WorldContext.GetSingleEntityWithAny return null in some cases
- Issue #25 : ComponentManager.AddComponent throws ComponentAlreadyExistsException for entity which even has no component of this type
- The API of IWorldContext was extended with new public methods GetSingleEntityWithAll and GetSingleEntityWithAny
- Issue #24 : BaseView.mLinkedEntityId has invalid value when RegisterSubscription is invoked for BaseStaticView's instances
- Two new types which are EntityId and SystemId were introduced as strongly typed versions of identifiers.
- A new method IWorldContext.GetUniqueEntity was added.
- Issue #22: DependencyInjector always throws ArgumentNullException on application's start
-
An extension method CreateAndGetEntity for IWorldContext was added. The main goal for that is to simplify entity creation.
-
A new concept of unique components was introduced. Now if a user implements his/her component from IUniqueComponent then the only instance of this one will exists in the world context.
-
Add a new type which is SystemsPackage that allows to unite a bunch of related systems together.
-
Now DependencyInjector supports initialization of multiple BaseView components per single GameObject, Issue #20
-
Now all reactive systems accept all entities that are created despite execution order
-
Exceptions handling within EventManager.Notify method was redesigned.
-
Fixed an issue #19 "Intercommunicating reactive systems don't receive all messages of the frame"
-
Fixed an issue #17 "An entity that was created using previously deteled one has its components"
-
Fixed an issue #17
-
Increased robustness of the framework
- An extension method CreateAndGetEntity for IWorldContext was added. The main goal for that is to simplify entity creation.
- A new concept of unique components was introduced. Now if a user implements his/her component from IUniqueComponent then the only instance of this one will exists in the world context.
- Add a new type which is SystemsPackage that allows to unite a bunch of related systems together.
- Exceptions handling within EventManager.Notify method was redesigned.
- Now DependencyInjector supports initialization of multiple BaseView components per single GameObject, Issue #20
- Fixed an issue #19 "Intercommunicating reactive systems don't receive all messages of the frame"
- Now all reactive systems accept all entities that are created despite execution order
- Fixed an issue #17 "An entity that was created using previously deteled one has its components"
-
Fixed an issue #17
-
Increased robustness of the framework
-
A components iterator that provides easy way of enumerating over all components that some entity has
-
Add custom debug inspectors for WorldContextsManager, EntityObserver and SystemManagerObserver types
-
Implement ToString() method for Entity type
-
Add template project for Unity3D and corresponding tutorial sample, which demonstrates how to integrate TinyECS into Unity3D
-
Fixed an issue "Created with GameObjectFactory entities don't have TViewComponent attached to them" #11
-
Fixed an issue "Reactive systems don't response on to events that are generated with IUpdateSystem implementations" #6
- Now all reactive systems are executed after all IUpdateSystems
-
A components iterator that provides easy way of enumerating over all components that some entity has
-
Add custom debug inspectors for WorldContextsManager, EntityObserver and SystemManagerObserver types
-
Implement ToString() method for Entity type
- Now you can subscribe same reference to a system in different roles. For example, as initializing system and as update system at the same time
-
A bunch of helper types for TinyECS were added into the project to implement an integration with Unity3D.
-
Support of static and dynamically created views was implemented.
-
A new type of entities was introduced which are disposable entities.
- Now event manager separates types of delivering events to their listeners. Single- and broadcasting are now supported.
-
IEntityManager.GetEntitiesWithAll's implementation was fixed.
-
EntityManager.DestroyEntity's implementation was fixed. Now it correctly destroys given entities.