Move ShroudRenderer into a trait.

This commit is contained in:
Paul Chote
2013-12-10 16:58:35 +13:00
parent 089973280d
commit 4e814a8c2e
9 changed files with 18 additions and 7 deletions

View File

@@ -37,7 +37,6 @@ namespace OpenRA.Graphics
public Viewport Viewport { get; private set; }
internal readonly TerrainRenderer terrainRenderer;
internal readonly ShroudRenderer shroudRenderer;
internal readonly HardwarePalette palette;
internal Cache<string, PaletteReference> palettes;
Lazy<DeveloperMode> devTrait;
@@ -56,7 +55,6 @@ namespace OpenRA.Graphics
Theater = new Theater(world.TileSet);
terrainRenderer = new TerrainRenderer(world, this);
shroudRenderer = new ShroudRenderer(world);
devTrait = Lazy.New(() => world.LocalPlayer != null ? world.LocalPlayer.PlayerActor.Trait<DeveloperMode>() : null);
}
@@ -132,7 +130,9 @@ namespace OpenRA.Graphics
world.OrderGenerator.RenderAfterWorld(this, world);
var renderShroud = world.RenderPlayer != null ? world.RenderPlayer.Shroud : null;
shroudRenderer.Draw(this, renderShroud);
foreach (var a in world.ActorsWithTrait<IRenderShroud>())
a.Trait.RenderShroud(this, renderShroud);
if (devTrait.Value != null && devTrait.Value.ShowDebugGeometry)
for (var i = 0; i < renderables.Count; i++)

View File

@@ -110,7 +110,6 @@
<Compile Include="Graphics\SequenceProvider.cs" />
<Compile Include="Graphics\Sheet.cs" />
<Compile Include="Graphics\SheetBuilder.cs" />
<Compile Include="Graphics\ShroudRenderer.cs" />
<Compile Include="Graphics\Sprite.cs" />
<Compile Include="Graphics\SpriteFont.cs" />
<Compile Include="Graphics\SpriteLoader.cs" />

View File

@@ -191,6 +191,7 @@ namespace OpenRA.Traits
public interface IBlocksBullets { }
public interface IPostRender { void RenderAfterWorld(WorldRenderer wr, Actor self); }
public interface IRenderShroud { void RenderShroud(WorldRenderer wr, Shroud shroud); }
public interface IPostRenderSelection { void RenderAfterWorld(WorldRenderer wr); }
public interface IBodyOrientation

View File

@@ -482,6 +482,7 @@
<Compile Include="Widgets\Logic\SettingsLogic.cs" />
<Compile Include="AttackBomber.cs" />
<Compile Include="Effects\Rank.cs" />
<Compile Include="ShroudRenderer.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\OpenRA.FileFormats\OpenRA.FileFormats.csproj">

View File

@@ -10,10 +10,16 @@
using System.Drawing;
using OpenRA.Traits;
using OpenRA.Graphics;
namespace OpenRA.Graphics
namespace OpenRA.Mods.RA
{
public class ShroudRenderer
public class ShroudRendererInfo : ITraitInfo
{
public object Create(ActorInitializer init) { return new ShroudRenderer(init.world); }
}
public class ShroudRenderer : IRenderShroud
{
World world;
Map map;
@@ -148,7 +154,7 @@ namespace OpenRA.Graphics
}
}
internal void Draw(WorldRenderer wr, Shroud shroud)
public void RenderShroud(WorldRenderer wr, Shroud shroud)
{
if (initializePalettes)
{

View File

@@ -277,6 +277,7 @@ World:
ShroudPalette@combined:
Name: shroudfog
Type: Combined
ShroudRenderer:
Country@gdi:
Name: GDI
Race: gdi

View File

@@ -429,6 +429,7 @@ World:
ShroudPalette@combined:
Name: shroudfog
Type: Combined
ShroudRenderer:
Country@Atreides:
Name: Atreides
Race: atreides

View File

@@ -620,6 +620,7 @@ World:
ShroudPalette@combined:
Name: shroudfog
Type: Combined
ShroudRenderer:
Country@0:
Name: Allies
Race: allies

View File

@@ -105,6 +105,7 @@ World:
ShroudPalette@combined:
Name: shroudfog
Type: Combined
ShroudRenderer:
VoxelNormalsPalette@normals:
Name: normals
Type: TiberianSun