Scale is now set via a field on Render* and interacts properly with chronoshift and building previews.

This commit is contained in:
Paul Chote
2010-11-27 13:30:08 +13:00
parent 840ade5b78
commit 00a0aac7a3
10 changed files with 25 additions and 76 deletions

View File

@@ -82,7 +82,9 @@ namespace OpenRA.Mods.RA.Orders
else
{
foreach (var r in Preview)
r.Sprite.DrawAt(wr,Game.CellSize*topLeft + r.Pos, r.Palette ?? world.LocalPlayer.Palette);
r.Sprite.DrawAt(Game.CellSize*topLeft + r.Pos,
wr.GetPaletteIndex(r.Palette ?? world.LocalPlayer.Palette),
r.Scale*r.Sprite.size);
var res = world.WorldActor.Trait<ResourceLayer>();
var isCloseEnough = BuildingInfo.IsCloseEnoughToBase(world, world.LocalPlayer, Building, topLeft);

View File

@@ -29,7 +29,7 @@ namespace OpenRA.Mods.RA.Render
var anim = new Animation(RenderSimple.GetImage(building, Tileset), () => 0);
anim.PlayRepeating("idle");
var rb = building.Traits.Get<RenderBuildingInfo>();
yield return new Renderable(anim.Image,rb.Origin,rb.Palette,0);
yield return new Renderable(anim.Image, rb.Origin + 0.5f*anim.Image.size*(1 - Scale), rb.Palette, 0, Scale);
}
}

View File

@@ -27,7 +27,7 @@ namespace OpenRA.Mods.RA.Render
var anim = new Animation(RenderSimple.GetImage(building, Tileset), () => 0);
anim.PlayRepeating("idle-top");
var rb = building.Traits.Get<RenderBuildingInfo>();
yield return new Renderable(anim.Image,rb.Origin,rb.Palette,0);
yield return new Renderable(anim.Image, rb.Origin + 0.5f*anim.Image.size*(1 - Scale), rb.Palette, 0, Scale);
}
}

View File

@@ -214,8 +214,9 @@ namespace OpenRA.Mods.RA
{
var targetCell = unit.Location + xy - sourceLocation;
foreach (var r in unit.Render())
r.Sprite.DrawAt(wr, r.Pos - Traits.Util.CenterOfCell(unit.Location) + Traits.Util.CenterOfCell(targetCell),
r.Palette ?? unit.Owner.Palette);
r.Sprite.DrawAt(r.Pos - Traits.Util.CenterOfCell(unit.Location) + Traits.Util.CenterOfCell(targetCell),
wr.GetPaletteIndex(r.Palette ?? unit.Owner.Palette),
r.Scale*r.Sprite.size);
}
// Unit tiles