diff --git a/OpenRa.Game/Traits/TraitsInterfaces.cs b/OpenRa.Game/Traits/TraitsInterfaces.cs index 440eda8a1f..1b0b8d7fc7 100644 --- a/OpenRa.Game/Traits/TraitsInterfaces.cs +++ b/OpenRa.Game/Traits/TraitsInterfaces.cs @@ -2,6 +2,7 @@ using System.Drawing; using OpenRa.Game.GameRules; using OpenRa.Game.Graphics; +using IjwFramework.Types; namespace OpenRa.Game.Traits { @@ -71,4 +72,12 @@ namespace OpenRa.Game.Traits } interface ITraitInfo { object Create(Actor self); } + + class StatelessTraitInfo : ITraitInfo + where T : new() + { + static Lazy Instance = Lazy.New(() => new T()); + public object Create(Actor self) { return Instance.Value; } + } + }