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 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);
|
var anim = new Animation(RenderSimple.GetImage(building), () => 0);
|
||||||
anim.PlayRepeating("idle");
|
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), pr, 0, Scale);
|
||||||
yield return new Renderable(anim.Image, 0.5f * anim.Image.size * (1 - Scale),
|
|
||||||
PaletteReference.FromName(pal), 0, Scale);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -30,10 +30,11 @@ namespace OpenRA.Mods.RA.Orders
|
|||||||
Producer = producer;
|
Producer = producer;
|
||||||
Building = name;
|
Building = name;
|
||||||
BuildingInfo = Rules.Info[Building].Traits.Get<BuildingInfo>();
|
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>()
|
Preview = rbi.RenderPreview(Rules.Info[Building], pr);
|
||||||
.RenderPreview(Rules.Info[Building], producer.Owner);
|
|
||||||
|
|
||||||
buildOk = SequenceProvider.GetSequence("overlay", "build-valid").GetSprite(0);
|
buildOk = SequenceProvider.GetSequence("overlay", "build-valid").GetSprite(0);
|
||||||
buildBlocked = SequenceProvider.GetSequence("overlay", "build-invalid").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 readonly float2 Origin = float2.Zero;
|
||||||
public override object Create(ActorInitializer init) { return new RenderBuilding(init, this);}
|
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));
|
.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 ); }
|
public override object Create(ActorInitializer init) { return new RenderBuildingWarFactory( init, this ); }
|
||||||
|
|
||||||
/* get around unverifiability */
|
/* 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)
|
foreach (var r in p)
|
||||||
yield return r;
|
yield return r;
|
||||||
|
|
||||||
@@ -35,7 +35,7 @@ namespace OpenRA.Mods.RA.Render
|
|||||||
anim.PlayRepeating("idle-top");
|
anim.PlayRepeating("idle-top");
|
||||||
var rb = building.Traits.Get<RenderBuildingInfo>();
|
var rb = building.Traits.Get<RenderBuildingInfo>();
|
||||||
yield return new Renderable(anim.Image, rb.Origin + 0.5f*anim.Image.size*(1 - Scale),
|
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