diff --git a/.gitignore b/.gitignore
index 8af868e..144ec3a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -58,3 +58,5 @@ sysinfo.txt
# Crashlytics generated file
crashlytics-build.properties
+
+.idea/
diff --git a/.idea/.gitignore b/.idea/.gitignore
deleted file mode 100644
index e69de29..0000000
diff --git a/.idea/.idea.ecsrx.roguelike2d/.idea/.gitignore b/.idea/.idea.ecsrx.roguelike2d/.idea/.gitignore
deleted file mode 100644
index 5c98b42..0000000
--- a/.idea/.idea.ecsrx.roguelike2d/.idea/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-# Default ignored files
-/workspace.xml
\ No newline at end of file
diff --git a/.idea/.idea.ecsrx.roguelike2d/.idea/contentModel.xml b/.idea/.idea.ecsrx.roguelike2d/.idea/contentModel.xml
deleted file mode 100644
index a544722..0000000
--- a/.idea/.idea.ecsrx.roguelike2d/.idea/contentModel.xml
+++ /dev/null
@@ -1,928 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/.idea.ecsrx.roguelike2d/.idea/indexLayout.xml b/.idea/.idea.ecsrx.roguelike2d/.idea/indexLayout.xml
deleted file mode 100644
index 90dfcbd..0000000
--- a/.idea/.idea.ecsrx.roguelike2d/.idea/indexLayout.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
- Packages
- ProjectSettings
-
-
- .git
- .idea
- Library
- Temp
- obj
-
-
-
\ No newline at end of file
diff --git a/.idea/.idea.ecsrx.roguelike2d/.idea/modules.xml b/.idea/.idea.ecsrx.roguelike2d/.idea/modules.xml
deleted file mode 100644
index b9396d7..0000000
--- a/.idea/.idea.ecsrx.roguelike2d/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/.idea.ecsrx.roguelike2d/.idea/projectSettingsUpdater.xml b/.idea/.idea.ecsrx.roguelike2d/.idea/projectSettingsUpdater.xml
deleted file mode 100644
index 7515e76..0000000
--- a/.idea/.idea.ecsrx.roguelike2d/.idea/projectSettingsUpdater.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/.idea.ecsrx.roguelike2d/.idea/vcs.xml b/.idea/.idea.ecsrx.roguelike2d/.idea/vcs.xml
deleted file mode 100644
index 94a25f7..0000000
--- a/.idea/.idea.ecsrx.roguelike2d/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/.idea.ecsrx.roguelike2d/riderModule.iml b/.idea/.idea.ecsrx.roguelike2d/riderModule.iml
deleted file mode 100644
index 1a4e0d9..0000000
--- a/.idea/.idea.ecsrx.roguelike2d/riderModule.iml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Assets/EcsRx/EcsRx.Infrastructure.dll b/Assets/EcsRx/EcsRx.Infrastructure.dll
index 61ac11a..829fcd1 100644
Binary files a/Assets/EcsRx/EcsRx.Infrastructure.dll and b/Assets/EcsRx/EcsRx.Infrastructure.dll differ
diff --git a/Assets/EcsRx/EcsRx.MicroRx.dll b/Assets/EcsRx/EcsRx.MicroRx.dll
index dca6742..ecceb87 100644
Binary files a/Assets/EcsRx/EcsRx.MicroRx.dll and b/Assets/EcsRx/EcsRx.MicroRx.dll differ
diff --git a/Assets/EcsRx/EcsRx.Plugins.Batching.dll b/Assets/EcsRx/EcsRx.Plugins.Batching.dll
index 7d6010a..a91515e 100644
Binary files a/Assets/EcsRx/EcsRx.Plugins.Batching.dll and b/Assets/EcsRx/EcsRx.Plugins.Batching.dll differ
diff --git a/Assets/EcsRx/EcsRx.Plugins.Computeds.dll b/Assets/EcsRx/EcsRx.Plugins.Computeds.dll
index ccecc7d..e636d6d 100644
Binary files a/Assets/EcsRx/EcsRx.Plugins.Computeds.dll and b/Assets/EcsRx/EcsRx.Plugins.Computeds.dll differ
diff --git a/Assets/EcsRx/EcsRx.Plugins.ReactiveSystems.dll b/Assets/EcsRx/EcsRx.Plugins.ReactiveSystems.dll
index fdc508b..30048c6 100644
Binary files a/Assets/EcsRx/EcsRx.Plugins.ReactiveSystems.dll and b/Assets/EcsRx/EcsRx.Plugins.ReactiveSystems.dll differ
diff --git a/Assets/EcsRx/EcsRx.Plugins.Views.dll b/Assets/EcsRx/EcsRx.Plugins.Views.dll
index abd9e65..8f151bf 100644
Binary files a/Assets/EcsRx/EcsRx.Plugins.Views.dll and b/Assets/EcsRx/EcsRx.Plugins.Views.dll differ
diff --git a/Assets/EcsRx/EcsRx.dll b/Assets/EcsRx/EcsRx.dll
index 21b1871..b9871ed 100644
Binary files a/Assets/EcsRx/EcsRx.dll and b/Assets/EcsRx/EcsRx.dll differ
diff --git a/Assets/EcsRx/SystemsRx.Infrastructure.dll b/Assets/EcsRx/SystemsRx.Infrastructure.dll
new file mode 100644
index 0000000..0870261
Binary files /dev/null and b/Assets/EcsRx/SystemsRx.Infrastructure.dll differ
diff --git a/Assets/EcsRx/SystemsRx.Infrastructure.dll.meta b/Assets/EcsRx/SystemsRx.Infrastructure.dll.meta
new file mode 100644
index 0000000..579838b
--- /dev/null
+++ b/Assets/EcsRx/SystemsRx.Infrastructure.dll.meta
@@ -0,0 +1,33 @@
+fileFormatVersion: 2
+guid: e1c80197aba1765488ae37daf93937a4
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ defineConstraints: []
+ isPreloaded: 0
+ isOverridable: 0
+ isExplicitlyReferenced: 0
+ validateReferences: 1
+ platformData:
+ - first:
+ Any:
+ second:
+ enabled: 1
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 0
+ settings:
+ DefaultValueInitialized: true
+ - first:
+ Windows Store Apps: WindowsStoreApps
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/EcsRx/SystemsRx.dll b/Assets/EcsRx/SystemsRx.dll
new file mode 100644
index 0000000..d84c2f0
Binary files /dev/null and b/Assets/EcsRx/SystemsRx.dll differ
diff --git a/Assets/EcsRx/SystemsRx.dll.meta b/Assets/EcsRx/SystemsRx.dll.meta
new file mode 100644
index 0000000..269e43e
--- /dev/null
+++ b/Assets/EcsRx/SystemsRx.dll.meta
@@ -0,0 +1,33 @@
+fileFormatVersion: 2
+guid: 1e30d66ae254e2b4381d07c7cf56d1a4
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ defineConstraints: []
+ isPreloaded: 0
+ isOverridable: 0
+ isExplicitlyReferenced: 0
+ validateReferences: 1
+ platformData:
+ - first:
+ Any:
+ second:
+ enabled: 1
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 0
+ settings:
+ DefaultValueInitialized: true
+ - first:
+ Windows Store Apps: WindowsStoreApps
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/EcsRx/Unity/Extensions/ISystemExtensions.cs b/Assets/EcsRx/Unity/Extensions/ISystemExtensions.cs
index 4db9d7b..ffcd127 100644
--- a/Assets/EcsRx/Unity/Extensions/ISystemExtensions.cs
+++ b/Assets/EcsRx/Unity/Extensions/ISystemExtensions.cs
@@ -1,4 +1,5 @@
using System;
+using SystemsRx.Systems;
using EcsRx.Systems;
using UniRx;
diff --git a/Assets/EcsRx/Unity/Modules/UnityOverrideModule.cs b/Assets/EcsRx/Unity/Modules/UnityOverrideModule.cs
index 357b044..d204574 100644
--- a/Assets/EcsRx/Unity/Modules/UnityOverrideModule.cs
+++ b/Assets/EcsRx/Unity/Modules/UnityOverrideModule.cs
@@ -1,6 +1,6 @@
-using EcsRx.Infrastructure.Dependencies;
-using EcsRx.Infrastructure.Extensions;
-using EcsRx.Scheduling;
+using SystemsRx.Infrastructure.Dependencies;
+using SystemsRx.Infrastructure.Extensions;
+using SystemsRx.Scheduling;
using EcsRx.Unity.Scheduling;
namespace EcsRx.Unity.Modules
diff --git a/Assets/EcsRx/Unity/MonoBehaviours/InjectableMonoBehaviour.cs b/Assets/EcsRx/Unity/MonoBehaviours/InjectableMonoBehaviour.cs
index 60a115b..4253f1e 100644
--- a/Assets/EcsRx/Unity/MonoBehaviours/InjectableMonoBehaviour.cs
+++ b/Assets/EcsRx/Unity/MonoBehaviours/InjectableMonoBehaviour.cs
@@ -1,4 +1,5 @@
-using EcsRx.Events;
+using SystemsRx.Events;
+using EcsRx.Events;
using EcsRx.Unity.Dependencies;
using UnityEngine;
using Zenject;
diff --git a/Assets/EcsRx/Unity/Scheduling/UnityUpdateScheduler.cs b/Assets/EcsRx/Unity/Scheduling/UnityUpdateScheduler.cs
index e48d450..ddacdfa 100644
--- a/Assets/EcsRx/Unity/Scheduling/UnityUpdateScheduler.cs
+++ b/Assets/EcsRx/Unity/Scheduling/UnityUpdateScheduler.cs
@@ -1,5 +1,5 @@
using System;
-using EcsRx.Scheduling;
+using SystemsRx.Scheduling;
using UniRx;
using UnityEngine;
diff --git a/Assets/EcsRx/Unity/Systems/DynamicViewResolverSystem.cs b/Assets/EcsRx/Unity/Systems/DynamicViewResolverSystem.cs
index 5c7d008..694f9f8 100644
--- a/Assets/EcsRx/Unity/Systems/DynamicViewResolverSystem.cs
+++ b/Assets/EcsRx/Unity/Systems/DynamicViewResolverSystem.cs
@@ -1,8 +1,7 @@
-using EcsRx.Unity.Dependencies;
-using EcsRx.Collections;
+using SystemsRx.Events;
+using EcsRx.Unity.Dependencies;
using EcsRx.Collections.Database;
using EcsRx.Entities;
-using EcsRx.Events;
using EcsRx.Extensions;
using EcsRx.Groups;
using EcsRx.Plugins.ReactiveSystems.Systems;
diff --git a/Assets/EcsRx/Unity/Systems/PooledPrefabViewResolverSystem.cs b/Assets/EcsRx/Unity/Systems/PooledPrefabViewResolverSystem.cs
index 02f7d4f..5c7d09f 100644
--- a/Assets/EcsRx/Unity/Systems/PooledPrefabViewResolverSystem.cs
+++ b/Assets/EcsRx/Unity/Systems/PooledPrefabViewResolverSystem.cs
@@ -1,7 +1,6 @@
-using EcsRx.Collections;
+using SystemsRx.Events;
using EcsRx.Collections.Database;
using EcsRx.Entities;
-using EcsRx.Events;
using EcsRx.Extensions;
using EcsRx.Plugins.Views.Pooling;
using EcsRx.Plugins.Views.Systems;
diff --git a/Assets/EcsRx/Unity/Systems/PrefabViewResolverSystem.cs b/Assets/EcsRx/Unity/Systems/PrefabViewResolverSystem.cs
index 56b5f67..a154c42 100644
--- a/Assets/EcsRx/Unity/Systems/PrefabViewResolverSystem.cs
+++ b/Assets/EcsRx/Unity/Systems/PrefabViewResolverSystem.cs
@@ -1,7 +1,6 @@
-using EcsRx.Collections;
+using SystemsRx.Events;
using EcsRx.Collections.Database;
using EcsRx.Entities;
-using EcsRx.Events;
using EcsRx.Extensions;
using EcsRx.Unity.Dependencies;
using EcsRx.Unity.Handlers;
diff --git a/Assets/EcsRx/Unity/UnityEcsRxApplicationBehaviour.cs b/Assets/EcsRx/Unity/UnityEcsRxApplicationBehaviour.cs
index 1274dbf..e7e3264 100644
--- a/Assets/EcsRx/Unity/UnityEcsRxApplicationBehaviour.cs
+++ b/Assets/EcsRx/Unity/UnityEcsRxApplicationBehaviour.cs
@@ -1,20 +1,21 @@
using System.Collections.Generic;
using System.Linq;
+using SystemsRx.Events;
+using SystemsRx.Executor;
+using SystemsRx.Extensions;
+using SystemsRx.Infrastructure.Dependencies;
+using SystemsRx.Infrastructure.Extensions;
+using SystemsRx.Infrastructure.Modules;
+using SystemsRx.Infrastructure.Plugins;
+using SystemsRx.Systems;
using EcsRx.Collections;
using EcsRx.Collections.Database;
-using EcsRx.Events;
-using EcsRx.Executor;
-using EcsRx.Extensions;
using EcsRx.Infrastructure;
-using EcsRx.Infrastructure.Dependencies;
-using EcsRx.Infrastructure.Extensions;
using EcsRx.Infrastructure.Modules;
-using EcsRx.Infrastructure.Plugins;
using EcsRx.Plugins.Batching;
using EcsRx.Plugins.Computeds;
using EcsRx.Plugins.ReactiveSystems;
using EcsRx.Plugins.Views;
-using EcsRx.Systems;
using EcsRx.Unity.Modules;
using UnityEngine;
@@ -29,9 +30,9 @@ public abstract class UnityEcsRxApplicationBehaviour : MonoBehaviour, IEcsRxAppl
public IEventSystem EventSystem { get; private set; }
public IEntityDatabase EntityDatabase { get; private set; }
public IObservableGroupManager ObservableGroupManager { get; private set; }
- public IEnumerable Plugins => _plugins;
+ public IEnumerable Plugins => _plugins;
- protected List _plugins { get; } = new List();
+ protected List _plugins { get; } = new List();
protected abstract void ApplicationStarted();
@@ -72,6 +73,7 @@ protected virtual void LoadPlugins()
protected virtual void LoadModules()
{
Container.LoadModule();
+ Container.LoadModule();
Container.LoadModule();
}
@@ -117,7 +119,7 @@ protected virtual void StartPluginSystems()
.ForEachRun(x => SystemExecutor.AddSystem(x));
}
- protected void RegisterPlugin(IEcsRxPlugin plugin)
+ protected void RegisterPlugin(ISystemsRxPlugin plugin)
{ _plugins.Add(plugin); }
}
}
\ No newline at end of file
diff --git a/Assets/EcsRx/UnityEditor/MonoBehaviours/ActiveSystemsViewer.cs b/Assets/EcsRx/UnityEditor/MonoBehaviours/ActiveSystemsViewer.cs
index 8671175..813abb6 100644
--- a/Assets/EcsRx/UnityEditor/MonoBehaviours/ActiveSystemsViewer.cs
+++ b/Assets/EcsRx/UnityEditor/MonoBehaviours/ActiveSystemsViewer.cs
@@ -1,4 +1,4 @@
-using EcsRx.Executor;
+using SystemsRx.Executor;
using UnityEngine;
using Zenject;
diff --git a/Assets/EcsRx/Zenject/Dependencies/ZenjectDependencyContainer.cs b/Assets/EcsRx/Zenject/Dependencies/ZenjectDependencyContainer.cs
index 4613df9..5db43b4 100644
--- a/Assets/EcsRx/Zenject/Dependencies/ZenjectDependencyContainer.cs
+++ b/Assets/EcsRx/Zenject/Dependencies/ZenjectDependencyContainer.cs
@@ -1,7 +1,7 @@
using System;
using System.Collections;
using System.Linq;
-using EcsRx.Infrastructure.Dependencies;
+using SystemsRx.Infrastructure.Dependencies;
using EcsRx.Unity.Dependencies;
using EcsRx.Zenject.Extensions;
using UnityEngine;
diff --git a/Assets/EcsRx/Zenject/EcsRxApplicationBehaviour.cs b/Assets/EcsRx/Zenject/EcsRxApplicationBehaviour.cs
index 98ea50a..acce3e4 100644
--- a/Assets/EcsRx/Zenject/EcsRxApplicationBehaviour.cs
+++ b/Assets/EcsRx/Zenject/EcsRxApplicationBehaviour.cs
@@ -1,23 +1,6 @@
using System;
-using System.Collections.Generic;
using System.Linq;
-using EcsRx.Collections;
-using EcsRx.Collections.Database;
-using EcsRx.Events;
-using EcsRx.Executor;
-using EcsRx.Extensions;
-using EcsRx.Infrastructure;
-using EcsRx.Infrastructure.Dependencies;
-using EcsRx.Infrastructure.Extensions;
-using EcsRx.Infrastructure.Modules;
-using EcsRx.Infrastructure.Plugins;
-using EcsRx.Plugins.Batching;
-using EcsRx.Plugins.Computeds;
-using EcsRx.Plugins.ReactiveSystems;
-using EcsRx.Plugins.Views;
-using EcsRx.Systems;
using EcsRx.Unity;
-using EcsRx.Unity.Modules;
using EcsRx.Zenject.Dependencies;
using UnityEngine;
using Zenject;
diff --git a/Assets/EcsRx/Zenject/Helpers/BindSystemsInNamespace.cs b/Assets/EcsRx/Zenject/Helpers/BindSystemsInNamespace.cs
index 811ac83..5fadc3d 100644
--- a/Assets/EcsRx/Zenject/Helpers/BindSystemsInNamespace.cs
+++ b/Assets/EcsRx/Zenject/Helpers/BindSystemsInNamespace.cs
@@ -1,7 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
-using EcsRx.Systems;
+using SystemsRx.Systems;
using ModestTree;
using Zenject;
diff --git a/Assets/Game/Application.cs b/Assets/Game/Application.cs
index 49df356..cbc678c 100644
--- a/Assets/Game/Application.cs
+++ b/Assets/Game/Application.cs
@@ -1,9 +1,7 @@
using System;
-using EcsRx.Collections;
+using SystemsRx.Infrastructure.Extensions;
using EcsRx.Collections.Entity;
using EcsRx.Extensions;
-using EcsRx.Unity.Extensions;
-using EcsRx.Infrastructure.Extensions;
using EcsRx.Plugins.Views.Components;
using EcsRx.Zenject;
using Game.Blueprints;
diff --git a/Assets/Game/Modules/ComputedModule.cs b/Assets/Game/Modules/ComputedModule.cs
index fb6784f..1226dd1 100644
--- a/Assets/Game/Modules/ComputedModule.cs
+++ b/Assets/Game/Modules/ComputedModule.cs
@@ -1,8 +1,8 @@
-using EcsRx.Infrastructure.Dependencies;
+using SystemsRx.Infrastructure.Dependencies;
+using SystemsRx.Infrastructure.Extensions;
using EcsRx.Infrastructure.Extensions;
using Game.Components;
using Game.Computeds;
-using Game.Configuration;
namespace Game.Installers
{
diff --git a/Assets/Game/Modules/GameModule.cs b/Assets/Game/Modules/GameModule.cs
index 8ae53f6..3b5f5ee 100644
--- a/Assets/Game/Modules/GameModule.cs
+++ b/Assets/Game/Modules/GameModule.cs
@@ -1,6 +1,5 @@
-using EcsRx.Infrastructure.Dependencies;
-using EcsRx.Infrastructure.Extensions;
-
+using SystemsRx.Infrastructure.Dependencies;
+using SystemsRx.Infrastructure.Extensions;
using Game.Configuration;
namespace Game.Installers
diff --git a/Assets/Game/Modules/SceneCollectionsModule.cs b/Assets/Game/Modules/SceneCollectionsModule.cs
index 586416f..3e41387 100644
--- a/Assets/Game/Modules/SceneCollectionsModule.cs
+++ b/Assets/Game/Modules/SceneCollectionsModule.cs
@@ -1,7 +1,6 @@
-using EcsRx.Infrastructure.Dependencies;
-using EcsRx.Infrastructure.Extensions;
+using SystemsRx.Infrastructure.Dependencies;
+using SystemsRx.Infrastructure.Extensions;
using Game.SceneCollections;
-using Zenject;
namespace Game.Installers
{
diff --git a/Assets/Game/Systems/EnemyAttackedSystem.cs b/Assets/Game/Systems/EnemyAttackedSystem.cs
index 48af079..ef5115b 100644
--- a/Assets/Game/Systems/EnemyAttackedSystem.cs
+++ b/Assets/Game/Systems/EnemyAttackedSystem.cs
@@ -1,8 +1,6 @@
-using EcsRx.Collections;
+using SystemsRx.Systems.Conventional;
using EcsRx.Collections.Database;
-using EcsRx.Events;
using EcsRx.Extensions;
-using EcsRx.Plugins.ReactiveSystems.Custom;
using EcsRx.Unity.Extensions;
using Game.Components;
using Game.Events;
@@ -10,14 +8,14 @@
namespace Game.Systems
{
- public class EnemyAttackedSystem : EventReactionSystem
+ public class EnemyAttackedSystem : IReactToEventSystem
{
private readonly IEntityDatabase _entityDatabase;
- public EnemyAttackedSystem(IEventSystem eventSystem, IEntityDatabase entityDatabase) : base(eventSystem)
+ public EnemyAttackedSystem(IEntityDatabase entityDatabase)
{ _entityDatabase = entityDatabase; }
- public override void EventTriggered(EnemyHitEvent eventData)
+ public void Process(EnemyHitEvent eventData)
{
var enemyComponent = eventData.Enemy.GetComponent();
enemyComponent.Health.Value--;
diff --git a/Assets/Game/Systems/EnemyMovementSystem.cs b/Assets/Game/Systems/EnemyMovementSystem.cs
index 9f4d054..896ce6e 100644
--- a/Assets/Game/Systems/EnemyMovementSystem.cs
+++ b/Assets/Game/Systems/EnemyMovementSystem.cs
@@ -1,6 +1,5 @@
-using EcsRx.Events;
+using SystemsRx.Systems.Conventional;
using EcsRx.Extensions;
-using EcsRx.Plugins.ReactiveSystems.Custom;
using EcsRx.Unity.Extensions;
using Game.Components;
using Game.Computeds;
@@ -9,17 +8,16 @@
namespace Game.Systems
{
- public class EnemyMovementSystem : EventReactionSystem
+ public class EnemyMovementSystem : IReactToEventSystem
{
private readonly IComputedPlayerPosition _computedPlayerPosition;
- public EnemyMovementSystem(IEventSystem eventSystem, IComputedPlayerPosition computedPlayerPosition)
- : base(eventSystem)
+ public EnemyMovementSystem(IComputedPlayerPosition computedPlayerPosition)
{
_computedPlayerPosition = computedPlayerPosition;
}
- public override void EventTriggered(EnemyTurnEvent eventData)
+ public void Process(EnemyTurnEvent eventData)
{
var movementComponent = eventData.Enemy.GetComponent();
if(movementComponent.Movement.Value != Vector2.zero) { return; }
diff --git a/Assets/Game/Systems/ExitReachedSystem.cs b/Assets/Game/Systems/ExitReachedSystem.cs
index 9eb10b1..d88554d 100644
--- a/Assets/Game/Systems/ExitReachedSystem.cs
+++ b/Assets/Game/Systems/ExitReachedSystem.cs
@@ -1,10 +1,11 @@
using System.Linq;
+using SystemsRx.Systems.Conventional;
+using EcsRx.Collections;
using EcsRx.Entities;
-using EcsRx.Events;
using EcsRx.Extensions;
using EcsRx.Groups;
using EcsRx.Groups.Observable;
-using EcsRx.Plugins.ReactiveSystems.Custom;
+using EcsRx.Systems;
using EcsRx.Unity.Extensions;
using Game.Blueprints;
using Game.Components;
@@ -13,22 +14,25 @@
namespace Game.Systems
{
- public class ExitReachedSystem : EventReactionSystem
+ public class ExitReachedSystem : IReactToEventSystem, IManualSystem, IGroupSystem
{
private IEntity _level;
+ private IObservableGroup _observableGroup;
- public override IGroup Group { get; } = new Group(typeof(LevelComponent));
+ public IGroup Group { get; } = new Group(typeof(LevelComponent));
- public ExitReachedSystem(IEventSystem eventSystem) : base(eventSystem)
- {}
-
- public override void StartSystem(IObservableGroup group)
+ public ExitReachedSystem(IObservableGroupManager observableGroupManager)
{
- base.StartSystem(group);
- this.WaitForScene().Subscribe(x => _level = group.First());
+ _observableGroup = observableGroupManager.GetObservableGroup(Group);
}
- public override void EventTriggered(ExitReachedEvent eventData)
+ public void StartSystem()
+ { this.WaitForScene().Subscribe(x => _level = _observableGroup.First()); }
+
+ public void StopSystem()
+ {}
+
+ public void Process(ExitReachedEvent eventData)
{
var movementComponent = eventData.Player.GetComponent();
movementComponent.StopMovement = true;
diff --git a/Assets/Game/Systems/FoodPickupSystem.cs b/Assets/Game/Systems/FoodPickupSystem.cs
index 39ca3a0..4af011a 100644
--- a/Assets/Game/Systems/FoodPickupSystem.cs
+++ b/Assets/Game/Systems/FoodPickupSystem.cs
@@ -1,24 +1,23 @@
-using EcsRx.Attributes;
-using EcsRx.Collections;
+using SystemsRx.Attributes;
+using SystemsRx.Systems.Conventional;
+using SystemsRx.Types;
using EcsRx.Collections.Database;
-using EcsRx.Events;
using EcsRx.Extensions;
-using EcsRx.Plugins.ReactiveSystems.Custom;
using EcsRx.Unity.Extensions;
using Game.Components;
using Game.Events;
namespace Game.Systems
{
- [Priority(-10)]
- public class FoodPickupSystem : EventReactionSystem
+ [Priority(PriorityTypes.Low)]
+ public class FoodPickupSystem : IReactToEventSystem
{
private readonly IEntityDatabase _entityDatabase;
- public FoodPickupSystem(IEventSystem eventSystem, IEntityDatabase entityDatabase) : base(eventSystem)
+ public FoodPickupSystem(IEntityDatabase entityDatabase)
{ _entityDatabase = entityDatabase; }
- public override void EventTriggered(FoodPickupEvent eventData)
+ public void Process(FoodPickupEvent eventData)
{
var playerComponent = eventData.Player.GetComponent();
var foodComponent = eventData.Food.GetComponent();
diff --git a/Assets/Game/Systems/FoodTextUpdateSystem.cs b/Assets/Game/Systems/FoodTextUpdateSystem.cs
index 9ee954c..e70b623 100644
--- a/Assets/Game/Systems/FoodTextUpdateSystem.cs
+++ b/Assets/Game/Systems/FoodTextUpdateSystem.cs
@@ -1,11 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
-using EcsRx.Attributes;
-using EcsRx.Events;
+using SystemsRx.Attributes;
+using SystemsRx.Events;
+using SystemsRx.Extensions;
+using SystemsRx.Systems.Conventional;
+using EcsRx.Collections;
using EcsRx.Extensions;
using EcsRx.Groups;
-using EcsRx.Groups.Observable;
using EcsRx.Systems;
using EcsRx.Unity.Extensions;
using Game.Components;
@@ -17,23 +19,28 @@
namespace Game.Systems
{
[Priority(10)]
- public class FoodTextUpdateSystem : IManualSystem
+ public class FoodTextUpdateSystem : IManualSystem, IGroupSystem
{
public IGroup Group { get; } = new Group(typeof(PlayerComponent));
private readonly IEventSystem _eventSystem;
+ private IObservableGroupManager _observableGroupManager;
+
private PlayerComponent _playerComponent;
private Text _foodText;
private readonly IList _subscriptions = new List();
- public FoodTextUpdateSystem(IEventSystem eventSystem)
- { _eventSystem = eventSystem; }
+ public FoodTextUpdateSystem(IEventSystem eventSystem, IObservableGroupManager observableGroupManager)
+ {
+ _eventSystem = eventSystem;
+ _observableGroupManager = observableGroupManager;
+ }
- public void StartSystem(IObservableGroup group)
+ public void StartSystem()
{
this.WaitForScene().Subscribe(x =>
{
- var player = group.First();
+ var player = _observableGroupManager.GetObservableGroup(Group).First();
_playerComponent = player.GetComponent();
_foodText = GameObject.Find("FoodText").GetComponent();
@@ -65,7 +72,7 @@ private void SetupSubscriptions()
.AddTo(_subscriptions);
}
- public void StopSystem(IObservableGroup group)
+ public void StopSystem()
{ _subscriptions.DisposeAll(); }
}
}
\ No newline at end of file
diff --git a/Assets/Game/Systems/GameBoardSetupSystem.cs b/Assets/Game/Systems/GameBoardSetupSystem.cs
index dacad3f..b4f9f84 100644
--- a/Assets/Game/Systems/GameBoardSetupSystem.cs
+++ b/Assets/Game/Systems/GameBoardSetupSystem.cs
@@ -1,16 +1,16 @@
-using EcsRx.Attributes;
+using SystemsRx.Attributes;
+using SystemsRx.Types;
using EcsRx.Entities;
using EcsRx.Extensions;
using EcsRx.Groups;
using EcsRx.Plugins.ReactiveSystems.Systems;
-using EcsRx.Systems;
using Game.Components;
using Game.Groups;
using UnityEngine;
namespace Game.Systems
{
- [Priority(10)]
+ [Priority(PriorityTypes.High)]
public class GameBoardSetupSystem : ISetupSystem
{
public IGroup Group { get; } = new GameBoardGroup();
diff --git a/Assets/Game/Systems/LevelScreenVisibilitySystem.cs b/Assets/Game/Systems/LevelScreenVisibilitySystem.cs
index defd253..903aa5b 100644
--- a/Assets/Game/Systems/LevelScreenVisibilitySystem.cs
+++ b/Assets/Game/Systems/LevelScreenVisibilitySystem.cs
@@ -1,10 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
-using EcsRx.Events;
+using SystemsRx.Events;
+using SystemsRx.Systems.Conventional;
+using SystemsRx.Extensions;
+using EcsRx.Collections;
using EcsRx.Extensions;
using EcsRx.Groups;
-using EcsRx.Groups.Observable;
using EcsRx.Systems;
using EcsRx.Unity.Extensions;
using Game.Components;
@@ -14,9 +16,10 @@
namespace Game.Systems
{
- public class LevelScreenVisibilitySystem : IManualSystem
+ public class LevelScreenVisibilitySystem : IManualSystem, IGroupSystem
{
private IEventSystem _eventSystem;
+ private IObservableGroupManager _observableGroupManager;
public IGroup Group { get; } = new Group(typeof(LevelComponent));
@@ -24,15 +27,18 @@ public class LevelScreenVisibilitySystem : IManualSystem
private LevelComponent _levelComponent;
private IList _subscriptions = new List();
- public LevelScreenVisibilitySystem(IEventSystem eventSystem)
- { _eventSystem = eventSystem; }
+ public LevelScreenVisibilitySystem(IEventSystem eventSystem, IObservableGroupManager observableGroupManager)
+ {
+ _eventSystem = eventSystem;
+ _observableGroupManager = observableGroupManager;
+ }
- public void StartSystem(IObservableGroup group)
+ public void StartSystem()
{
this.WaitForScene()
.Subscribe(x =>
{
- var level = group.First();
+ var level = _observableGroupManager.GetObservableGroup(Group).First();
_levelComponent = level.GetComponent();
_levelImage = GameObject.Find("LevelImage");
SetupSubscriptions();
@@ -50,7 +56,7 @@ public void SetupSubscriptions()
.AddTo(_subscriptions);
}
- public void StopSystem(IObservableGroup group)
+ public void StopSystem()
{ _subscriptions.DisposeAll(); }
}
}
\ No newline at end of file
diff --git a/Assets/Game/Systems/LevelTextUpdateSystem.cs b/Assets/Game/Systems/LevelTextUpdateSystem.cs
index 7c274a1..9141f21 100644
--- a/Assets/Game/Systems/LevelTextUpdateSystem.cs
+++ b/Assets/Game/Systems/LevelTextUpdateSystem.cs
@@ -1,10 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
-using EcsRx.Events;
+using SystemsRx.Extensions;
+using SystemsRx.Events;
+using SystemsRx.Systems.Conventional;
+using EcsRx.Collections;
using EcsRx.Extensions;
using EcsRx.Groups;
-using EcsRx.Groups.Observable;
using EcsRx.Systems;
using EcsRx.Unity.Extensions;
using Game.Components;
@@ -15,26 +17,28 @@
namespace Game.Systems
{
- public class LevelTextUpdateSystem : IManualSystem
+ public class LevelTextUpdateSystem : IManualSystem, IGroupSystem
{
public IGroup Group { get; } = new Group(typeof(LevelComponent));
private Text _levelText;
private LevelComponent _levelComponent;
private readonly IEventSystem _eventSystem;
+ private readonly IObservableGroupManager _observableGroupManager;
private readonly IList _subscriptions = new List();
- public LevelTextUpdateSystem(IEventSystem eventSystem)
+ public LevelTextUpdateSystem(IEventSystem eventSystem, IObservableGroupManager observableGroupManager)
{
_eventSystem = eventSystem;
+ _observableGroupManager = observableGroupManager;
}
- public void StartSystem(IObservableGroup group)
+ public void StartSystem()
{
this.WaitForScene()
.Subscribe(x =>
{
- var level = @group.First();
+ var level = _observableGroupManager.GetObservableGroup(Group).First();
_levelComponent = level.GetComponent();
_levelText = GameObject.Find("LevelText").GetComponent();
SetupSubscriptions();
@@ -52,7 +56,7 @@ private void SetupSubscriptions()
.AddTo(_subscriptions);
}
- public void StopSystem(IObservableGroup group)
+ public void StopSystem()
{ _subscriptions.DisposeAll(); }
}
}
\ No newline at end of file
diff --git a/Assets/Game/Systems/MovementSystem.cs b/Assets/Game/Systems/MovementSystem.cs
index 08650e4..8eee6e3 100644
--- a/Assets/Game/Systems/MovementSystem.cs
+++ b/Assets/Game/Systems/MovementSystem.cs
@@ -1,10 +1,9 @@
using System;
using System.Collections;
+using SystemsRx.Events;
using EcsRx.Entities;
-using EcsRx.Events;
using EcsRx.Extensions;
using EcsRx.Groups;
-using EcsRx.Systems;
using EcsRx.Unity.Extensions;
using EcsRx.Unity.MonoBehaviours;
using EcsRx.Plugins.Views.Components;
diff --git a/Assets/Game/Systems/MusicSystem.cs b/Assets/Game/Systems/MusicSystem.cs
index 7ca0da0..9000a15 100644
--- a/Assets/Game/Systems/MusicSystem.cs
+++ b/Assets/Game/Systems/MusicSystem.cs
@@ -1,10 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
-using EcsRx.Events;
+using SystemsRx.Events;
+using SystemsRx.Systems.Conventional;
+using SystemsRx.Extensions;
+using EcsRx.Collections;
using EcsRx.Extensions;
using EcsRx.Groups;
-using EcsRx.Groups.Observable;
using EcsRx.Systems;
using EcsRx.Unity.Extensions;
using Game.Components;
@@ -14,28 +16,31 @@
namespace Game.Systems
{
- public class MusicSystem : IManualSystem
+ public class MusicSystem : IManualSystem, IGroupSystem
{
public IGroup Group { get; } = new Group(typeof(LevelComponent));
private readonly IEventSystem _eventSystem;
+ private readonly IObservableGroupManager _observableGroupManager;
+
private readonly AudioSource _musicSource;
private LevelComponent _levelComponent;
private readonly IList _subscriptions = new List();
- public MusicSystem(IEventSystem eventSystem)
+ public MusicSystem(IEventSystem eventSystem, IObservableGroupManager observableGroupManager)
{
var soundEffectObject = GameObject.Find("MusicSource");
_musicSource = soundEffectObject.GetComponent();
_eventSystem = eventSystem;
+ _observableGroupManager = observableGroupManager;
}
- public void StartSystem(IObservableGroup group)
+ public void StartSystem()
{
this.WaitForScene()
.Subscribe(x =>
{
- var level = group.First();
+ var level = _observableGroupManager.GetObservableGroup(Group).First();
_levelComponent = level.GetComponent();
SetupSubscriptions();
});
@@ -57,7 +62,7 @@ private void SetupSubscriptions()
.AddTo(_subscriptions);
}
- public void StopSystem(IObservableGroup group)
+ public void StopSystem()
{ _subscriptions.DisposeAll(); }
}
diff --git a/Assets/Game/Systems/PlayerAttackedSystem.cs b/Assets/Game/Systems/PlayerAttackedSystem.cs
index ee7a849..4910543 100644
--- a/Assets/Game/Systems/PlayerAttackedSystem.cs
+++ b/Assets/Game/Systems/PlayerAttackedSystem.cs
@@ -1,6 +1,6 @@
-using EcsRx.Events;
+using SystemsRx.Events;
+using SystemsRx.Systems.Conventional;
using EcsRx.Extensions;
-using EcsRx.Plugins.ReactiveSystems.Custom;
using EcsRx.Unity.Extensions;
using Game.Components;
using Game.Events;
@@ -8,11 +8,14 @@
namespace Game.Systems
{
- public class PlayerAttackedSystem : EventReactionSystem
+ public class PlayerAttackedSystem : IReactToEventSystem
{
- public PlayerAttackedSystem(IEventSystem eventSystem) : base(eventSystem) {}
+ private IEventSystem _eventSystem;
- public override void EventTriggered(PlayerHitEvent eventData)
+ public PlayerAttackedSystem(IEventSystem eventSystem)
+ { _eventSystem = eventSystem; }
+
+ public void Process(PlayerHitEvent eventData)
{
var enemyComponent = eventData.Enemy.GetComponent();
var playerComponent = eventData.Player.GetComponent();
@@ -22,7 +25,7 @@ public override void EventTriggered(PlayerHitEvent eventData)
animator.SetTrigger("enemyAttack");
if (playerComponent.Food.Value <= 0)
- { EventSystem.Publish(new PlayerKilledEvent(eventData.Player)); }
+ { _eventSystem.Publish(new PlayerKilledEvent(eventData.Player)); }
}
}
}
\ No newline at end of file
diff --git a/Assets/Game/Systems/PlayerInteractionSystem.cs b/Assets/Game/Systems/PlayerInteractionSystem.cs
index 6ce5b94..027cd9b 100644
--- a/Assets/Game/Systems/PlayerInteractionSystem.cs
+++ b/Assets/Game/Systems/PlayerInteractionSystem.cs
@@ -1,10 +1,11 @@
using System;
using System.Collections.Generic;
+using SystemsRx.Events;
+using SystemsRx.Extensions;
+using SystemsRx.Systems.Conventional;
+using EcsRx.Collections;
using EcsRx.Entities;
-using EcsRx.Events;
-using EcsRx.Extensions;
using EcsRx.Groups;
-using EcsRx.Groups.Observable;
using EcsRx.Systems;
using EcsRx.Unity.Extensions;
using EcsRx.Unity.MonoBehaviours;
@@ -16,29 +17,32 @@
namespace Game.Systems
{
- public class PlayerInteractionSystem : IManualSystem
+ public class PlayerInteractionSystem : IManualSystem, IGroupSystem
{
public IGroup Group { get; } = new Group(typeof (PlayerComponent), typeof (ViewComponent));
private readonly IList _foodTriggers = new List();
private readonly IList _exitTriggers = new List();
private readonly IEventSystem _eventSystem;
+ private readonly IObservableGroupManager _observableGroupManager;
- public PlayerInteractionSystem(IEventSystem eventSystem)
+ public PlayerInteractionSystem(IEventSystem eventSystem, IObservableGroupManager observableGroupManager)
{
_eventSystem = eventSystem;
+ _observableGroupManager = observableGroupManager;
}
- public void StartSystem(IObservableGroup group)
+ public void StartSystem()
{
this.WaitForScene().Subscribe(x =>
{
- foreach(var player in group)
+ var observableGroup = _observableGroupManager.GetObservableGroup(Group);
+ foreach(var player in observableGroup)
{ CheckForInteractions(player); }
});
}
- public void StopSystem(IObservableGroup group)
+ public void StopSystem()
{
_foodTriggers.DisposeAll();
_exitTriggers.DisposeAll();
diff --git a/Assets/Game/Systems/PlayerMovementSystem.cs b/Assets/Game/Systems/PlayerMovementSystem.cs
index 61509d0..70c7c0b 100644
--- a/Assets/Game/Systems/PlayerMovementSystem.cs
+++ b/Assets/Game/Systems/PlayerMovementSystem.cs
@@ -1,11 +1,10 @@
using System;
+using SystemsRx.Events;
using EcsRx.Entities;
-using EcsRx.Events;
using EcsRx.Extensions;
using EcsRx.Groups;
using EcsRx.Groups.Observable;
using EcsRx.Plugins.ReactiveSystems.Systems;
-using EcsRx.Systems;
using Game.Components;
using Game.Events;
using UniRx;
diff --git a/Assets/Game/Systems/RandomlyPlacedSetupSystem.cs b/Assets/Game/Systems/RandomlyPlacedSetupSystem.cs
index 67d4142..49939f1 100644
--- a/Assets/Game/Systems/RandomlyPlacedSetupSystem.cs
+++ b/Assets/Game/Systems/RandomlyPlacedSetupSystem.cs
@@ -1,12 +1,10 @@
using System.Linq;
-using EcsRx.Attributes;
-using EcsRx.Collections;
+using SystemsRx.Attributes;
using EcsRx.Collections.Database;
using EcsRx.Entities;
using EcsRx.Extensions;
using EcsRx.Groups;
using EcsRx.Plugins.ReactiveSystems.Systems;
-using EcsRx.Systems;
using EcsRx.Unity.Extensions;
using Game.Components;
using Game.Extensions;
diff --git a/Assets/Game/Systems/SoundEffectSystem.cs b/Assets/Game/Systems/SoundEffectSystem.cs
index 2c3385e..a899309 100644
--- a/Assets/Game/Systems/SoundEffectSystem.cs
+++ b/Assets/Game/Systems/SoundEffectSystem.cs
@@ -1,10 +1,8 @@
using System;
using System.Collections.Generic;
-using EcsRx.Events;
-using EcsRx.Extensions;
-using EcsRx.Groups;
-using EcsRx.Groups.Observable;
-using EcsRx.Systems;
+using SystemsRx.Events;
+using SystemsRx.Systems.Conventional;
+using SystemsRx.Extensions;
using Game.Events;
using Game.Extensions;
using Game.SceneCollections;
@@ -15,8 +13,6 @@ namespace Game.Systems
{
public class SoundEffectSystem : IManualSystem
{
- public IGroup Group { get; } = new EmptyGroup();
-
private readonly AudioSource _soundEffectSource;
private readonly EnemyAttackSounds _enemyAttackSounds;
private readonly PlayerAttackSounds _playerAttackSounds;
@@ -45,7 +41,7 @@ public SoundEffectSystem(EnemyAttackSounds enemyAttackSounds, PlayerAttackSounds
_soundEffectSource = soundEffectObject.GetComponent();
}
- public void StartSystem(IObservableGroup group)
+ public void StartSystem()
{
_eventSystem.Receive().Subscribe(x => {
var clips = x.IsSoda ? _drinkSounds.AvailableClips : _foodSounds.AvailableClips;
@@ -79,7 +75,7 @@ private void PlayOneOf(IEnumerable clips)
_soundEffectSource.PlayOneShot(audioSource);
}
- public void StopSystem(IObservableGroup group)
+ public void StopSystem()
{ _subscriptions.DisposeAll(); }
}
}
\ No newline at end of file
diff --git a/Assets/Game/Systems/TurnsSystem.cs b/Assets/Game/Systems/TurnsSystem.cs
index 8e4cd5a..45b8793 100644
--- a/Assets/Game/Systems/TurnsSystem.cs
+++ b/Assets/Game/Systems/TurnsSystem.cs
@@ -1,10 +1,10 @@
using System;
using System.Collections;
using System.Linq;
+using SystemsRx.Events;
+using SystemsRx.Systems.Conventional;
using EcsRx.Collections;
-using EcsRx.Collections.Database;
using EcsRx.Entities;
-using EcsRx.Events;
using EcsRx.Extensions;
using EcsRx.Groups;
using EcsRx.Groups.Observable;
@@ -18,14 +18,14 @@
namespace Game.Systems
{
- public class TurnsSystem : IManualSystem
+ public class TurnsSystem : IManualSystem, IGroupSystem
{
private readonly GameConfiguration _gameConfiguration;
private readonly IEventSystem _eventSystem;
private IDisposable _updateSubscription;
private bool _isProcessing;
- private readonly IObservableGroup _levelAccessor;
+ private readonly IObservableGroup _levelAccessor, _enemyAccessor;
private IEntity _level;
public IGroup Group { get; } = new Group(typeof(EnemyComponent));
@@ -36,17 +36,18 @@ public TurnsSystem(GameConfiguration gameConfiguration, IEventSystem eventSystem
_eventSystem = eventSystem;
_levelAccessor = observableGroupManager.GetObservableGroup(new Group(typeof (LevelComponent)));
+ _enemyAccessor = observableGroupManager.GetObservableGroup(Group);
}
- private IEnumerator CarryOutTurns(IObservableGroup group)
+ private IEnumerator CarryOutTurns()
{
_isProcessing = true;
yield return new WaitForSeconds(_gameConfiguration.TurnDelay);
- if(!group.Any())
+ if(!_enemyAccessor.Any())
{ yield return new WaitForSeconds(_gameConfiguration.TurnDelay); }
- foreach (var enemy in group)
+ foreach (var enemy in _enemyAccessor)
{
_eventSystem.Publish(new EnemyTurnEvent(enemy));
yield return new WaitForSeconds(_gameConfiguration.MovementTime);
@@ -63,18 +64,18 @@ private bool IsLevelLoaded()
return levelComponent != null && levelComponent.HasLoaded.Value;
}
- public void StartSystem(IObservableGroup group)
+ public void StartSystem()
{
this.WaitForScene().Subscribe(x => _level = _levelAccessor.First());
_updateSubscription = Observable.EveryUpdate().Where(x => IsLevelLoaded())
.Subscribe(x => {
if (_isProcessing) { return; }
- MainThreadDispatcher.StartCoroutine(CarryOutTurns(@group));
+ MainThreadDispatcher.StartCoroutine(CarryOutTurns());
});
}
- public void StopSystem(IObservableGroup group)
+ public void StopSystem()
{ _updateSubscription.Dispose(); }
}
}
\ No newline at end of file
diff --git a/Assets/Game/Systems/WallHittingSystem.cs b/Assets/Game/Systems/WallHittingSystem.cs
index e55de34..fd64cbb 100644
--- a/Assets/Game/Systems/WallHittingSystem.cs
+++ b/Assets/Game/Systems/WallHittingSystem.cs
@@ -1,8 +1,6 @@
-using EcsRx.Collections;
+using SystemsRx.Systems.Conventional;
using EcsRx.Collections.Database;
-using EcsRx.Events;
using EcsRx.Extensions;
-using EcsRx.Plugins.ReactiveSystems.Custom;
using EcsRx.Unity.Extensions;
using Game.Components;
using Game.Events;
@@ -10,14 +8,14 @@
namespace Game.Systems
{
- public class WallHitSystem : EventReactionSystem
+ public class WallHitSystem : IReactToEventSystem
{
private readonly IEntityDatabase _entityDatabase;
- public WallHitSystem(IEventSystem eventSystem, IEntityDatabase entityDatabase) : base(eventSystem)
+ public WallHitSystem(IEntityDatabase entityDatabase)
{ _entityDatabase = entityDatabase; }
- public override void EventTriggered(WallHitEvent eventData)
+ public void Process(WallHitEvent eventData)
{
var wallComponent = eventData.Wall.GetComponent();
wallComponent.Health.Value--;
diff --git a/Assets/Game/ViewResolvers/EnemyViewResolver.cs b/Assets/Game/ViewResolvers/EnemyViewResolver.cs
index 73a6f7b..60cbea7 100644
--- a/Assets/Game/ViewResolvers/EnemyViewResolver.cs
+++ b/Assets/Game/ViewResolvers/EnemyViewResolver.cs
@@ -1,9 +1,8 @@
using System.Linq;
-using EcsRx.Attributes;
-using EcsRx.Collections;
+using SystemsRx.Attributes;
+using SystemsRx.Events;
using EcsRx.Collections.Database;
using EcsRx.Entities;
-using EcsRx.Events;
using EcsRx.Extensions;
using EcsRx.Groups;
using EcsRx.Unity.Dependencies;
@@ -12,7 +11,6 @@
using Game.Components;
using Game.SceneCollections;
using UnityEngine;
-using Zenject;
namespace Game.ViewResolvers
{
diff --git a/Assets/Game/ViewResolvers/ExitViewResolver.cs b/Assets/Game/ViewResolvers/ExitViewResolver.cs
index 23fb35d..0bc067e 100644
--- a/Assets/Game/ViewResolvers/ExitViewResolver.cs
+++ b/Assets/Game/ViewResolvers/ExitViewResolver.cs
@@ -1,8 +1,7 @@
-using EcsRx.Attributes;
-using EcsRx.Collections;
+using SystemsRx.Attributes;
+using SystemsRx.Events;
using EcsRx.Collections.Database;
using EcsRx.Entities;
-using EcsRx.Events;
using EcsRx.Groups;
using EcsRx.Unity.Dependencies;
using EcsRx.Unity.Systems;
@@ -11,7 +10,6 @@
using Game.Extensions;
using Game.SceneCollections;
using UnityEngine;
-using Zenject;
namespace Game.ViewResolvers
{
diff --git a/Assets/Game/ViewResolvers/FoodViewResolver.cs b/Assets/Game/ViewResolvers/FoodViewResolver.cs
index 19eeb3d..71ab8ed 100644
--- a/Assets/Game/ViewResolvers/FoodViewResolver.cs
+++ b/Assets/Game/ViewResolvers/FoodViewResolver.cs
@@ -1,9 +1,9 @@
using System.Linq;
-using EcsRx.Attributes;
-using EcsRx.Collections;
+using SystemsRx.Attributes;
+using SystemsRx.Events;
+using SystemsRx.Types;
using EcsRx.Collections.Database;
using EcsRx.Entities;
-using EcsRx.Events;
using EcsRx.Extensions;
using EcsRx.Groups;
using EcsRx.Unity.Dependencies;
@@ -12,11 +12,10 @@
using Game.Components;
using Game.SceneCollections;
using UnityEngine;
-using Zenject;
namespace Game.ViewResolvers
{
- [Priority(100)]
+ [Priority(PriorityTypes.Higher)]
public class FoodViewResolver : DynamicViewResolverSystem
{
private readonly FoodTiles _foodTiles;
diff --git a/Assets/Game/ViewResolvers/GameBoardViewResolver.cs b/Assets/Game/ViewResolvers/GameBoardViewResolver.cs
index ac123a1..e1cd85e 100644
--- a/Assets/Game/ViewResolvers/GameBoardViewResolver.cs
+++ b/Assets/Game/ViewResolvers/GameBoardViewResolver.cs
@@ -1,8 +1,8 @@
-using EcsRx.Attributes;
-using EcsRx.Collections;
+using SystemsRx.Attributes;
+using SystemsRx.Events;
+using SystemsRx.Types;
using EcsRx.Collections.Database;
using EcsRx.Entities;
-using EcsRx.Events;
using EcsRx.Extensions;
using EcsRx.Groups;
using EcsRx.Unity.Dependencies;
@@ -12,11 +12,10 @@
using Game.Groups;
using Game.SceneCollections;
using UnityEngine;
-using Zenject;
namespace Game.ViewResolvers
{
- [Priority(100)]
+ [Priority(PriorityTypes.SuperHigh)]
public class GameBoardViewResolver : DynamicViewResolverSystem
{
private readonly FloorTiles _floorTiles;
diff --git a/Assets/Game/ViewResolvers/PlayerViewResolver.cs b/Assets/Game/ViewResolvers/PlayerViewResolver.cs
index 010f9a9..b07bf34 100644
--- a/Assets/Game/ViewResolvers/PlayerViewResolver.cs
+++ b/Assets/Game/ViewResolvers/PlayerViewResolver.cs
@@ -1,14 +1,12 @@
-using EcsRx.Collections;
+using SystemsRx.Events;
using EcsRx.Collections.Database;
using EcsRx.Entities;
-using EcsRx.Events;
using EcsRx.Groups;
using EcsRx.Unity.Dependencies;
using EcsRx.Unity.Systems;
using EcsRx.Plugins.Views.Components;
using Game.Components;
using UnityEngine;
-using Zenject;
namespace Game.ViewResolvers
{
diff --git a/Assets/Game/ViewResolvers/WallViewResolver.cs b/Assets/Game/ViewResolvers/WallViewResolver.cs
index e909525..84cee16 100644
--- a/Assets/Game/ViewResolvers/WallViewResolver.cs
+++ b/Assets/Game/ViewResolvers/WallViewResolver.cs
@@ -1,8 +1,7 @@
-using EcsRx.Attributes;
-using EcsRx.Collections;
+using SystemsRx.Attributes;
+using SystemsRx.Events;
using EcsRx.Collections.Database;
using EcsRx.Entities;
-using EcsRx.Events;
using EcsRx.Groups;
using EcsRx.Unity.Dependencies;
using EcsRx.Unity.Systems;
@@ -11,7 +10,6 @@
using Game.Extensions;
using Game.SceneCollections;
using UnityEngine;
-using Zenject;
namespace Game.ViewResolvers
{
diff --git a/Assets/Plugins/Editor/JetBrains/JetBrains.Rider.Unity.Editor.Plugin.Repacked.dll b/Assets/Plugins/Editor/JetBrains/JetBrains.Rider.Unity.Editor.Plugin.Repacked.dll
index 9597506..0ab6733 100644
Binary files a/Assets/Plugins/Editor/JetBrains/JetBrains.Rider.Unity.Editor.Plugin.Repacked.dll and b/Assets/Plugins/Editor/JetBrains/JetBrains.Rider.Unity.Editor.Plugin.Repacked.dll differ