22
33public enum SpriteDir {
44
5- SOUTH (2 , "S" ),
65 NORTH (1 , "N" ),
6+ SOUTH (2 , "S" ),
77 EAST (4 , "E" ),
88 WEST (8 , "W" ),
99
10- SOUTHEAST (6 , "SE" ),
11- SOUTHWEST (10 , "SW" ),
1210 NORTHEAST (5 , "NE" ),
13- NORTHWEST (9 , "NW" );
11+ NORTHWEST (9 , "NW" ),
12+ SOUTHEAST (6 , "SE" ),
13+ SOUTHWEST (10 , "SW" );
1414
1515 /**
1616 * <p>BYOND representation of dir as int value.
1717 * <ul>
18- * <li>SOUTH - 2 </li>
19- * <li>NORTH - 1 </li>
20- * <li>EAST - 4</li>
21- * <li>WEST - 8</li>
22- * <li>SOUTHEAST - 6 </li>
23- * <li>SOUTHWEST - 10 </li>
24- * <li>NORTHEAST - 5 </li>
25- * <li>NORTHWEST - 9 </li>
18+ * <li>NORTH - 1 </li>
19+ * <li>SOUTH - 2 </li>
20+ * <li>EAST - 4</li>
21+ * <li>WEST - 8</li>
22+ * <li>NORTHEAST - 5 </li>
23+ * <li>NORTHWEST - 9 </li>
24+ * <li>SOUTHEAST - 6 </li>
25+ * <li>SOUTHWEST - 10 </li>
2626 * </ul>
2727 */
2828 public final int dirValue ;
2929
3030 /**
3131 * <p>Shorted string representation of constant values.
3232 * <ul>
33- * <li>SOUTH - S </li>
34- * <li>NORTH - N </li>
35- * <li>EAST - E</li>
36- * <li>WEST - W</li>
37- * <li>SOUTHEAST - SE</li>
38- * <li>SOUTHWEST - SW</li>
39- * <li>NORTHEAST - NE</li>
40- * <li>NORTHWEST - NW</li>
33+ * <li>NORTH - N </li>
34+ * <li>SOUTH - S </li>
35+ * <li>EAST - E</li>
36+ * <li>WEST - W</li>
37+ * <li>SOUTHEAST - SE</li>
38+ * <li>SOUTHWEST - SW</li>
39+ * <li>NORTHEAST - NE</li>
40+ * <li>NORTHWEST - NW</li>
4141 * </ul>
4242 */
4343 public final String shortName ;
@@ -48,53 +48,48 @@ public enum SpriteDir {
4848 }
4949
5050 /**
51- * Returns {@link SpriteDir} equivalent to BYOND dir value. If method got value different from the list below ,
51+ * Returns {@link SpriteDir} equivalent to BYOND dir value. If method got value lesser then 0 or bigger then 10 ,
5252 * {@link IllegalArgumentException} will be thrown.
5353 * <ul>
54- * <li>0,1,3,7 - NORTH</li>
55- * <li>2 - SOUTH</li>
56- * <li>4 - EAST</li>
57- * <li>8 - WEST</li>
58- * <li>5 - NORTHEAST</li>
59- * <li>6 - SOUTHEAST</li>
60- * <li>9 - NORTHWEST</li>
61- * <li>10 - SOUTHWEST</li>
54+ * <li>1 - NORTH</li>
55+ * <li>2 - SOUTH</li>
56+ * <li>4 - EAST</li>
57+ * <li>8 - WEST</li>
58+ * <li>5 - NORTHEAST</li>
59+ * <li>6 - SOUTHEAST</li>
60+ * <li>9 - NORTHWEST</li>
61+ * <li>10 - SOUTHWEST</li>
6262 * </ul>
6363 *
6464 * @param dirValue BYOND representation of dir
6565 * @return {@link SpriteDir} equivalent of BYOND dir value
6666 */
6767 @ SuppressWarnings ("checkstyle:MagicNumber" )
6868 public static SpriteDir valueOfByondDir (final int dirValue ) {
69+ if (dirValue < 0 || dirValue > 10 ) {
70+ throw new IllegalArgumentException ("Illegal value of BYOND dir. Dir value: " + dirValue );
71+ }
72+
73+ // Values below sorted in order in which dirs appears in `dmi` file.
6974 switch (dirValue ) {
70- case 0 : case 1 : case 3 : case 7 :
71- return NORTH ;
7275 case 2 :
7376 return SOUTH ;
77+ case 1 :
78+ return NORTH ;
7479 case 4 :
7580 return EAST ;
7681 case 8 :
7782 return WEST ;
7883 case 5 :
7984 return NORTHEAST ;
80- case 6 :
81- return SOUTHEAST ;
8285 case 9 :
8386 return NORTHWEST ;
87+ case 6 :
88+ return SOUTHEAST ;
8489 case 10 :
8590 return SOUTHWEST ;
8691 default :
87- throw new IllegalArgumentException ( "Illegal value of BYOND dir. Dir value: " + dirValue ) ;
92+ return SOUTH ;
8893 }
8994 }
90-
91- /**
92- * Same as {@link #valueOfByondDir(int)}, but accept value as string instead of int.
93- *
94- * @param dirValue BYOND representation of dir
95- * @return {@link SpriteDir} equivalent of BYOND dir value
96- */
97- public static SpriteDir valueOfByondDir (final String dirValue ) {
98- return valueOfByondDir (Integer .parseInt (dirValue ));
99- }
10095}
0 commit comments