add ISync to all traits that have [Sync] members
This commit is contained in:
@@ -17,6 +17,7 @@ using OpenRA.FileFormats;
|
||||
namespace OpenRA
|
||||
{
|
||||
public class SyncAttribute : Attribute { }
|
||||
public interface ISync { } /* marker interface */
|
||||
|
||||
public static class Sync
|
||||
{
|
||||
|
||||
@@ -23,7 +23,7 @@ namespace OpenRA.Traits
|
||||
|
||||
public enum DamageState { Undamaged, Light, Medium, Heavy, Critical, Dead };
|
||||
|
||||
public class Health
|
||||
public class Health : ISync
|
||||
{
|
||||
public readonly HealthInfo Info;
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ namespace OpenRA.Traits
|
||||
public object Create (ActorInitializer init) { return new DeveloperMode(this); }
|
||||
}
|
||||
|
||||
public class DeveloperMode : IResolveOrder
|
||||
public class DeveloperMode : IResolveOrder, ISync
|
||||
{
|
||||
DeveloperModeInfo Info;
|
||||
[Sync] public bool FastCharge;
|
||||
|
||||
@@ -26,7 +26,7 @@ namespace OpenRA.Traits
|
||||
{
|
||||
public object Create(ActorInitializer init) { return new DebugResourceCash(init.self); }
|
||||
}
|
||||
public class DebugResourceCash
|
||||
public class DebugResourceCash : ISync
|
||||
{
|
||||
readonly Actor self;
|
||||
public DebugResourceCash(Actor self){this.self = self;}
|
||||
@@ -37,7 +37,7 @@ namespace OpenRA.Traits
|
||||
{
|
||||
public object Create(ActorInitializer init) { return new DebugResourceOre(init.self); }
|
||||
}
|
||||
public class DebugResourceOre
|
||||
public class DebugResourceOre : ISync
|
||||
{
|
||||
readonly Actor self;
|
||||
public DebugResourceOre(Actor self){this.self = self;}
|
||||
@@ -48,14 +48,14 @@ namespace OpenRA.Traits
|
||||
{
|
||||
public object Create(ActorInitializer init) { return new DebugResourceOreCapacity(init.self); }
|
||||
}
|
||||
public class DebugResourceOreCapacity
|
||||
public class DebugResourceOreCapacity : ISync
|
||||
{
|
||||
readonly Actor self;
|
||||
public DebugResourceOreCapacity(Actor self){this.self = self;}
|
||||
[Sync] public int foo { get { return self.Trait<PlayerResources>().OreCapacity; } }
|
||||
}
|
||||
|
||||
public class PlayerResources : ITick
|
||||
public class PlayerResources : ITick, ISync
|
||||
{
|
||||
readonly Player Owner;
|
||||
int AdviceInterval;
|
||||
|
||||
@@ -15,7 +15,8 @@ namespace OpenRA.Traits
|
||||
{
|
||||
public object Create(ActorInitializer init) { return new SharesCell(init); }
|
||||
}
|
||||
public class SharesCell : IOffsetCenterLocation
|
||||
|
||||
public class SharesCell : IOffsetCenterLocation, ISync
|
||||
{
|
||||
[Sync]
|
||||
public int Position;
|
||||
|
||||
@@ -24,7 +24,7 @@ namespace OpenRA.Mods.Cnc
|
||||
public object Create(ActorInitializer init) { return new PoisonedByTiberium(this); }
|
||||
}
|
||||
|
||||
class PoisonedByTiberium : ITick
|
||||
class PoisonedByTiberium : ITick, ISync
|
||||
{
|
||||
PoisonedByTiberiumInfo info;
|
||||
[Sync] int poisonTicks;
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace OpenRA.Mods.RA.Air
|
||||
{
|
||||
public object Create(ActorInitializer init) { return new DebugAircraftFacing(init.self); }
|
||||
}
|
||||
public class DebugAircraftFacing
|
||||
public class DebugAircraftFacing : ISync
|
||||
{
|
||||
readonly Actor self;
|
||||
public DebugAircraftFacing(Actor self){this.self = self;}
|
||||
@@ -30,7 +30,7 @@ namespace OpenRA.Mods.RA.Air
|
||||
{
|
||||
public object Create(ActorInitializer init) { return new DebugAircraftSubPxX(init.self); }
|
||||
}
|
||||
public class DebugAircraftSubPxX
|
||||
public class DebugAircraftSubPxX : ISync
|
||||
{
|
||||
readonly Actor self;
|
||||
public DebugAircraftSubPxX(Actor self){this.self = self;}
|
||||
@@ -41,7 +41,7 @@ namespace OpenRA.Mods.RA.Air
|
||||
{
|
||||
public object Create(ActorInitializer init) { return new DebugAircraftSubPxY(init.self); }
|
||||
}
|
||||
public class DebugAircraftSubPxY
|
||||
public class DebugAircraftSubPxY : ISync
|
||||
{
|
||||
readonly Actor self;
|
||||
public DebugAircraftSubPxY(Actor self){this.self = self;}
|
||||
@@ -52,7 +52,7 @@ namespace OpenRA.Mods.RA.Air
|
||||
{
|
||||
public object Create(ActorInitializer init) { return new DebugAircraftAltitude(init.self); }
|
||||
}
|
||||
public class DebugAircraftAltitude
|
||||
public class DebugAircraftAltitude : ISync
|
||||
{
|
||||
readonly Actor self;
|
||||
public DebugAircraftAltitude(Actor self){this.self = self;}
|
||||
@@ -74,7 +74,7 @@ namespace OpenRA.Mods.RA.Air
|
||||
public virtual object Create( ActorInitializer init ) { return new Aircraft( init , this ); }
|
||||
}
|
||||
|
||||
public class Aircraft : IMove, IFacing, IOccupySpace
|
||||
public class Aircraft : IMove, IFacing, IOccupySpace, ISync
|
||||
{
|
||||
protected readonly Actor self;
|
||||
[Sync]
|
||||
|
||||
@@ -41,7 +41,7 @@ namespace OpenRA.Mods.RA
|
||||
public abstract object Create(ActorInitializer init);
|
||||
}
|
||||
|
||||
public abstract class AttackBase : IIssueOrder, IResolveOrder, ITick, IExplodeModifier, IOrderVoice
|
||||
public abstract class AttackBase : IIssueOrder, IResolveOrder, ITick, IExplodeModifier, IOrderVoice, ISync
|
||||
{
|
||||
[Sync]
|
||||
int nextScanTime = 0;
|
||||
|
||||
@@ -21,7 +21,7 @@ namespace OpenRA.Mods.RA
|
||||
public readonly bool JustMove = false;
|
||||
}
|
||||
|
||||
class AttackMove : IResolveOrder, IOrderVoice, ITick
|
||||
class AttackMove : IResolveOrder, IOrderVoice, ITick, ISync
|
||||
{
|
||||
[Sync] public int2 TargetLocation = int2.Zero;
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@ namespace OpenRA.Mods.RA.Buildings
|
||||
}
|
||||
}
|
||||
|
||||
public class Building : INotifyDamage, IResolveOrder, IOccupySpace, INotifyCapture
|
||||
public class Building : INotifyDamage, IResolveOrder, IOccupySpace, INotifyCapture, ISync
|
||||
{
|
||||
readonly Actor self;
|
||||
public readonly BuildingInfo Info;
|
||||
|
||||
@@ -17,7 +17,7 @@ namespace OpenRA.Mods.RA.Buildings
|
||||
public object Create(ActorInitializer init) { return new CanPowerDown(init); }
|
||||
}
|
||||
|
||||
public class CanPowerDown : IResolveOrder, IDisable
|
||||
public class CanPowerDown : IResolveOrder, IDisable, ISync
|
||||
{
|
||||
[Sync]
|
||||
bool disabled = false;
|
||||
|
||||
@@ -17,9 +17,9 @@ namespace OpenRA.Mods.RA.Buildings
|
||||
{
|
||||
public readonly int AdviceInterval = 250;
|
||||
public object Create(ActorInitializer init) { return new PowerManager(init, this); }
|
||||
}
|
||||
|
||||
public class PowerManager : ITick
|
||||
}
|
||||
|
||||
public class PowerManager : ITick, ISync
|
||||
{
|
||||
PowerManagerInfo Info;
|
||||
Player Player;
|
||||
|
||||
@@ -20,9 +20,9 @@ namespace OpenRA.Mods.RA.Buildings
|
||||
public readonly float RepairRate = 0.016f;
|
||||
public readonly int RepairStep = 7;
|
||||
public object Create(ActorInitializer init) { return new RepairableBuilding(init.self, this); }
|
||||
}
|
||||
|
||||
public class RepairableBuilding : ITick, IResolveOrder
|
||||
}
|
||||
|
||||
public class RepairableBuilding : ITick, IResolveOrder, ISync
|
||||
{
|
||||
[Sync]
|
||||
bool isRepairing = false;
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace OpenRA.Mods.RA
|
||||
public readonly int Interval = 8;
|
||||
}
|
||||
|
||||
class Burns : ITick
|
||||
class Burns : ITick, ISync
|
||||
{
|
||||
[Sync]
|
||||
int ticks;
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace OpenRA.Mods.RA
|
||||
public readonly int Amount = 3;
|
||||
}
|
||||
|
||||
class CashTrickler : ITick
|
||||
class CashTrickler : ITick, ISync
|
||||
{
|
||||
[Sync]
|
||||
int ticks;
|
||||
|
||||
@@ -21,7 +21,7 @@ namespace OpenRA.Mods.RA
|
||||
public readonly int ChargeTime = 120; // Seconds
|
||||
}
|
||||
|
||||
class ChronoshiftDeploy : IIssueOrder, IResolveOrder, ITick, IPips, IOrderVoice
|
||||
class ChronoshiftDeploy : IIssueOrder, IResolveOrder, ITick, IPips, IOrderVoice, ISync
|
||||
{
|
||||
// Recharge logic
|
||||
[Sync]
|
||||
|
||||
@@ -15,7 +15,7 @@ namespace OpenRA.Mods.RA
|
||||
{
|
||||
class ChronoshiftableInfo : TraitInfo<Chronoshiftable> { }
|
||||
|
||||
public class Chronoshiftable : ITick
|
||||
public class Chronoshiftable : ITick, ISync
|
||||
{
|
||||
// Return-to-sender logic
|
||||
[Sync]
|
||||
|
||||
@@ -37,7 +37,7 @@ namespace OpenRA.Mods.RA
|
||||
public object Create(ActorInitializer init) { return new Cloak(init.self, this); }
|
||||
}
|
||||
|
||||
public class Cloak : IRenderModifier, INotifyDamage, INotifyAttack, ITick, IVisibilityModifier, IRadarColorModifier
|
||||
public class Cloak : IRenderModifier, INotifyDamage, INotifyAttack, ITick, IVisibilityModifier, IRadarColorModifier, ISync
|
||||
{
|
||||
[Sync]
|
||||
int remainingTime;
|
||||
|
||||
@@ -34,7 +34,7 @@ namespace OpenRA.Mods.RA
|
||||
}
|
||||
|
||||
// ITeleportable is required for paradrop
|
||||
class Crate : ITick, IOccupySpace, ITeleportable, ICrushable
|
||||
class Crate : ITick, IOccupySpace, ITeleportable, ICrushable, ISync
|
||||
{
|
||||
readonly Actor self;
|
||||
[Sync]
|
||||
|
||||
@@ -26,7 +26,7 @@ namespace OpenRA.Mods.RA
|
||||
public object Create(ActorInitializer init) { return new GainsExperience(init.self, this); }
|
||||
}
|
||||
|
||||
public class GainsExperience : IFirepowerModifier, ISpeedModifier, IDamageModifier, IRenderModifier
|
||||
public class GainsExperience : IFirepowerModifier, ISpeedModifier, IDamageModifier, IRenderModifier, ISync
|
||||
{
|
||||
readonly Actor self;
|
||||
readonly int[] Levels;
|
||||
|
||||
@@ -30,8 +30,8 @@ namespace OpenRA.Mods.RA
|
||||
}
|
||||
|
||||
public class Harvester : IIssueOrder, IResolveOrder, IPips,
|
||||
IRenderModifier, IExplodeModifier, IOrderVoice,
|
||||
ISpeedModifier
|
||||
IRenderModifier, IExplodeModifier, IOrderVoice,
|
||||
ISpeedModifier, ISync
|
||||
{
|
||||
Dictionary<ResourceTypeInfo, int> contents = new Dictionary<ResourceTypeInfo, int>();
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace OpenRA.Mods.RA
|
||||
public object Create( ActorInitializer init ) { return new Husk( init ); }
|
||||
}
|
||||
|
||||
class Husk : IOccupySpace, IFacing
|
||||
class Husk : IOccupySpace, IFacing, ISync
|
||||
{
|
||||
[Sync]
|
||||
int2 location;
|
||||
|
||||
@@ -16,7 +16,7 @@ namespace OpenRA.Mods.RA
|
||||
{
|
||||
class IronCurtainableInfo : TraitInfo<IronCurtainable> { }
|
||||
|
||||
class IronCurtainable : IDamageModifier, ITick
|
||||
class IronCurtainable : IDamageModifier, ITick, ISync
|
||||
{
|
||||
[Sync]
|
||||
int RemainingTicks = 0;
|
||||
|
||||
@@ -21,7 +21,7 @@ namespace OpenRA.Mods.RA
|
||||
public object Create(ActorInitializer init) { return new LimitedAmmo(this); }
|
||||
}
|
||||
|
||||
public class LimitedAmmo : INotifyAttack, IPips
|
||||
public class LimitedAmmo : INotifyAttack, IPips, ISync
|
||||
{
|
||||
[Sync]
|
||||
int ammo;
|
||||
|
||||
@@ -24,7 +24,7 @@ namespace OpenRA.Mods.RA
|
||||
public object Create(ActorInitializer init) { return new Mine(init, this); }
|
||||
}
|
||||
|
||||
class Mine : ICrushable, IOccupySpace
|
||||
class Mine : ICrushable, IOccupySpace, ISync
|
||||
{
|
||||
readonly Actor self;
|
||||
readonly MineInfo info;
|
||||
|
||||
@@ -27,7 +27,7 @@ namespace OpenRA.Mods.RA
|
||||
public readonly string[] RearmBuildings = { "fix" };
|
||||
}
|
||||
|
||||
class Minelayer : IIssueOrder, IResolveOrder, IPostRenderSelection
|
||||
class Minelayer : IIssueOrder, IResolveOrder, IPostRenderSelection, ISync
|
||||
{
|
||||
/* [Sync] when sync can cope with arrays! */
|
||||
public int2[] minefield = null;
|
||||
|
||||
@@ -101,7 +101,7 @@ namespace OpenRA.Mods.RA.Move
|
||||
}
|
||||
}
|
||||
|
||||
public class Mobile : IIssueOrder, IResolveOrder, IOrderVoice, IOccupySpace, IMove, IFacing, INudge
|
||||
public class Mobile : IIssueOrder, IResolveOrder, IOrderVoice, IOccupySpace, IMove, IFacing, INudge, ISync
|
||||
{
|
||||
public readonly Actor self;
|
||||
public readonly MobileInfo Info;
|
||||
|
||||
@@ -34,7 +34,7 @@ namespace OpenRA.Mods.RA
|
||||
public virtual object Create(ActorInitializer init) { return new OreRefinery(init.self, this); }
|
||||
}
|
||||
|
||||
public class OreRefinery : ITick, IAcceptOre, INotifyDamage, INotifySold, INotifyCapture, IPips, IExplodeModifier
|
||||
public class OreRefinery : ITick, IAcceptOre, INotifyDamage, INotifySold, INotifyCapture, IPips, IExplodeModifier, ISync
|
||||
{
|
||||
readonly Actor self;
|
||||
readonly OreRefineryInfo Info;
|
||||
|
||||
@@ -18,9 +18,9 @@ namespace OpenRA.Mods.RA
|
||||
public class ClassicProductionQueueInfo : ProductionQueueInfo, ITraitPrerequisite<TechTreeInfo>, ITraitPrerequisite<PowerManagerInfo>, ITraitPrerequisite<PlayerResourcesInfo>
|
||||
{
|
||||
public override object Create(ActorInitializer init) { return new ClassicProductionQueue(init.self, this); }
|
||||
}
|
||||
|
||||
public class ClassicProductionQueue : ProductionQueue
|
||||
}
|
||||
|
||||
public class ClassicProductionQueue : ProductionQueue, ISync
|
||||
{
|
||||
public ClassicProductionQueue( Actor self, ClassicProductionQueueInfo info )
|
||||
: base(self, self, info as ProductionQueueInfo) {}
|
||||
|
||||
@@ -13,7 +13,7 @@ namespace OpenRA.Mods.RA
|
||||
public object Create(ActorInitializer init) { return new ProximityCapturable(init.self, this); }
|
||||
}
|
||||
|
||||
public class ProximityCapturable : ITick
|
||||
public class ProximityCapturable : ITick, ISync
|
||||
{
|
||||
[Sync]
|
||||
public Player Owner { get { return Captured ? Self.Owner : OriginalOwner; } }
|
||||
|
||||
@@ -23,7 +23,7 @@ namespace OpenRA.Mods.RA
|
||||
public object Create(ActorInitializer init) { return new RallyPoint(init.self); }
|
||||
}
|
||||
|
||||
public class RallyPoint : IIssueOrder, IResolveOrder
|
||||
public class RallyPoint : IIssueOrder, IResolveOrder, ISync
|
||||
{
|
||||
[Sync]
|
||||
public int2 rallyPoint;
|
||||
|
||||
@@ -37,7 +37,7 @@ namespace OpenRA.Mods.RA.Render
|
||||
}
|
||||
}
|
||||
|
||||
class RenderWarFactory : RenderBuilding, INotifyBuildComplete, INotifyDamage, ITick, INotifyProduction, INotifySold
|
||||
class RenderWarFactory : RenderBuilding, INotifyBuildComplete, INotifyDamage, ITick, INotifyProduction, INotifySold, ISync
|
||||
{
|
||||
public Animation roof;
|
||||
[Sync]
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace OpenRA.Mods.RA
|
||||
public readonly float HealIfBelow = .5f;
|
||||
}
|
||||
|
||||
class SelfHealing : ITick
|
||||
class SelfHealing : ITick, ISync
|
||||
{
|
||||
[Sync]
|
||||
int ticks;
|
||||
|
||||
@@ -21,7 +21,7 @@ namespace OpenRA.Mods.RA
|
||||
public object Create(ActorInitializer init) { return new StoresOre(init.self, this); }
|
||||
}
|
||||
|
||||
class StoresOre : IPips, INotifyCapture, INotifyDamage, IExplodeModifier, IStoreOre
|
||||
class StoresOre : IPips, INotifyCapture, INotifyDamage, IExplodeModifier, IStoreOre, ISync
|
||||
{
|
||||
readonly StoresOreInfo Info;
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ namespace OpenRA.Mods.RA
|
||||
public object Create(ActorInitializer init) { return new StrategicPoint(init.self, this); }
|
||||
}
|
||||
|
||||
public class StrategicPoint : INotifyCapture, ITick
|
||||
public class StrategicPoint : INotifyCapture, ITick, ISync
|
||||
{
|
||||
[Sync] public Actor Self;
|
||||
[Sync] public bool Critical;
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace OpenRA.Mods.RA
|
||||
public object Create(ActorInitializer init) { return new StrategicVictoryConditions(init.self, this); }
|
||||
}
|
||||
|
||||
public class StrategicVictoryConditions : ITick
|
||||
public class StrategicVictoryConditions : ITick, ISync
|
||||
{
|
||||
[Sync] public Actor Self;
|
||||
public StrategicVictoryConditionsInfo Info;
|
||||
|
||||
@@ -22,7 +22,7 @@ namespace OpenRA.Mods.RA
|
||||
public override object Create(ActorInitializer init) { return new GpsPower(init.self, this); }
|
||||
}
|
||||
|
||||
class GpsPower : SupportPower, INotifyDamage
|
||||
class GpsPower : SupportPower, INotifyDamage, ISync
|
||||
{
|
||||
public GpsPower(Actor self, GpsPowerInfo info) : base(self, info) { }
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ namespace OpenRA.Mods.RA
|
||||
class TakeCoverInfo : TraitInfo<TakeCover>, ITraitPrerequisite<RenderInfantryInfo> { }
|
||||
|
||||
// infantry prone behavior
|
||||
class TakeCover : ITick, INotifyDamage, IDamageModifier, ISpeedModifier
|
||||
class TakeCover : ITick, INotifyDamage, IDamageModifier, ISpeedModifier, ISync
|
||||
{
|
||||
const int defaultProneTime = 100; /* ticks, =4s */
|
||||
const float proneDamage = .5f;
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace OpenRA.Mods.RA
|
||||
public object Create(ActorInitializer init) { return new Turreted(init, this); }
|
||||
}
|
||||
|
||||
public class Turreted : ITick
|
||||
public class Turreted : ITick, ISync
|
||||
{
|
||||
[Sync]
|
||||
public int turretFacing = 0;
|
||||
|
||||
@@ -23,7 +23,7 @@ namespace OpenRA.Mods.RA
|
||||
#endregion
|
||||
}
|
||||
|
||||
public abstract class UnitStance : ITick, IResolveOrder, ISelectionColorModifier, IPostRenderSelection
|
||||
public abstract class UnitStance : ITick, IResolveOrder, ISelectionColorModifier, IPostRenderSelection, ISync
|
||||
{
|
||||
[Sync]
|
||||
public int NextScanTime;
|
||||
|
||||
@@ -16,7 +16,7 @@ namespace OpenRA.Mods.RA
|
||||
///
|
||||
/// Will fire only when fired upon
|
||||
/// </summary>
|
||||
public class UnitStanceDefensive : UnitStance, INotifyDamage
|
||||
public class UnitStanceDefensive : UnitStance, INotifyDamage, ISync
|
||||
{
|
||||
public enum ETargetType
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user