summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWesley Wolfe <weswolf@aol.com>2012-12-14 02:03:05 -0600
committerWesley Wolfe <weswolf@aol.com>2012-12-14 02:03:05 -0600
commit84912b55103d3904d8b47974f553924a18cfd681 (patch)
tree14cf1d0e7843d49d782e99e819a2597cd720ca86
parent7221df2963bfa0de13dbdf39e4eb39659b51acc7 (diff)
downloadbukkit-84912b55103d3904d8b47974f553924a18cfd681.tar
bukkit-84912b55103d3904d8b47974f553924a18cfd681.tar.gz
bukkit-84912b55103d3904d8b47974f553924a18cfd681.tar.lz
bukkit-84912b55103d3904d8b47974f553924a18cfd681.tar.xz
bukkit-84912b55103d3904d8b47974f553924a18cfd681.zip
Add Material methods. Adds BUKKIT-3161, BUKKIT-3162, BUKKIT-3163,
BUKKIT-3164 This adds an isFlammable method, to indicate if a block can catch fire. This adds an isTransparent method, to check if light can pass through. This adds an isOccluding method, to check if it fully blocks vision. This adds an isBurnable method, to indicate if a block can burn away.
-rw-r--r--src/main/java/org/bukkit/Material.java254
1 files changed, 232 insertions, 22 deletions
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
index 2eeecc74..0488f471 100644
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
@@ -443,28 +443,33 @@ public enum Material {
* @return true if this Material is edible.
*/
public boolean isEdible() {
- return equals(Material.BREAD)
- || equals(Material.CARROT_ITEM)
- || equals(Material.BAKED_POTATO)
- || equals(Material.POTATO_ITEM)
- || equals(Material.POISONOUS_POTATO)
- || equals(Material.GOLDEN_CARROT)
- || equals(Material.PUMPKIN_PIE)
- || equals(Material.COOKIE)
- || equals(Material.MELON)
- || equals(Material.MUSHROOM_SOUP)
- || equals(Material.RAW_CHICKEN)
- || equals(Material.COOKED_CHICKEN)
- || equals(Material.RAW_BEEF)
- || equals(Material.COOKED_BEEF)
- || equals(Material.RAW_FISH)
- || equals(Material.COOKED_FISH)
- || equals(Material.PORK)
- || equals(Material.GRILLED_PORK)
- || equals(Material.APPLE)
- || equals(Material.GOLDEN_APPLE)
- || equals(Material.ROTTEN_FLESH)
- || equals(Material.SPIDER_EYE);
+ switch (this) {
+ case BREAD:
+ case CARROT_ITEM:
+ case BAKED_POTATO:
+ case POTATO_ITEM:
+ case POISONOUS_POTATO:
+ case GOLDEN_CARROT:
+ case PUMPKIN_PIE:
+ case COOKIE:
+ case MELON:
+ case MUSHROOM_SOUP:
+ case RAW_CHICKEN:
+ case COOKED_CHICKEN:
+ case RAW_BEEF:
+ case COOKED_BEEF:
+ case RAW_FISH:
+ case COOKED_FISH:
+ case PORK:
+ case GRILLED_PORK:
+ case APPLE:
+ case GOLDEN_APPLE:
+ case ROTTEN_FLESH:
+ case SPIDER_EYE:
+ return true;
+ default:
+ return false;
+ }
}
/**
@@ -656,4 +661,209 @@ public enum Material {
return false;
}
}
+
+ /**
+ * Check if the material is a block and does not block any light
+ *
+ * @return True if this material is a block and does not block any light
+ */
+ public boolean isTransparent() {
+ if (!isBlock()) {
+ return false;
+ }
+ switch (this) {
+ case AIR:
+ case SAPLING:
+ case POWERED_RAIL:
+ case DETECTOR_RAIL:
+ case LONG_GRASS:
+ case DEAD_BUSH:
+ case YELLOW_FLOWER:
+ case RED_ROSE:
+ case BROWN_MUSHROOM:
+ case RED_MUSHROOM:
+ case TORCH:
+ case FIRE:
+ case REDSTONE_WIRE:
+ case CROPS:
+ case LADDER:
+ case RAILS:
+ case LEVER:
+ case REDSTONE_TORCH_OFF:
+ case REDSTONE_TORCH_ON:
+ case STONE_BUTTON:
+ case SNOW:
+ case SUGAR_CANE_BLOCK:
+ case PORTAL:
+ case DIODE_BLOCK_OFF:
+ case DIODE_BLOCK_ON:
+ case PUMPKIN_STEM:
+ case MELON_STEM:
+ case VINE:
+ case WATER_LILY:
+ case NETHER_WARTS:
+ case ENDER_PORTAL:
+ case COCOA:
+ case TRIPWIRE_HOOK:
+ case TRIPWIRE:
+ case FLOWER_POT:
+ case CARROT:
+ case POTATO:
+ case WOOD_BUTTON:
+ case SKULL:
+ return true;
+ default:
+ return false;
+ }
+ }
+
+ /**
+ * Check if the material is a block and can catch fire
+ *
+ * @return True if this material is a block and can catch fire
+ */
+ public boolean isFlammable() {
+ if (!isBlock()) {
+ return false;
+ }
+ switch (this) {
+ case WOOD:
+ case LOG:
+ case LEAVES:
+ case NOTE_BLOCK:
+ case BED_BLOCK:
+ case LONG_GRASS:
+ case DEAD_BUSH:
+ case WOOL:
+ case TNT:
+ case BOOKSHELF:
+ case WOOD_STAIRS:
+ case CHEST:
+ case WORKBENCH:
+ case SIGN_POST:
+ case WOODEN_DOOR:
+ case WALL_SIGN:
+ case WOOD_PLATE:
+ case JUKEBOX:
+ case FENCE:
+ case LOCKED_CHEST:
+ case TRAP_DOOR:
+ case HUGE_MUSHROOM_1:
+ case HUGE_MUSHROOM_2:
+ case VINE:
+ case FENCE_GATE:
+ case WOOD_DOUBLE_STEP:
+ case WOOD_STEP:
+ case SPRUCE_WOOD_STAIRS:
+ case BIRCH_WOOD_STAIRS:
+ case JUNGLE_WOOD_STAIRS:
+ return true;
+ default:
+ return false;
+ }
+ }
+
+ /**
+ * Check if the material is a block and can burn away
+ *
+ * @return True if this material is a block and can burn away
+ */
+ public boolean isBurnable() {
+ if (!isBlock()) {
+ return false;
+ }
+ switch (this) {
+ case WOOD:
+ case LOG:
+ case LEAVES:
+ case LONG_GRASS:
+ case WOOL:
+ case TNT:
+ case BOOKSHELF:
+ case WOOD_STAIRS:
+ case FENCE:
+ case VINE:
+ case WOOD_DOUBLE_STEP:
+ case WOOD_STEP:
+ case SPRUCE_WOOD_STAIRS:
+ case BIRCH_WOOD_STAIRS:
+ case JUNGLE_WOOD_STAIRS:
+ return true;
+ default:
+ return false;
+ }
+ }
+
+ /**
+ * Check if the material is a block and completely blocks vision
+ *
+ * @return True if this material is a block and completely blocks vision
+ */
+ public boolean isOccluding() {
+ if (!isBlock()) {
+ return false;
+ }
+ switch (this) {
+ case STONE:
+ case GRASS:
+ case DIRT:
+ case COBBLESTONE:
+ case WOOD:
+ case BEDROCK:
+ case SAND:
+ case GRAVEL:
+ case GOLD_ORE:
+ case IRON_ORE:
+ case COAL_ORE:
+ case LOG:
+ case SPONGE:
+ case LAPIS_ORE:
+ case LAPIS_BLOCK:
+ case DISPENSER:
+ case SANDSTONE:
+ case NOTE_BLOCK:
+ case WOOL:
+ case GOLD_BLOCK:
+ case IRON_BLOCK:
+ case DOUBLE_STEP:
+ case BRICK:
+ case BOOKSHELF:
+ case MOSSY_COBBLESTONE:
+ case OBSIDIAN:
+ case MOB_SPAWNER:
+ case DIAMOND_ORE:
+ case DIAMOND_BLOCK:
+ case WORKBENCH:
+ case FURNACE:
+ case BURNING_FURNACE:
+ case REDSTONE_ORE:
+ case GLOWING_REDSTONE_ORE:
+ case SNOW_BLOCK:
+ case CLAY:
+ case JUKEBOX:
+ case PUMPKIN:
+ case NETHERRACK:
+ case SOUL_SAND:
+ case JACK_O_LANTERN:
+ case LOCKED_CHEST:
+ case MONSTER_EGGS:
+ case SMOOTH_BRICK:
+ case HUGE_MUSHROOM_1:
+ case HUGE_MUSHROOM_2:
+ case MELON_BLOCK:
+ case MYCEL:
+ case NETHER_BRICK:
+ case ENDER_PORTAL_FRAME:
+ case ENDER_STONE:
+ case REDSTONE_LAMP_OFF:
+ case REDSTONE_LAMP_ON:
+ case WOOD_DOUBLE_STEP:
+ case EMERALD_ORE:
+ case EMERALD_BLOCK:
+ case COMMAND:
+ return true;
+ default:
+ return false;
+ }
+ }
}