untangling WorldRenderer from World

This commit is contained in:
Bob
2010-10-12 01:11:56 +13:00
parent 1c1483377c
commit 597dba8584
17 changed files with 162 additions and 124 deletions

View File

@@ -11,6 +11,7 @@
using System.Drawing;
using OpenRA.FileFormats;
using OpenRA.Traits;
using OpenRA.Graphics;
namespace OpenRA.Mods.RA
{
@@ -18,17 +19,21 @@ namespace OpenRA.Mods.RA
{
public readonly string Name = "shroud";
public readonly bool IsFog = false;
public object Create(ActorInitializer init) { return new ShroudPalette(init.world, this); }
public object Create(ActorInitializer init) { return new ShroudPalette(this); }
}
class ShroudPalette
class ShroudPalette : IPalette
{
public ShroudPalette(World world, ShroudPaletteInfo info)
readonly ShroudPaletteInfo info;
public ShroudPalette( ShroudPaletteInfo info )
{
// TODO: This shouldn't rely on a base palette
var wr = world.WorldRenderer;
var pal = wr.GetPalette("terrain");
wr.AddPalette(info.Name, new Palette(pal, new ShroudPaletteRemap(info.IsFog)));
this.info = info;
}
public void InitPalette( WorldRenderer wr )
{
var pal = wr.GetPalette( "terrain" );
wr.AddPalette( info.Name, new Palette( pal, new ShroudPaletteRemap( info.IsFog ) ) );
}
}