Pass WorldRenderer to RenderAsTerrain for palette lookup.
This commit is contained in:
@@ -112,7 +112,7 @@ namespace OpenRA.Graphics
|
|||||||
|
|
||||||
terrainRenderer.Draw(this, Game.viewport);
|
terrainRenderer.Draw(this, Game.viewport);
|
||||||
foreach (var a in world.traitDict.ActorsWithTraitMultiple<IRenderAsTerrain>(world))
|
foreach (var a in world.traitDict.ActorsWithTraitMultiple<IRenderAsTerrain>(world))
|
||||||
foreach (var r in a.Trait.RenderAsTerrain(a.Actor))
|
foreach (var r in a.Trait.RenderAsTerrain(this, a.Actor))
|
||||||
r.Sprite.DrawAt(r.Pos, r.Palette.RowIndex(this), r.Scale);
|
r.Sprite.DrawAt(r.Pos, r.Palette.RowIndex(this), r.Scale);
|
||||||
|
|
||||||
foreach (var a in world.Selection.Actors)
|
foreach (var a in world.Selection.Actors)
|
||||||
|
|||||||
@@ -209,7 +209,7 @@ namespace OpenRA.Traits
|
|||||||
|
|
||||||
public interface IPostRenderSelection { void RenderAfterWorld(WorldRenderer wr); }
|
public interface IPostRenderSelection { void RenderAfterWorld(WorldRenderer wr); }
|
||||||
public interface IPreRenderSelection { void RenderBeforeWorld(WorldRenderer wr, Actor self); }
|
public interface IPreRenderSelection { void RenderBeforeWorld(WorldRenderer wr, Actor self); }
|
||||||
public interface IRenderAsTerrain { IEnumerable<Renderable> RenderAsTerrain(Actor self); }
|
public interface IRenderAsTerrain { IEnumerable<Renderable> RenderAsTerrain(WorldRenderer wr, Actor self); }
|
||||||
|
|
||||||
public interface ITargetable
|
public interface ITargetable
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -135,10 +135,18 @@ namespace OpenRA.Mods.RA
|
|||||||
return bridges.GetBridge(self.Location + new CVec(offset[0], offset[1]));
|
return bridges.GetBridge(self.Location + new CVec(offset[0], offset[1]));
|
||||||
}
|
}
|
||||||
|
|
||||||
public IEnumerable<Renderable> RenderAsTerrain(Actor self)
|
bool initializePalettes = true;
|
||||||
|
PaletteReference terrainPalette;
|
||||||
|
public IEnumerable<Renderable> RenderAsTerrain(WorldRenderer wr, Actor self)
|
||||||
{
|
{
|
||||||
|
if (initializePalettes)
|
||||||
|
{
|
||||||
|
terrainPalette = wr.Palette("terrain");
|
||||||
|
initializePalettes = false;
|
||||||
|
}
|
||||||
|
|
||||||
foreach (var t in TileSprites[currentTemplate])
|
foreach (var t in TileSprites[currentTemplate])
|
||||||
yield return new Renderable(t.Value, t.Key.ToPPos().ToFloat2(), PaletteReference.FromName("terrain"), Game.CellSize * t.Key.Y);
|
yield return new Renderable(t.Value, t.Key.ToPPos().ToFloat2(), terrainPalette, Game.CellSize * t.Key.Y);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IsIntact(Bridge b)
|
bool IsIntact(Bridge b)
|
||||||
|
|||||||
Reference in New Issue
Block a user