Kill RenderSimple.OverrideTileset/OverrideImage.
This commit is contained in:
@@ -84,7 +84,7 @@ namespace OpenRA.Editor
|
||||
|
||||
public static ActorTemplate RenderActor(ActorInfo info, TileSet tileset, Palette p)
|
||||
{
|
||||
var image = RenderSimple.GetImage(info, tileset.Id);
|
||||
var image = RenderSimple.GetImage(info);
|
||||
|
||||
using (var s = FileSystem.OpenWithExts(image, tileset.Extensions))
|
||||
{
|
||||
|
||||
@@ -17,16 +17,14 @@ namespace OpenRA.Traits
|
||||
public abstract class RenderSimpleInfo : ITraitInfo
|
||||
{
|
||||
public readonly string Image = null;
|
||||
public readonly string[] OverrideTileset = null;
|
||||
public readonly string[] OverrideImage = null;
|
||||
public readonly string Palette = null;
|
||||
public readonly string PlayerPalette = "player";
|
||||
public readonly float Scale = 1f;
|
||||
public abstract object Create(ActorInitializer init);
|
||||
|
||||
public virtual IEnumerable<Renderable> RenderPreview(ActorInfo building, string Tileset, Player owner)
|
||||
public virtual IEnumerable<Renderable> RenderPreview(ActorInfo building, Player owner)
|
||||
{
|
||||
var anim = new Animation(RenderSimple.GetImage(building, Tileset), () => 0);
|
||||
var anim = new Animation(RenderSimple.GetImage(building), () => 0);
|
||||
anim.PlayRepeating("idle");
|
||||
yield return new Renderable(anim.Image, 0.5f * anim.Image.size * (1 - Scale), Palette ?? PlayerPalette + owner.InternalName, 0, Scale);
|
||||
}
|
||||
@@ -42,14 +40,9 @@ namespace OpenRA.Traits
|
||||
protected set { anims[""].Animation = value; }
|
||||
}
|
||||
|
||||
public static string GetImage(ActorInfo actor, string Tileset)
|
||||
public static string GetImage(ActorInfo actor)
|
||||
{
|
||||
var Info = actor.Traits.Get<RenderSimpleInfo>();
|
||||
if (Info.OverrideTileset != null && Tileset != null)
|
||||
for (int i = 0; i < Info.OverrideTileset.Length; i++)
|
||||
if (Info.OverrideTileset[i] == Tileset)
|
||||
return Info.OverrideImage[i];
|
||||
|
||||
return Info.Image ?? actor.Name;
|
||||
}
|
||||
|
||||
@@ -59,7 +52,7 @@ namespace OpenRA.Traits
|
||||
if (cachedImage != null)
|
||||
return cachedImage;
|
||||
|
||||
return cachedImage = GetImage(self.Info, self.World.Map.Tileset);
|
||||
return cachedImage = GetImage(self.Info);
|
||||
}
|
||||
|
||||
RenderSimpleInfo Info;
|
||||
|
||||
@@ -30,7 +30,7 @@ namespace OpenRA.Mods.RA.Orders
|
||||
Building = name;
|
||||
|
||||
Preview = Rules.Info[Building].Traits.Get<RenderBuildingInfo>()
|
||||
.RenderPreview(Rules.Info[Building], producer.World.Map.Tileset, producer.Owner);
|
||||
.RenderPreview(Rules.Info[Building], producer.Owner);
|
||||
}
|
||||
|
||||
public IEnumerable<Order> Order(World world, int2 xy, MouseInput mi)
|
||||
|
||||
@@ -25,9 +25,9 @@ namespace OpenRA.Mods.RA.Render
|
||||
public readonly float2 Origin = float2.Zero;
|
||||
public override object Create(ActorInitializer init) { return new RenderBuilding(init, this);}
|
||||
|
||||
public override IEnumerable<Renderable> RenderPreview(ActorInfo building, string Tileset, Player owner)
|
||||
public override IEnumerable<Renderable> RenderPreview(ActorInfo building, Player owner)
|
||||
{
|
||||
return base.RenderPreview(building, Tileset, owner)
|
||||
return base.RenderPreview(building, owner)
|
||||
.Select(a => a.WithPos(a.Pos + building.Traits.Get<RenderBuildingInfo>().Origin));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,18 +20,18 @@ namespace OpenRA.Mods.RA.Render
|
||||
public override object Create(ActorInitializer init) { return new RenderBuildingWarFactory( init, this ); }
|
||||
|
||||
/* get around unverifiability */
|
||||
IEnumerable<Renderable> BaseBuildingPreview(ActorInfo building, string tileset, Player owner)
|
||||
IEnumerable<Renderable> BaseBuildingPreview(ActorInfo building, Player owner)
|
||||
{
|
||||
return base.RenderPreview(building, tileset, owner);
|
||||
return base.RenderPreview(building, owner);
|
||||
}
|
||||
|
||||
public override IEnumerable<Renderable> RenderPreview(ActorInfo building, string Tileset, Player owner)
|
||||
public override IEnumerable<Renderable> RenderPreview(ActorInfo building, Player owner)
|
||||
{
|
||||
var p = BaseBuildingPreview(building, Tileset, owner);
|
||||
var p = BaseBuildingPreview(building, owner);
|
||||
foreach (var r in p)
|
||||
yield return r;
|
||||
|
||||
var anim = new Animation(RenderSimple.GetImage(building, Tileset), () => 0);
|
||||
var anim = new Animation(RenderSimple.GetImage(building), () => 0);
|
||||
anim.PlayRepeating("idle-top");
|
||||
var rb = building.Traits.Get<RenderBuildingInfo>();
|
||||
yield return new Renderable(anim.Image, rb.Origin + 0.5f*anim.Image.size*(1 - Scale), p.First().Palette, 0, Scale);
|
||||
|
||||
Reference in New Issue
Block a user