Add support for wrenches from other mods.

This commit is contained in:
modmuss50 2017-09-28 21:01:38 +01:00
parent ffe13d0c79
commit 2e1c469524
3 changed files with 39 additions and 7 deletions

View file

@ -46,7 +46,7 @@ import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraft.world.chunk.Chunk;
import net.minecraftforge.energy.CapabilityEnergy;
import reborncore.api.IToolHandler;
import reborncore.api.ToolManager;
import techreborn.client.TechRebornCreativeTab;
import techreborn.init.ModBlocks;
import techreborn.init.ModSounds;
@ -89,9 +89,8 @@ public class BlockCable extends BlockContainer {
@Override
public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
ItemStack stack = playerIn.getHeldItem(EnumHand.MAIN_HAND);
if (!stack.isEmpty() && stack.getItem() instanceof IToolHandler && playerIn.isSneaking()) {
IToolHandler toolHandler = (IToolHandler) stack.getItem();
if (toolHandler.handleTool(stack, pos, world, playerIn, facing, false)) {
if (!stack.isEmpty() && ToolManager.INSTANCE.canHandleTool(stack) && playerIn.isSneaking()) {
if (ToolManager.INSTANCE.handleTool(stack, pos, world, playerIn, facing, false)) {
ItemStack drop = state.getValue(TYPE).getStack();
if (drop == null) {
return false;

View file

@ -39,7 +39,7 @@ import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import prospector.shootingstar.ShootingStar;
import prospector.shootingstar.model.ModelCompound;
import reborncore.api.IToolHandler;
import reborncore.api.ToolManager;
import reborncore.common.BaseTileBlock;
import techreborn.Core;
import techreborn.client.TechRebornCreativeTab;
@ -70,8 +70,8 @@ public abstract class BlockEnergyStorage extends BaseTileBlock {
public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand,
EnumFacing side, float hitX, float hitY, float hitZ) {
ItemStack heldStack = player.getHeldItem(hand);
if(heldStack.getItem() instanceof IToolHandler){
if(((IToolHandler) heldStack.getItem()).handleTool(heldStack, pos, world, player, side, true)){
if(ToolManager.INSTANCE.canHandleTool(heldStack)){
if(ToolManager.INSTANCE.handleTool(heldStack, pos, world, player, side, true)){
if (state.getBlock() instanceof BlockEnergyStorage) {
EnumFacing facing2 = state.getValue(BlockEnergyStorage.FACING);
if (facing2.getOpposite() == side) {

View file

@ -0,0 +1,33 @@
package techreborn.utils;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import reborncore.api.ICustomToolHandler;
public class GenericWrenchHelper implements ICustomToolHandler {
ResourceLocation itemLocation;
boolean damage;
public GenericWrenchHelper(ResourceLocation itemLocation, boolean damage) {
this.itemLocation = itemLocation;
this.damage = damage;
}
@Override
public boolean canHandleTool(ItemStack stack) {
return stack.getItem().getRegistryName().equals(itemLocation);
}
@Override
public boolean handleTool(ItemStack stack, BlockPos pos, World world, EntityPlayer player, EnumFacing side, boolean damage) {
if(this.damage && damage){
stack.damageItem(1, player);
}
return true;
}
}