Pass a PaletteReference to RenderPreview.
This commit is contained in:
@@ -23,14 +23,12 @@ namespace OpenRA.Traits
|
||||
|
||||
public virtual object Create(ActorInitializer init) { return new RenderSimple(init.self); }
|
||||
|
||||
public virtual IEnumerable<Renderable> RenderPreview(ActorInfo building, Player owner)
|
||||
public virtual IEnumerable<Renderable> RenderPreview(ActorInfo building, PaletteReference pr)
|
||||
{
|
||||
var anim = new Animation(RenderSimple.GetImage(building), () => 0);
|
||||
anim.PlayRepeating("idle");
|
||||
|
||||
var pal = Palette ?? (owner != null ? PlayerPalette + owner.InternalName : null);
|
||||
yield return new Renderable(anim.Image, 0.5f * anim.Image.size * (1 - Scale),
|
||||
PaletteReference.FromName(pal), 0, Scale);
|
||||
yield return new Renderable(anim.Image, 0.5f * anim.Image.size * (1 - Scale), pr, 0, Scale);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -30,10 +30,11 @@ namespace OpenRA.Mods.RA.Orders
|
||||
Producer = producer;
|
||||
Building = name;
|
||||
BuildingInfo = Rules.Info[Building].Traits.Get<BuildingInfo>();
|
||||
var rbi = Rules.Info[Building].Traits.Get<RenderBuildingInfo>();
|
||||
var pr = PaletteReference.FromName(rbi.Palette ?? (producer.Owner != null ?
|
||||
rbi.PlayerPalette + producer.Owner.InternalName : null));
|
||||
|
||||
Preview = Rules.Info[Building].Traits.Get<RenderBuildingInfo>()
|
||||
.RenderPreview(Rules.Info[Building], producer.Owner);
|
||||
|
||||
Preview = rbi.RenderPreview(Rules.Info[Building], pr);
|
||||
buildOk = SequenceProvider.GetSequence("overlay", "build-valid").GetSprite(0);
|
||||
buildBlocked = SequenceProvider.GetSequence("overlay", "build-invalid").GetSprite(0);
|
||||
}
|
||||
|
||||
@@ -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, Player owner)
|
||||
public override IEnumerable<Renderable> RenderPreview(ActorInfo building, PaletteReference pr)
|
||||
{
|
||||
return base.RenderPreview(building, owner)
|
||||
return base.RenderPreview(building, pr)
|
||||
.Select(a => a.WithPos(a.Pos + building.Traits.Get<RenderBuildingInfo>().Origin));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,14 +20,14 @@ namespace OpenRA.Mods.RA.Render
|
||||
public override object Create(ActorInitializer init) { return new RenderBuildingWarFactory( init, this ); }
|
||||
|
||||
/* get around unverifiability */
|
||||
IEnumerable<Renderable> BaseBuildingPreview(ActorInfo building, Player owner)
|
||||
IEnumerable<Renderable> BaseBuildingPreview(ActorInfo building, PaletteReference pr)
|
||||
{
|
||||
return base.RenderPreview(building, owner);
|
||||
return base.RenderPreview(building, pr);
|
||||
}
|
||||
|
||||
public override IEnumerable<Renderable> RenderPreview(ActorInfo building, Player owner)
|
||||
public override IEnumerable<Renderable> RenderPreview(ActorInfo building, PaletteReference pr)
|
||||
{
|
||||
var p = BaseBuildingPreview(building, owner);
|
||||
var p = BaseBuildingPreview(building, pr);
|
||||
foreach (var r in p)
|
||||
yield return r;
|
||||
|
||||
@@ -35,7 +35,7 @@ namespace OpenRA.Mods.RA.Render
|
||||
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);
|
||||
pr, 0, Scale);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user