public CompassConnection RotateToPiece(PieceOrientation PieceOrientation) { return(new CompassConnection { A = (CompassOrientation)(((int)A + ((int)PieceOrientation * 2)) % 8), B = (CompassOrientation)(((int)B + ((int)PieceOrientation * 2)) % 8) }); }
public static PieceOrientation Relative(PieceOrientation Base, PieceOrientation Top) { int c = 0; while (Base != Top) { Base = Rotate(Base, 1); c += 1; } return((PieceOrientation)c); }
public JunctionPattern Rotate(PieceOrientation Orientation) { var orient = (byte)Orientation; var r = this; while (orient > 0) { r = r.Rotate(); orient -= 1; } return(r); }
public static CombinationTable.Combination FindRailCombination(String Base, String Overlay, PieceOrientation OverlayRelativeOrientation) { return(RailCombinationTable.FindCombination(Base, Overlay, OverlayRelativeOrientation)); }
public Combination FindCombination(String Base, String Overlay, PieceOrientation OverlayRelativeOrientation) { return(Combinations.FirstOrDefault(c => c.BasePiece == Base && c.OverlayPiece == Overlay && c.OverlayRelativeOrientation == OverlayRelativeOrientation)); }
public static PieceOrientation Rotate(PieceOrientation In, int Ammount) { return((PieceOrientation)(((int)In + Ammount) % 4)); }
public static PieceOrientation Opposite(PieceOrientation In) { return(Rotate(In, 2)); }