59 lines
2 KiB
Java
Executable file
59 lines
2 KiB
Java
Executable file
package game.item;
|
|
|
|
import game.block.Block;
|
|
import game.entity.types.EntityLiving;
|
|
import game.init.Blocks;
|
|
import game.init.ToolMaterial;
|
|
import game.material.Material;
|
|
import game.world.BlockPos;
|
|
import game.world.World;
|
|
|
|
public class ItemShears extends Item
|
|
{
|
|
private final ToolMaterial material;
|
|
|
|
public ItemShears(ToolMaterial material)
|
|
{
|
|
this.setMaxStackSize(1);
|
|
this.setMaxDamage(material.getMaxUses() - 12);
|
|
this.setTab(CheatTab.tabTools);
|
|
this.material = material;
|
|
}
|
|
|
|
public boolean onBlockDestroyed(ItemStack stack, World worldIn, Block blockIn, BlockPos pos, EntityLiving playerIn)
|
|
{
|
|
if (blockIn.getShearsEfficiency() < 0) // blockIn.getMaterial() != Material.leaves && blockIn != Blocks.web && blockIn != Blocks.tallgrass && blockIn != Blocks.vine && blockIn != Blocks.tripwire && blockIn != Blocks.wool)
|
|
{
|
|
return super.onBlockDestroyed(stack, worldIn, blockIn, pos, playerIn);
|
|
}
|
|
else
|
|
{
|
|
stack.damageItem(1, playerIn);
|
|
return true;
|
|
}
|
|
}
|
|
|
|
public boolean canHarvestBlock(Block blockIn)
|
|
{
|
|
return blockIn.getMaterial() == Material.web || blockIn == Blocks.redstone || blockIn == Blocks.string;
|
|
}
|
|
|
|
public float getStrVsBlock(ItemStack stack, Block state)
|
|
{
|
|
return state.getShearsEfficiency() <= 0 ? 1.0F : (((float)state.getShearsEfficiency()) * (this.material.getEfficiencyOnProperMaterial() - 1.0F));
|
|
// state != Blocks.web && state.getMaterial() != Material.leaves ? (state == Blocks.wool ? 5.0F : super.getStrVsBlock(stack, state)) : 15.0F;
|
|
}
|
|
|
|
public boolean getIsRepairable(ItemStack toRepair, ItemStack repair)
|
|
{
|
|
return this.material.isRepairItem(repair.getItem()) ? true : super.getIsRepairable(toRepair, repair);
|
|
}
|
|
|
|
public boolean isMagnetic() {
|
|
return this.material.isMagnetic();
|
|
}
|
|
|
|
public boolean canBeWielded() {
|
|
return true;
|
|
}
|
|
}
|