diff options
author | miozune <miozune@gmail.com> | 2023-06-05 16:33:59 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-05 09:33:59 +0200 |
commit | 159f27644d252ed7f7215a26d4db9706174bead6 (patch) | |
tree | d67a09ef36b6837d78e69eb21cb64ef6a74f0cb8 /src/main | |
parent | 04c229a76d91f822a9c534341bcddbc2edf8b43e (diff) | |
download | GT5-Unofficial-159f27644d252ed7f7215a26d4db9706174bead6.tar.gz GT5-Unofficial-159f27644d252ed7f7215a26d4db9706174bead6.tar.bz2 GT5-Unofficial-159f27644d252ed7f7215a26d4db9706174bead6.zip |
Fix fluid registry related bugs (#2057)
Diffstat (limited to 'src/main')
6 files changed, 24 insertions, 37 deletions
diff --git a/src/main/java/gregtech/api/GregTech_API.java b/src/main/java/gregtech/api/GregTech_API.java index 94eaefd67e..14f448adb3 100644 --- a/src/main/java/gregtech/api/GregTech_API.java +++ b/src/main/java/gregtech/api/GregTech_API.java @@ -33,7 +33,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ChunkCoordinates; import net.minecraft.world.World; -import net.minecraftforge.fluids.Fluid; import com.google.common.collect.Multimap; import com.google.common.collect.Multimaps; @@ -109,7 +108,6 @@ public class GregTech_API { */ public static final Collection<Map<? extends GT_ItemStack, ?>> sItemStackMappings = new ArrayList<>(); - public static final Collection<Map<Fluid, ?>> sFluidMappings = new ArrayList<>(); /** * The MetaTileEntity-ID-List-Length */ diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Output.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Output.java index 932447edbc..8d65c429f7 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Output.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Output.java @@ -13,7 +13,6 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.StatCollector; import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidContainerRegistry; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; @@ -162,10 +161,6 @@ public class GT_MetaTileEntity_Hatch_Output extends GT_MetaTileEntity_Hatch mMode = aNBT.getByte("mMode"); lockedFluidName = aNBT.getString("lockedFluidName"); lockedFluidName = lockedFluidName.length() == 0 ? null : lockedFluidName; - if (GT_Utility.getFluidFromUnlocalizedName(lockedFluidName) != null) { - lockedFluidName = GT_Utility.getFluidFromUnlocalizedName(lockedFluidName) - .getName(); - } } @Override diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java index a6944449a5..7b19323b89 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java @@ -70,6 +70,7 @@ import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.api.util.GT_Single_Recipe_Check; import gregtech.api.util.GT_Utility; import gregtech.api.util.GT_Waila; +import gregtech.api.util.OutputHatchWrapper; import gregtech.api.util.VoidProtectionHelper; import gregtech.client.GT_SoundLoop; import gregtech.common.GT_Pollution; 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<GT_Recipe> { 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<FluidContainerData> sFluidContainerList = new ArrayList<>(); private static final Map<GT_ItemStack, FluidContainerData> sFilledContainerToData = new /* Concurrent */ HashMap<>(); - private static final Map<GT_ItemStack, Map<Fluid, FluidContainerData>> sEmptyContainerToFluidToData = new /* - * Concurrent - */ HashMap<>(); - private static final Map<Fluid, List<ItemStack>> sFluidToContainers = new HashMap<>(); - private static final Map<String, Fluid> sFluidUnlocalizedNameToFluid = new HashMap<>(); + private static final Map<GT_ItemStack, Map<String, FluidContainerData>> sEmptyContainerToFluidToData = new HashMap<>(); + private static final Map<String, List<ItemStack>> 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<OrePrefixes, Supplier<ItemStack>> 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<Fluid, FluidContainerData> tFluidToContainer = sEmptyContainerToFluidToData + Map<String, FluidContainerData> tFluidToContainer = sEmptyContainerToFluidToData .get(new GT_ItemStack(tData.emptyContainer)); - List<ItemStack> tContainers = sFluidToContainers.get(tData.fluid.getFluid()); + List<ItemStack> 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<Fluid, FluidContainerData> tFluidToContainer = sEmptyContainerToFluidToData + Map<String, FluidContainerData> tFluidToContainer = sEmptyContainerToFluidToData .get(new GT_ItemStack(aData.emptyContainer)); - List<ItemStack> tContainers = sFluidToContainers.get(aData.fluid.getFluid()); + List<ItemStack> 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<ItemStack> getContainersFromFluid(FluidStack tFluidStack) { if (tFluidStack != null) { - List<ItemStack> tContainers = sFluidToContainers.get(tFluidStack.getFluid()); + List<ItemStack> 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<Fluid, FluidContainerData> tFluidToContainer = sEmptyContainerToFluidToData.get(new GT_ItemStack(aStack)); + Map<String, FluidContainerData> 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); diff --git a/src/main/java/gregtech/common/fluid/GT_Fluid.java b/src/main/java/gregtech/common/fluid/GT_Fluid.java index 98210c0e62..efec34bc01 100644 --- a/src/main/java/gregtech/common/fluid/GT_Fluid.java +++ b/src/main/java/gregtech/common/fluid/GT_Fluid.java @@ -97,8 +97,6 @@ public class GT_Fluid extends Fluid implements IGT_Fluid, IGT_RegisteredFluid, R if (FluidRegistry.registerFluid(GT_Fluid.this)) { // Registered as a new Fluid registeredFluid = this; - // Schedules the gtFluid for the block icons loader run() tasks - GregTech_API.sGTBlockIconload.add(this); // Adds a server-side localized-name GT_LanguageManager.addStringLocalization(getUnlocalizedName(), localizedName); } else { @@ -109,6 +107,8 @@ public class GT_Fluid extends Fluid implements IGT_Fluid, IGT_RegisteredFluid, R registeredFluid.setTemperature(GT_Fluid.this.temperature); } } + // Schedules the fluid for the block icons loader run() tasks + GregTech_API.sGTBlockIconload.add(this); return this; } |