aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech
diff options
context:
space:
mode:
authormiozune <miozune@gmail.com>2023-10-20 04:22:18 +0900
committerGitHub <noreply@github.com>2023-10-19 21:22:18 +0200
commitaa43d552b3e21114762caf9dbf71442a8382a487 (patch)
treee26e09f053c4be5f7ec94a19e4bc6505ceb624cf /src/main/java/gregtech
parent059e99f0fef97b8799e317097555c60030ced994 (diff)
downloadGT5-Unofficial-aa43d552b3e21114762caf9dbf71442a8382a487.tar.gz
GT5-Unofficial-aa43d552b3e21114762caf9dbf71442a8382a487.tar.bz2
GT5-Unofficial-aa43d552b3e21114762caf9dbf71442a8382a487.zip
Fix fluid canner recipes not using correct empty container (#2337)
* Fix fluid canner recipes not using correct empty container * Restore lava bucket fix * Remove now obsolete glass bottle handling + Javadoc
Diffstat (limited to 'src/main/java/gregtech')
-rw-r--r--src/main/java/gregtech/api/util/GT_Utility.java13
-rw-r--r--src/main/java/gregtech/common/GT_Proxy.java10
-rw-r--r--src/main/java/gregtech/loaders/postload/GT_PostLoad.java82
3 files changed, 29 insertions, 76 deletions
diff --git a/src/main/java/gregtech/api/util/GT_Utility.java b/src/main/java/gregtech/api/util/GT_Utility.java
index b61ec8336f..d72b3a3940 100644
--- a/src/main/java/gregtech/api/util/GT_Utility.java
+++ b/src/main/java/gregtech/api/util/GT_Utility.java
@@ -1849,13 +1849,6 @@ public class GT_Utility {
public static ItemStack fillFluidContainer(FluidStack aFluid, ItemStack aStack, boolean aRemoveFluidDirectly,
boolean aCheckIFluidContainerItems) {
if (isStackInvalid(aStack) || aFluid == null) return null;
- if (GT_ModHandler.isWater(aFluid) && ItemList.Bottle_Empty.isStackEqual(aStack)) {
- if (aFluid.amount >= 250) {
- if (aRemoveFluidDirectly) aFluid.amount -= 250;
- return new ItemStack(Items.potionitem, 1, 0);
- }
- return null;
- }
if (aCheckIFluidContainerItems && aStack.getItem() instanceof IFluidContainerItem
&& ((IFluidContainerItem) aStack.getItem()).getFluid(aStack) == null
&& ((IFluidContainerItem) aStack.getItem()).getCapacity(aStack) <= aFluid.amount) {
@@ -1962,8 +1955,10 @@ public class GT_Utility {
}
/**
- * Get general container item, not only fluid container but also non-consumable item.
- * {@link #getContainerForFilledItem} works better for fluid container.
+ * This is NOT meant for fluid manipulation! It's for getting item container, which is generally used for
+ * crafting recipes. While it also works for many of the fluid containers, some don't.
+ * <p>
+ * Use {@link #getContainerForFilledItem} for getting empty fluid container.
*/
public static ItemStack getContainerItem(ItemStack aStack, boolean aCheckIFluidContainerItems) {
if (isStackInvalid(aStack)) return null;
diff --git a/src/main/java/gregtech/common/GT_Proxy.java b/src/main/java/gregtech/common/GT_Proxy.java
index e8f1298b49..ffa6d617b8 100644
--- a/src/main/java/gregtech/common/GT_Proxy.java
+++ b/src/main/java/gregtech/common/GT_Proxy.java
@@ -823,7 +823,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler, IG
for (FluidContainerRegistry.FluidContainerData tData : FluidContainerRegistry
.getRegisteredFluidContainerData()) {
if ((tData.filledContainer.getItem() == Items.potionitem) && (tData.filledContainer.getItemDamage() == 0)) {
- tData.fluid.amount = 0;
+ tData.fluid.amount = 250;
break;
}
}
@@ -1220,7 +1220,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler, IG
for (FluidContainerRegistry.FluidContainerData tData : FluidContainerRegistry
.getRegisteredFluidContainerData()) {
if ((tData.filledContainer.getItem() == Items.potionitem) && (tData.filledContainer.getItemDamage() == 0)) {
- tData.fluid.amount = 0;
+ tData.fluid.amount = 250;
break;
}
}
@@ -1252,7 +1252,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler, IG
for (FluidContainerRegistry.FluidContainerData tData : FluidContainerRegistry
.getRegisteredFluidContainerData()) {
if ((tData.filledContainer.getItem() == Items.potionitem) && (tData.filledContainer.getItemDamage() == 0)) {
- tData.fluid.amount = 0;
+ tData.fluid.amount = 250;
break;
}
}
@@ -1345,7 +1345,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler, IG
for (FluidContainerRegistry.FluidContainerData tData : FluidContainerRegistry
.getRegisteredFluidContainerData()) {
if ((tData.filledContainer.getItem() == Items.potionitem) && (tData.filledContainer.getItemDamage() == 0)) {
- tData.fluid.amount = 0;
+ tData.fluid.amount = 250;
break;
}
}
@@ -2146,7 +2146,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler, IG
public void onFluidContainerRegistration(FluidContainerRegistry.FluidContainerRegisterEvent aFluidEvent) {
if ((aFluidEvent.data.filledContainer.getItem() == Items.potionitem)
&& (aFluidEvent.data.filledContainer.getItemDamage() == 0)) {
- aFluidEvent.data.fluid.amount = 0;
+ aFluidEvent.data.fluid.amount = 250;
}
GT_OreDictUnificator.addToBlacklist(aFluidEvent.data.emptyContainer);
GT_OreDictUnificator.addToBlacklist(aFluidEvent.data.filledContainer);
diff --git a/src/main/java/gregtech/loaders/postload/GT_PostLoad.java b/src/main/java/gregtech/loaders/postload/GT_PostLoad.java
index 3e2a074148..5bf025cf20 100644
--- a/src/main/java/gregtech/loaders/postload/GT_PostLoad.java
+++ b/src/main/java/gregtech/loaders/postload/GT_PostLoad.java
@@ -5,7 +5,6 @@ import static gregtech.api.enums.Mods.Forestry;
import static gregtech.api.enums.Mods.GalacticraftCore;
import static gregtech.api.enums.Mods.GalacticraftMars;
import static gregtech.api.enums.Mods.GalaxySpace;
-import static gregtech.api.enums.Mods.IguanaTweaksTinkerConstruct;
import static gregtech.api.enums.Mods.Thaumcraft;
import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes;
import static gregtech.api.util.GT_RecipeBuilder.TICKS;
@@ -45,6 +44,7 @@ import gregtech.api.util.GT_Log;
import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_OreDictUnificator;
import gregtech.api.util.GT_Recipe;
+import gregtech.api.util.GT_RecipeBuilder;
import gregtech.api.util.GT_RecipeRegistrator;
import gregtech.api.util.GT_Utility;
import gregtech.common.items.GT_MetaGenerated_Tool_01;
@@ -114,69 +114,27 @@ public class GT_PostLoad {
}
public static void registerFluidCannerRecipes() {
- ItemStack iSData0 = new ItemStack(Items.potionitem, 1, 0);
- ItemStack iLData0 = ItemList.Bottle_Empty.get(1L);
-
for (FluidContainerRegistry.FluidContainerData tData : FluidContainerRegistry
.getRegisteredFluidContainerData()) {
- if ((tData.filledContainer.getItem() == Items.potionitem) && (tData.filledContainer.getItemDamage() == 0)) {
- GT_Values.RA.stdBuilder()
- .itemInputs(iLData0)
- .itemOutputs(iSData0)
- .fluidInputs(Materials.Water.getFluid(250L))
- .duration(4 * TICKS)
- .eut(1)
- .addTo(sFluidCannerRecipes);
- GT_Values.RA.stdBuilder()
- .itemInputs(iSData0)
- .itemOutputs(iLData0)
- .duration(4 * TICKS)
- .eut(1)
- .addTo(sFluidCannerRecipes);
- } else if (IguanaTweaksTinkerConstruct.isModLoaded() && tData.emptyContainer.isItemEqual(
- Objects.requireNonNull(
- GT_ModHandler.getModItem(IguanaTweaksTinkerConstruct.ID, "clayBucketFired", 1L, 0)))) {
- GT_Values.RA.stdBuilder()
- .itemInputs(
- GT_ModHandler.getModItem(IguanaTweaksTinkerConstruct.ID, "clayBucketFired", 1L, 0))
- .itemOutputs(tData.filledContainer)
- .fluidInputs(tData.fluid)
- .duration((tData.fluid.amount / 62) * TICKS)
- .eut(1)
- .addTo(sFluidCannerRecipes);
- GT_Values.RA.stdBuilder()
- .itemInputs(tData.filledContainer)
- .itemOutputs(
- GT_ModHandler.getModItem(IguanaTweaksTinkerConstruct.ID, "clayBucketFired", 1L, 0))
- .fluidOutputs(tData.fluid)
- .duration((tData.fluid.amount / 62) * TICKS)
- .eut(1)
- .addTo(sFluidCannerRecipes);
- } else {
- GT_Values.RA.stdBuilder()
- .itemInputs(tData.emptyContainer)
- .itemOutputs(tData.filledContainer)
- .fluidInputs(tData.fluid)
- .duration((tData.fluid.amount / 62) * TICKS)
- .eut(1)
- .addTo(sFluidCannerRecipes);
- if (GT_Utility.getContainerItem(tData.filledContainer, true) == null) {
- GT_Values.RA.stdBuilder()
- .itemInputs(tData.filledContainer)
- .fluidOutputs(tData.fluid)
- .duration((tData.fluid.amount / 62) * TICKS)
- .eut(1)
- .addTo(sFluidCannerRecipes);
- } else {
- GT_Values.RA.stdBuilder()
- .itemInputs(tData.filledContainer)
- .itemOutputs(GT_Utility.getContainerItem(tData.filledContainer, true))
- .fluidOutputs(tData.fluid)
- .duration((tData.fluid.amount / 62) * TICKS)
- .eut(1)
- .addTo(sFluidCannerRecipes);
- }
- }
+ // lava clay bucket is registered with empty container with 0 stack size
+ ItemStack emptyContainer = tData.emptyContainer.copy();
+ emptyContainer.stackSize = 1;
+ GT_Values.RA.stdBuilder()
+ .itemInputs(emptyContainer)
+ .itemOutputs(tData.filledContainer)
+ .fluidInputs(tData.fluid)
+ .duration((tData.fluid.amount / 62) * TICKS)
+ .eut(1)
+ .addTo(sFluidCannerRecipes);
+ GT_RecipeBuilder builder = GT_Values.RA.stdBuilder()
+ .itemInputs(tData.filledContainer);
+ if (tData.emptyContainer.stackSize > 0) {
+ builder.itemOutputs(tData.emptyContainer);
+ }
+ builder.fluidOutputs(tData.fluid)
+ .duration((tData.fluid.amount / 62) * TICKS)
+ .eut(1)
+ .addTo(sFluidCannerRecipes);
}
}