aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api')
-rw-r--r--src/main/java/gregtech/api/interfaces/IToolStats.java7
-rw-r--r--src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java12
-rw-r--r--src/main/java/gregtech/api/util/GT_ToolHarvestHelper.java16
3 files changed, 28 insertions, 7 deletions
diff --git a/src/main/java/gregtech/api/interfaces/IToolStats.java b/src/main/java/gregtech/api/interfaces/IToolStats.java
index c92a0ef05c..9d8da63b6c 100644
--- a/src/main/java/gregtech/api/interfaces/IToolStats.java
+++ b/src/main/java/gregtech/api/interfaces/IToolStats.java
@@ -36,7 +36,8 @@ public interface IToolStats {
void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID);
/**
- *
+ * @implNote if you are only modifying drops, override
+ * {@link #convertBlockDrops(List, ItemStack, EntityPlayer, Block, int, int, int, byte, int, boolean, BlockEvent.HarvestDropsEvent)}
* @param player The player
* @param x Block pos
* @param y Block pos
@@ -156,7 +157,7 @@ public interface IToolStats {
boolean isMiningTool();
/**
- * aBlock.getHarvestTool(aMetaData) can return the following Values for example. "axe", "pickaxe", "sword",
+ * {@link Block#getHarvestTool(int)} can return the following Values for example. "axe", "pickaxe", "sword",
* "shovel", "hoe", "grafter", "saw", "wrench", "crowbar", "file", "hammer", "plow", "plunger", "scoop",
* "screwdriver", "sense", "scythe", "softhammer", "cutter", "plasmatorch"
*
@@ -168,7 +169,7 @@ public interface IToolStats {
/**
* This lets you modify the Drop List, when this type of Tool has been used.
*
- * @return the Amount of modified Items.
+ * @return the Amount of modified Items, used to determine the extra durability cost
*/
int convertBlockDrops(List<ItemStack> aDrops, ItemStack aStack, EntityPlayer aPlayer, Block aBlock, int aX, int aY,
int aZ, byte aMetaData, int aFortune, boolean aSilkTouch, BlockEvent.HarvestDropsEvent aEvent);
diff --git a/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java b/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java
index bff7a36201..de6ca996d5 100644
--- a/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java
+++ b/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java
@@ -36,6 +36,7 @@ import net.minecraftforge.common.IShearable;
import net.minecraftforge.event.entity.player.PlayerEvent;
import net.minecraftforge.event.world.BlockEvent;
+import appeng.api.implementations.items.IAEWrench;
import buildcraft.api.tools.IToolWrench;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Optional;
@@ -71,7 +72,7 @@ import mrtjp.projectred.api.IScrewdriver;
@Optional.Interface(iface = "crazypants.enderio.api.tool.ITool", modid = "EnderIOAPI|Tools"),
@Optional.Interface(iface = "mrtjp.projectred.api.IScrewdriver", modid = "ProjRed|Core"), })
public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item
- implements IDamagableItem, IToolGrafter, IToolCrowbar, IToolWrench, ITool, IScrewdriver {
+ implements IDamagableItem, IToolGrafter, IToolCrowbar, IToolWrench, ITool, IScrewdriver, IAEWrench {
/**
* All instances of this Item Class are listed here. This gets used to register the Renderer to all Items of this
@@ -777,8 +778,13 @@ public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item
@Override
public boolean canWrench(EntityPlayer player, int x, int y, int z) {
if (player == null) return false;
- if (player.getCurrentEquippedItem() == null) return false;
- if (!isItemStackUsable(player.getCurrentEquippedItem())) return false;
+ return canWrench(player.getHeldItem(), player, x, y, z);
+ }
+
+ @Override
+ public boolean canWrench(ItemStack wrench, EntityPlayer player, int x, int y, int z) {
+ if (wrench == null) return false;
+ if (!isItemStackUsable(wrench)) return false;
IToolStats tStats = getToolStats(player.getCurrentEquippedItem());
return tStats != null && tStats.isWrench();
}
diff --git a/src/main/java/gregtech/api/util/GT_ToolHarvestHelper.java b/src/main/java/gregtech/api/util/GT_ToolHarvestHelper.java
index 7416289c79..4263b77be6 100644
--- a/src/main/java/gregtech/api/util/GT_ToolHarvestHelper.java
+++ b/src/main/java/gregtech/api/util/GT_ToolHarvestHelper.java
@@ -3,6 +3,13 @@ package gregtech.api.util;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
+import ic2.core.block.BlockMultiID;
+import ic2.core.block.BlockScaffold;
+import ic2.core.block.machine.BlockMiningPipe;
+import ic2.core.block.machine.BlockMiningTip;
+import ic2.core.block.wiring.BlockCable;
+import ic2.core.crop.BlockCrop;
+
public class GT_ToolHarvestHelper {
public static boolean isAppropriateTool(Block aBlock, byte aMetaData, String... tTools) {
@@ -43,7 +50,14 @@ public class GT_ToolHarvestHelper {
}
public static boolean isStringEmpty(String s) {
- return s == null || s.length() == 0;
+ return s == null || s.isEmpty();
+ }
+
+ public static boolean isIC2Wrenchable(Block block) {
+ return (block instanceof BlockMultiID && !(block instanceof BlockCable) && !(block instanceof BlockCrop))
+ || block instanceof BlockScaffold
+ || block instanceof BlockMiningPipe
+ || block instanceof BlockMiningTip;
}
public static boolean hasNull(Object... obj) {