protected virtual void RegisterSystem <TSystem>() where TSystem : ISystem { var system = Container.Resolve <TSystem>(); Executor.AddSystem(system); }
protected virtual void SetupAllPluginSystems() { var systems = plugins.SelectMany(x => x.GetSystemsForRegistration(Container)); foreach (var system in systems) { Executor.AddSystem(system); } }
protected virtual void RegisterAllBoundSystems() { var allSystems = Container.ResolveAll <ISystem>(); var orderedSystems = allSystems .OrderByDescending(x => x is ViewResolverSystem) .ThenByDescending(x => x is ISetupSystem); foreach (var system in orderedSystems) { Executor.AddSystem(system); } }
protected override void ApplicationStarted() { const string enemiesCollectionName = "enemies"; var enemiesCollection = EntityCollectionManager.CreateCollection(enemiesCollectionName); var enemiesGroup = EntityCollectionManager.GetObservableGroup(new Group(typeof(MoveComponent)), enemiesCollectionName); var temp = EntityCollectionManager.GetObservableGroup(new Group(typeof(DrawEnemyComponent)), enemiesCollectionName); Executor.AddSystem(new GameUpdateSystem(EventSystem)); Executor.AddSystem(new NewEnemyWaveWarningSystem(EventSystem, TimeSpan.FromSeconds(20.0d))); Executor.AddSystem(new DisplayWaveWarningSystem(EventSystem)); Executor.AddSystem(new NewEnemyWaveEmitterSystem(EventSystem, enemiesCollection)); Executor.AddSystem(new EnemyMoveSystem(enemiesGroup)); Executor.AddSystem(new EnemyDrawSystem(EventSystem, temp)); this.StartAllBoundSystems(); var manager = EntityCollectionManager.GetCollection(); var game = manager.CreateEntity(); GameComponent = game.AddComponent <GameComponent>(); }