Replace ITraitInfo interface with TraitInfo class.

This commit is contained in:
Paul Chote
2020-05-11 18:12:19 +01:00
committed by reaperrr
parent 3cd7ec3878
commit 86f61298e6
243 changed files with 510 additions and 505 deletions

View File

@@ -49,7 +49,7 @@ namespace OpenRA.Traits
/// </summary>
public sealed class DamageType { DamageType() { } }
public interface IHealthInfo : ITraitInfo
public interface IHealthInfo : ITraitInfoInterface
{
int MaxHP { get; }
}
@@ -324,9 +324,17 @@ namespace OpenRA.Traits
public interface IFacingInfo : ITraitInfoInterface { int GetInitialFacing(); }
public interface ITraitInfoInterface { }
public interface ITraitInfo : ITraitInfoInterface { object Create(ActorInitializer init); }
public class TraitInfo<T> : ITraitInfo where T : new() { public virtual object Create(ActorInitializer init) { return new T(); } }
public abstract class TraitInfo : ITraitInfoInterface
{
public abstract object Create(ActorInitializer init);
}
public class TraitInfo<T> : TraitInfo where T : new()
{
public override object Create(ActorInitializer init) { return new T(); }
}
public interface ILobbyCustomRulesIgnore { }
[SuppressMessage("StyleCop.CSharp.NamingRules", "SA1302:InterfaceNamesMustBeginWithI", Justification = "Not a real interface, but more like a tag.")]
@@ -541,7 +549,7 @@ namespace OpenRA.Traits
public interface ICreationActivity { Activity GetCreationActivity(); }
[RequireExplicitImplementation]
public interface IObservesVariablesInfo : ITraitInfo { }
public interface IObservesVariablesInfo : ITraitInfoInterface { }
public delegate void VariableObserverNotifier(Actor self, IReadOnlyDictionary<string, int> variables);
public struct VariableObserver