1 package org.bukkit.material;
3 import java.util.EnumSet;
6 import org.apache.commons.lang.Validate;
7 import org.bukkit.Material;
8 import org.bukkit.block.BlockFace;
14 private static final byte SHROOM_NONE = 0;
15 private static final byte SHROOM_STEM = 10;
16 private static final byte NORTH_LIMIT = 4;
17 private static final byte SOUTH_LIMIT = 6;
18 private static final byte EAST_WEST_LIMIT = 3;
19 private static final byte EAST_REMAINDER = 0;
20 private static final byte WEST_REMAINDER = 1;
21 private static final byte NORTH_SOUTH_MOD = 3;
22 private static final byte EAST_WEST_MOD = 1;
43 return getData() == SHROOM_STEM;
61 if (data == SHROOM_NONE || data == SHROOM_STEM) {
67 return data < NORTH_LIMIT;
69 return data > SOUTH_LIMIT;
71 return data % EAST_WEST_LIMIT == EAST_REMAINDER;
73 return data % EAST_WEST_LIMIT == WEST_REMAINDER;
94 if (data == SHROOM_STEM) {
101 data -= NORTH_SOUTH_MOD;
103 data += NORTH_SOUTH_MOD;
109 data += NORTH_SOUTH_MOD;
111 data -= NORTH_SOUTH_MOD;
117 data += EAST_WEST_MOD;
119 data -= EAST_WEST_MOD;
125 data -= EAST_WEST_MOD;
127 data += EAST_WEST_MOD;
138 throw new IllegalArgumentException(
"Can't paint that face of a mushroom!");
148 EnumSet<BlockFace> faces = EnumSet.noneOf(
BlockFace.class);