diff --git a/src/main/java/appeng/helpers/PatternHelper.java b/src/main/java/appeng/helpers/PatternHelper.java index 2f830e185..414458fb3 100644 --- a/src/main/java/appeng/helpers/PatternHelper.java +++ b/src/main/java/appeng/helpers/PatternHelper.java @@ -267,7 +267,7 @@ public class PatternHelper implements ICraftingPatternDetails, Comparable implements IAEItemS } @Override - public ItemStack getCachedItemStack( long stackSize ) { - if (this.cachedItemStack != null) { - ItemStack currentCached = this.cachedItemStack; - this.cachedItemStack = null; - currentCached.setCount(Ints.saturatedCast(stackSize)); - return currentCached; - } + public ItemStack getCachedItemStack( long stackSize ) + { + if( this.cachedItemStack != null ) + { + ItemStack currentCached = this.cachedItemStack; + this.cachedItemStack = null; + currentCached.setCount( Ints.saturatedCast( stackSize ) ); + return currentCached; + } - ItemStack itemStack = this.createItemStack(); - itemStack.setCount(Ints.saturatedCast(stackSize)); + ItemStack itemStack = this.createItemStack(); + itemStack.setCount( Ints.saturatedCast( stackSize ) ); - return itemStack; - } + return itemStack; + } @Override public void setCachedItemStack( ItemStack itemStack ) @@ -361,7 +363,7 @@ public final class AEItemStack extends AEStack implements IAEItemS private boolean fuzzyItemStackComparison( ItemStack a, ItemStack b, FuzzyMode mode ) { - if( a.getItem() == b.getItem() && ( a.getItem().isDamageable() || a.getItem() instanceof MetaTool ) ) + if( a.getItem() == b.getItem() && ( a.getItem().isDamageable() || Platform.isModLoaded( "gregtech" ) && a.getItem() instanceof MetaTool ) ) { if( mode == FuzzyMode.IGNORE_ALL ) { @@ -369,7 +371,7 @@ public final class AEItemStack extends AEStack implements IAEItemS { return true; } - else if( a.getItem() instanceof MetaTool ) + else if( Platform.isModLoaded( "gregtech" ) && a.getItem() instanceof MetaTool ) { return a.getItemDamage() == b.getItemDamage(); } @@ -380,7 +382,7 @@ public final class AEItemStack extends AEStack implements IAEItemS { return a.getItemDamage() > 1 == b.getItemDamage() > 1; } - else if( a.getItem() instanceof MetaTool ) + else if( Platform.isModLoaded( "gregtech" ) && a.getItem() instanceof MetaTool ) { return ( (MetaTool) a.getItem() ).getItemDamage( a ) == ( (MetaTool) b.getItem() ).getItemDamage( b ); } @@ -394,7 +396,7 @@ public final class AEItemStack extends AEStack implements IAEItemS percentDamageOfA = (float) a.getItemDamage() / a.getMaxDamage(); percentDamageOfB = (float) b.getItemDamage() / b.getMaxDamage(); } - else if( a.getItem() instanceof MetaTool ) + else if( Platform.isModLoaded( "gregtech" ) && a.getItem() instanceof MetaTool ) { percentDamageOfA = (float) ( (MetaTool) a.getItem() ).getItemDamage( a ) / ( (MetaTool) a.getItem() ).getMaxItemDamage( a ); percentDamageOfB = (float) ( (MetaTool) b.getItem() ).getItemDamage( b ) / ( (MetaTool) b.getItem() ).getMaxItemDamage( b ); diff --git a/src/main/java/appeng/util/item/FuzzyItemVariantList.java b/src/main/java/appeng/util/item/FuzzyItemVariantList.java index 38ace9466..ada6206bc 100644 --- a/src/main/java/appeng/util/item/FuzzyItemVariantList.java +++ b/src/main/java/appeng/util/item/FuzzyItemVariantList.java @@ -25,9 +25,7 @@ import java.util.Map; import appeng.util.Platform; import com.google.common.base.Preconditions; -import gregtech.api.items.toolitem.ToolMetaItem; import gregtech.common.items.MetaTool; -import it.unimi.dsi.fastutil.objects.ObjectCollection; import net.minecraft.item.ItemStack; import it.unimi.dsi.fastutil.objects.Object2ObjectAVLTreeMap; @@ -167,22 +165,23 @@ class FuzzyItemVariantList extends ItemVariantList */ static ItemDamageBound makeLowerBound( final ItemStack stack, final FuzzyMode fuzzy ) { - Preconditions.checkState( stack.getItem().isDamageable() || stack.getItem() instanceof MetaTool, "Item#isDamageable() has to be true" ); + Preconditions.checkState( stack.getItem().isDamageable() || ( Platform.isModLoaded( "gregtech" ) && stack.getItem() instanceof MetaTool ), "Item#isDamageable() has to be true" ); int damage; + int maxDamage; + if( Platform.isModLoaded( "gregtech" ) && stack.getItem() instanceof MetaTool ) + { + maxDamage = ( (MetaTool) stack.getItem() ).getMaxItemDamage( stack ); + damage = ( (MetaTool) stack.getItem() ).getItemDamage( stack ); + } + else + { + maxDamage = stack.getMaxDamage(); + damage = stack.getItemDamage(); + } + if( fuzzy == FuzzyMode.IGNORE_ALL ) { - int maxDamage; - if( stack.getItem() instanceof MetaTool ) - { - maxDamage = ( (MetaTool) stack.getItem() ).getMaxItemDamage( stack ); - damage = ( (MetaTool) stack.getItem() ).getItemDamage( stack ); - } - else - { - maxDamage = stack.getMaxDamage(); - damage = stack.getItemDamage(); - } if( maxDamage != 0 ) { damage = maxDamage; @@ -190,8 +189,8 @@ class FuzzyItemVariantList extends ItemVariantList } else { - final int breakpoint = fuzzy.calculateBreakPoint( stack.getItem().isDamageable() ? stack.getMaxDamage() : ( (MetaTool) stack.getItem() ).getMaxItemDamage( stack ) ); - damage = stack.getItem().isDamageable() ? stack.getItemDamage() : ( (MetaTool) stack.getItem() ).getItemDamage( stack ) <= breakpoint ? breakpoint : stack.getItem().isDamageable() ? stack.getMaxDamage() : ( (MetaTool) stack.getItem() ).getMaxItemDamage( stack ); + final int breakpoint = fuzzy.calculateBreakPoint( maxDamage ); + damage = damage <= breakpoint ? breakpoint : maxDamage; } return new ItemDamageBound( damage ); @@ -203,7 +202,7 @@ class FuzzyItemVariantList extends ItemVariantList */ static ItemDamageBound makeUpperBound( final ItemStack stack, final FuzzyMode fuzzy ) { - Preconditions.checkState( stack.getItem().isDamageable() || stack.getItem() instanceof MetaTool, "Item#isDamageable() has to be true" ); + Preconditions.checkState( stack.getItem().isDamageable() || ( Platform.isModLoaded( "gregtech" ) && stack.getItem() instanceof MetaTool ), "Item#isDamageable() has to be true" ); int damage; if( fuzzy == FuzzyMode.IGNORE_ALL ) @@ -212,8 +211,20 @@ class FuzzyItemVariantList extends ItemVariantList } else { - final int breakpoint = fuzzy.calculateBreakPoint( stack.getItem().isDamageable() ? stack.getMaxDamage() : ( (MetaTool) stack.getItem() ).getMaxItemDamage( stack ) ); - damage = stack.getItem().isDamageable() ? stack.getItemDamage() : ( (MetaTool) stack.getItem() ).getItemDamage( stack ) <= breakpoint ? MIN_DAMAGE_VALUE : breakpoint; + int maxDamage; + if( Platform.isModLoaded( "gregtech" ) && stack.getItem() instanceof MetaTool ) + { + maxDamage = ( (MetaTool) stack.getItem() ).getMaxItemDamage( stack ); + damage = ( (MetaTool) stack.getItem() ).getItemDamage( stack ); + } + else + { + maxDamage = stack.getMaxDamage(); + damage = stack.getItemDamage(); + } + + final int breakpoint = fuzzy.calculateBreakPoint( maxDamage ); + damage = damage <= breakpoint ? MIN_DAMAGE_VALUE : breakpoint; } return new ItemDamageBound( damage ); diff --git a/src/main/java/appeng/util/item/ItemList.java b/src/main/java/appeng/util/item/ItemList.java index ca1bb6da8..044dcbbee 100644 --- a/src/main/java/appeng/util/item/ItemList.java +++ b/src/main/java/appeng/util/item/ItemList.java @@ -175,7 +175,7 @@ public final class ItemList implements IItemList private ItemVariantList makeRecordMap( Item item ) { - if( item.isDamageable() || item instanceof MetaTool ) + if( item.isDamageable() || ( Platform.isModLoaded( "gregtech" ) && item instanceof MetaTool ) ) { return new FuzzyItemVariantList(); }