Files
TinkersConstruct/src/main/java/tconstruct/items/tools/Mattock.java
T

171 lines
4.3 KiB
Java
Raw Normal View History

package tconstruct.items.tools;
2013-08-09 00:56:25 -07:00
import java.util.List;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
import tconstruct.TConstruct;
2013-11-29 23:16:32 -05:00
import tconstruct.common.TRepo;
2013-08-09 00:56:25 -07:00
import tconstruct.library.crafting.ToolBuilder;
import tconstruct.library.tools.AbilityHelper;
import tconstruct.library.tools.DualHarvestTool;
2013-10-01 19:44:04 -07:00
import tconstruct.util.config.PHConstruct;
public class Mattock extends DualHarvestTool
{
2013-12-31 16:37:46 -05:00
public Mattock()
{
2013-12-31 16:37:46 -05:00
super(3);
this.setUnlocalizedName("InfiTool.Mattock");
}
@Override
protected Material[] getEffectiveMaterials ()
{
return axeMaterials;
}
@Override
protected Material[] getEffectiveSecondaryMaterials ()
{
return shovelMaterials;
}
@Override
protected String getHarvestType ()
{
return "axe";
}
@Override
protected String getSecondHarvestType ()
{
return "shovel";
}
static Material[] axeMaterials = { Material.field_151575_d, Material.cactus, Material.pumpkin, Material.plants, Material.field_151582_l };
static Material[] shovelMaterials = { Material.grass, Material.ground, Material.clay };
@Override
public Item getHeadItem ()
{
2013-11-29 23:16:32 -05:00
return TRepo.hatchetHead;
}
@Override
public Item getAccessoryItem ()
{
2013-11-29 23:16:32 -05:00
return TRepo.shovelHead;
}
public int durabilityTypeAccessory ()
{
return 2;
}
@Override
public String getIconSuffix (int partType)
{
switch (partType)
{
case 0:
return "_mattock_head";
case 1:
return "_mattock_head_broken";
case 2:
return "_mattock_handle";
case 3:
return "_mattock_back";
default:
return "";
}
}
@Override
public String getEffectSuffix ()
{
return "_mattock_effect";
}
@Override
public String getDefaultFolder ()
{
return "mattock";
}
/* Mattock specific */
@Override
public boolean onItemUse (ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float clickX, float clickY, float clickZ)
{
NBTTagCompound tags = stack.getTagCompound().getCompoundTag("InfiTool");
if (tags.getBoolean("Broken"))
return false;
return AbilityHelper.hoeGround(stack, player, world, x, y, z, side, random);
}
2013-08-09 00:56:25 -07:00
public void buildTool (int id, String name, List list)
{
if (!PHConstruct.denyMattock || allowCrafting(id))
{
Item accessory = getAccessoryItem();
ItemStack accessoryStack = accessory != null ? new ItemStack(getAccessoryItem(), 1, id) : null;
Item extra = getExtraItem();
ItemStack extraStack = extra != null ? new ItemStack(extra, 1, id) : null;
ItemStack tool = ToolBuilder.instance.buildTool(new ItemStack(getHeadItem(), 1, id), new ItemStack(getHandleItem(), 1, id), accessoryStack, extraStack, name + getToolName());
if (tool == null)
{
2013-11-29 23:16:32 -05:00
if (!TRepo.supressMissingToolLogs)
{
2014-01-09 04:08:38 -05:00
TConstruct.logger.warn("Creative builder failed tool for " + name + this.getToolName());
TConstruct.logger.warn("Make sure you do not have item ID conflicts");
}
2013-08-09 00:56:25 -07:00
}
else
{
tool.getTagCompound().getCompoundTag("InfiTool").setBoolean("Built", true);
list.add(tool);
}
}
}
private boolean allowCrafting (int head)
{
int[] nonMetals = { 0, 1, 3, 4, 5, 6, 7, 8, 9, 17 };
for (int i = 0; i < nonMetals.length; i++)
{
if (head == nonMetals[i])
return false;
}
return true;
}
@Override
public boolean willAllowOffhandWeapon ()
{
return false;
}
@Override
public boolean willAllowShield ()
{
return false;
}
@Override
public boolean isOffhandHandDualWeapon ()
{
return false;
}
2013-09-10 10:21:00 -04:00
@Override
public boolean sheatheOnBack ()
{
return true;
}
}