aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/gregtech/api/interfaces/IToolStats.java7
-rw-r--r--src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java23
-rw-r--r--src/main/java/gregtech/common/tools/GT_Tool_Screwdriver.java5
3 files changed, 33 insertions, 2 deletions
diff --git a/src/main/java/gregtech/api/interfaces/IToolStats.java b/src/main/java/gregtech/api/interfaces/IToolStats.java
index b2e170445c..9dcfc4bce8 100644
--- a/src/main/java/gregtech/api/interfaces/IToolStats.java
+++ b/src/main/java/gregtech/api/interfaces/IToolStats.java
@@ -110,6 +110,13 @@ public interface IToolStats {
boolean isWrench();
/**
+ * @return if this Tool can be used as an PR screwdriver
+ */
+ default boolean isScrewdriver() {
+ return false;
+ }
+
+ /**
* @return If this Tool can be used as Weapon i.e. if that is the main purpose.
*/
boolean isWeapon();
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 2516aa9f87..576fb79923 100644
--- a/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java
+++ b/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java
@@ -28,6 +28,7 @@ import java.util.List;
import java.util.Map.Entry;
import java.util.concurrent.ConcurrentHashMap;
import mods.railcraft.api.core.items.IToolCrowbar;
+import mrtjp.projectred.api.IScrewdriver;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
@@ -63,10 +64,11 @@ import net.minecraftforge.event.world.BlockEvent;
@Optional.Interface(iface = "forestry.api.arboriculture.IToolGrafter", modid = "ForestryAPI|arboriculture"),
@Optional.Interface(iface = "mods.railcraft.api.core.items.IToolCrowbar", modid = "RailcraftAPI|items"),
@Optional.Interface(iface = "buildcraft.api.tools.IToolWrench", modid = "BuildCraftAPI|tools"),
- @Optional.Interface(iface = "crazypants.enderio.api.tool.ITool", modid = "EnderIOAPI|Tools")
+ @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 {
+ implements IDamagableItem, IToolGrafter, IToolCrowbar, IToolWrench, ITool, IScrewdriver {
/**
* All instances of this Item Class are listed here.
* This gets used to register the Renderer to all Items of this Type, if useStandardMetaItemRenderer() returns true.
@@ -818,6 +820,23 @@ public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item
return canWrench(player, x, y, z);
}
+ // ProjectRed screwdriver
+ @Override
+ public boolean canUse(EntityPlayer player, ItemStack stack) {
+ if (player == null) return false;
+ if (GT_Utility.isStackInvalid(stack) || !isItemStackUsable(stack)) return false;
+ IToolStats tStats = getToolStats(stack);
+ return tStats != null && tStats.isScrewdriver();
+ }
+
+ @Override
+ public void damageScrewdriver(EntityPlayer player, ItemStack stack) {
+ if (player == null) return;
+ if (GT_Utility.isStackInvalid(stack) || !isItemStackUsable(stack)) return;
+ IToolStats tStats = getToolStats(stack);
+ if (tStats != null) doDamage(stack, tStats.getToolDamagePerEntityAttack());
+ }
+
@Override
public void used(ItemStack stack, EntityPlayer player, int x, int y, int z) {
wrenchUsed(player, x, y, z);
diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Screwdriver.java b/src/main/java/gregtech/common/tools/GT_Tool_Screwdriver.java
index b09839f0cc..1007c81f9f 100644
--- a/src/main/java/gregtech/common/tools/GT_Tool_Screwdriver.java
+++ b/src/main/java/gregtech/common/tools/GT_Tool_Screwdriver.java
@@ -108,6 +108,11 @@ public class GT_Tool_Screwdriver extends GT_Tool {
}
@Override
+ public boolean isScrewdriver() {
+ return true;
+ }
+
+ @Override
public boolean isMinableBlock(Block aBlock, byte aMetaData) {
return GT_ToolHarvestHelper.isAppropriateTool(aBlock, aMetaData, "screwdriver")
|| GT_ToolHarvestHelper.isAppropriateMaterial(aBlock, Material.circuits);