Introduce WVec.Yaw and WAngle.Facing.
This commit is contained in:
@@ -41,6 +41,8 @@ namespace OpenRA
|
|||||||
public bool Equals(WAngle other) { return other == this; }
|
public bool Equals(WAngle other) { return other == this; }
|
||||||
public override bool Equals(object obj) { return obj is WAngle && Equals((WAngle)obj); }
|
public override bool Equals(object obj) { return obj is WAngle && Equals((WAngle)obj); }
|
||||||
|
|
||||||
|
public int Facing { get { return Angle / 4; } }
|
||||||
|
|
||||||
public int Sin() { return new WAngle(Angle - 256).Cos(); }
|
public int Sin() { return new WAngle(Angle - 256).Cos(); }
|
||||||
|
|
||||||
public int Cos()
|
public int Cos()
|
||||||
|
|||||||
@@ -58,6 +58,18 @@ namespace OpenRA
|
|||||||
(int)((lx * mtx[2] + ly * mtx[6] + lz * mtx[10]) / mtx[15]));
|
(int)((lx * mtx[2] + ly * mtx[6] + lz * mtx[10]) / mtx[15]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public WAngle Yaw
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (LengthSquared == 0)
|
||||||
|
return WAngle.Zero;
|
||||||
|
|
||||||
|
// OpenRA defines north as -y
|
||||||
|
return WAngle.ArcTan(-Y, X) - new WAngle(256);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static WVec Lerp(WVec a, WVec b, int mul, int div) { return a + (b - a) * mul / div; }
|
public static WVec Lerp(WVec a, WVec b, int mul, int div) { return a + (b - a) * mul / div; }
|
||||||
|
|
||||||
public static WVec LerpQuadratic(WVec a, WVec b, WAngle pitch, int mul, int div)
|
public static WVec LerpQuadratic(WVec a, WVec b, WAngle pitch, int mul, int div)
|
||||||
@@ -134,7 +146,7 @@ namespace OpenRA
|
|||||||
case "X": return X;
|
case "X": return X;
|
||||||
case "Y": return Y;
|
case "Y": return Y;
|
||||||
case "Z": return Z;
|
case "Z": return Z;
|
||||||
case "Facing": return Traits.Util.GetFacing(this, 0);
|
case "Facing": return Yaw.Facing;
|
||||||
default: throw new LuaException("WVec does not define a member '{0}'".F(key));
|
default: throw new LuaException("WVec does not define a member '{0}'".F(key));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user