package minefantasy.mf2.item.tool.advanced; import java.util.List; import minefantasy.mf2.MineFantasyII; import minefantasy.mf2.api.helpers.ToolHelper; import minefantasy.mf2.api.tier.IToolMaterial; import minefantasy.mf2.block.list.BlockListMF; import minefantasy.mf2.block.tileentity.TileEntityRoad; import minefantasy.mf2.item.list.CreativeTabMF; import minefantasy.mf2.item.list.ToolListMF; import minefantasy.mf2.item.tool.ToolMaterialMF; import minefantasy.mf2.util.MFLogUtil; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemPickaxe; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import cpw.mods.fml.common.registry.GameRegistry; /** * @author Anonymous Productions */ public class ItemMattock extends ItemPickaxe implements IToolMaterial { public ItemMattock(String name, ToolMaterial material, int rarity) { super(material); itemRarity = rarity; setCreativeTab(CreativeTabMF.tabOldTools); setTextureName("minefantasy2:Tool/Advanced/"+name); GameRegistry.registerItem(this, name, MineFantasyII.MODID); this.setHarvestLevel("pickaxe", Math.max(0, material.getHarvestLevel()-2)); this.setUnlocalizedName(name); } private int itemRarity; @Override public EnumRarity getRarity(ItemStack item) { int lvl = itemRarity+1; if(item.isItemEnchanted()) { if(lvl == 0) { lvl++; } lvl ++; } if(lvl >= ToolListMF.rarity.length) { lvl = ToolListMF.rarity.length-1; } return ToolListMF.rarity[lvl]; } @Override public ToolMaterial getMaterial() { return toolMaterial; } @Override public float getDigSpeed(ItemStack stack, Block block, int meta) { return ToolHelper.modifyDigOnQuality(stack, super.getDigSpeed(stack, block, meta)); } @Override public void addInformation(ItemStack item, EntityPlayer user, List list, boolean extra) { super.addInformation(item, user, list, extra); } @Override public boolean canHarvestBlock(Block block, ItemStack stack) { return super.canHarvestBlock(block, stack) || Items.iron_shovel.canHarvestBlock(block, stack); } @Override public boolean onItemUse(ItemStack mattock, EntityPlayer player, World world, int x, int y, int z, int facing, float pitch, float yaw, float pan) { if (!player.canPlayerEdit(x, y, z, facing, mattock)) { return false; } else { Block var11 = world.getBlock(x, y, z); int var11m = world.getBlockMetadata(x, y, z); Block var12 = world.getBlock(x, y + 1, z); if (facing == 0 || var12 != Blocks.air) { return false; } else if(var11 == Blocks.grass || var11 == Blocks.dirt || var11 == Blocks.sand) { Block var13 = BlockListMF.road; int m = 0; if(var11 == Blocks.sand) { m = 1; } if(var11 == Blocks.grass) { var11 = Blocks.dirt; } world.playSoundEffect((double)((float)x + 0.5F), (double)((float)y + 0.5F), (double)((float)z + 0.5F), "dig."+var11.stepSound.soundName, (var13.stepSound.getVolume() + 1.0F) / 2.0F, var13.stepSound.getPitch() * 0.8F); if (world.isRemote) { return true; } else { world.setBlock(x, y, z, var13, m, 2); TileEntityRoad road = new TileEntityRoad(); road.setWorldObj(world); world.setTileEntity(x, y, z, road); road.setSurface(var11, var11m); mattock.damageItem(1, player); return true; } } else { return false; } } } @Override public int getMaxDamage(ItemStack stack) { return ToolHelper.setDuraOnQuality(stack, super.getMaxDamage()); } }