Add Map.DistanceAboveTerrain(WPos) and Actor.IsAtGroundLevel() extension method

This commit is contained in:
Taryn Hill
2015-08-01 07:53:14 -05:00
parent 7066254887
commit 6fa1f757b0
8 changed files with 36 additions and 13 deletions

View File

@@ -65,7 +65,8 @@ namespace OpenRA.Mods.Common.Traits
return;
var cp = self.CenterPosition;
if ((cp.Z > 0 && !info.EjectInAir) || (cp.Z == 0 && !info.EjectOnGround))
var inAir = !self.IsAtGroundLevel();
if ((inAir && !info.EjectInAir) || (!inAir && !info.EjectOnGround))
return;
var pilot = self.World.CreateActor(false, info.PilotActor.ToLowerInvariant(),
@@ -73,7 +74,7 @@ namespace OpenRA.Mods.Common.Traits
if (info.AllowUnsuitableCell || IsSuitableCell(self, pilot))
{
if (cp.Z > 0)
if (inAir)
{
self.World.AddFrameEndTask(w =>
{