package minestrapteam.mods.minestrappolation.block; import minestrapteam.mods.minestrappolation.lib.MBlocks; import minestrapteam.mods.minestrappolation.lib.MReference; import net.minecraft.block.BlockDirt; import net.minecraft.block.material.MapColor; import net.minecraft.block.state.IBlockState; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.model.ModelBakery; import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemHoe; import net.minecraft.util.BlockPos; import net.minecraft.util.EnumFacing; import net.minecraft.world.World; import net.minecraftforge.fml.common.registry.GameRegistry; public class BlockVirtianSoil extends BlockDirt { public BlockVirtianSoil() { } @Override public MapColor getMapColor(IBlockState state) { if (state.getValue(VARIANT).getMetadata() == 2) return MapColor.blackColor; else return MapColor.pinkColor; } public static void inventoryRender() { Item item = GameRegistry.findItem(MReference.MODID, "virtian_soil"); ModelBakery.addVariantName(item, "ministrapp:virtian_soil_dirt"); ModelBakery.addVariantName(item, "ministrapp:virtian_soil_coarse_dirt"); ModelBakery.addVariantName(item, "ministrapp:virtian_soil_podzol"); Item itemBlockVariants = GameRegistry.findItem(MReference.MODID, "virtian_soil"); DirtType[] aenumtype = BlockDirt.DirtType.values(); int i = aenumtype.length; for (int j = 0; j < i; ++j) { BlockDirt.DirtType enumtype = aenumtype[j]; ModelResourceLocation itemModelResourceLocation = new ModelResourceLocation(MReference.MODID + ":" + "virtian_soil_" + enumtype .getName(), "inventory"); Minecraft.getMinecraft().getRenderItem().getItemModelMesher() .register(itemBlockVariants, enumtype.getMetadata(), itemModelResourceLocation); } } @Override public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumFacing side, float hitX, float hitY, float hitZ) { if (playerIn.getHeldItem() != null) { if (playerIn.getHeldItem().getItem() instanceof ItemHoe && state.getValue(VARIANT).getMetadata() == 1) { if (playerIn.getHeldItem().getItemDamage() < playerIn.getHeldItem().getMaxDamage()) playerIn.getHeldItem().damageItem(1, playerIn); else playerIn.destroyCurrentEquippedItem(); worldIn.setBlockState(pos, MBlocks.virtian_soil.getDefaultState()); worldIn.playSoundEffect((double) ((float) pos.getX() + 0.5F), (double) ((float) pos.getY() + 0.5F), (double) ((float) pos.getZ() + 0.5F), MBlocks.virtian_soil.stepSound.getStepSound(), (MBlocks.virtian_soil.stepSound.getVolume() + 1.0F) / 2.0F, MBlocks.virtian_soil.stepSound.getFrequency() * 0.8F); return true; } } return false; } }