Exemple #1
0
        protected virtual void RegisterSystem <TSystem>()
            where TSystem : ISystem
        {
            var system = Container.Resolve <TSystem>();

            Executor.AddSystem(system);
        }
Exemple #2
0
        protected virtual void SetupAllPluginSystems()
        {
            var systems = plugins.SelectMany(x => x.GetSystemsForRegistration(Container));

            foreach (var system in systems)
            {
                Executor.AddSystem(system);
            }
        }
Exemple #3
0
        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);
            }
        }
Exemple #4
0
        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>();
        }