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 string Palette = null;
public readonly float Scale = 1f; public readonly float Scale = 1f;
public abstract object Create(ActorInitializer init); 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 public abstract class RenderSimple : IRender, ITick

View File

@@ -30,7 +30,7 @@ namespace OpenRA.Mods.RA.Orders
Building = name; Building = name;
Preview = Rules.Info[Building].Traits.Get<RenderBuildingInfo>() 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) 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 readonly float2 Origin = float2.Zero;
public override object Create(ActorInitializer init) { return new RenderBuilding(init);} 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); var rb = building.Traits.Get<RenderBuildingInfo>();
anim.PlayRepeating("idle"); return base.RenderPreview(building, Tileset)
var rb = building.Traits.Get<RenderBuildingInfo>(); .Select(a => a.WithPos(a.Pos + rb.Origin));
yield return new Renderable(anim.Image, rb.Origin + 0.5f*anim.Image.size*(1 - Scale), rb.Palette, 0, Scale);
} }
} }

View File

@@ -22,10 +22,10 @@ namespace OpenRA.Mods.RA.Render
/* get around unverifiability */ /* get around unverifiability */
IEnumerable<Renderable> BaseBuildingPreview(ActorInfo building, string tileset) 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)) foreach (var r in BaseBuildingPreview(building, Tileset))
yield return r; yield return r;