diff --git a/items/misc/ItemEncodedPattern.java b/items/misc/ItemEncodedPattern.java index f1a29a632..e560fe9a2 100644 --- a/items/misc/ItemEncodedPattern.java +++ b/items/misc/ItemEncodedPattern.java @@ -2,6 +2,7 @@ package appeng.items.misc; import java.util.EnumSet; import java.util.List; +import java.util.WeakHashMap; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; @@ -108,17 +109,25 @@ public class ItemEncodedPattern extends AEBaseItem implements ICraftingPatternIt } } + // rather simple client side cacheing. + static WeakHashMap simpleCache = new WeakHashMap(); + public ItemStack getOutput(ItemStack item) { + ICraftingPatternDetails details = simpleCache.get( item ); + if ( details != null ) + return details.getCondencedOutputs()[0].getItemStack(); + World w = CommonHelper.proxy.getWorld(); if ( w == null ) return null; - ICraftingPatternDetails details = getPatternForItem( item, w ); + details = getPatternForItem( item, w ); if ( details == null ) return null; + simpleCache.put( item, details ); return details.getCondencedOutputs()[0].getItemStack(); }