Move Facing and Altitude onto IMove impls, with associated pile of cleanups

This commit is contained in:
Paul Chote
2010-07-31 22:59:43 +12:00
parent 88cb942430
commit 207ee49da3
51 changed files with 186 additions and 184 deletions

View File

@@ -84,17 +84,17 @@ namespace OpenRA.Traits
int offsetTicks = 0;
public void Tick(Actor self)
{
var unit = self.traits.Get<Unit>();
var move = self.traits.Get<IMove>();
//if (unit.Altitude <= 0)
// return;
if (unit.Altitude < AirInfo.CruiseAltitude)
unit.Altitude++;
if (move.Altitude < AirInfo.CruiseAltitude)
move.Altitude++;
if (--offsetTicks <= 0)
{
self.CenterLocation += AirInfo.InstabilityMagnitude * self.World.SharedRandom.Gauss2D(5);
unit.Altitude += (int)(AirInfo.InstabilityMagnitude * self.World.SharedRandom.Gauss1D(5));
move.Altitude += (int)(AirInfo.InstabilityMagnitude * self.World.SharedRandom.Gauss1D(5));
offsetTicks = AirInfo.InstabilityTicks;
}
}

View File

@@ -40,8 +40,9 @@ namespace OpenRA.Mods.Cnc
{
var a = w.CreateActor("C17", startPos, owner);
var cargo = a.traits.Get<Cargo>();
a.traits.Get<Unit>().Facing = 64;
a.traits.Get<Unit>().Altitude = a.Info.Traits.Get<PlaneInfo>().CruiseAltitude;
var aMove = a.traits.Get<IMove>();
aMove.Facing = 64;
aMove.Altitude = a.Info.Traits.Get<PlaneInfo>().CruiseAltitude;
var newUnit = new Actor(self.World, producee.Name, new int2(0, 0), self.Owner);
cargo.Load(a, newUnit);
@@ -58,8 +59,8 @@ namespace OpenRA.Mods.Cnc
self.World.AddFrameEndTask(ww =>
{
ww.Add(actor);
actor.traits.WithInterface<IMove>().FirstOrDefault().SetPosition(actor, self.Location + unloadOffset);
newUnit.traits.Get<Unit>().Facing = 192;
actor.traits.Get<IMove>().SetPosition(actor, self.Location + unloadOffset);
newUnit.traits.Get<IMove>().Facing = 192;
actor.CancelActivity();
actor.QueueActivity(new Move(self.Location + exitOffset, self));
actor.QueueActivity(new Move(rp.rallyPoint, 0));