diff --git a/OpenRa.Game/OpenRa.Game.csproj b/OpenRa.Game/OpenRa.Game.csproj
index 87d9f1e3ec..b5a186c4b6 100644
--- a/OpenRa.Game/OpenRa.Game.csproj
+++ b/OpenRa.Game/OpenRa.Game.csproj
@@ -111,7 +111,6 @@
-
diff --git a/OpenRa.Game/ProductionItem.cs b/OpenRa.Game/ProductionItem.cs
deleted file mode 100644
index 4a580feacd..0000000000
--- a/OpenRa.Game/ProductionItem.cs
+++ /dev/null
@@ -1,57 +0,0 @@
-using System;
-
-namespace OpenRa
-{
- class ProductionItem
- {
- public readonly string Item;
-
- public readonly int TotalTime;
- public readonly int TotalCost;
- public int RemainingTime { get; private set; }
- public int RemainingCost { get; private set; }
-
- public bool Paused = false, Done = false;
- public Action OnComplete;
-
- int slowdown = 0;
-
- public ProductionItem(string item, int time, int cost, Action onComplete)
- {
- if( time <= 0 )
- time = 1;
- Item = item;
- RemainingTime = TotalTime = time;
- RemainingCost = TotalCost = cost;
- OnComplete = onComplete;
- }
-
- public void Tick(Player player)
- {
- if (Done)
- {
- if (OnComplete != null) OnComplete();
- return;
- }
-
- if (Paused) return;
-
- if (player.GetPowerState() != PowerState.Normal)
- {
- if (--slowdown <= 0)
- slowdown = Rules.General.LowPowerSlowdown;
- else
- return;
- }
-
- var costThisFrame = RemainingCost / RemainingTime;
- if (costThisFrame != 0 && !player.TakeCash(costThisFrame)) return;
-
- RemainingCost -= costThisFrame;
- RemainingTime -= 1;
- if (RemainingTime > 0) return;
-
- Done = true;
- }
- }
-}
diff --git a/OpenRa.Game/Traits/ProductionQueue.cs b/OpenRa.Game/Traits/ProductionQueue.cs
index 20b8b218b9..4bb5c357a2 100755
--- a/OpenRa.Game/Traits/ProductionQueue.cs
+++ b/OpenRa.Game/Traits/ProductionQueue.cs
@@ -168,4 +168,57 @@ namespace OpenRa.Traits
FinishProduction( newUnitType.Category );
}
}
+
+ class ProductionItem
+ {
+ public readonly string Item;
+
+ public readonly int TotalTime;
+ public readonly int TotalCost;
+ public int RemainingTime { get; private set; }
+ public int RemainingCost { get; private set; }
+
+ public bool Paused = false, Done = false;
+ public Action OnComplete;
+
+ int slowdown = 0;
+
+ public ProductionItem(string item, int time, int cost, Action onComplete)
+ {
+ if (time <= 0)
+ time = 1;
+ Item = item;
+ RemainingTime = TotalTime = time;
+ RemainingCost = TotalCost = cost;
+ OnComplete = onComplete;
+ }
+
+ public void Tick(Player player)
+ {
+ if (Done)
+ {
+ if (OnComplete != null) OnComplete();
+ return;
+ }
+
+ if (Paused) return;
+
+ if (player.GetPowerState() != PowerState.Normal)
+ {
+ if (--slowdown <= 0)
+ slowdown = Rules.General.LowPowerSlowdown;
+ else
+ return;
+ }
+
+ var costThisFrame = RemainingCost / RemainingTime;
+ if (costThisFrame != 0 && !player.TakeCash(costThisFrame)) return;
+
+ RemainingCost -= costThisFrame;
+ RemainingTime -= 1;
+ if (RemainingTime > 0) return;
+
+ Done = true;
+ }
+ }
}