Esempio n. 1
0
        public StrategyGameRenderingFactory(GameRenderingConfig renderingConfig,
                                            StrategyGameData gameData,
                                            StrategyGameTileSet <TTile> tileSet,
                                            IDerivedTileProducer <TTile, TTexture> tileProducer,
                                            ITextureOperations <TTexture, TColor> textureOperations)
        {
            this.tileProducer      = tileProducer;
            this.textureOperations = textureOperations;
            RenderingConfig        = renderingConfig ?? throw new ArgumentNullException(nameof(RenderingConfig));
            GameData = gameData ?? throw new ArgumentNullException(nameof(GameData));
            TileSet  = tileSet ?? throw new ArgumentNullException(nameof(TileSet));

            var r = new BasicTileRegistry <TTile>();

            foreach (var t in tileSet.Textures.Tiles)
            {
                r.Add(t.Tag, t);
            }

            Tiles = r;

            cellRendering = new TagSetRenderingFactory(this);
            boolRendering = new BoolRenderingFactory(this);
            RenderControl = new RendererControl(tileSet.TileSize, renderingConfig.RenderType);
            EnableCache   = true;
        }
Esempio n. 2
0
        StrategyGameTileSet <MonoGameTile> CreateTileSet(Game game,
                                                         MonoGameTileProducer tileProducer)
        {
            var contentLoader = new MonoGameContentLoader(game.Content);
            var tp            = new TexturePackLoader <MonoGameTile, XnaTexture, XnaRawTexture>(contentLoader, tileProducer, game.Content.RootDirectory).Read("Tiles/Civ/tiles.xml");
            var rt            = tp.TextureType == TextureType.Grid ? RenderType.Grid : RenderType.IsoDiamond;

            var tileSet = new StrategyGameTileSet <MonoGameTile>(tp, rt);

            tileSet.InitializeBlendingRules(gd.Rules);
            return(tileSet);
        }
Esempio n. 3
0
        StrategyGameRenderingFactory <MonoGameTile, XnaTexture, Color> CreateRenderingFactory(StrategyGameData gameData,
                                                                                              StrategyGameTileSet <MonoGameTile> tileSet,
                                                                                              MonoGameTileProducer tileProducer,
                                                                                              MonoGameTextureOperations textureOperations)
        {
            var config = new GameRenderingConfig(tileSet.RenderType,
                                                 new Range(0, gameData.TerrainWidth),
                                                 new Range(0, gameData.TerrainHeight));

            return(new StrategyGameRenderingFactory <MonoGameTile, XnaTexture, Color>(config, gameData, tileSet, tileProducer, textureOperations));
        }