- Dropped explicit builds for
netframework
so now its onlynetstandard2.0
- Root
Events
namespace has been removed and events live in related namespaces ObservableGroup
implementation now requires anICollectionObservableGroupTracker
- 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
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
IEntityCollectionManager
no longer exists, it is now justIObservableGroupManager
IEntityCollectionManager
no longer contains EntityCollections its now withinIEntityDatabase
, which is within there
IObservableScheduler
is now known asIUpdateScheduler
and uses anElapsedTime
object notTimeSpan
Group
no longer contains Predicate and has been split intoGroupWithPredicate
objectIObservableScheduler
is now insideEcsRx
core and not infrastructure
- Some extension methods around groups have been removed
- Reactive Systems moved to plugin
- Views moved to plugin
- Computeds moved to plugin
- Lifecycle changes in application
- Dependency injection contract changes
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
events - CRUD events are now batched, i.e
ComponentAddedEvent
has becomeComponentsAddedEvent
- All system
Execute
methods have been renamed toProcess
ITeardownSystem
is now triggered JUST BEFORE an entity has required components removed- All systems (other than
IManualSystem
) have been moved to a separateEcsRx.System
project
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)