Remove ActorExtensionsForMove

And use IMove.IsMoving instead.
This commit is contained in:
reaperrr
2016-05-17 01:02:44 +02:00
parent 916f2ea2ea
commit 099c44f6f9
3 changed files with 4 additions and 21 deletions

View File

@@ -825,7 +825,8 @@ namespace OpenRA.Mods.Common.AI
foreach (var mcv in mcvs) foreach (var mcv in mcvs)
{ {
if (mcv.IsMoving()) var mover = mcv.TraitOrDefault<IMove>();
if (mover != null && mover.IsMoving)
continue; continue;
var factType = mcv.Info.TraitInfo<TransformsInfo>().IntoActor; var factType = mcv.Info.TraitInfo<TransformsInfo>().IntoActor;

View File

@@ -432,22 +432,4 @@ namespace OpenRA.Mods.Common.Activities
} }
} }
} }
public static class ActorExtensionsForMove
{
public static bool IsMoving(this Actor self)
{
var a = self.GetCurrentActivity();
if (a == null)
return false;
// HACK: Dirty, but it suffices until we do something better:
if (a.GetType() == typeof(Move)) return true;
if (a.GetType() == typeof(MoveAdjacentTo)) return true;
if (a.GetType() == typeof(AttackMoveActivity)) return true;
// Not a move:
return false;
}
}
} }

View File

@@ -179,14 +179,14 @@ namespace OpenRA.Mods.Common.Traits
static bool IsMovingInMyDirection(Actor self, Actor other) static bool IsMovingInMyDirection(Actor self, Actor other)
{ {
if (!other.IsMoving()) return false;
var selfMobile = self.TraitOrDefault<Mobile>(); var selfMobile = self.TraitOrDefault<Mobile>();
if (selfMobile == null) return false; if (selfMobile == null) return false;
var otherMobile = other.TraitOrDefault<Mobile>(); var otherMobile = other.TraitOrDefault<Mobile>();
if (otherMobile == null) return false; if (otherMobile == null) return false;
if (!otherMobile.IsMoving) return false;
// Sign of dot-product indicates (roughly) if vectors are facing in same or opposite directions: // Sign of dot-product indicates (roughly) if vectors are facing in same or opposite directions:
var dp = CVec.Dot(selfMobile.ToCell - self.Location, otherMobile.ToCell - other.Location); var dp = CVec.Dot(selfMobile.ToCell - self.Location, otherMobile.ToCell - other.Location);