Throw a more detailed error message when creating invalid frozen actors
This commit is contained in:
@@ -18,11 +18,17 @@ using OpenRA.Traits;
|
|||||||
namespace OpenRA.Mods.Common.Traits
|
namespace OpenRA.Mods.Common.Traits
|
||||||
{
|
{
|
||||||
[Desc("This actor will remain visible (but not updated visually) under fog, once discovered.")]
|
[Desc("This actor will remain visible (but not updated visually) under fog, once discovered.")]
|
||||||
public class FrozenUnderFogInfo : ITraitInfo, Requires<BuildingInfo>, IDefaultVisibilityInfo
|
public class FrozenUnderFogInfo : ITraitInfo, Requires<BuildingInfo>, IDefaultVisibilityInfo, IRulesetLoaded
|
||||||
{
|
{
|
||||||
[Desc("Players with these stances can always see the actor.")]
|
[Desc("Players with these stances can always see the actor.")]
|
||||||
public readonly Stance AlwaysVisibleStances = Stance.Ally;
|
public readonly Stance AlwaysVisibleStances = Stance.Ally;
|
||||||
|
|
||||||
|
void IRulesetLoaded<ActorInfo>.RulesetLoaded(Ruleset rules, ActorInfo info)
|
||||||
|
{
|
||||||
|
if (!info.HasTraitInfo<SelectableInfo>() && !info.HasTraitInfo<IAutoSelectionSizeInfo>())
|
||||||
|
throw new YamlException("Cannot create a frozen actor for actor type '{0}' with empty bounds (no selection size given).".F(info.Name));
|
||||||
|
}
|
||||||
|
|
||||||
public object Create(ActorInitializer init) { return new FrozenUnderFog(init, this); }
|
public object Create(ActorInitializer init) { return new FrozenUnderFog(init, this); }
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -61,7 +67,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
footprint = footprintCells.SelectMany(c => map.ProjectedCellsCovering(c.ToMPos(map))).ToArray();
|
footprint = footprintCells.SelectMany(c => map.ProjectedCellsCovering(c.ToMPos(map))).ToArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Created(Actor self)
|
void INotifyCreated.Created(Actor self)
|
||||||
{
|
{
|
||||||
frozenStates = new PlayerDictionary<FrozenState>(self.World, (player, playerIndex) =>
|
frozenStates = new PlayerDictionary<FrozenState>(self.World, (player, playerIndex) =>
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user