From 3ec4d8495e1eda9480263225671242cd8ba90d1d Mon Sep 17 00:00:00 2001 From: AlgorithmX2 Date: Sat, 12 Jul 2014 17:57:53 -0500 Subject: [PATCH] Fixed Bug: #0603 - Anvil Repair of Quartz Tools --- items/tools/quartz/ToolQuartzAxe.java | 12 ++++++++++-- items/tools/quartz/ToolQuartzCuttingKnife.java | 13 ++++++++++--- items/tools/quartz/ToolQuartzHoe.java | 12 ++++++++++-- items/tools/quartz/ToolQuartzPickaxe.java | 12 ++++++++++-- items/tools/quartz/ToolQuartzSpade.java | 12 ++++++++++-- items/tools/quartz/ToolQuartzSword.java | 12 ++++++++++-- util/Platform.java | 16 ++++++++++++++++ 7 files changed, 76 insertions(+), 13 deletions(-) diff --git a/items/tools/quartz/ToolQuartzAxe.java b/items/tools/quartz/ToolQuartzAxe.java index 1f154e815..5b6bdc336 100644 --- a/items/tools/quartz/ToolQuartzAxe.java +++ b/items/tools/quartz/ToolQuartzAxe.java @@ -3,14 +3,17 @@ package appeng.items.tools.quartz; import java.util.EnumSet; import net.minecraft.item.ItemAxe; +import net.minecraft.item.ItemStack; import appeng.core.features.AEFeature; import appeng.core.features.AEFeatureHandler; import appeng.core.features.IAEFeature; +import appeng.util.Platform; public class ToolQuartzAxe extends ItemAxe implements IAEFeature { - AEFeatureHandler feature; + final AEFeature type; + final AEFeatureHandler feature; @Override public AEFeatureHandler feature() @@ -18,9 +21,14 @@ public class ToolQuartzAxe extends ItemAxe implements IAEFeature return feature; } + public boolean getIsRepairable(ItemStack a, ItemStack b) + { + return Platform.canRepair( type, a, b ); + } + public ToolQuartzAxe(AEFeature Type) { super( ToolMaterial.IRON ); - feature = new AEFeatureHandler( EnumSet.of( Type, AEFeature.QuartzAxe ), this, Type.name() ); + feature = new AEFeatureHandler( EnumSet.of( type = Type, AEFeature.QuartzAxe ), this, Type.name() ); } @Override diff --git a/items/tools/quartz/ToolQuartzCuttingKnife.java b/items/tools/quartz/ToolQuartzCuttingKnife.java index 3298223fd..30c992a9b 100644 --- a/items/tools/quartz/ToolQuartzCuttingKnife.java +++ b/items/tools/quartz/ToolQuartzCuttingKnife.java @@ -17,13 +17,20 @@ import appeng.util.Platform; public class ToolQuartzCuttingKnife extends AEBaseItem implements IGuiItem { - public ToolQuartzCuttingKnife(AEFeature type) { - super( ToolQuartzCuttingKnife.class, type.name() ); - setfeature( EnumSet.of( type, AEFeature.QuartzKnife ) ); + final AEFeature type; + + public ToolQuartzCuttingKnife(AEFeature Type) { + super( ToolQuartzCuttingKnife.class, Type.name() ); + setfeature( EnumSet.of( type = Type, AEFeature.QuartzKnife ) ); setMaxDamage( 50 ); setMaxStackSize( 1 ); } + public boolean getIsRepairable(ItemStack a, ItemStack b) + { + return Platform.canRepair( type, a, b ); + } + @Override public boolean isRepairable() { diff --git a/items/tools/quartz/ToolQuartzHoe.java b/items/tools/quartz/ToolQuartzHoe.java index 1c121bf88..cf057a489 100644 --- a/items/tools/quartz/ToolQuartzHoe.java +++ b/items/tools/quartz/ToolQuartzHoe.java @@ -3,14 +3,17 @@ package appeng.items.tools.quartz; import java.util.EnumSet; import net.minecraft.item.ItemHoe; +import net.minecraft.item.ItemStack; import appeng.core.features.AEFeature; import appeng.core.features.AEFeatureHandler; import appeng.core.features.IAEFeature; +import appeng.util.Platform; public class ToolQuartzHoe extends ItemHoe implements IAEFeature { - AEFeatureHandler feature; + final AEFeature type; + final AEFeatureHandler feature; @Override public AEFeatureHandler feature() @@ -18,9 +21,14 @@ public class ToolQuartzHoe extends ItemHoe implements IAEFeature return feature; } + public boolean getIsRepairable(ItemStack a, ItemStack b) + { + return Platform.canRepair( type, a, b ); + } + public ToolQuartzHoe(AEFeature Type) { super( ToolMaterial.IRON ); - feature = new AEFeatureHandler( EnumSet.of( Type, AEFeature.QuartzHoe ), this, Type.name() ); + feature = new AEFeatureHandler( EnumSet.of( type = Type, AEFeature.QuartzHoe ), this, Type.name() ); } @Override diff --git a/items/tools/quartz/ToolQuartzPickaxe.java b/items/tools/quartz/ToolQuartzPickaxe.java index 967c03373..e7afe6604 100644 --- a/items/tools/quartz/ToolQuartzPickaxe.java +++ b/items/tools/quartz/ToolQuartzPickaxe.java @@ -3,14 +3,17 @@ package appeng.items.tools.quartz; import java.util.EnumSet; import net.minecraft.item.ItemPickaxe; +import net.minecraft.item.ItemStack; import appeng.core.features.AEFeature; import appeng.core.features.AEFeatureHandler; import appeng.core.features.IAEFeature; +import appeng.util.Platform; public class ToolQuartzPickaxe extends ItemPickaxe implements IAEFeature { - AEFeatureHandler feature; + final AEFeature type; + final AEFeatureHandler feature; @Override public AEFeatureHandler feature() @@ -18,9 +21,14 @@ public class ToolQuartzPickaxe extends ItemPickaxe implements IAEFeature return feature; } + public boolean getIsRepairable(ItemStack a, ItemStack b) + { + return Platform.canRepair( type, a, b ); + } + public ToolQuartzPickaxe(AEFeature Type) { super( ToolMaterial.IRON ); - feature = new AEFeatureHandler( EnumSet.of( Type, AEFeature.QuartzPickaxe ), this, Type.name() ); + feature = new AEFeatureHandler( EnumSet.of( type = Type, AEFeature.QuartzPickaxe ), this, Type.name() ); } @Override diff --git a/items/tools/quartz/ToolQuartzSpade.java b/items/tools/quartz/ToolQuartzSpade.java index 2ce1762c6..47788b85a 100644 --- a/items/tools/quartz/ToolQuartzSpade.java +++ b/items/tools/quartz/ToolQuartzSpade.java @@ -3,14 +3,17 @@ package appeng.items.tools.quartz; import java.util.EnumSet; import net.minecraft.item.ItemSpade; +import net.minecraft.item.ItemStack; import appeng.core.features.AEFeature; import appeng.core.features.AEFeatureHandler; import appeng.core.features.IAEFeature; +import appeng.util.Platform; public class ToolQuartzSpade extends ItemSpade implements IAEFeature { - AEFeatureHandler feature; + final AEFeature type; + final AEFeatureHandler feature; @Override public AEFeatureHandler feature() @@ -18,9 +21,14 @@ public class ToolQuartzSpade extends ItemSpade implements IAEFeature return feature; } + public boolean getIsRepairable(ItemStack a, ItemStack b) + { + return Platform.canRepair( type, a, b ); + } + public ToolQuartzSpade(AEFeature Type) { super( ToolMaterial.IRON ); - feature = new AEFeatureHandler( EnumSet.of( Type, AEFeature.QuartzSpade ), this, Type.name() ); + feature = new AEFeatureHandler( EnumSet.of( type = Type, AEFeature.QuartzSpade ), this, Type.name() ); } @Override diff --git a/items/tools/quartz/ToolQuartzSword.java b/items/tools/quartz/ToolQuartzSword.java index 5381c6ab9..551392791 100644 --- a/items/tools/quartz/ToolQuartzSword.java +++ b/items/tools/quartz/ToolQuartzSword.java @@ -2,15 +2,18 @@ package appeng.items.tools.quartz; import java.util.EnumSet; +import net.minecraft.item.ItemStack; import net.minecraft.item.ItemSword; import appeng.core.features.AEFeature; import appeng.core.features.AEFeatureHandler; import appeng.core.features.IAEFeature; +import appeng.util.Platform; public class ToolQuartzSword extends ItemSword implements IAEFeature { - AEFeatureHandler feature; + final AEFeature type; + final AEFeatureHandler feature; @Override public AEFeatureHandler feature() @@ -18,9 +21,14 @@ public class ToolQuartzSword extends ItemSword implements IAEFeature return feature; } + public boolean getIsRepairable(ItemStack a, ItemStack b) + { + return Platform.canRepair( type, a, b ); + } + public ToolQuartzSword(AEFeature Type) { super( ToolMaterial.IRON ); - feature = new AEFeatureHandler( EnumSet.of( Type, AEFeature.QuartzSword ), this, Type.name() ); + feature = new AEFeatureHandler( EnumSet.of( type = Type, AEFeature.QuartzSword ), this, Type.name() ); } @Override diff --git a/util/Platform.java b/util/Platform.java index 1601e6f6e..fd84527c1 100644 --- a/util/Platform.java +++ b/util/Platform.java @@ -19,6 +19,7 @@ import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.init.Blocks; +import net.minecraft.init.Items; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; import net.minecraft.inventory.InventoryCrafting; @@ -83,6 +84,7 @@ import appeng.api.util.AEItemDefinition; import appeng.core.AEConfig; import appeng.core.AELog; import appeng.core.AppEng; +import appeng.core.features.AEFeature; import appeng.core.sync.GuiBridge; import appeng.hooks.TickHandler; import appeng.me.GridAccessException; @@ -1680,4 +1682,18 @@ public class Platform TickHandler.instance.addCallable( worldObj, new BlockUpdate( worldObj, xCoord, yCoord, zCoord ) ); } + public static boolean canRepair(AEFeature type, ItemStack a, ItemStack b) + { + if ( b == null || a == null ) + return false; + + if ( type == AEFeature.CertusQuartzTools ) + return AEApi.instance().materials().materialCertusQuartzCrystal.sameAsStack( b ); + + if ( type == AEFeature.NetherQuartzTools ) + return Items.quartz == b.getItem(); + + return false; + } + }