minecraft-source/src/net/minecraft/world/item/PickaxeItem.java

47 lines
3.6 KiB
Java

package net.minecraft.world.item;
import com.google.common.collect.ImmutableSet;
import net.minecraft.world.level.material.Material;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.Block;
import java.util.Set;
public class PickaxeItem extends DiggerItem {
private static final Set<Block> DIGGABLES;
protected PickaxeItem(final Tier bfp, final int integer, final float float3, final Properties a) {
super((float)integer, float3, bfp, PickaxeItem.DIGGABLES, a);
}
@Override
public boolean canDestroySpecial(final BlockState byg) {
final Block bpe3 = byg.getBlock();
final int integer4 = this.getTier().getLevel();
if (bpe3 == Blocks.OBSIDIAN) {
return integer4 == 3;
}
if (bpe3 == Blocks.DIAMOND_BLOCK || bpe3 == Blocks.DIAMOND_ORE || bpe3 == Blocks.EMERALD_ORE || bpe3 == Blocks.EMERALD_BLOCK || bpe3 == Blocks.GOLD_BLOCK || bpe3 == Blocks.GOLD_ORE || bpe3 == Blocks.REDSTONE_ORE) {
return integer4 >= 2;
}
if (bpe3 == Blocks.IRON_BLOCK || bpe3 == Blocks.IRON_ORE || bpe3 == Blocks.LAPIS_BLOCK || bpe3 == Blocks.LAPIS_ORE) {
return integer4 >= 1;
}
final Material cok5 = byg.getMaterial();
return cok5 == Material.STONE || cok5 == Material.METAL || cok5 == Material.HEAVY_METAL;
}
@Override
public float getDestroySpeed(final ItemStack bek, final BlockState byg) {
final Material cok4 = byg.getMaterial();
if (cok4 == Material.METAL || cok4 == Material.HEAVY_METAL || cok4 == Material.STONE) {
return this.speed;
}
return super.getDestroySpeed(bek, byg);
}
static {
DIGGABLES = ImmutableSet.<Block>of(Blocks.ACTIVATOR_RAIL, Blocks.COAL_ORE, Blocks.COBBLESTONE, Blocks.DETECTOR_RAIL, Blocks.DIAMOND_BLOCK, Blocks.DIAMOND_ORE, Blocks.POWERED_RAIL, Blocks.GOLD_BLOCK, Blocks.GOLD_ORE, Blocks.ICE, Blocks.IRON_BLOCK, Blocks.IRON_ORE, Blocks.LAPIS_BLOCK, Blocks.LAPIS_ORE, Blocks.MOSSY_COBBLESTONE, Blocks.NETHERRACK, Blocks.PACKED_ICE, Blocks.BLUE_ICE, Blocks.RAIL, Blocks.REDSTONE_ORE, Blocks.SANDSTONE, Blocks.CHISELED_SANDSTONE, Blocks.CUT_SANDSTONE, Blocks.CHISELED_RED_SANDSTONE, Blocks.CUT_RED_SANDSTONE, Blocks.RED_SANDSTONE, Blocks.STONE, Blocks.GRANITE, Blocks.POLISHED_GRANITE, Blocks.DIORITE, Blocks.POLISHED_DIORITE, Blocks.ANDESITE, Blocks.POLISHED_ANDESITE, Blocks.STONE_SLAB, Blocks.SMOOTH_STONE_SLAB, Blocks.SANDSTONE_SLAB, Blocks.PETRIFIED_OAK_SLAB, Blocks.COBBLESTONE_SLAB, Blocks.BRICK_SLAB, Blocks.STONE_BRICK_SLAB, Blocks.NETHER_BRICK_SLAB, Blocks.QUARTZ_SLAB, Blocks.RED_SANDSTONE_SLAB, Blocks.PURPUR_SLAB, Blocks.SMOOTH_QUARTZ, Blocks.SMOOTH_RED_SANDSTONE, Blocks.SMOOTH_SANDSTONE, Blocks.SMOOTH_STONE, Blocks.STONE_BUTTON, Blocks.STONE_PRESSURE_PLATE, Blocks.POLISHED_GRANITE_SLAB, Blocks.SMOOTH_RED_SANDSTONE_SLAB, Blocks.MOSSY_STONE_BRICK_SLAB, Blocks.POLISHED_DIORITE_SLAB, Blocks.MOSSY_COBBLESTONE_SLAB, Blocks.END_STONE_BRICK_SLAB, Blocks.SMOOTH_SANDSTONE_SLAB, Blocks.SMOOTH_QUARTZ_SLAB, Blocks.GRANITE_SLAB, Blocks.ANDESITE_SLAB, Blocks.RED_NETHER_BRICK_SLAB, Blocks.POLISHED_ANDESITE_SLAB, Blocks.DIORITE_SLAB, Blocks.SHULKER_BOX, Blocks.BLACK_SHULKER_BOX, Blocks.BLUE_SHULKER_BOX, Blocks.BROWN_SHULKER_BOX, Blocks.CYAN_SHULKER_BOX, Blocks.GRAY_SHULKER_BOX, Blocks.GREEN_SHULKER_BOX, Blocks.LIGHT_BLUE_SHULKER_BOX, Blocks.LIGHT_GRAY_SHULKER_BOX, Blocks.LIME_SHULKER_BOX, Blocks.MAGENTA_SHULKER_BOX, Blocks.ORANGE_SHULKER_BOX, Blocks.PINK_SHULKER_BOX, Blocks.PURPLE_SHULKER_BOX, Blocks.RED_SHULKER_BOX, Blocks.WHITE_SHULKER_BOX, Blocks.YELLOW_SHULKER_BOX);
}
}