private static Vector2D GetVectorOfDirection(WalkerField.Direction direction) { CoordinateSystem2D coordSys = Game.GetLocalCoordsystemOfPlayer(); Vector2D vector = new Vector2D(0, 0); switch (direction) { case WalkerField.Direction.FORWARD: vector = new Vector2D(1, 0); break; case WalkerField.Direction.BACKWARD: vector = new Vector2D(-1, 0); break; case WalkerField.Direction.RIGHT: vector = new Vector2D(0, -1); break; case WalkerField.Direction.LEFT: vector = new Vector2D(0, 1); break; case WalkerField.Direction.FORWARDLEFT: vector = new Vector2D(1, 1); break; case WalkerField.Direction.FORWARDRIGHT: vector = new Vector2D(1, -1); break; case WalkerField.Direction.BACKWARDLEFT: vector = new Vector2D(-1, -1); break; case WalkerField.Direction.BACKWARDRIGHT: vector = new Vector2D(-1, 1); break; } return(coordSys.LocalToGlobal(vector.UnitVector)); }
public WalkerField.Distance GetDistanceInDirection(WalkerField.Direction direction) { return(Fields.Find(x => x.direction == direction).distance); }
private static WalkerField.Distance GetDistanceStateInDirection(Point2D position, WalkerField.Direction direction, float nearDistance, float farDistance) { return(GetDistanceState(Game.GetWallDistance(GetVectorOfDirection(direction), position, farDistance), nearDistance, farDistance)); }
public WalkerAction(WalkerField.Direction direction) { this.direction = direction; }