Add IActorPreviewInitInfo interface.
This commit is contained in:
committed by
RoosterDragon
parent
e10b64d62c
commit
b2c3a55c12
@@ -198,6 +198,8 @@ namespace OpenRA.Mods.Common.Orders
|
|||||||
{
|
{
|
||||||
if (!initialized)
|
if (!initialized)
|
||||||
{
|
{
|
||||||
|
var actor = rules.Actors[building];
|
||||||
|
|
||||||
var td = new TypeDictionary()
|
var td = new TypeDictionary()
|
||||||
{
|
{
|
||||||
new FactionInit(faction),
|
new FactionInit(faction),
|
||||||
@@ -205,7 +207,11 @@ namespace OpenRA.Mods.Common.Orders
|
|||||||
new HideBibPreviewInit()
|
new HideBibPreviewInit()
|
||||||
};
|
};
|
||||||
|
|
||||||
var init = new ActorPreviewInitializer(rules.Actors[building], wr, td);
|
foreach (var api in actor.TraitInfos<IActorPreviewInitInfo>())
|
||||||
|
foreach (var o in api.ActorPreviewInits(actor, ActorPreviewType.PlaceBuilding))
|
||||||
|
td.Add(o);
|
||||||
|
|
||||||
|
var init = new ActorPreviewInitializer(actor, wr, td);
|
||||||
preview = rules.Actors[building].TraitInfos<IRenderActorPreviewInfo>()
|
preview = rules.Actors[building].TraitInfos<IRenderActorPreviewInfo>()
|
||||||
.SelectMany(rpi => rpi.RenderPreview(init))
|
.SelectMany(rpi => rpi.RenderPreview(init))
|
||||||
.ToArray();
|
.ToArray();
|
||||||
|
|||||||
@@ -290,4 +290,12 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
{
|
{
|
||||||
Order IssueDeployOrder(Actor self);
|
Order IssueDeployOrder(Actor self);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public enum ActorPreviewType { PlaceBuilding, ColorPicker, MapEditorSidebar }
|
||||||
|
|
||||||
|
[RequireExplicitImplementation]
|
||||||
|
public interface IActorPreviewInitInfo : ITraitInfo
|
||||||
|
{
|
||||||
|
IEnumerable<object> ActorPreviewInits(ActorInfo ai, ActorPreviewType type);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,6 +33,9 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
td.Add(new HideBibPreviewInit());
|
td.Add(new HideBibPreviewInit());
|
||||||
td.Add(new OwnerInit(world.WorldActor.Owner));
|
td.Add(new OwnerInit(world.WorldActor.Owner));
|
||||||
td.Add(new FactionInit(world.WorldActor.Owner.PlayerReference.Faction));
|
td.Add(new FactionInit(world.WorldActor.Owner.PlayerReference.Faction));
|
||||||
|
foreach (var api in actor.TraitInfos<IActorPreviewInitInfo>())
|
||||||
|
foreach (var o in api.ActorPreviewInits(actor, ActorPreviewType.ColorPicker))
|
||||||
|
td.Add(o);
|
||||||
|
|
||||||
if (preview != null)
|
if (preview != null)
|
||||||
preview.SetPreview(actor, td);
|
preview.SetPreview(actor, td);
|
||||||
|
|||||||
@@ -109,6 +109,9 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
td.Add(new HideBibPreviewInit());
|
td.Add(new HideBibPreviewInit());
|
||||||
td.Add(new OwnerInit(selectedOwner.Name));
|
td.Add(new OwnerInit(selectedOwner.Name));
|
||||||
td.Add(new FactionInit(selectedOwner.Faction));
|
td.Add(new FactionInit(selectedOwner.Faction));
|
||||||
|
foreach (var api in actor.TraitInfos<IActorPreviewInitInfo>())
|
||||||
|
foreach (var o in api.ActorPreviewInits(actor, ActorPreviewType.MapEditorSidebar))
|
||||||
|
td.Add(o);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user