public override void InitSystems(out EcsSystems update, out EcsSystems draw, out EcsSystems systems)
        {
            if (game == null)
            {
                throw new Exception();
            }

            sheets   = new(new GenIdxAllocator());
            tilesets = new(new GenIdxAllocator());
            levels   = new(new GenIdxAllocator());

            update = new EcsSystems(world)
                     .Add(new SheetLoader())
                     .Add(new TilesetLoader())
                     .Add(new LevelLoader())
                     .Add(new AABBs())
                     .Add(new Animated());

            draw = new EcsSystems(world)
                   .Add(new Renderer());

            systems = new EcsSystems(world)
                      .Inject(sheets)
                      .Inject(tilesets)
                      .Inject(levels);
        }
Example #2
0
        public override void InitSystems(out EcsSystems update, out EcsSystems draw, out EcsSystems systems)
        {
            if (game == null)
            {
                throw new Exception();
            }

            physicsWorld     = new(Vector2.Zero);
            physicsDebugView = new(physicsWorld);
            physicsDebugView.LoadContent(game.GraphicsDevice, game.Fonts);
            sheets   = new(new GenIdxAllocator());
            tilesets = new(new GenIdxAllocator());
            levels   = new(new GenIdxAllocator());

            update = new EcsSystems(world)
                     .Add(new SheetLoader())
                     .Add(new TilesetLoader())
                     .Add(new LevelLoader())
                     .Add(new Inputs())
                     .Add(new Actors())
                     .Add(new Physics())
                     .Add(new AABBs())
                     .Add(new Animated());

            draw = new EcsSystems(world)
                   .Add(new Renderer());

            systems = new EcsSystems(world)
                      .Inject(sheets)
                      .Inject(tilesets)
                      .Inject(levels)
                      .Inject(physicsWorld)
                      .Inject(physicsDebugView);
        }