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; }
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); }
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)); }