aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authormiozune <miozune@gmail.com>2023-06-05 16:33:59 +0900
committerGitHub <noreply@github.com>2023-06-05 09:33:59 +0200
commit159f27644d252ed7f7215a26d4db9706174bead6 (patch)
treed67a09ef36b6837d78e69eb21cb64ef6a74f0cb8 /src/main
parent04c229a76d91f822a9c534341bcddbc2edf8b43e (diff)
downloadGT5-Unofficial-159f27644d252ed7f7215a26d4db9706174bead6.tar.gz
GT5-Unofficial-159f27644d252ed7f7215a26d4db9706174bead6.tar.bz2
GT5-Unofficial-159f27644d252ed7f7215a26d4db9706174bead6.zip
Fix fluid registry related bugs (#2057)
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/gregtech/api/GregTech_API.java2
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Output.java5
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java1
-rw-r--r--src/main/java/gregtech/api/util/GT_Recipe.java1
-rw-r--r--src/main/java/gregtech/api/util/GT_Utility.java48
-rw-r--r--src/main/java/gregtech/common/fluid/GT_Fluid.java4
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;
}