diff --git a/OpenRA.Game/OpenRA.Game.csproj b/OpenRA.Game/OpenRA.Game.csproj
index 2db036022d..31102be6b4 100755
--- a/OpenRA.Game/OpenRA.Game.csproj
+++ b/OpenRA.Game/OpenRA.Game.csproj
@@ -200,6 +200,7 @@
+
diff --git a/OpenRA.Game/Traits/Target.cs b/OpenRA.Game/Traits/Target.cs
new file mode 100644
index 0000000000..2462b59881
--- /dev/null
+++ b/OpenRA.Game/Traits/Target.cs
@@ -0,0 +1,47 @@
+#region Copyright & License Information
+/*
+ * Copyright 2007-2010 The OpenRA Developers (see AUTHORS)
+ * This file is part of OpenRA, which is free software. It is made
+ * available to you under the terms of the GNU General Public License
+ * as published by the Free Software Foundation. For more information,
+ * see LICENSE.
+ */
+#endregion
+
+namespace OpenRA.Traits
+{
+ public struct Target // a target: either an actor, or a fixed location.
+ {
+ Actor actor;
+ Player owner;
+ int2 pos;
+ bool valid;
+
+ public static Target FromActor(Actor a)
+ {
+ return new Target
+ {
+ actor = a,
+ valid = (a != null),
+ owner = (a != null) ? a.Owner : null
+ };
+ }
+ public static Target FromPos(int2 p) { return new Target { pos = p, valid = true }; }
+ public static Target FromCell(int2 c) { return new Target { pos = Util.CenterOfCell(c), valid = true }; }
+ public static Target FromOrder(Order o)
+ {
+ return o.TargetActor != null
+ ? Target.FromActor(o.TargetActor)
+ : Target.FromCell(o.TargetLocation);
+ }
+
+ public static readonly Target None = new Target();
+
+ public bool IsValid { get { return valid && (actor == null || (actor.IsInWorld && actor.Owner == owner)); } }
+ public int2 PxPosition { get { return IsActor ? actor.Trait().PxPosition : pos; } }
+ public int2 CenterLocation { get { return PxPosition; } }
+
+ public Actor Actor { get { return IsActor ? actor : null; } }
+ public bool IsActor { get { return actor != null && !actor.Destroyed; } }
+ }
+}
diff --git a/OpenRA.Game/Traits/TraitsInterfaces.cs b/OpenRA.Game/Traits/TraitsInterfaces.cs
index cf0509ba99..3f7d5e079e 100755
--- a/OpenRA.Game/Traits/TraitsInterfaces.cs
+++ b/OpenRA.Game/Traits/TraitsInterfaces.cs
@@ -212,41 +212,6 @@ namespace OpenRA.Traits
public interface IPreRenderSelection { void RenderBeforeWorld(WorldRenderer wr, Actor self); }
public interface IRenderAsTerrain { IEnumerable RenderAsTerrain(Actor self); }
- public struct Target // a target: either an actor, or a fixed location.
- {
- Actor actor;
- Player owner;
- int2 pos;
- bool valid;
-
- public static Target FromActor(Actor a)
- {
- return new Target
- {
- actor = a,
- valid = (a != null),
- owner = (a != null) ? a.Owner : null
- };
- }
- public static Target FromPos(int2 p) { return new Target { pos = p, valid = true }; }
- public static Target FromCell(int2 c) { return new Target { pos = Util.CenterOfCell(c), valid = true }; }
- public static Target FromOrder(Order o)
- {
- return o.TargetActor != null
- ? Target.FromActor(o.TargetActor)
- : Target.FromCell(o.TargetLocation);
- }
-
- public static readonly Target None = new Target();
-
- public bool IsValid { get { return valid && (actor == null || (actor.IsInWorld && actor.Owner == owner)); } }
- public int2 PxPosition { get { return IsActor ? actor.Trait().PxPosition : pos; } }
- public int2 CenterLocation { get { return PxPosition; } }
-
- public Actor Actor { get { return IsActor ? actor : null; } }
- public bool IsActor { get { return actor != null && !actor.Destroyed; } }
- }
-
public interface ITargetable
{
string[] TargetTypes { get; }