From 3b6bc659ee5a38644ce0c3e55dbc3363e3a7100e Mon Sep 17 00:00:00 2001 From: Jason Mitchell Date: Sat, 2 Jan 2021 20:50:56 -0800 Subject: 1) Remove mAddGTRecipesToIC2Machines (stolen from @Glease) 2) Batch (most) recipe map removals and additions (significant speedup) 3) Modernize old java constructs --> java8 (in the files touched) --- .../gregtech/api/util/GT_OreDictUnificator.java | 28 ++++++++++++---------- 1 file changed, 16 insertions(+), 12 deletions(-) (limited to 'src/main/java/gregtech/api/util/GT_OreDictUnificator.java') diff --git a/src/main/java/gregtech/api/util/GT_OreDictUnificator.java b/src/main/java/gregtech/api/util/GT_OreDictUnificator.java index 188af9cfaa..f3eb77bc40 100644 --- a/src/main/java/gregtech/api/util/GT_OreDictUnificator.java +++ b/src/main/java/gregtech/api/util/GT_OreDictUnificator.java @@ -31,10 +31,10 @@ import static gregtech.api.enums.GT_Values.*; * P.S. It is intended to be named "Unificator" and not "Unifier", because that sounds more awesome. */ public class GT_OreDictUnificator { - private static final /*ConcurrentHash*/Map sName2StackMap = new /*ConcurrentHash*/HashMap(); - private static final /*ConcurrentHash*/Map sItemStack2DataMap = new /*ConcurrentHash*/HashMap(); - private static final /*ConcurrentHash*/Map> sUnificationTable = new /*ConcurrentHash*/HashMap>(); - private static final GT_HashSet sNoUnificationList = new GT_HashSet(); + private static final Map sName2StackMap = new HashMap<>(); + private static final Map sItemStack2DataMap = new HashMap<>(); + private static final Map> sUnificationTable = new HashMap<>(); + private static final GT_HashSet sNoUnificationList = new GT_HashSet<>(); public static volatile int VERSION = 509; private static int isRegisteringOre = 0, isAddingOre = 0; private static boolean mRunThroughTheList = true; @@ -156,6 +156,12 @@ public class GT_OreDictUnificator { return GT_Utility.copyAmount(aStack.stackSize, rStack); } + /** Doesn't copy the returned stack or set quantity. Be careful and do not mutate it; + * intended only to optimize comparisons */ + public static ItemStack get_nocopy(ItemStack aStack) { + return get_nocopy(true, aStack); + } + /** Doesn't copy the returned stack or set quantity. Be careful and do not mutate it; * intended only to optimize comparisons */ static ItemStack get_nocopy(boolean aUseBlackList, ItemStack aStack) { @@ -217,10 +223,8 @@ public class GT_OreDictUnificator { ItemStack tStack1 = get(false, tStack0); if (!GT_Utility.areStacksEqual(tStack0, tStack1)) { GT_ItemStack tGTStack1 = new GT_ItemStack(tStack1); - List list = sUnificationTable.get(tGTStack1); - if (list == null) - sUnificationTable.put(tGTStack1, list = new ArrayList()); - if (!list.contains(tStack0)) + List list = sUnificationTable.computeIfAbsent(tGTStack1, k -> new ArrayList<>()); + if (!list.contains(tStack0)) list.add(tStack0); } } @@ -233,7 +237,7 @@ public class GT_OreDictUnificator { aStacks = (ItemStack[]) obj; else if (obj instanceof List) aStacks = (ItemStack[]) ((List)obj).toArray(new ItemStack[0]); - List rList = new ArrayList(); + List rList = new ArrayList<>(); for (ItemStack aStack : aStacks) { rList.add(aStack); List tList = sUnificationTable.get(new GT_ItemStack(aStack)); @@ -340,8 +344,8 @@ public class GT_OreDictUnificator { ArrayList tList = getOres(tName); - for (int i = 0; i < tList.size(); i++) - if (GT_Utility.areStacksEqual(tList.get(i), aStack, true)) + for (ItemStack itemStack : tList) + if (GT_Utility.areStacksEqual(itemStack, aStack, true)) return false; isRegisteringOre++; @@ -463,7 +467,7 @@ public class GT_OreDictUnificator { */ public static ArrayList getOres(Object aOreName) { String aName = aOreName == null ? E : aOreName.toString(); - ArrayList rList = new ArrayList(); + ArrayList rList = new ArrayList<>(); if (GT_Utility.isStringValid(aName)) rList.addAll(OreDictionary.getOres(aName)); return rList; } -- cgit