Breaking Changes
5.0.0 -> 6.0.0
Dropped explicit builds for
netframework
so now its onlynetstandard2.0
Root
Events
namespace has been removed and events live in related namespacesObservableGroup
implementation now requires anICollectionObservableGroupTracker
4.0.0 -> 5.0.0
Large parts of the system were moved to the
SystemsRx
project such asISystem
ISystemExecutor
IPool
Some namespace refactors that would break existing code but should be quick to fix
EcsRx now has a dependency on
SystemsRx
and related projects it builds on top of
3.12.0 -> 4.0.0
IEcsRxPlugin
has been renamed toISystemsRxPlugin
and lives inSystemsRx.Infrastructure
EventReactionSystem<T>
no longer exists, the same convention can be mapped toIReactToEventSystem
fromSystemsRx
IBasicSystem
has changed and has noIEntity
dependencies and lives inSystemsRx
, the same convention can be mapped toIBasicEntitySystem
inEcsRx
IManualSystem
no longer has a group or gets passedIObservableGroup
, you can injectIObservableGroupManager
yourself if you need itEcsRx
now depends uponSystemsRx
, all the classes inSystemsRx
were originally inEcsRx
but now can be used without theECS
related paradigm dependenciesISystem
no longer contains anIGroup
and now lives inSystemsRx
there is now anIGroupSystem
which represents a system with aIGroup
3.10.0 -> 3.11.0
IEntityCollectionManager
no longer exists, it is now justIObservableGroupManager
3.9.0 -> 3.10.0
IEntityCollectionManager
no longer contains EntityCollections its now withinIEntityDatabase
, which is within there
3.8.0 -> 3.9.0
IObservableScheduler
is now known asIUpdateScheduler
and uses anElapsedTime
object notTimeSpan
3.0.0 -> 3.8.0
Group
no longer contains Predicate and has been split intoGroupWithPredicate
objectIObservableScheduler
is now insideEcsRx
core and not infrastructure
2.0.0 -> 3.0.0
Some extension methods around groups have been removed
Reactive Systems moved to plugin
Views moved to plugin
Computeds moved to plugin
1.0.0 -> 2.0.0
Lifecycle changes in application
Dependency injection contract changes
0.. -> 1.0.0
Groups & Collections
IGroupAccessor
has becomeIObservableGroup
IGroupAccessorFilter
,ICacheableGroupAccessorFilter
,IGroupWatcher
has becomeIComputedGroup
IPool
has becomeIEntityCollection
IPool.Entities
has been removed,IEntityCollection
is nowIEnumerable<IEntity>
IPoolManager
has becomeIEntityCollectionManager
IGroup.TargettedComponents
has becomeIGroup.RequiredComponents
CRUD operations on
IPool/Manager
no longer raise system wide events, they are now localIObservable
eventsCRUD events are now batched, i.e
ComponentAddedEvent
has becomeComponentsAddedEvent
Systems
All system
Execute
methods have been renamed toProcess
ITeardownSystem
is now triggered JUST BEFORE an entity has required components removedAll systems (other than
IManualSystem
) have been moved to a separateEcsRx.System
project
Entities
IEntity.Id
is no longer aGuid
and is now anint
IEntity.AddComponent<T>
has been removed, but kept as an extension method onIEntity
Most interactions at entity level are batched, i.e
AddComponent<T>()
is nowAddComponents(params IComponent[] components)
Last updated