RenderBuilding.BuildingPreview pushed down to RenderSimple and renamed to .RenderPreview()

This commit is contained in:
Chris Forbes
2011-01-08 20:24:12 +13:00
committed by Paul Chote
parent e6c6e8aa96
commit 0f84ac5215
4 changed files with 15 additions and 8 deletions

View File

@@ -22,6 +22,14 @@ namespace OpenRA.Traits
public readonly string Palette = null;
public readonly float Scale = 1f;
public abstract object Create(ActorInitializer init);
public virtual IEnumerable<Renderable> RenderPreview(ActorInfo building, string Tileset)
{
var anim = new Animation(RenderSimple.GetImage(building, Tileset), () => 0);
anim.PlayRepeating("idle");
var rb = building.Traits.Get<RenderSimpleInfo>();
yield return new Renderable(anim.Image, 0.5f * anim.Image.size * (1 - Scale), rb.Palette, 0, Scale);
}
}
public abstract class RenderSimple : IRender, ITick

View File

@@ -30,7 +30,7 @@ namespace OpenRA.Mods.RA.Orders
Building = name;
Preview = Rules.Info[Building].Traits.Get<RenderBuildingInfo>()
.BuildingPreview(Rules.Info[Building], producer.World.Map.Tileset);
.RenderPreview(Rules.Info[Building], producer.World.Map.Tileset);
}
public IEnumerable<Order> Order(World world, int2 xy, MouseInput mi)

View File

@@ -24,12 +24,11 @@ namespace OpenRA.Mods.RA.Render
public readonly float2 Origin = float2.Zero;
public override object Create(ActorInitializer init) { return new RenderBuilding(init);}
public virtual IEnumerable<Renderable> BuildingPreview(ActorInfo building, string Tileset)
public override IEnumerable<Renderable> RenderPreview(ActorInfo building, string Tileset)
{
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 + 0.5f*anim.Image.size*(1 - Scale), rb.Palette, 0, Scale);
var rb = building.Traits.Get<RenderBuildingInfo>();
return base.RenderPreview(building, Tileset)
.Select(a => a.WithPos(a.Pos + rb.Origin));
}
}

View File

@@ -22,10 +22,10 @@ namespace OpenRA.Mods.RA.Render
/* get around unverifiability */
IEnumerable<Renderable> BaseBuildingPreview(ActorInfo building, string tileset)
{
return base.BuildingPreview(building, tileset);
return base.RenderPreview(building, tileset);
}
public override IEnumerable<Renderable> BuildingPreview(ActorInfo building, string Tileset)
public override IEnumerable<Renderable> RenderPreview(ActorInfo building, string Tileset)
{
foreach (var r in BaseBuildingPreview(building, Tileset))
yield return r;