From 7711c80664fdfa703b5e60e62af437655da783ae Mon Sep 17 00:00:00 2001 From: Draknyte1 Date: Sat, 27 Feb 2016 21:24:45 +1000 Subject: Added Custom GT Cables/Wire & also added a copy of EnderIO's Gas Conduit classes. Time to combine the two, yeah? Also stripped out a heap of constants and refactored them together. --- src/Java/miscutil/enderio/conduit/gas/GasUtil.java | 75 ++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 src/Java/miscutil/enderio/conduit/gas/GasUtil.java (limited to 'src/Java/miscutil/enderio/conduit/gas/GasUtil.java') diff --git a/src/Java/miscutil/enderio/conduit/gas/GasUtil.java b/src/Java/miscutil/enderio/conduit/gas/GasUtil.java new file mode 100644 index 0000000000..1ccadc9485 --- /dev/null +++ b/src/Java/miscutil/enderio/conduit/gas/GasUtil.java @@ -0,0 +1,75 @@ +package crazypants.enderio.conduit.gas; + +import com.enderio.core.common.util.BlockCoord; +import cpw.mods.fml.common.ModAPIManager; +import cpw.mods.fml.common.Optional.Method; +import crazypants.enderio.conduit.IConduitBundle; +import crazypants.enderio.config.Config; +import mekanism.api.gas.Gas; +import mekanism.api.gas.GasStack; +import mekanism.api.gas.IGasHandler; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.IBlockAccess; + +public final class GasUtil +{ + private static boolean useCheckPerformed = false; + private static boolean isGasConduitEnabled = false; + public static final String API_NAME = "MekanismAPI|gas"; + + public static boolean isGasConduitEnabled() + { + if (!useCheckPerformed) + { + if (Config.isGasConduitEnabled) { + isGasConduitEnabled = ModAPIManager.INSTANCE.hasAPI("MekanismAPI|gas"); + } else { + isGasConduitEnabled = false; + } + useCheckPerformed = true; + } + return isGasConduitEnabled; + } + + @Optional.Method(modid="MekanismAPI|gas") + public static IGasHandler getExternalGasHandler(IBlockAccess world, BlockCoord bc) + { + IGasHandler con = getGasHandler(world, bc); + return (con != null) && (!(con instanceof IConduitBundle)) ? con : null; + } + + @Optional.Method(modid="MekanismAPI|gas") + public static IGasHandler getGasHandler(IBlockAccess world, BlockCoord bc) + { + return getGasHandler(world, bc.x, bc.y, bc.z); + } + + @Optional.Method(modid="MekanismAPI|gas") + public static IGasHandler getGasHandler(IBlockAccess world, int x, int y, int z) + { + TileEntity te = world.getTileEntity(x, y, z); + return getGasHandler(te); + } + + @Optional.Method(modid="MekanismAPI|gas") + public static IGasHandler getGasHandler(TileEntity te) + { + if ((te instanceof IGasHandler)) { + return (IGasHandler)te; + } + return null; + } + + @Optional.Method(modid="MekanismAPI|gas") + public static boolean isGasValid(GasStack gas) + { + if (gas != null) + { + String name = gas.getGas().getLocalizedName(); + if ((name != null) && (!name.trim().isEmpty())) { + return true; + } + } + return false; + } +} -- cgit