Merge Plane and Helicopter into Aircraft

This commit is contained in:
Pavel Penev
2015-08-06 18:33:52 +03:00
parent 0ee1ad3fa4
commit 8a44366667
28 changed files with 401 additions and 470 deletions

View File

@@ -17,14 +17,14 @@ namespace OpenRA.Mods.Common.Activities
{
public class Fly : Activity
{
readonly Plane plane;
readonly Aircraft plane;
readonly Target target;
readonly WDist maxRange;
readonly WDist minRange;
public Fly(Actor self, Target t)
{
plane = self.Trait<Plane>();
plane = self.Trait<Aircraft>();
target = t;
}
@@ -35,7 +35,7 @@ namespace OpenRA.Mods.Common.Activities
this.minRange = minRange;
}
public static void FlyToward(Actor self, Plane plane, int desiredFacing, WDist desiredAltitude)
public static void FlyToward(Actor self, Aircraft plane, int desiredFacing, WDist desiredAltitude)
{
desiredAltitude = new WDist(plane.CenterPosition.Z) + desiredAltitude - self.World.Map.DistanceAboveTerrain(plane.CenterPosition);

View File

@@ -10,18 +10,17 @@
using OpenRA.Activities;
using OpenRA.Mods.Common.Traits;
using OpenRA.Traits;
namespace OpenRA.Mods.Common.Activities
{
public class FlyCircle : Activity
{
readonly Plane plane;
readonly Aircraft plane;
readonly WDist cruiseAltitude;
public FlyCircle(Actor self)
{
plane = self.Trait<Plane>();
plane = self.Trait<Aircraft>();
cruiseAltitude = plane.Info.CruiseAltitude;
}

View File

@@ -17,14 +17,14 @@ namespace OpenRA.Mods.Common.Activities
public class FlyFollow : Activity
{
Target target;
Plane plane;
Aircraft plane;
WDist minRange;
WDist maxRange;
public FlyFollow(Actor self, Target target, WDist minRange, WDist maxRange)
{
this.target = target;
plane = self.Trait<Plane>();
plane = self.Trait<Aircraft>();
this.minRange = minRange;
this.maxRange = maxRange;
}

View File

@@ -10,17 +10,16 @@
using OpenRA.Activities;
using OpenRA.Mods.Common.Traits;
using OpenRA.Traits;
namespace OpenRA.Mods.Common.Activities
{
public class FlyOffMap : Activity
{
readonly Plane plane;
readonly Aircraft plane;
public FlyOffMap(Actor self)
{
plane = self.Trait<Plane>();
plane = self.Trait<Aircraft>();
}
public override Activity Tick(Actor self)

View File

@@ -10,20 +10,19 @@
using OpenRA.Activities;
using OpenRA.Mods.Common.Traits;
using OpenRA.Traits;
namespace OpenRA.Mods.Common.Activities
{
public class FlyTimed : Activity
{
readonly Plane plane;
readonly Aircraft plane;
readonly WDist cruiseAltitude;
int remainingTicks;
public FlyTimed(int ticks, Actor self)
{
remainingTicks = ticks;
plane = self.Trait<Plane>();
plane = self.Trait<Aircraft>();
cruiseAltitude = plane.Info.CruiseAltitude;
}

View File

@@ -8,7 +8,6 @@
*/
#endregion
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using OpenRA.Activities;
@@ -19,7 +18,7 @@ namespace OpenRA.Mods.Common.Activities
{
public class HeliAttack : Activity
{
readonly Helicopter helicopter;
readonly Aircraft helicopter;
readonly AttackHeli attackHeli;
readonly AmmoPool[] ammoPools;
readonly bool attackOnlyVisibleTargets;
@@ -44,7 +43,7 @@ namespace OpenRA.Mods.Common.Activities
public HeliAttack(Actor self, Target target, bool attackOnlyVisibleTargets = true)
{
Target = target;
helicopter = self.Trait<Helicopter>();
helicopter = self.Trait<Aircraft>();
attackHeli = self.Trait<AttackHeli>();
ammoPools = self.TraitsImplementing<AmmoPool>().ToArray();
this.attackOnlyVisibleTargets = attackOnlyVisibleTargets;

View File

@@ -17,7 +17,7 @@ namespace OpenRA.Mods.Common.Activities
{
public class HeliFly : Activity
{
readonly Helicopter helicopter;
readonly Aircraft helicopter;
readonly Target target;
readonly WDist maxRange;
readonly WDist minRange;
@@ -25,7 +25,7 @@ namespace OpenRA.Mods.Common.Activities
public HeliFly(Actor self, Target t)
{
helicopter = self.Trait<Helicopter>();
helicopter = self.Trait<Aircraft>();
target = t;
}
@@ -36,7 +36,7 @@ namespace OpenRA.Mods.Common.Activities
this.minRange = minRange;
}
public static bool AdjustAltitude(Actor self, Helicopter helicopter, WDist targetAltitude)
public static bool AdjustAltitude(Actor self, Aircraft helicopter, WDist targetAltitude)
{
targetAltitude = new WDist(helicopter.CenterPosition.Z) + targetAltitude - self.World.Map.DistanceAboveTerrain(helicopter.CenterPosition);
@@ -105,9 +105,9 @@ namespace OpenRA.Mods.Common.Activities
public class HeliFlyAndLandWhenIdle : HeliFly
{
private readonly HelicopterInfo info;
private readonly AircraftInfo info;
public HeliFlyAndLandWhenIdle(Actor self, Target t, HelicopterInfo info)
public HeliFlyAndLandWhenIdle(Actor self, Target t, AircraftInfo info)
: base(self, t)
{
this.info = info;

View File

@@ -8,8 +8,6 @@
*/
#endregion
using System;
using System.Collections.Generic;
using OpenRA.Activities;
using OpenRA.Mods.Common.Traits;
using OpenRA.Traits;
@@ -18,11 +16,11 @@ namespace OpenRA.Mods.Common.Activities
{
public class HeliFlyCircle : Activity
{
readonly Helicopter helicopter;
readonly Aircraft helicopter;
public HeliFlyCircle(Actor self)
{
helicopter = self.Trait<Helicopter>();
helicopter = self.Trait<Aircraft>();
}
public override Activity Tick(Actor self)

View File

@@ -15,14 +15,14 @@ namespace OpenRA.Mods.Common.Activities
{
public class HeliLand : Activity
{
readonly Helicopter helicopter;
readonly Aircraft helicopter;
bool requireSpace;
bool playedSound;
public HeliLand(Actor self, bool requireSpace)
{
this.requireSpace = requireSpace;
helicopter = self.Trait<Helicopter>();
helicopter = self.Trait<Aircraft>();
}
public override Activity Tick(Actor self)

View File

@@ -17,11 +17,11 @@ namespace OpenRA.Mods.Common.Activities
{
public class HeliReturn : Activity
{
readonly Helicopter heli;
readonly Aircraft heli;
public HeliReturn(Actor self)
{
heli = self.Trait<Helicopter>();
heli = self.Trait<Aircraft>();
}
public Actor ChooseHelipad(Actor self)

View File

@@ -17,12 +17,12 @@ namespace OpenRA.Mods.Common.Activities
public class Land : Activity
{
readonly Target target;
readonly Plane plane;
readonly Aircraft plane;
public Land(Actor self, Target t)
{
target = t;
plane = self.Trait<Plane>();
plane = self.Trait<Aircraft>();
}
public override Activity Tick(Actor self)

View File

@@ -18,8 +18,8 @@ namespace OpenRA.Mods.Common.Activities
{
public class ReturnToBase : Activity
{
readonly Plane plane;
readonly PlaneInfo planeInfo;
readonly Aircraft plane;
readonly AircraftInfo planeInfo;
bool isCalculated;
Actor dest;
WPos w1, w2, w3;
@@ -27,13 +27,13 @@ namespace OpenRA.Mods.Common.Activities
public ReturnToBase(Actor self, Actor dest = null)
{
this.dest = dest;
plane = self.Trait<Plane>();
planeInfo = self.Info.TraitInfo<PlaneInfo>();
plane = self.Trait<Aircraft>();
planeInfo = self.Info.TraitInfo<AircraftInfo>();
}
public static Actor ChooseAirfield(Actor self, bool unreservedOnly)
{
var rearmBuildings = self.Info.TraitInfo<PlaneInfo>().RearmBuildings;
var rearmBuildings = self.Info.TraitInfo<AircraftInfo>().RearmBuildings;
return self.World.ActorsWithTrait<Reservable>()
.Where(a => a.Actor.Owner == self.Owner)
.Where(a => rearmBuildings.Contains(a.Actor.Info.Name)
@@ -94,7 +94,6 @@ namespace OpenRA.Mods.Common.Activities
w1 = posCenter + tangentOffset;
w2 = approachCenter + tangentOffset;
w3 = approachStart;
plane.RTBPathHash = w1 + (WVec)w2 + (WVec)w3;
isCalculated = true;
}