package ru.nord.common.blocks;
import com.google.common.base.Predicate;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.PropertyEnum;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.RayTraceResult;
import net.minecraft.world.World;
import ru.nord.NordItems;
import ru.nord.common.utils.Version;
import ru.nord_core.common.blocks.BlockMetadata2;
import ru.nord_core.common.utils.enums.EnumOre;
import java.util.Random;
public class BlockMetalOre extends BlockMetadata2 {
public static final PropertyEnum TYPE = PropertyEnum.create("type", ru.nord_core.common.utils.metal.EnumOre.class, new Predicate<ru.nord_core.common.utils.metal.EnumOre>()
{
@Override
public boolean apply(ru.nord_core.common.utils.metal.EnumOre _enum)
{
return !_enum.getVanila();
}
});
public BlockMetalOre() {
super(Material.iron, Version.MODID);
this.setHardness(3F);
this.setHarvestLevel("pickaxe", 1);
}
@Override
public PropertyEnum getVariant() {
return TYPE;
}
@Override
public Comparable getEnumByMetadata(int meta) {
return ru.nord_core.common.utils.metal.EnumOre.byReIndexMetadata(getAllowedValues(), meta);
}
@Override
public Item getItemDropped(IBlockState state, Random rand, int fortune) {
if (((EnumOre) state.getValue(TYPE)).getNugget() != null) {
return NordItems.itemOreNugget;
} else {
return NordItems.itemOreDrop;
}
}
@Override
public int quantityDropped(Random random) {
return 3 + random.nextInt(3);
}
@Override
public int quantityDroppedWithBonus(int fortune, Random random) {
if (fortune > 0 && Item.getItemFromBlock(this) != this.getItemDropped((IBlockState) this.getBlockState().getValidStates().iterator().next(), random, fortune)) {
int j = random.nextInt(fortune + 1) + 1;
return this.quantityDropped(random) * j;
} else {
return this.quantityDropped(random);
}
}
@Override
public void dropBlockAsItemWithChance(World worldIn, BlockPos pos, IBlockState state, float chance, int fortune) {
super.dropBlockAsItemWithChance(worldIn, pos, state, chance, fortune);
}
@Override
public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player){
return new ItemStack(this, 1, ((EnumOre) world.getBlockState(pos).getValue(TYPE)).getMetadata());
}
@Override
public boolean canSilkHarvest(World world, BlockPos pos, IBlockState state, EntityPlayer player) {
return true;
}
}