Skip to content

Commit

Permalink
fix fluid conduit connecting to non-fluid GT tiles
Browse files Browse the repository at this point in the history
Co-Authored-By: miozune <[email protected]>
  • Loading branch information
aagrishankov and miozune committed Dec 24, 2023
1 parent 19de0c1 commit fe56af4
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 0 deletions.
2 changes: 2 additions & 0 deletions dependencies.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
dependencies {
implementation("net.industrial-craft:industrialcraft-2:2.2.828-experimental:dev")
api('com.github.GTNewHorizons:EnderCore:0.3.0:dev')
implementation("com.github.GTNewHorizons:EnderIO:2.4.16:dev")
implementation("curse.maven:cofh-core-69162:2388751")
implementation(fileTree(dir: 'libs/', include: '*.jar'))
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,9 @@ public enum Mixin {

OreDictionaryArbiter_Mixin("cofh.OreDictionaryArbiter_Mixin", COFH, VANILLA),
CoFHCoreUpdate_Mixin_Mixin("cofh.CoFHCoreUpdate_Mixin", COFH, VANILLA),
AbstractLiquidConduit_Mixin("ei.AbstractLiquidConduit_Mixin", EI, GREGTECH, VANILLA),
;

public final String mixinClass;
public final List<TargetedMod> targetedMods;
private final Side side;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ public enum TargetedMod {
AE("Applied Energistics 2", "appliedenergistics2", true),
AE2FC("Fluid Craft For AE2", "ae2fc", true),
COFH("CoFHCore", "CoFHCore", true),
EC2("Extra Cells 2", "extracells", true),
EI("Ender IO", "EnderIO", true),
;

public final String modName;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package space.gtimpact.mixinmodule.mixins.ei;

import crazypants.enderio.conduit.liquid.AbstractLiquidConduit;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.IFluidHandler;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;

@Mixin(AbstractLiquidConduit.class)
public abstract class AbstractLiquidConduit_Mixin {

@Shadow(remap = false) public abstract IFluidHandler getExternalHandler(ForgeDirection direction);

@Inject(method = "canConnectToExternal", at = @At("HEAD"), remap = false, cancellable = true)
private void canConnectToExternal(ForgeDirection direction, boolean ignoreDisabled, CallbackInfoReturnable<Boolean> cir) {
IFluidHandler h = getExternalHandler(direction);
if (h == null) {
cir.setReturnValue(false);
return;
}

if (h instanceof IGregTechTileEntity) {
IMetaTileEntity mte = ((IGregTechTileEntity) h).getMetaTileEntity();
cir.setReturnValue(mte != null && mte.getCapacity() > 0);
return;
}
cir.setReturnValue(true);
}
}

0 comments on commit fe56af4

Please sign in to comment.