97 lines
4.5 KiB
Java
97 lines
4.5 KiB
Java
package com.legacy.aether.items.util;
|
|
|
|
import java.util.Set;
|
|
|
|
import net.minecraft.block.Block;
|
|
import net.minecraft.block.material.Material;
|
|
import net.minecraft.init.Blocks;
|
|
import net.minecraft.item.Item.ToolMaterial;
|
|
import net.minecraft.item.ItemStack;
|
|
|
|
import com.google.common.collect.Sets;
|
|
import com.legacy.aether.blocks.BlocksAether;
|
|
|
|
public enum EnumAetherToolType {
|
|
|
|
PICKAXE(Sets.newHashSet(new Block[]
|
|
{
|
|
Blocks.cobblestone, Blocks.double_stone_slab, Blocks.stone_slab,
|
|
Blocks.stone, Blocks.sandstone, Blocks.mossy_cobblestone, Blocks.iron_ore,
|
|
Blocks.iron_block, Blocks.coal_ore, Blocks.gold_ore, Blocks.gold_block,
|
|
Blocks.diamond_ore, Blocks.diamond_block, Blocks.ice, Blocks.netherrack,
|
|
Blocks.lapis_ore, Blocks.lapis_block, Blocks.redstone_ore, Blocks.lit_redstone_ore,
|
|
Blocks.rail, Blocks.detector_rail, Blocks.golden_rail, Blocks.activator_rail, Blocks.mob_spawner,
|
|
BlocksAether.holystone, BlocksAether.holystone_brick, BlocksAether.mossy_holystone,
|
|
BlocksAether.enchanter, BlocksAether.incubator, BlocksAether.enchanter, BlocksAether.ambrosium_ore,
|
|
BlocksAether.icestone, BlocksAether.aerogel, BlocksAether.carved_stone, BlocksAether.angelic_stone,
|
|
BlocksAether.hellfire_stone, BlocksAether.sentry_stone, BlocksAether.light_angelic_stone,
|
|
BlocksAether.light_hellfire_stone
|
|
})) {
|
|
@Override
|
|
public boolean canHarvestBlock(ToolMaterial toolMaterial, Block state) {
|
|
Block block = state;
|
|
|
|
if (block == BlocksAether.zanite_ore || block == BlocksAether.zanite_block || block == BlocksAether.icestone) {
|
|
return toolMaterial.getHarvestLevel() >= 1;
|
|
} else if (block == BlocksAether.gravitite_ore || block == BlocksAether.enchanted_gravitite) {
|
|
return toolMaterial.getHarvestLevel() >= 2;
|
|
}
|
|
else if (block == BlocksAether.aerogel) {
|
|
return toolMaterial.getHarvestLevel() == 3;
|
|
}
|
|
|
|
return block == Blocks.obsidian ? toolMaterial.getHarvestLevel() == 3 : (block != Blocks.diamond_block && block != Blocks.diamond_ore ? (block != Blocks.emerald_ore && block != Blocks.emerald_block ? (block != Blocks.gold_block && block != Blocks.gold_ore ? (block != Blocks.iron_block && block != Blocks.iron_ore ? (block != Blocks.lapis_block && block != Blocks.lapis_ore ? (block != Blocks.redstone_ore && block != Blocks.lit_redstone_ore ? (state.getMaterial() == Material.rock ? true : (state.getMaterial() == Material.iron ? true : state.getMaterial() == Material.anvil)) : toolMaterial.getHarvestLevel() >= 2) : toolMaterial.getHarvestLevel() >= 1) : toolMaterial.getHarvestLevel() >= 1) : toolMaterial.getHarvestLevel() >= 2) : toolMaterial.getHarvestLevel() >= 2) : toolMaterial.getHarvestLevel() >= 2);
|
|
}
|
|
|
|
@Override
|
|
public float getStrVsBlock(ItemStack stack, Block block) {
|
|
return block != null && (block.getMaterial() == Material.iron || block.getMaterial() == Material.anvil || block.getMaterial() == Material.rock) ? this.efficiencyOnProperMaterial : super.getStrVsBlock(stack, block);
|
|
}
|
|
},
|
|
SHOVEL(Sets.newHashSet(new Block[]
|
|
{
|
|
Blocks.grass, Blocks.dirt, Blocks.sand, Blocks.gravel, Blocks.snow,
|
|
Blocks.snow_layer, Blocks.clay, Blocks.farmland, Blocks.soul_sand,
|
|
Blocks.mycelium, BlocksAether.aether_dirt, BlocksAether.aether_grass,
|
|
BlocksAether.aercloud, BlocksAether.enchanted_aether_grass, BlocksAether.quicksoil
|
|
})) {
|
|
@Override
|
|
public boolean canHarvestBlock(ToolMaterial toolMaterial, Block block) {
|
|
return block == Blocks.snow ? true : block == Blocks.snow_layer;
|
|
}
|
|
},
|
|
|
|
AXE(Sets.newHashSet(new Block[]
|
|
{
|
|
Blocks.planks, Blocks.bookshelf, Blocks.log, Blocks.chest,
|
|
Blocks.double_stone_slab, Blocks.stone_slab, Blocks.pumpkin,
|
|
Blocks.lit_pumpkin, BlocksAether.skyroot_log, BlocksAether.golden_oak_log, BlocksAether.skyroot_planks,
|
|
BlocksAether.chest_mimic
|
|
})) {
|
|
@Override
|
|
public float getStrVsBlock(ItemStack stack, Block block) {
|
|
return block != null && (block.getMaterial() == Material.wood || block.getMaterial() == Material.plants || block.getMaterial() == Material.vine) ? this.efficiencyOnProperMaterial : super.getStrVsBlock(stack, block);
|
|
}
|
|
};
|
|
|
|
private Set<Block> toolBlockSet;
|
|
|
|
public float efficiencyOnProperMaterial = 4.0F;
|
|
|
|
EnumAetherToolType(Set<Block> toolBlockSet) {
|
|
this.toolBlockSet = toolBlockSet;
|
|
}
|
|
|
|
public Set<Block> getToolBlockSet() {
|
|
return this.toolBlockSet;
|
|
}
|
|
|
|
public boolean canHarvestBlock(ToolMaterial toolMaterial, Block block) {
|
|
return false;
|
|
}
|
|
|
|
public float getStrVsBlock(ItemStack stack, Block block) {
|
|
return this.toolBlockSet.contains(block) ? this.efficiencyOnProperMaterial : 1.0F;
|
|
}
|
|
|
|
} |