diff options
author | Yang Xizhi <60341015+GlodBlock@users.noreply.github.com> | 2022-05-28 22:53:07 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-28 16:53:07 +0200 |
commit | 19b26af78d6405ecbb684a78cd337ed8dde87b0b (patch) | |
tree | c6f43f7b39846d50898b732847c889a648f1faf8 /src/main/java | |
parent | 732b9956abdd0f9a526887e9431c9a72801cb82f (diff) | |
download | GT5-Unofficial-19b26af78d6405ecbb684a78cd337ed8dde87b0b.tar.gz GT5-Unofficial-19b26af78d6405ecbb684a78cd337ed8dde87b0b.tar.bz2 GT5-Unofficial-19b26af78d6405ecbb684a78cd337ed8dde87b0b.zip |
optimize `isOre()` (#1069)
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/gregtech/api/util/GT_Utility.java | 10 |
1 files changed, 9 insertions, 1 deletions
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<String, Fluid> 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<OrePrefixes, Supplier<ItemStack>> sOreToCobble = new HashMap<>(); + private final static Map<Integer, Boolean> 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<GT_PlayedSound, Integer> 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; } |