From 159f27644d252ed7f7215a26d4db9706174bead6 Mon Sep 17 00:00:00 2001 From: miozune Date: Mon, 5 Jun 2023 16:33:59 +0900 Subject: Fix fluid registry related bugs (#2057) --- src/main/java/gregtech/api/util/GT_Recipe.java | 1 - src/main/java/gregtech/api/util/GT_Utility.java | 48 +++++++++++-------------- 2 files changed, 21 insertions(+), 28 deletions(-) (limited to 'src/main/java/gregtech/api/util') diff --git a/src/main/java/gregtech/api/util/GT_Recipe.java b/src/main/java/gregtech/api/util/GT_Recipe.java index 4e8db694af..c300a3739d 100644 --- a/src/main/java/gregtech/api/util/GT_Recipe.java +++ b/src/main/java/gregtech/api/util/GT_Recipe.java @@ -3246,7 +3246,6 @@ public class GT_Recipe implements Comparable { mUsualOutputCount = aUsualOutputCount; mMinimalInputItems = aMinimalInputItems; mMinimalInputFluids = aMinimalInputFluids; - GregTech_API.sFluidMappings.add(mRecipeFluidMap); GregTech_API.sItemStackMappings.add(mRecipeItemMap); GT_LanguageManager.addStringLocalization(mUnlocalizedName = aUnlocalizedName, aLocalName); mUniqueIdentifier = String.format( diff --git a/src/main/java/gregtech/api/util/GT_Utility.java b/src/main/java/gregtech/api/util/GT_Utility.java index dee22c9283..39ee06031d 100644 --- a/src/main/java/gregtech/api/util/GT_Utility.java +++ b/src/main/java/gregtech/api/util/GT_Utility.java @@ -182,11 +182,8 @@ public class GT_Utility { private static final List sFluidContainerList = new ArrayList<>(); private static final Map sFilledContainerToData = new /* Concurrent */ HashMap<>(); - private static final Map> sEmptyContainerToFluidToData = new /* - * Concurrent - */ HashMap<>(); - private static final Map> sFluidToContainers = new HashMap<>(); - private static final Map sFluidUnlocalizedNameToFluid = new HashMap<>(); + private static final Map> sEmptyContainerToFluidToData = new HashMap<>(); + private static final Map> sFluidToContainers = 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<>(); @@ -1770,56 +1767,51 @@ public class GT_Utility { sFilledContainerToData.clear(); sEmptyContainerToFluidToData.clear(); sFluidToContainers.clear(); - sFluidUnlocalizedNameToFluid.clear(); for (FluidContainerData tData : sFluidContainerList) { + String fluidName = tData.fluid.getFluid() + .getName(); sFilledContainerToData.put(new GT_ItemStack(tData.filledContainer), tData); - Map tFluidToContainer = sEmptyContainerToFluidToData + Map tFluidToContainer = sEmptyContainerToFluidToData .get(new GT_ItemStack(tData.emptyContainer)); - List tContainers = sFluidToContainers.get(tData.fluid.getFluid()); + List tContainers = sFluidToContainers.get(fluidName); if (tFluidToContainer == null) { sEmptyContainerToFluidToData .put(new GT_ItemStack(tData.emptyContainer), tFluidToContainer = new /* Concurrent */ HashMap<>()); - GregTech_API.sFluidMappings.add(tFluidToContainer); } - tFluidToContainer.put(tData.fluid.getFluid(), tData); + tFluidToContainer.put(fluidName, tData); if (tContainers == null) { tContainers = new ArrayList<>(); tContainers.add(tData.filledContainer); - sFluidToContainers.put(tData.fluid.getFluid(), tContainers); + sFluidToContainers.put(fluidName, tContainers); } else tContainers.add(tData.filledContainer); } - for (Fluid tFluid : FluidRegistry.getRegisteredFluids() - .values()) { - sFluidUnlocalizedNameToFluid.put(tFluid.getUnlocalizedName(), tFluid); - } - } - - public static Fluid getFluidFromUnlocalizedName(String aUnlocalizedName) { - return sFluidUnlocalizedNameToFluid.get(aUnlocalizedName); } public static void addFluidContainerData(FluidContainerData aData) { + String fluidName = aData.fluid.getFluid() + .getName(); sFluidContainerList.add(aData); sFilledContainerToData.put(new GT_ItemStack(aData.filledContainer), aData); - Map tFluidToContainer = sEmptyContainerToFluidToData + Map tFluidToContainer = sEmptyContainerToFluidToData .get(new GT_ItemStack(aData.emptyContainer)); - List tContainers = sFluidToContainers.get(aData.fluid.getFluid()); + List tContainers = sFluidToContainers.get(fluidName); if (tFluidToContainer == null) { sEmptyContainerToFluidToData .put(new GT_ItemStack(aData.emptyContainer), tFluidToContainer = new /* Concurrent */ HashMap<>()); - GregTech_API.sFluidMappings.add(tFluidToContainer); } - tFluidToContainer.put(aData.fluid.getFluid(), aData); + tFluidToContainer.put(fluidName, aData); if (tContainers == null) { tContainers = new ArrayList<>(); tContainers.add(aData.filledContainer); - sFluidToContainers.put(aData.fluid.getFluid(), tContainers); + sFluidToContainers.put(fluidName, tContainers); } else tContainers.add(aData.filledContainer); } public static List getContainersFromFluid(FluidStack tFluidStack) { if (tFluidStack != null) { - List tContainers = sFluidToContainers.get(tFluidStack.getFluid()); + List tContainers = sFluidToContainers.get( + tFluidStack.getFluid() + .getName()); if (tContainers == null) return new ArrayList<>(); return tContainers; } @@ -1844,9 +1836,11 @@ public class GT_Utility { else((IFluidContainerItem) aStack.getItem()).fill(aStack = copyAmount(1, aStack), aFluid, true); return aStack; } - Map tFluidToContainer = sEmptyContainerToFluidToData.get(new GT_ItemStack(aStack)); + Map tFluidToContainer = sEmptyContainerToFluidToData.get(new GT_ItemStack(aStack)); if (tFluidToContainer == null) return null; - FluidContainerData tData = tFluidToContainer.get(aFluid.getFluid()); + FluidContainerData tData = tFluidToContainer.get( + aFluid.getFluid() + .getName()); if (tData == null || tData.fluid.amount > aFluid.amount) return null; if (aRemoveFluidDirectly) aFluid.amount -= tData.fluid.amount; return copyAmount(1, tData.filledContainer); -- cgit