From 19b26af78d6405ecbb684a78cd337ed8dde87b0b Mon Sep 17 00:00:00 2001 From: Yang Xizhi <60341015+GlodBlock@users.noreply.github.com> Date: Sat, 28 May 2022 22:53:07 +0800 Subject: optimize `isOre()` (#1069) --- src/main/java/gregtech/api/util/GT_Utility.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/main/java/gregtech/api') diff --git a/src/main/java/gregtech/api/util/GT_Utility.java b/src/main/java/gregtech/api/util/GT_Utility.java index a54039def9..4dfc407572 100644 --- a/src/main/java/gregtech/api/util/GT_Utility.java +++ b/src/main/java/gregtech/api/util/GT_Utility.java @@ -157,6 +157,7 @@ public class GT_Utility { private static final Map sFluidUnlocalizedNameToFluid = new HashMap<>(); /** Must use {@code Supplier} here because the ore prefixes have not yet been registered at class load time. */ private static final Map> sOreToCobble = new HashMap<>(); + private final static Map sOreTable = new HashMap<>(); public static volatile int VERSION = 509; public static boolean TE_CHECK = false, BC_CHECK = false, CHECK_ALL = true, RF_CHECK = false; public static Map sPlayedSoundMap = new /*Concurrent*/HashMap<>(); @@ -2961,10 +2962,17 @@ public class GT_Utility { } public static boolean isOre(ItemStack aStack) { + int tItem = GT_Utility.stackToInt(aStack); + if (sOreTable.containsKey(tItem)) { + return sOreTable.get(tItem); + } for (int id: OreDictionary.getOreIDs(aStack)) { - if (OreDictionary.getOreName(id).startsWith("ore")) + if (OreDictionary.getOreName(id).startsWith("ore")) { + sOreTable.put(tItem, true); return true; + } } + sOreTable.put(tItem, false); return false; } -- cgit