diff --git a/gradle.properties b/gradle.properties index 89b78ae44..57bae7dd7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -23,6 +23,7 @@ jei_version=4.8.0.105 tesla_version=1.0.61 ic2_version=2.8.19-ex112 top_version=1.12-1.4.18-10 +cofhcore_version=1.12-4.+ ######################################################### # Deployment # diff --git a/gradle/scripts/dependencies.gradle b/gradle/scripts/dependencies.gradle index 94b5b05e0..a9b7708b8 100644 --- a/gradle/scripts/dependencies.gradle +++ b/gradle/scripts/dependencies.gradle @@ -76,6 +76,7 @@ dependencies { compileOnly "net.darkhax.tesla:Tesla-1.12:${tesla_version}" compileOnly "net.industrial-craft:industrialcraft-2:${ic2_version}:api" compileOnly "mcjty.theoneprobe:TheOneProbe-1.12:${top_version}:api" + compileOnly "cofh:CoFHCore:${cofhcore_version}:deobf" // at runtime, use the full JEI jar runtime "mezz.jei:jei_${minecraft_version}:${jei_version}" diff --git a/src/main/java/appeng/items/tools/ToolNetworkTool.java b/src/main/java/appeng/items/tools/ToolNetworkTool.java index 2f8c4a30a..0c4040697 100644 --- a/src/main/java/appeng/items/tools/ToolNetworkTool.java +++ b/src/main/java/appeng/items/tools/ToolNetworkTool.java @@ -20,6 +20,8 @@ package appeng.items.tools; import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; @@ -32,6 +34,9 @@ import net.minecraft.util.math.RayTraceResult; import net.minecraft.util.math.Vec3d; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.fml.common.Optional.Interface; + +import cofh.api.item.IToolHammer; import appeng.api.implementations.guiobjects.IGuiItem; import appeng.api.implementations.guiobjects.IGuiItemObject; @@ -54,7 +59,8 @@ import appeng.util.Platform; // TODO BC Integration //@Interface( iface = "buildcraft.api.tools.IToolWrench", iname = IntegrationType.BuildCraftCore ) -public class ToolNetworkTool extends AEBaseItem implements IGuiItem, IAEWrench /* , IToolWrench */ +@Interface( iface = "cofh.api.item.IToolHammer", modid = "cofhcore" ) +public class ToolNetworkTool extends AEBaseItem implements IGuiItem, IAEWrench, IToolHammer /* , IToolWrench */ { public ToolNetworkTool() @@ -197,6 +203,32 @@ public class ToolNetworkTool extends AEBaseItem implements IGuiItem, IAEWrench / return true; } + // IToolHammer - start + @Override + public boolean isUsable( ItemStack item, EntityLivingBase user, BlockPos pos ) + { + return true; + } + + @Override + public boolean isUsable( ItemStack item, EntityLivingBase user, Entity entity ) + { + return true; + } + + @Override + public void toolUsed( ItemStack item, EntityLivingBase user, BlockPos pos ) + { + user.swingArm( user.getActiveHand() ); + } + + @Override + public void toolUsed( ItemStack item, EntityLivingBase user, Entity entity ) + { + user.swingArm( user.getActiveHand() ); + } + // IToolHammer - end + // TODO: BC WRENCH INTEGRATION } diff --git a/src/main/java/appeng/items/tools/quartz/ToolQuartzWrench.java b/src/main/java/appeng/items/tools/quartz/ToolQuartzWrench.java index 1d1848019..69cc33a4c 100644 --- a/src/main/java/appeng/items/tools/quartz/ToolQuartzWrench.java +++ b/src/main/java/appeng/items/tools/quartz/ToolQuartzWrench.java @@ -20,6 +20,8 @@ package appeng.items.tools.quartz; import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumActionResult; @@ -28,6 +30,9 @@ import net.minecraft.util.EnumHand; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.fml.common.Optional.Interface; + +import cofh.api.item.IToolHammer; import appeng.api.implementations.items.IAEWrench; import appeng.api.util.DimensionalCoord; @@ -37,7 +42,8 @@ import appeng.util.Platform; // TODO BC Integration //@Interface( iface = "buildcraft.api.tools.IToolWrench", iname = IntegrationType.BuildCraftCore ) -public class ToolQuartzWrench extends AEBaseItem implements IAEWrench /* , IToolWrench */ +@Interface( iface = "cofh.api.item.IToolHammer", modid = "cofhcore" ) +public class ToolQuartzWrench extends AEBaseItem implements IAEWrench, IToolHammer /* , IToolWrench */ { public ToolQuartzWrench() @@ -81,6 +87,32 @@ public class ToolQuartzWrench extends AEBaseItem implements IAEWrench /* , ITool return true; } + // IToolHammer - start + @Override + public boolean isUsable( ItemStack item, EntityLivingBase user, BlockPos pos ) + { + return true; + } + + @Override + public boolean isUsable( ItemStack item, EntityLivingBase user, Entity entity ) + { + return true; + } + + @Override + public void toolUsed( ItemStack item, EntityLivingBase user, BlockPos pos ) + { + user.swingArm( user.getActiveHand() ); + } + + @Override + public void toolUsed( ItemStack item, EntityLivingBase user, Entity entity ) + { + user.swingArm( user.getActiveHand() ); + } + // IToolHammer - end + // TODO: BC Wrench Integration /* * @Override diff --git a/src/main/java/appeng/util/Platform.java b/src/main/java/appeng/util/Platform.java index 69d2a7d9e..9985d9853 100644 --- a/src/main/java/appeng/util/Platform.java +++ b/src/main/java/appeng/util/Platform.java @@ -673,6 +673,11 @@ public class Platform * return wrench.canWrench( player, x, y, z ); * } */ + + if( eq.getItem() instanceof cofh.api.item.IToolHammer ) + { + return ( (cofh.api.item.IToolHammer) eq.getItem() ).isUsable( eq, player, pos ); + } } catch( final Throwable ignore ) { // explodes without BC