Move IsMovingVertically to IMove

- avoids an Aircraft trait look-up in #11886
- potentially useful for future additional locomotors (jumpjet), custom locomotors in external mods, possibly future updates to default ground locomotor (Mobile) with regard to behavior on slopes
This commit is contained in:
reaperrr
2016-10-02 20:27:03 +02:00
parent 4b8700bb97
commit 16d4ee0034
3 changed files with 6 additions and 2 deletions

View File

@@ -308,6 +308,7 @@ namespace OpenRA.Traits
Activity VisualMove(Actor self, WPos fromPos, WPos toPos);
CPos NearestMoveableCell(CPos target);
bool IsMoving { get; set; }
bool IsMovingVertically { get; set; }
bool CanEnterTargetNow(Actor self, Target target);
}

View File

@@ -115,13 +115,13 @@ namespace OpenRA.Mods.Common.Traits
public int TurnSpeed { get { return Info.TurnSpeed; } }
public Actor ReservedActor { get; private set; }
public bool MayYieldReservation { get; private set; }
public bool IsMovingVertically { get; private set; }
bool airborne;
bool cruising;
bool firstTick = true;
bool isMoving;
bool isMovingVertically;
WPos cachedPosition;
public Aircraft(ActorInitializer init, AircraftInfo info)
@@ -182,7 +182,7 @@ namespace OpenRA.Mods.Common.Traits
var oldCachedPosition = cachedPosition;
cachedPosition = self.CenterPosition;
isMoving = (oldCachedPosition - cachedPosition).HorizontalLengthSquared != 0;
IsMovingVertically = (oldCachedPosition - cachedPosition).VerticalLengthSquared != 0;
isMovingVertically = (oldCachedPosition - cachedPosition).VerticalLengthSquared != 0;
Repulse();
}
@@ -495,6 +495,8 @@ namespace OpenRA.Mods.Common.Traits
public bool IsMoving { get { return isMoving; } set { } }
public bool IsMovingVertically { get { return isMovingVertically; } set { } }
public bool CanEnterTargetNow(Actor self, Target target)
{
if (target.Positions.Any(p => self.World.ActorMap.GetActorsAt(self.World.Map.CellContaining(p)).Any(a => a != self && a != target.Actor)))

View File

@@ -327,6 +327,7 @@ namespace OpenRA.Mods.Common.Traits
readonly Actor self;
readonly Lazy<IEnumerable<int>> speedModifiers;
public bool IsMoving { get; set; }
public bool IsMovingVertically { get { return false; } set { } }
int facing;
CPos fromCell, toCell;