Make the guts of Renderable private.

This commit is contained in:
Paul Chote
2013-05-12 03:01:11 +12:00
parent 7719ad1f2d
commit d103a187f6
11 changed files with 59 additions and 46 deletions

View File

@@ -21,7 +21,7 @@ namespace OpenRA.Mods.RA
{
public IEnumerable<Renderable> ModifyRender(Actor self, WorldRenderer wr, IEnumerable<Renderable> r)
{
return r.Select(a => a.WithZOffset((int) -a.Sprite.size.Y));
return r.Select(a => a.WithZOffset(-a.Size.Height));
}
}
}

View File

@@ -65,17 +65,17 @@ namespace OpenRA.Mods.RA.Effects
public IEnumerable<Renderable> Render(WorldRenderer wr)
{
var rc = cargo.Render(wr).Select(a => a.WithPos(a.Pos - new float2(0, altitude))
.WithZOffset(a.ZOffset + (int)altitude));
var rc = cargo.Render(wr);
// Don't render anything if the cargo is invisible (e.g. under fog)
if (!rc.Any())
yield break;
var shadow = wr.Palette("shadow");
foreach (var c in rc)
{
yield return c.WithPos(location.ToFloat2() - .5f * c.Sprite.size).WithPalette(wr.Palette("shadow")).WithZOffset(0);
yield return c.WithZOffset(2);
yield return c.WithPalette(shadow);
yield return c.WithPxOffset(new float2(0, -altitude)).WithZOffset(c.ZOffset + (int)altitude + 2);
}
var pos = location.ToFloat2() - new float2(0, altitude);

View File

@@ -99,9 +99,7 @@ namespace OpenRA.Mods.RA.Orders
}
foreach (var r in preview)
r.Sprite.DrawAt(topLeft.ToPPos().ToFloat2() + r.Pos,
r.Palette.Index,
r.Scale*r.Sprite.size);
r.WithPxOffset(topLeft.ToPPos().ToFloat2()).Render(wr);
var res = world.WorldActor.Trait<ResourceLayer>();
var isCloseEnough = BuildingInfo.IsCloseEnoughToBase(world, world.LocalPlayer, Building, topLeft);

View File

@@ -28,7 +28,7 @@ namespace OpenRA.Mods.RA.Render
public override IEnumerable<Renderable> RenderPreview(ActorInfo building, PaletteReference pr)
{
return base.RenderPreview(building, pr)
.Select(a => a.WithPos(a.Pos + building.Traits.Get<RenderBuildingInfo>().Origin));
.Select(a => a.WithPxOffset(building.Traits.Get<RenderBuildingInfo>().Origin));
}
public void Render(WorldRenderer wr, World w, ActorInfo ai, PPos centerLocation)
@@ -68,7 +68,7 @@ namespace OpenRA.Mods.RA.Render
var disabled = self.IsDisabled();
foreach (var a in r)
{
var ret = a.WithPos(a.Pos - Info.Origin);
var ret = a.WithPxOffset(-Info.Origin);
yield return ret;
if (disabled)
yield return ret.WithPalette(wr.Palette("disabled")).WithZOffset(1);

View File

@@ -32,7 +32,7 @@ namespace OpenRA.Mods.RA.Render
var shadowSprites = r.Select(a => a.WithPalette(wr.Palette("shadow")));
var flyingSprites = (move.Altitude <= 0) ? r
: r.Select(a => a.WithPos(a.Pos - new float2(0, move.Altitude + visualOffset)).WithZOffset(move.Altitude + a.ZOffset));
: r.Select(a => a.WithPxOffset(new float2(0, -(move.Altitude + visualOffset))).WithZOffset(move.Altitude + a.ZOffset));
return shadowSprites.Concat(flyingSprites);
}

View File

@@ -242,13 +242,9 @@ namespace OpenRA.Mods.RA
// Unit previews
foreach (var unit in power.UnitsInRange(sourceLocation))
{
if (manager.self.Owner.Shroud.IsTargetable(unit)) {
var targetCell = unit.Location + (xy - sourceLocation);
if (manager.self.Owner.Shroud.IsTargetable(unit))
foreach (var r in unit.Render(wr))
r.Sprite.DrawAt(r.Pos - Traits.Util.CenterOfCell(unit.Location).ToFloat2() + Traits.Util.CenterOfCell(targetCell).ToFloat2(),
r.Palette.Index,
r.Scale*r.Sprite.size);
}
r.WithPxOffset((xy.ToPPos() - sourceLocation.ToPPos()).ToFloat2()).Render(wr);
}
// Unit tiles