Skip to content
Merged
8 changes: 6 additions & 2 deletions dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -39,14 +39,18 @@ dependencies {

implementation("com.github.GTNewHorizons:NotEnoughItems:2.8.68-GTNH:dev")
compileOnly("com.github.GTNewHorizons:Hodgepodge:2.7.60:dev") { transitive = false }
compileOnly("com.github.GTNewHorizons:GT5-Unofficial:5.09.52.283:dev") { transitive = false }

devOnlyNonPublishable("com.github.GTNewHorizons:GT5-Unofficial:5.09.52.283:dev") {
exclude group: 'com.github.GTNewHorizons', module: 'ModularUI2'
}

compileOnly("com.github.GTNewHorizons:ModularUI:1.3.1:dev") { transitive = false }
implementation("com.github.GTNewHorizons:Baubles-Expanded:2.2.6-GTNH:dev") { transitive = false }
compileOnly("thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev")
//compileOnly rfg.deobf("curse.maven:neverenoughanimation-1062347:6552319")
compileOnly files("libs/neverenoughanimations-v1.0.6-1-7-10.8+91c551807b-dirty-dev.jar")
compileOnly("org.jetbrains:annotations:24.0.1")

//runtimeOnlyNonPublishable("com.github.GTNewHorizons:NotEnoughItems:2.8.68-GTNH:dev")
// For Thaumcraft runtime
//runtimeOnlyNonPublishable("com.github.GTNewHorizons:Baubles:1.0.4:dev")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,10 @@
import net.minecraftforge.fluids.IFluidTank;

import codechicken.nei.recipe.StackInfo;
import gregtech.api.util.GTUtility;

public class FluidInteractions {

/**
* Gets fluid actually stored in item. Used for transferring fluid.
*/
public static FluidStack getFluidForRealItem(ItemStack itemStack) {
public static FluidStack getFluidForItem(ItemStack itemStack) {
FluidStack fluidStack = null;
if (itemStack.getItem() instanceof IFluidContainerItem container) {
fluidStack = container.getFluid(itemStack);
Expand All @@ -27,82 +23,44 @@ public static FluidStack getFluidForRealItem(ItemStack itemStack) {
if (fluidStack == null && ModularUI.Mods.NEI.isLoaded()) {
fluidStack = StackInfo.getFluid(itemStack);
}
if (ModularUI.Mods.GT5U.isLoaded() && fluidStack == null) {
fluidStack = GTUtility.getFluidForFilledItem(itemStack, true);
}
return fluidStack;
}

/**
* Gets fluid for use in phantom slot.
*/
public static FluidStack getFluidForPhantomItem(ItemStack itemStack) {
FluidStack fluidStack = null;
public static ItemStack getFullFluidContainer(ItemStack itemStack, FluidStack fluidToFill) {
if (itemStack.getItem() instanceof IFluidContainerItem container) {
fluidStack = container.getFluid(itemStack.copy());
}
if (fluidStack == null) {
fluidStack = FluidContainerRegistry.getFluidForFilledItem(itemStack.copy());
}
if (fluidStack == null && ModularUI.Mods.NEI.isLoaded()) {
fluidStack = StackInfo.getFluid(itemStack.copy());
}
if (ModularUI.Mods.GT5U.isLoaded() && fluidStack == null) {
fluidStack = GTUtility.getFluidForFilledItem(itemStack, true);
}
return fluidStack;
}
FluidStack containerFluid = container.getFluid(itemStack);
int containerFluidAmount = containerFluid != null ? containerFluid.amount : 0;

public static ItemStack fillFluidContainer(FluidStack fluidStack, ItemStack itemStack) {
ItemStack filledContainer = fillFluidContainerWithoutIFluidContainerItem(fluidStack, itemStack);
if (filledContainer == null) {
filledContainer = fillFluidContainerWithIFluidContainerItem(fluidStack, itemStack);
}
if (filledContainer == null) {
filledContainer = FluidContainerRegistry.fillFluidContainer(fluidStack, itemStack);
if (filledContainer == null) return itemStack; // give up and return original clicked stack
FluidStack newFluid = getFluidForRealItem(filledContainer);
fluidStack.amount -= newFluid.amount;
}
return filledContainer;
}
ItemStack copyStack = itemStack.copy();
int filled = container.fill(copyStack, fluidToFill, true);

public static ItemStack fillFluidContainerWithoutIFluidContainerItem(FluidStack fluidStack, ItemStack itemStack) {
if (ModularUI.Mods.GT5U.isLoaded()) {
return GTUtility.fillFluidContainer(fluidStack, itemStack, true, false);
if (containerFluidAmount + filled == container.getCapacity(copyStack)) {
return copyStack;
}

return null;
}
return null;

return FluidContainerRegistry.fillFluidContainer(fluidToFill, itemStack);
}

public static ItemStack fillFluidContainerWithIFluidContainerItem(FluidStack fluidStack, ItemStack itemStack) {
if (itemStack.getItem() instanceof IFluidContainerItem itemContainer) {
int tFilledAmount = itemContainer.fill(itemStack, fluidStack, true);
if (tFilledAmount > 0) {
fluidStack.amount -= tFilledAmount;
return itemStack;
public static ItemStack getEmptyFluidContainer(ItemStack itemStack) {
if (itemStack.getItem() instanceof IFluidContainerItem container) {
FluidStack fluidStack = container.getFluid(itemStack);
if (fluidStack == null) {
return null;
}
}
return null;
}

public static ItemStack getContainerForFilledItem(ItemStack itemStack) {
ItemStack stack = getContainerForFilledItemWithoutIFluidContainerItem(itemStack);
if (stack == null && itemStack.getItem() instanceof IFluidContainerItem container) {
stack = itemStack.copy();
if (container.drain(stack, Integer.MAX_VALUE, true) == null)
ItemStack stack = itemStack.copy();
FluidStack drained = container.drain(stack, Integer.MAX_VALUE, true);

if (drained == null || drained.amount < fluidStack.amount) {
return null;
}
return stack;
}
if (stack == null) {
stack = FluidContainerRegistry.drainFluidContainer(itemStack.copy());
}
return stack;
}

public static ItemStack getContainerForFilledItemWithoutIFluidContainerItem(ItemStack itemStack) {
if (ModularUI.Mods.GT5U.isLoaded()) {
return GTUtility.getContainerForFilledItem(itemStack, false);
}
return null;
return FluidContainerRegistry.drainFluidContainer(itemStack);
}

public static int getRealCapacity(IFluidTank fluidTank) {
Expand Down
Loading