package mapmaker; public class Direction { public final static int NW = 0; public final static int W = 1; public final static int SW = 2; public final static int N = 3; public final static int S = 4; public final static int NE = 5; public final static int E = 6; public final static int SE = 7; public final static int UP = 8; public final static int DOWN = 9; public final static int ORDER_N = 0; public final static int ORDER_S = 1; public final static int ORDER_E = 2; public final static int ORDER_W = 3; public final static int ORDER_NE = 4; public final static int ORDER_SE = 5; public final static int ORDER_SW = 6; public final static int ORDER_NW = 7; public final static int ORDER_UP = 8; public final static int ORDER_DOWN = 9; public final static int ORDER_UNKNOWN = 10; public static int getOppoisite(int aDir) { int opposite = -1; switch (aDir) { case NW : opposite = SE; break; case W : opposite = E; break; case SW : opposite = NE; break; case N : opposite = S; break; case S : opposite = N; break; case NE : opposite = SW; break; case E : opposite = W; break; case SE : opposite = NW; break; case UP : opposite = DOWN; break; case DOWN : opposite = UP; break; } return opposite; } public static int getExitOrder(int aDir) { int order = -1; switch (aDir) { case NW : order = ORDER_NW; break; case W : order = ORDER_W; break; case SW : order = ORDER_SW; break; case N : order = ORDER_N; break; case S : order = ORDER_S; break; case NE : order = ORDER_NE; break; case E : order = ORDER_E; break; case SE : order = ORDER_SE; break; case UP : order = ORDER_UP; break; case DOWN : order = ORDER_DOWN; break; default : order = ORDER_UNKNOWN; break; } return order; } public static String getDirectionName(int aDir) { String name = null; switch (aDir) { case NW : name = "northwest"; break; case W : name = "west"; break; case SW : name = "southwest"; break; case N : name = "north"; break; case S : name = "south"; break; case NE : name = "northeast"; break; case E : name = "east"; break; case SE : name = "southeast"; break; case UP : name = "down"; break; case DOWN : name = "up"; break; } return name; } }