diff --git a/OpenRA.Mods.Cnc/Widgets/Logic/ProductionTabsLogic.cs b/OpenRA.Mods.Cnc/Widgets/Logic/ProductionTabsLogic.cs
index 9d6fc6de3c..4c5a63fd09 100644
--- a/OpenRA.Mods.Cnc/Widgets/Logic/ProductionTabsLogic.cs
+++ b/OpenRA.Mods.Cnc/Widgets/Logic/ProductionTabsLogic.cs
@@ -9,7 +9,7 @@
#endregion
using System;
-using OpenRA.Mods.RA.Widgets;
+using OpenRA.Mods.Common.Widgets;
using OpenRA.Widgets;
namespace OpenRA.Mods.Cnc.Widgets.Logic
diff --git a/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj b/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj
index f76059daa3..bb5bcf8ea7 100644
--- a/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj
+++ b/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj
@@ -194,6 +194,7 @@
+
@@ -245,11 +246,14 @@
+
+
+
@@ -260,6 +264,8 @@
+
+
@@ -269,10 +275,12 @@
+
+
@@ -381,7 +389,11 @@
+
+
+
+
diff --git a/OpenRA.Mods.RA/Traits/Buildings/PrimaryBuilding.cs b/OpenRA.Mods.Common/Traits/Buildings/PrimaryBuilding.cs
similarity index 92%
rename from OpenRA.Mods.RA/Traits/Buildings/PrimaryBuilding.cs
rename to OpenRA.Mods.Common/Traits/Buildings/PrimaryBuilding.cs
index bb8975a0de..dfed3647df 100644
--- a/OpenRA.Mods.RA/Traits/Buildings/PrimaryBuilding.cs
+++ b/OpenRA.Mods.Common/Traits/Buildings/PrimaryBuilding.cs
@@ -13,7 +13,7 @@ using System.Linq;
using OpenRA.Mods.Common.Orders;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA.Traits
+namespace OpenRA.Mods.Common.Traits
{
static class PrimaryExts
{
@@ -25,9 +25,9 @@ namespace OpenRA.Mods.RA.Traits
}
[Desc("Used together with ClassicProductionQueue.")]
- class PrimaryBuildingInfo : TraitInfo { }
+ public class PrimaryBuildingInfo : TraitInfo { }
- class PrimaryBuilding : IIssueOrder, IResolveOrder, ITags
+ public class PrimaryBuilding : IIssueOrder, IResolveOrder, ITags
{
bool isPrimary = false;
public bool IsPrimary { get { return isPrimary; } }
diff --git a/OpenRA.Mods.RA/Player/ClassicProductionQueue.cs b/OpenRA.Mods.Common/Traits/Player/ClassicProductionQueue.cs
similarity index 97%
rename from OpenRA.Mods.RA/Player/ClassicProductionQueue.cs
rename to OpenRA.Mods.Common/Traits/Player/ClassicProductionQueue.cs
index 9a96bdb973..4bb1068451 100644
--- a/OpenRA.Mods.RA/Player/ClassicProductionQueue.cs
+++ b/OpenRA.Mods.Common/Traits/Player/ClassicProductionQueue.cs
@@ -10,11 +10,9 @@
using System.Collections.Generic;
using System.Linq;
-using OpenRA.Mods.Common.Traits;
-using OpenRA.Mods.RA.Traits;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA
+namespace OpenRA.Mods.Common.Traits
{
[Desc("Attach this to the player actor (not a building!) to define a new shared build queue.",
"Will only work together with the Production: trait on the actor that actually does the production.",
diff --git a/OpenRA.Mods.RA/Player/PlaceBuilding.cs b/OpenRA.Mods.Common/Traits/Player/PlaceBuilding.cs
similarity index 97%
rename from OpenRA.Mods.RA/Player/PlaceBuilding.cs
rename to OpenRA.Mods.Common/Traits/Player/PlaceBuilding.cs
index 4f76631061..6175073611 100644
--- a/OpenRA.Mods.RA/Player/PlaceBuilding.cs
+++ b/OpenRA.Mods.Common/Traits/Player/PlaceBuilding.cs
@@ -10,12 +10,10 @@
using System.Linq;
using OpenRA.Effects;
-using OpenRA.Mods.Common.Traits;
-using OpenRA.Mods.RA.Traits;
using OpenRA.Primitives;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA
+namespace OpenRA.Mods.Common.Traits
{
[Desc("Allows to execute build orders.", " Attach this to the player actor.")]
class PlaceBuildingInfo : TraitInfo { }
diff --git a/OpenRA.Mods.RA/Player/ProductionQueue.cs b/OpenRA.Mods.Common/Traits/Player/ProductionQueue.cs
similarity index 99%
rename from OpenRA.Mods.RA/Player/ProductionQueue.cs
rename to OpenRA.Mods.Common/Traits/Player/ProductionQueue.cs
index a86e5df0c6..06e275b470 100644
--- a/OpenRA.Mods.RA/Player/ProductionQueue.cs
+++ b/OpenRA.Mods.Common/Traits/Player/ProductionQueue.cs
@@ -11,11 +11,9 @@
using System;
using System.Collections.Generic;
using System.Linq;
-using OpenRA.Mods.Common.Traits;
-using OpenRA.Mods.RA.Traits;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA
+namespace OpenRA.Mods.Common.Traits
{
[Desc("Attach this to an actor (usually a building) to let it produce units or construct buildings.",
"If one builds another actor of this type, he will get a separate queue to create two actors",
diff --git a/OpenRA.Mods.RA/Production.cs b/OpenRA.Mods.Common/Traits/Production.cs
similarity index 97%
rename from OpenRA.Mods.RA/Production.cs
rename to OpenRA.Mods.Common/Traits/Production.cs
index 2ac97c6fad..2526322f7d 100644
--- a/OpenRA.Mods.RA/Production.cs
+++ b/OpenRA.Mods.Common/Traits/Production.cs
@@ -12,13 +12,11 @@ using System;
using System.Drawing;
using System.Linq;
using OpenRA.Activities;
-using OpenRA.Mods.Common;
using OpenRA.Mods.Common.Activities;
-using OpenRA.Mods.Common.Traits;
using OpenRA.Primitives;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA.Traits
+namespace OpenRA.Mods.Common.Traits
{
[Desc("This unit has access to build queues.")]
public class ProductionInfo : ITraitInfo
diff --git a/OpenRA.Mods.RA/ProductionQueueFromSelection.cs b/OpenRA.Mods.Common/Traits/ProductionQueueFromSelection.cs
similarity index 96%
rename from OpenRA.Mods.RA/ProductionQueueFromSelection.cs
rename to OpenRA.Mods.Common/Traits/ProductionQueueFromSelection.cs
index a71f71e8e7..c4568e4e1c 100644
--- a/OpenRA.Mods.RA/ProductionQueueFromSelection.cs
+++ b/OpenRA.Mods.Common/Traits/ProductionQueueFromSelection.cs
@@ -10,12 +10,11 @@
using System;
using System.Linq;
-using OpenRA.Mods.RA.Traits;
-using OpenRA.Mods.RA.Widgets;
+using OpenRA.Mods.Common.Widgets;
using OpenRA.Traits;
using OpenRA.Widgets;
-namespace OpenRA.Mods.RA
+namespace OpenRA.Mods.Common.Traits
{
class ProductionQueueFromSelectionInfo : ITraitInfo
{
diff --git a/OpenRA.Mods.RA/ProductionBar.cs b/OpenRA.Mods.Common/Traits/Render/ProductionBar.cs
similarity index 97%
rename from OpenRA.Mods.RA/ProductionBar.cs
rename to OpenRA.Mods.Common/Traits/Render/ProductionBar.cs
index 23087fbdc4..0ed003b441 100644
--- a/OpenRA.Mods.RA/ProductionBar.cs
+++ b/OpenRA.Mods.Common/Traits/Render/ProductionBar.cs
@@ -11,10 +11,9 @@
using System;
using System.Drawing;
using System.Linq;
-using OpenRA.Mods.RA.Traits;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA
+namespace OpenRA.Mods.Common.Traits
{
[Desc("Visualizes the remaining build time of actor produced here.")]
class ProductionBarInfo : ITraitInfo
diff --git a/OpenRA.Mods.RA/Render/RenderBuildingWarFactory.cs b/OpenRA.Mods.Common/Traits/Render/RenderBuildingWarFactory.cs
similarity index 97%
rename from OpenRA.Mods.RA/Render/RenderBuildingWarFactory.cs
rename to OpenRA.Mods.Common/Traits/Render/RenderBuildingWarFactory.cs
index f551a23ad0..498764b8da 100644
--- a/OpenRA.Mods.RA/Render/RenderBuildingWarFactory.cs
+++ b/OpenRA.Mods.Common/Traits/Render/RenderBuildingWarFactory.cs
@@ -12,10 +12,9 @@ using System.Collections.Generic;
using System.Linq;
using OpenRA.Graphics;
using OpenRA.Mods.Common.Graphics;
-using OpenRA.Mods.Common.Traits;
using OpenRA.Traits;
-namespace OpenRA.Mods.RA.Traits
+namespace OpenRA.Mods.Common.Traits
{
class RenderBuildingWarFactoryInfo : RenderBuildingInfo
{
diff --git a/OpenRA.Mods.RA/Widgets/Logic/ProductionTooltipLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/ProductionTooltipLogic.cs
similarity index 99%
rename from OpenRA.Mods.RA/Widgets/Logic/ProductionTooltipLogic.cs
rename to OpenRA.Mods.Common/Widgets/Logic/ProductionTooltipLogic.cs
index 3513a47a4e..5ddcfd5733 100644
--- a/OpenRA.Mods.RA/Widgets/Logic/ProductionTooltipLogic.cs
+++ b/OpenRA.Mods.Common/Widgets/Logic/ProductionTooltipLogic.cs
@@ -15,7 +15,7 @@ using OpenRA.Mods.Common.Traits;
using OpenRA.Traits;
using OpenRA.Widgets;
-namespace OpenRA.Mods.RA.Widgets.Logic
+namespace OpenRA.Mods.Common.Widgets.Logic
{
public class ProductionTooltipLogic
{
diff --git a/OpenRA.Mods.RA/Widgets/ProductionPaletteWidget.cs b/OpenRA.Mods.Common/Widgets/ProductionPaletteWidget.cs
similarity index 99%
rename from OpenRA.Mods.RA/Widgets/ProductionPaletteWidget.cs
rename to OpenRA.Mods.Common/Widgets/ProductionPaletteWidget.cs
index aae01fe4cb..4472d16d6d 100644
--- a/OpenRA.Mods.RA/Widgets/ProductionPaletteWidget.cs
+++ b/OpenRA.Mods.Common/Widgets/ProductionPaletteWidget.cs
@@ -14,12 +14,11 @@ using System.Drawing;
using System.Linq;
using OpenRA.Graphics;
using OpenRA.Mods.Common.Traits;
-using OpenRA.Mods.RA.Orders;
-using OpenRA.Mods.RA.Traits;
+using OpenRA.Mods.Common.Orders;
using OpenRA.Network;
using OpenRA.Widgets;
-namespace OpenRA.Mods.RA.Widgets
+namespace OpenRA.Mods.Common.Widgets
{
public class ProductionIcon
{
diff --git a/OpenRA.Mods.RA/Widgets/ProductionTabsWidget.cs b/OpenRA.Mods.Common/Widgets/ProductionTabsWidget.cs
similarity index 99%
rename from OpenRA.Mods.RA/Widgets/ProductionTabsWidget.cs
rename to OpenRA.Mods.Common/Widgets/ProductionTabsWidget.cs
index 9cf8910229..9e172d08c3 100644
--- a/OpenRA.Mods.RA/Widgets/ProductionTabsWidget.cs
+++ b/OpenRA.Mods.Common/Widgets/ProductionTabsWidget.cs
@@ -13,10 +13,10 @@ using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using OpenRA.Graphics;
-using OpenRA.Mods.RA;
+using OpenRA.Mods.Common.Traits;
using OpenRA.Widgets;
-namespace OpenRA.Mods.RA.Widgets
+namespace OpenRA.Mods.Common.Widgets
{
public class ProductionTab
{
diff --git a/OpenRA.Mods.RA/Widgets/ProductionTypeButtonWidget.cs b/OpenRA.Mods.Common/Widgets/ProductionTypeButtonWidget.cs
similarity index 95%
rename from OpenRA.Mods.RA/Widgets/ProductionTypeButtonWidget.cs
rename to OpenRA.Mods.Common/Widgets/ProductionTypeButtonWidget.cs
index 8b05b2ac27..69f749af53 100644
--- a/OpenRA.Mods.RA/Widgets/ProductionTypeButtonWidget.cs
+++ b/OpenRA.Mods.Common/Widgets/ProductionTypeButtonWidget.cs
@@ -10,7 +10,7 @@
using OpenRA.Widgets;
-namespace OpenRA.Mods.RA.Widgets
+namespace OpenRA.Mods.Common.Widgets
{
public class ProductionTypeButtonWidget : ButtonWidget
{
diff --git a/OpenRA.Mods.D2k/Traits/World/ChooseBuildTabOnSelect.cs b/OpenRA.Mods.D2k/Traits/World/ChooseBuildTabOnSelect.cs
index e83836d230..0e9474abe0 100644
--- a/OpenRA.Mods.D2k/Traits/World/ChooseBuildTabOnSelect.cs
+++ b/OpenRA.Mods.D2k/Traits/World/ChooseBuildTabOnSelect.cs
@@ -9,8 +9,8 @@
#endregion
using System.Linq;
+using OpenRA.Mods.Common.Traits;
using OpenRA.Mods.D2k.Widgets;
-using OpenRA.Mods.RA;
using OpenRA.Mods.RA.Traits;
using OpenRA.Traits;
using OpenRA.Widgets;
diff --git a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj
index fecc130015..273c866bc7 100644
--- a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj
+++ b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj
@@ -135,16 +135,10 @@
-
-
-
-
-
-
@@ -161,7 +155,6 @@
-
@@ -244,10 +237,6 @@
-
-
-
-
@@ -258,7 +247,6 @@
-
diff --git a/OpenRA.Mods.RA/Widgets/Logic/ClassicProductionLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/ClassicProductionLogic.cs
index 6fe141b636..2721d1e231 100644
--- a/OpenRA.Mods.RA/Widgets/Logic/ClassicProductionLogic.cs
+++ b/OpenRA.Mods.RA/Widgets/Logic/ClassicProductionLogic.cs
@@ -10,6 +10,7 @@
using System;
using System.Linq;
+using OpenRA.Mods.Common.Traits;
using OpenRA.Mods.Common.Widgets;
using OpenRA.Mods.RA.Widgets;
using OpenRA.Network;