no more stateless garbage
This commit is contained in:
@@ -23,7 +23,7 @@ using OpenRA.Traits.Activities;
|
||||
|
||||
namespace OpenRA.Traits
|
||||
{
|
||||
class AutoHealInfo : StatelessTraitInfo<AutoHeal> { }
|
||||
class AutoHealInfo : TraitInfo<AutoHeal> { }
|
||||
|
||||
class AutoHeal : ITick
|
||||
{
|
||||
|
||||
@@ -23,12 +23,10 @@ using System.Drawing;
|
||||
|
||||
namespace OpenRA.Traits
|
||||
{
|
||||
class AutoTargetInfo : ITraitInfo
|
||||
class AutoTargetInfo : TraitInfo<AutoTarget>
|
||||
{
|
||||
public readonly float ScanTimeAverage = 2f;
|
||||
public readonly float ScanTimeSpread = .5f;
|
||||
|
||||
public object Create(Actor self) { return new AutoTarget(); }
|
||||
}
|
||||
|
||||
class AutoTarget : ITick, INotifyDamage
|
||||
|
||||
@@ -6,7 +6,7 @@ using OpenRA.GameRules;
|
||||
|
||||
namespace OpenRA.Traits.AI
|
||||
{
|
||||
class EmitInfantryOnSellInfo : StatelessTraitInfo<EmitInfantryOnSell>
|
||||
class EmitInfantryOnSellInfo : TraitInfo<EmitInfantryOnSell>
|
||||
{
|
||||
public readonly float ValueFraction = .4f;
|
||||
public readonly float MinHpFraction = .3f;
|
||||
|
||||
@@ -24,7 +24,7 @@ using System.Drawing;
|
||||
|
||||
namespace OpenRA.Traits.AI
|
||||
{
|
||||
class ReturnOnIdleInfo : StatelessTraitInfo<ReturnOnIdle> { }
|
||||
class ReturnOnIdleInfo : TraitInfo<ReturnOnIdle> { }
|
||||
|
||||
// fly home or fly-off-map behavior for idle planes
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
namespace OpenRA.Traits
|
||||
{
|
||||
class BuildableInfo : StatelessTraitInfo<Buildable>
|
||||
class BuildableInfo : TraitInfo<Buildable>
|
||||
{
|
||||
public readonly int TechLevel = -1;
|
||||
public readonly string[] Prerequisites = { };
|
||||
|
||||
@@ -4,7 +4,7 @@ using OpenRA.Orders;
|
||||
|
||||
namespace OpenRA.Traits
|
||||
{
|
||||
class PowerDownButtonInfo : StatelessTraitInfo<PowerDownButton> { }
|
||||
class PowerDownButtonInfo : TraitInfo<PowerDownButton> { }
|
||||
|
||||
class PowerDownButton : IChromeButton
|
||||
{
|
||||
@@ -14,7 +14,7 @@ namespace OpenRA.Traits
|
||||
public void OnClick() { Game.controller.ToggleInputMode<PowerDownOrderGenerator>(); }
|
||||
}
|
||||
|
||||
class SellButtonInfo : StatelessTraitInfo<SellButton> { }
|
||||
class SellButtonInfo : TraitInfo<SellButton> { }
|
||||
|
||||
class SellButton : IChromeButton
|
||||
{
|
||||
|
||||
@@ -23,7 +23,7 @@ namespace OpenRA.Traits
|
||||
// allow a nonstandard sell/repair value to avoid
|
||||
// buy-sell exploits like c&c's PROC.
|
||||
|
||||
class CustomSellValueInfo : StatelessTraitInfo<CustomSellValue>
|
||||
class CustomSellValueInfo : TraitInfo<CustomSellValue>
|
||||
{
|
||||
public readonly int Value = 0;
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ using OpenRA.Effects;
|
||||
|
||||
namespace OpenRA.Traits
|
||||
{
|
||||
class ExplodesInfo : StatelessTraitInfo<Explodes> { }
|
||||
class ExplodesInfo : TraitInfo<Explodes> { }
|
||||
|
||||
class Explodes : INotifyDamage
|
||||
{
|
||||
|
||||
@@ -22,7 +22,7 @@ using System.Collections.Generic;
|
||||
|
||||
namespace OpenRA.Traits
|
||||
{
|
||||
class FakeInfo : StatelessTraitInfo<Fake> { }
|
||||
class FakeInfo : TraitInfo<Fake> { }
|
||||
|
||||
class Fake : ITags
|
||||
{
|
||||
|
||||
@@ -27,7 +27,7 @@ using OpenRA.Traits.Activities;
|
||||
|
||||
namespace OpenRA.Traits
|
||||
{
|
||||
public class LineBuildInfo : StatelessTraitInfo<LineBuild>
|
||||
public class LineBuildInfo : TraitInfo<LineBuild>
|
||||
{
|
||||
public readonly int Range = 5;
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ using System.Linq;
|
||||
|
||||
namespace OpenRA.Traits
|
||||
{
|
||||
class BelowUnitsInfo : StatelessTraitInfo<BelowUnits> { }
|
||||
class BelowUnitsInfo : TraitInfo<BelowUnits> { }
|
||||
|
||||
class BelowUnits : IRenderModifier
|
||||
{
|
||||
|
||||
@@ -22,7 +22,7 @@ using System.Collections.Generic;
|
||||
|
||||
namespace OpenRA.Traits
|
||||
{
|
||||
class InvisibleToOthersInfo : StatelessTraitInfo<InvisibleToOthers> { }
|
||||
class InvisibleToOthersInfo : TraitInfo<InvisibleToOthers> { }
|
||||
|
||||
class InvisibleToOthers : IRenderModifier
|
||||
{
|
||||
|
||||
@@ -23,7 +23,7 @@ using System.Linq;
|
||||
|
||||
namespace OpenRA.Traits
|
||||
{
|
||||
class WithShadowInfo : StatelessTraitInfo<WithShadow> {}
|
||||
class WithShadowInfo : TraitInfo<WithShadow> {}
|
||||
|
||||
class WithShadow : IRenderModifier
|
||||
{
|
||||
|
||||
@@ -23,7 +23,7 @@ using OpenRA.Traits.Activities;
|
||||
|
||||
namespace OpenRA.Traits
|
||||
{
|
||||
class PassengerInfo : StatelessTraitInfo<Passenger>
|
||||
class PassengerInfo : TraitInfo<Passenger>
|
||||
{
|
||||
public readonly PipType ColorOfCargoPip = PipType.Green;
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
namespace OpenRA.Traits
|
||||
{
|
||||
class EvaAlertsInfo : StatelessTraitInfo<EvaAlerts>
|
||||
class EvaAlertsInfo : TraitInfo<EvaAlerts>
|
||||
{
|
||||
// Sound effects
|
||||
public readonly string TabClick = "ramenu1.aud";
|
||||
|
||||
@@ -23,7 +23,7 @@ using OpenRA.Effects;
|
||||
|
||||
namespace OpenRA.Traits
|
||||
{
|
||||
class PlaceBuildingInfo : StatelessTraitInfo<PlaceBuilding> {}
|
||||
class PlaceBuildingInfo : TraitInfo<PlaceBuilding> {}
|
||||
|
||||
class PlaceBuilding : IResolveOrder
|
||||
{
|
||||
|
||||
@@ -46,7 +46,7 @@ namespace OpenRA.Traits
|
||||
}
|
||||
}
|
||||
|
||||
class JamsRadarInfo : StatelessTraitInfo<JamsRadar>
|
||||
class JamsRadarInfo : TraitInfo<JamsRadar>
|
||||
{
|
||||
public readonly int Range = 0;
|
||||
}
|
||||
|
||||
@@ -65,6 +65,6 @@ namespace OpenRA.Traits
|
||||
}
|
||||
}
|
||||
|
||||
class RenderRangeCircleInfo : StatelessTraitInfo<RenderRangeCircle> { }
|
||||
class RenderRangeCircleInfo : TraitInfo<RenderRangeCircle> { }
|
||||
class RenderRangeCircle { }
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ using System;
|
||||
namespace OpenRA.Traits
|
||||
{
|
||||
|
||||
public class RepairsUnitsInfo : StatelessTraitInfo<RepairsUnits>
|
||||
public class RepairsUnitsInfo : TraitInfo<RepairsUnits>
|
||||
{
|
||||
public readonly float URepairPercent = 0.2f;
|
||||
public readonly int URepairStep = 10;
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
namespace OpenRA.Traits
|
||||
{
|
||||
public class SelectableInfo : StatelessTraitInfo<Selectable>
|
||||
public class SelectableInfo : TraitInfo<Selectable>
|
||||
{
|
||||
public readonly int Priority = 10;
|
||||
public readonly int[] Bounds = null;
|
||||
|
||||
@@ -22,7 +22,7 @@ using System.Collections.Generic;
|
||||
|
||||
namespace OpenRA.Traits
|
||||
{
|
||||
class StoresOreInfo : StatelessTraitInfo<StoresOre>
|
||||
class StoresOreInfo : TraitInfo<StoresOre>
|
||||
{
|
||||
public readonly int Pips = 0;
|
||||
public readonly int Capacity = 0;
|
||||
|
||||
@@ -102,12 +102,7 @@ namespace OpenRA.Traits
|
||||
|
||||
public interface ITraitInfo { object Create(Actor self); }
|
||||
|
||||
public class StatelessTraitInfo<T> : ITraitInfo
|
||||
where T : new()
|
||||
{
|
||||
static Lazy<T> Instance = Lazy.New(() => new T());
|
||||
public object Create(Actor self) { return Instance.Value; }
|
||||
}
|
||||
public class TraitInfo<T> : ITraitInfo where T : new() { public object Create(Actor self) { return new T(); } }
|
||||
|
||||
public interface ITraitPrerequisite<T> { }
|
||||
|
||||
|
||||
@@ -20,6 +20,6 @@
|
||||
|
||||
namespace OpenRA.Traits
|
||||
{
|
||||
public class WallInfo : StatelessTraitInfo<Wall> {}
|
||||
public class WallInfo : TraitInfo<Wall> {}
|
||||
public class Wall {}
|
||||
}
|
||||
|
||||
@@ -102,6 +102,6 @@ namespace OpenRA.Traits
|
||||
}
|
||||
}
|
||||
|
||||
class BibInfo : StatelessTraitInfo<Bib> { }
|
||||
class BibInfo : TraitInfo<Bib> { }
|
||||
public class Bib { }
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ using System.Linq;
|
||||
|
||||
namespace OpenRA.Traits
|
||||
{
|
||||
class BridgeLoadHookInfo : StatelessTraitInfo<BridgeLoadHook> { }
|
||||
class BridgeLoadHookInfo : TraitInfo<BridgeLoadHook> { }
|
||||
|
||||
class BridgeLoadHook : ILoadWorldHook
|
||||
{
|
||||
|
||||
@@ -22,7 +22,7 @@ using System.Linq;
|
||||
|
||||
namespace OpenRA.Traits
|
||||
{
|
||||
class ChoosePaletteOnSelectInfo : StatelessTraitInfo<ChoosePaletteOnSelect> { }
|
||||
class ChoosePaletteOnSelectInfo : TraitInfo<ChoosePaletteOnSelect> { }
|
||||
|
||||
class ChoosePaletteOnSelect : INotifySelection
|
||||
{
|
||||
|
||||
@@ -3,7 +3,7 @@ using System;
|
||||
|
||||
namespace OpenRA.Traits
|
||||
{
|
||||
public class GlobalDefaultsInfo : StatelessTraitInfo<GlobalDefaults>
|
||||
public class GlobalDefaultsInfo : TraitInfo<GlobalDefaults>
|
||||
{
|
||||
/* Special Weapons */
|
||||
public readonly float GapRegenInterval = 0.1f;
|
||||
|
||||
@@ -22,7 +22,7 @@ using System.Drawing;
|
||||
|
||||
namespace OpenRA.Traits
|
||||
{
|
||||
class LightPaletteRotatorInfo : StatelessTraitInfo<LightPaletteRotator> { }
|
||||
class LightPaletteRotatorInfo : TraitInfo<LightPaletteRotator> { }
|
||||
class LightPaletteRotator : ITick, IPaletteModifier
|
||||
{
|
||||
float t = 0;
|
||||
|
||||
@@ -25,7 +25,7 @@ using OpenRA.FileFormats;
|
||||
|
||||
namespace OpenRA.Traits
|
||||
{
|
||||
class SpawnDefaultUnitsInfo : StatelessTraitInfo<SpawnDefaultUnits>
|
||||
class SpawnDefaultUnitsInfo : TraitInfo<SpawnDefaultUnits>
|
||||
{
|
||||
public readonly int InitialExploreRange = 5;
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ using System.Text;
|
||||
|
||||
namespace OpenRA.Traits
|
||||
{
|
||||
class SpawnMapActorsInfo : StatelessTraitInfo<SpawnMapActors> { }
|
||||
class SpawnMapActorsInfo : TraitInfo<SpawnMapActors> { }
|
||||
|
||||
class SpawnMapActors : IGameStarted
|
||||
{
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
namespace OpenRA.Traits
|
||||
{
|
||||
class TheaterInfo : StatelessTraitInfo<Theater>
|
||||
class TheaterInfo : TraitInfo<Theater>
|
||||
{
|
||||
public readonly string Name = null;
|
||||
public readonly string Theater = null;
|
||||
|
||||
@@ -22,7 +22,7 @@ using System.Drawing;
|
||||
|
||||
namespace OpenRA.Traits
|
||||
{
|
||||
class WaterPaletteRotationInfo : StatelessTraitInfo<WaterPaletteRotation> { }
|
||||
class WaterPaletteRotationInfo : TraitInfo<WaterPaletteRotation> { }
|
||||
|
||||
class WaterPaletteRotation : ITick, IPaletteModifier
|
||||
{
|
||||
|
||||
@@ -57,6 +57,6 @@ namespace OpenRA.Mods.Cnc
|
||||
}
|
||||
}
|
||||
|
||||
class IonControlInfo : StatelessTraitInfo<IonControl> { }
|
||||
class IonControlInfo : TraitInfo<IonControl> { }
|
||||
class IonControl { }
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ using OpenRA.Traits.Activities;
|
||||
|
||||
namespace OpenRA.Mods.RA
|
||||
{
|
||||
class EngineerCaptureInfo : StatelessTraitInfo<EngineerCapture> { }
|
||||
class EngineerCaptureInfo : TraitInfo<EngineerCapture> { }
|
||||
|
||||
class EngineerCapture : IIssueOrder, IResolveOrder
|
||||
{
|
||||
|
||||
@@ -58,6 +58,6 @@ namespace OpenRA.Mods.RA
|
||||
}
|
||||
|
||||
// tag trait to identify the building
|
||||
class GpsLaunchSiteInfo : StatelessTraitInfo<GpsLaunchSite> { }
|
||||
class GpsLaunchSiteInfo : TraitInfo<GpsLaunchSite> { }
|
||||
class GpsLaunchSite { }
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ using OpenRA.Traits;
|
||||
|
||||
namespace OpenRA.Mods.RA
|
||||
{
|
||||
class InfiltrateForSonarPulseInfo : StatelessTraitInfo<InfiltrateForSonarPulse> { }
|
||||
class InfiltrateForSonarPulseInfo : TraitInfo<InfiltrateForSonarPulse> { }
|
||||
|
||||
class InfiltrateForSonarPulse : IAcceptSpy
|
||||
{
|
||||
|
||||
@@ -114,6 +114,6 @@ namespace OpenRA.Mods.RA
|
||||
}
|
||||
|
||||
// tag trait for the building
|
||||
class IronCurtainInfo : StatelessTraitInfo<IronCurtain> { }
|
||||
class IronCurtainInfo : TraitInfo<IronCurtain> { }
|
||||
class IronCurtain { }
|
||||
}
|
||||
|
||||
@@ -69,6 +69,6 @@ namespace OpenRA.Mods.RA
|
||||
}
|
||||
|
||||
/* tag trait for stuff that shouldnt trigger mines */
|
||||
class MineImmuneInfo : StatelessTraitInfo<MineImmune> { }
|
||||
class MineImmuneInfo : TraitInfo<MineImmune> { }
|
||||
class MineImmune { }
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ using OpenRA.Traits;
|
||||
|
||||
namespace OpenRA.Mods.RA
|
||||
{
|
||||
class MinelayerInfo : StatelessTraitInfo<Minelayer>
|
||||
class MinelayerInfo : TraitInfo<Minelayer>
|
||||
{
|
||||
public readonly string Mine = "minv";
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ using OpenRA.Traits.Activities;
|
||||
|
||||
namespace OpenRA.Mods.RA
|
||||
{
|
||||
class RepairableNearInfo : StatelessTraitInfo<RepairableNear> { }
|
||||
class RepairableNearInfo : TraitInfo<RepairableNear> { }
|
||||
|
||||
class RepairableNear : IIssueOrder, IResolveOrder
|
||||
{
|
||||
|
||||
@@ -24,7 +24,7 @@ using OpenRA.Traits.Activities;
|
||||
|
||||
namespace OpenRA.Mods.RA
|
||||
{
|
||||
class SpyInfo : StatelessTraitInfo<Spy> { }
|
||||
class SpyInfo : TraitInfo<Spy> { }
|
||||
|
||||
class Spy : IIssueOrder, IResolveOrder
|
||||
{
|
||||
|
||||
@@ -23,7 +23,7 @@ using OpenRA.Traits;
|
||||
|
||||
namespace OpenRA.Mods.RA.SupportPowers
|
||||
{
|
||||
class ChronoshiftPaletteEffectInfo : StatelessTraitInfo<ChronoshiftPaletteEffect> { }
|
||||
class ChronoshiftPaletteEffectInfo : TraitInfo<ChronoshiftPaletteEffect> { }
|
||||
|
||||
public class ChronoshiftPaletteEffect : IPaletteModifier, ITick
|
||||
{
|
||||
|
||||
@@ -183,6 +183,6 @@ namespace OpenRA.Mods.RA.SupportPowers
|
||||
}
|
||||
|
||||
// tag trait to identify the building
|
||||
class ChronosphereInfo : StatelessTraitInfo<Chronosphere> { }
|
||||
class ChronosphereInfo : TraitInfo<Chronosphere> { }
|
||||
public class Chronosphere { }
|
||||
}
|
||||
|
||||
@@ -67,6 +67,6 @@ namespace OpenRA.Mods.RA.SupportPowers
|
||||
}
|
||||
|
||||
// tag trait for the building
|
||||
class NukeSiloInfo : StatelessTraitInfo<NukeSilo> { }
|
||||
class NukeSiloInfo : TraitInfo<NukeSilo> { }
|
||||
class NukeSilo { }
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ using OpenRA.Traits.Activities;
|
||||
|
||||
namespace OpenRA.Mods.RA
|
||||
{
|
||||
class ThiefInfo : StatelessTraitInfo<Thief> { }
|
||||
class ThiefInfo : TraitInfo<Thief> { }
|
||||
|
||||
class Thief : IIssueOrder, IResolveOrder
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user