From be0120b50727284a7dc0c4d26534716678542c55 Mon Sep 17 00:00:00 2001 From: Jordan Byrne Date: Fri, 23 Feb 2018 15:05:11 +1000 Subject: $ Fixed weird loop lag from Itemutils.getItemStackOfAmountFromOreDict(). $ Fixed ASM circular loading issue. --- .../gtPlusPlus/core/util/minecraft/ItemUtils.java | 38 +++++++++++++--------- 1 file changed, 22 insertions(+), 16 deletions(-) (limited to 'src/Java/gtPlusPlus/core/util/minecraft') diff --git a/src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java index 62cb3f147e..627400f401 100644 --- a/src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java +++ b/src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java @@ -263,25 +263,31 @@ public class ItemUtils { } if (oredictName.toLowerCase().contains("vanadiumsteel")){ mTemp = oredictName.replace("VanadiumSteel", "StainlessSteel"); - } - - //Use Cache - if (mDustCache.containsKey(oredictName)) { - return getSimpleStack(mDustCache.get(oredictName), amount); - } - if (mOreDictCache.containsKey(mTemp)) { + } + //Use Cache + if (mOreDictCache.containsKey(mTemp) && mOreDictCache.get(mTemp) != null) { + Logger.INFO("[ODC] Returning mOreDictCache value."); return getCachedValue(mTemp, amount); } - - final ArrayList oreDictList = OreDictionary.getOres(mTemp); - if (!oreDictList.isEmpty()){ - final ItemStack returnValue = oreDictList.get(0).copy(); - returnValue.stackSize = amount; - setCachedValue(mTemp, returnValue); - return returnValue; + else if (mDustCache.containsKey(oredictName) && mDustCache.get(mTemp) != null) { + Logger.INFO("[ODC] Returning mDustCache value."); + return getSimpleStack(mDustCache.get(oredictName), amount); + } + else { + Logger.INFO("[ODC] Setting mOreDictCache value."); + final ArrayList oreDictList = OreDictionary.getOres(mTemp); + if (!oreDictList.isEmpty()){ + final ItemStack returnValue = oreDictList.get(0).copy(); + returnValue.stackSize = amount; + setCachedValue(mTemp, returnValue); + Logger.INFO("[ODC] Setting and Returning mOreDictCache value."); + return returnValue; + } + setCachedValue(oredictName, getSimpleStack(ModItems.AAA_Broken)); + Logger.INFO("[ODC] Returning AAA_Broken."); + return getSimpleStack(ModItems.AAA_Broken, amount); } - setCachedValue(oredictName, getSimpleStack(ModItems.AAA_Broken)); - return getSimpleStack(ModItems.AAA_Broken, amount); + } private static Map mOreDictCache = new HashMap(); -- cgit