Exemplo n.º 1
0
        internal WorldRenderer(ModData modData, World world)
        {
            World     = world;
            TileSize  = World.Map.Grid.TileSize;
            TileScale = World.Map.Grid.Type == MapGridType.RectangularIsometric ? 1448 : 1024;
            Viewport  = new Viewport(this, world.Map);

            createPaletteReference = CreatePaletteReference;

            var mapGrid = modData.Manifest.Get <MapGrid>();

            enableDepthBuffer = mapGrid.EnableDepthBuffer;

            foreach (var pal in world.TraitDict.ActorsWithTrait <ILoadsPalettes>())
            {
                pal.Trait.LoadPalettes(this);
            }

            foreach (var p in world.Players)
            {
                UpdatePalettesForPlayer(p.InternalName, p.Color, false);
            }

            palette.Initialize();

            Theater         = new Theater(world.Map.Rules.TileSet);
            terrainRenderer = world.WorldActor.TraitOrDefault <IRenderTerrain>();

            debugVis = Exts.Lazy(() => world.WorldActor.TraitOrDefault <DebugVisualizations>());
        }