diff options
Diffstat (limited to 'src/Java/miscutil/enderio/conduit')
12 files changed, 98 insertions, 79 deletions
diff --git a/src/Java/miscutil/enderio/conduit/gas/AbstractGasConduit.java b/src/Java/miscutil/enderio/conduit/gas/AbstractGasConduit.java index ee7ba3d954..2bc3be3d67 100644 --- a/src/Java/miscutil/enderio/conduit/gas/AbstractGasConduit.java +++ b/src/Java/miscutil/enderio/conduit/gas/AbstractGasConduit.java @@ -1,8 +1,5 @@ package crazypants.enderio.conduit.gas; -import com.enderio.core.common.util.BlockCoord; -import com.enderio.core.common.util.DyeColor; -import cpw.mods.fml.common.Optional.Method; import crazypants.enderio.conduit.AbstractConduit; import crazypants.enderio.conduit.ConduitUtil; import crazypants.enderio.conduit.ConnectionMode; @@ -10,6 +7,8 @@ import crazypants.enderio.conduit.IConduit; import crazypants.enderio.conduit.IConduitBundle; import crazypants.enderio.machine.RedstoneControlMode; import crazypants.enderio.machine.reservoir.TileReservoir; +import crazypants.util.BlockCoord; +import crazypants.util.DyeColor; import java.util.EnumMap; import java.util.HashMap; import java.util.Map; @@ -31,14 +30,12 @@ public abstract class AbstractGasConduit protected final Map<ForgeDirection, Integer> externalRedstoneSignals = new HashMap(); protected boolean redstoneStateDirty = true; - @Optional.Method(modid="MekanismAPI|gas") public IGasHandler getExternalHandler(ForgeDirection direction) { IGasHandler con = GasUtil.getExternalGasHandler(getBundle().getWorld(), getLocation().getLocation(direction)); return (con != null) && (!(con instanceof IConduitBundle)) ? con : null; } - @Optional.Method(modid="MekanismAPI|gas") public IGasHandler getTankContainer(BlockCoord bc) { return GasUtil.getGasHandler(getBundle().getWorld(), bc); diff --git a/src/Java/miscutil/enderio/conduit/gas/AbstractGasTankConduit.java b/src/Java/miscutil/enderio/conduit/gas/AbstractGasTankConduit.java index 7226ad8328..5a0b50c370 100644 --- a/src/Java/miscutil/enderio/conduit/gas/AbstractGasTankConduit.java +++ b/src/Java/miscutil/enderio/conduit/gas/AbstractGasTankConduit.java @@ -1,7 +1,5 @@ package crazypants.enderio.conduit.gas; -import com.enderio.core.common.util.BlockCoord; -import cpw.mods.fml.common.Optional.Method; import crazypants.enderio.conduit.AbstractConduitNetwork; import crazypants.enderio.conduit.ConduitUtil; import crazypants.enderio.conduit.ConnectionMode; @@ -9,6 +7,7 @@ import crazypants.enderio.conduit.IConduitBundle; import crazypants.enderio.conduit.RaytraceResult; import crazypants.enderio.conduit.geom.CollidableComponent; import crazypants.enderio.tool.ToolUtil; +import crazypants.util.BlockCoord; import java.util.List; import mekanism.api.gas.GasStack; import mekanism.api.gas.IGasHandler; @@ -101,7 +100,6 @@ public abstract class AbstractGasTankConduit public abstract AbstractGasTankConduitNetwork<? extends AbstractGasTankConduit> getTankNetwork(); - @Optional.Method(modid="MekanismAPI|gas") public void setGasType(GasStack gasType) { if ((this.tank.getGas() != null) && (this.tank.getGas().isGasEqual(gasType))) { @@ -121,7 +119,6 @@ public abstract class AbstractGasTankConduit return this.tank; } - @Optional.Method(modid="MekanismAPI|gas") public GasStack getGasType() { GasStack result = null; diff --git a/src/Java/miscutil/enderio/conduit/gas/AbstractGasTankConduitNetwork.java b/src/Java/miscutil/enderio/conduit/gas/AbstractGasTankConduitNetwork.java index 75a4a3c1ad..62d8daa205 100644 --- a/src/Java/miscutil/enderio/conduit/gas/AbstractGasTankConduitNetwork.java +++ b/src/Java/miscutil/enderio/conduit/gas/AbstractGasTankConduitNetwork.java @@ -10,7 +10,7 @@ public class AbstractGasTankConduitNetwork<T extends AbstractGasTankConduit> protected AbstractGasTankConduitNetwork(Class<T> cl) { - super(cl, IGasConduit.class); + super(cl); } public GasStack getGasType() @@ -18,6 +18,11 @@ public class AbstractGasTankConduitNetwork<T extends AbstractGasTankConduit> return this.gasType; } + public Class<IGasConduit> getBaseConduitType() + { + return IGasConduit.class; + } + public void addConduit(T con) { super.addConduit(con); diff --git a/src/Java/miscutil/enderio/conduit/gas/ConduitGasTank.java b/src/Java/miscutil/enderio/conduit/gas/ConduitGasTank.java index 08aef66656..521e08a589 100644 --- a/src/Java/miscutil/enderio/conduit/gas/ConduitGasTank.java +++ b/src/Java/miscutil/enderio/conduit/gas/ConduitGasTank.java @@ -1,6 +1,5 @@ package crazypants.enderio.conduit.gas; -import cpw.mods.fml.common.Optional.Method; import mekanism.api.gas.Gas; import mekanism.api.gas.GasStack; import mekanism.api.gas.GasTank; @@ -64,7 +63,6 @@ public class ConduitGasTank } } - @Optional.Method(modid="MekanismAPI|gas") public int receive(GasStack resource, boolean doReceive) { if ((resource == null) || (resource.getGas().getID() < 0)) { @@ -103,7 +101,6 @@ public class ConduitGasTank return space; } - @Optional.Method(modid="MekanismAPI|gas") public GasStack draw(int maxDrain, boolean doDraw) { if ((this.stored == null) || (this.stored.getGas().getID() < 0)) { diff --git a/src/Java/miscutil/enderio/conduit/gas/GasConduit.java b/src/Java/miscutil/enderio/conduit/gas/GasConduit.java index 7f34570853..59300c4aa8 100644 --- a/src/Java/miscutil/enderio/conduit/gas/GasConduit.java +++ b/src/Java/miscutil/enderio/conduit/gas/GasConduit.java @@ -1,9 +1,5 @@ package crazypants.enderio.conduit.gas; -import com.enderio.core.client.render.IconUtil; -import com.enderio.core.client.render.IconUtil.IIconProvider; -import com.enderio.core.common.util.BlockCoord; -import cpw.mods.fml.common.Optional.Method; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import crazypants.enderio.EnderIO; @@ -13,6 +9,9 @@ import crazypants.enderio.conduit.IConduit; import crazypants.enderio.conduit.IConduitBundle; import crazypants.enderio.conduit.geom.CollidableComponent; import crazypants.enderio.config.Config; +import crazypants.render.IconUtil; +import crazypants.render.IconUtil.IIconProvider; +import crazypants.util.BlockCoord; import java.util.HashMap; import java.util.Map; import mekanism.api.gas.Gas; @@ -216,39 +215,22 @@ public class GasConduit return null; } - @Deprecated - @Optional.Method(modid="MekanismAPI|gas") - public int receiveGas(ForgeDirection side, GasStack stack) + public int receiveGas(ForgeDirection from, GasStack resource) { - return receiveGas(side, stack, true); - } - - @Optional.Method(modid="MekanismAPI|gas") - public int receiveGas(ForgeDirection side, GasStack stack, boolean doTransfer) - { - if ((this.network == null) || (!getConnectionMode(side).acceptsInput())) { + if ((this.network == null) || (!getConnectionMode(from).acceptsInput())) { return 0; } - return this.network.fill(side, stack, doTransfer); - } - - @Deprecated - @Optional.Method(modid="MekanismAPI|gas") - public GasStack drawGas(ForgeDirection side, int amount) - { - return drawGas(side, amount, true); + return this.network.fill(from, resource, true); } - @Optional.Method(modid="MekanismAPI|gas") - public GasStack drawGas(ForgeDirection side, int amount, boolean doTransfer) + public GasStack drawGas(ForgeDirection from, int maxDrain) { - if ((this.network == null) || (!getConnectionMode(side).acceptsOutput())) { + if ((this.network == null) || (!getConnectionMode(from).acceptsOutput())) { return null; } - return this.network.drain(side, amount, doTransfer); + return this.network.drain(from, maxDrain, true); } - @Optional.Method(modid="MekanismAPI|gas") public boolean canReceiveGas(ForgeDirection from, Gas gas) { if (this.network == null) { @@ -257,7 +239,6 @@ public class GasConduit return (getConnectionMode(from).acceptsInput()) && (GasConduitNetwork.areGassCompatable(getGasType(), new GasStack(gas, 0))); } - @Optional.Method(modid="MekanismAPI|gas") public boolean canDrawGas(ForgeDirection from, Gas gas) { if (this.network == null) { diff --git a/src/Java/miscutil/enderio/conduit/gas/GasConduitNetwork.java b/src/Java/miscutil/enderio/conduit/gas/GasConduitNetwork.java index 79990c6959..43db642248 100644 --- a/src/Java/miscutil/enderio/conduit/gas/GasConduitNetwork.java +++ b/src/Java/miscutil/enderio/conduit/gas/GasConduitNetwork.java @@ -1,9 +1,12 @@ package crazypants.enderio.conduit.gas; -import com.enderio.core.common.util.BlockCoord; +import cpw.mods.fml.common.gameevent.TickEvent.ServerTickEvent; +import crazypants.enderio.conduit.ConduitNetworkTickHandler; +import crazypants.enderio.conduit.ConduitNetworkTickHandler.TickListener; import crazypants.enderio.conduit.ConnectionMode; import crazypants.enderio.conduit.IConduit; import crazypants.enderio.conduit.IConduitBundle; +import crazypants.util.BlockCoord; import java.util.HashSet; import java.util.Iterator; import java.util.List; @@ -23,12 +26,19 @@ public class GasConduitNetwork private int ticksActiveUnsynced; private boolean lastSyncedActive = false; private int lastSyncedVolume = -1; + private long timeAtLastApply; + private final InnerTickHandler tickHandler = new InnerTickHandler(null); public GasConduitNetwork() { super(GasConduit.class); } + public Class<IGasConduit> getBaseConduitType() + { + return IGasConduit.class; + } + public void addConduit(GasConduit con) { this.tank.setCapacity(this.tank.getMaxGas() + 1000); @@ -87,7 +97,24 @@ public class GasConduitNetwork } } - public void doNetworkTick() + public void onUpdateEntity(IConduit conduit) + { + World world = conduit.getBundle().getEntity().getWorldObj(); + if (world == null) { + return; + } + if (world.isRemote) { + return; + } + long curTime = world.getTotalWorldTime(); + if ((curTime > 0L) && (curTime != this.timeAtLastApply)) + { + this.timeAtLastApply = curTime; + ConduitNetworkTickHandler.instance.addListener(this.tickHandler); + } + } + + private void doTick() { if ((this.gasType == null) || (this.outputs.isEmpty()) || (!this.tank.containsValidGas()) || (this.tank.isEmpty())) { @@ -277,4 +304,17 @@ public class GasConduitNetwork setConduitVolumes(); this.lastSyncedVolume = this.tank.getStored(); } + + private class InnerTickHandler + implements ConduitNetworkTickHandler.TickListener + { + private InnerTickHandler() {} + + public void tickStart(TickEvent.ServerTickEvent evt) {} + + public void tickEnd(TickEvent.ServerTickEvent evt) + { + GasConduitNetwork.this.doTick(); + } + } } diff --git a/src/Java/miscutil/enderio/conduit/gas/GasConduitRenderer.java b/src/Java/miscutil/enderio/conduit/gas/GasConduitRenderer.java index 4bb0a2eb1c..9b53361b44 100644 --- a/src/Java/miscutil/enderio/conduit/gas/GasConduitRenderer.java +++ b/src/Java/miscutil/enderio/conduit/gas/GasConduitRenderer.java @@ -1,11 +1,5 @@ package crazypants.enderio.conduit.gas; -import com.enderio.core.client.render.BoundingBox; -import com.enderio.core.client.render.CubeRenderer; -import com.enderio.core.client.render.RenderUtil; -import com.enderio.core.common.vecmath.Vector2f; -import com.enderio.core.common.vecmath.Vector3d; -import com.enderio.core.common.vecmath.Vertex; import crazypants.enderio.EnderIO; import crazypants.enderio.conduit.BlockConduitBundle; import crazypants.enderio.conduit.ConnectionMode; @@ -16,6 +10,12 @@ import crazypants.enderio.conduit.geom.ConnectionModeGeometry; import crazypants.enderio.conduit.geom.Offset; import crazypants.enderio.conduit.render.ConduitBundleRenderer; import crazypants.enderio.conduit.render.DefaultConduitRenderer; +import crazypants.render.BoundingBox; +import crazypants.render.CubeRenderer; +import crazypants.render.RenderUtil; +import crazypants.vecmath.Vector2f; +import crazypants.vecmath.Vector3d; +import crazypants.vecmath.Vertex; import java.util.List; import mekanism.api.gas.Gas; import mekanism.api.gas.GasStack; @@ -112,14 +112,14 @@ public class GasConduitRenderer if (conduit.getConnectionMode(component.dir) == ConnectionMode.DISABLED) { tex = EnderIO.blockConduitBundle.getConnectorIcon(component.data); - Object corners = component.bound.getCornersWithUvForFace(component.dir, tex.getMinU(), tex.getMaxU(), tex.getMinV(), tex.getMaxV()); + List<Vertex> corners = component.bound.getCornersWithUvForFace(component.dir, tex.getMinU(), tex.getMaxU(), tex.getMinV(), tex.getMaxV()); Tessellator tessellator = Tessellator.instance; - for (Vertex c : (List)corners) { + for (Vertex c : corners) { CubeRenderer.addVecWithUV(c.xyz, c.uv.x, c.uv.y); } - for (int i = ((List)corners).size() - 1; i >= 0; i--) + for (int i = corners.size() - 1; i >= 0; i--) { - Vertex c = (Vertex)((List)corners).get(i); + Vertex c = (Vertex)corners.get(i); CubeRenderer.addVecWithUV(c.xyz, c.uv.x, c.uv.y); } } diff --git a/src/Java/miscutil/enderio/conduit/gas/GasOutput.java b/src/Java/miscutil/enderio/conduit/gas/GasOutput.java index 02bb4e71dd..f8757b204d 100644 --- a/src/Java/miscutil/enderio/conduit/gas/GasOutput.java +++ b/src/Java/miscutil/enderio/conduit/gas/GasOutput.java @@ -1,6 +1,6 @@ package crazypants.enderio.conduit.gas; -import com.enderio.core.common.util.BlockCoord; +import crazypants.util.BlockCoord; import net.minecraftforge.common.util.ForgeDirection; public class GasOutput diff --git a/src/Java/miscutil/enderio/conduit/gas/GasUtil.java b/src/Java/miscutil/enderio/conduit/gas/GasUtil.java index 1ccadc9485..fcc02ca942 100644 --- a/src/Java/miscutil/enderio/conduit/gas/GasUtil.java +++ b/src/Java/miscutil/enderio/conduit/gas/GasUtil.java @@ -1,10 +1,11 @@ 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 cpw.mods.fml.common.Loader; +import cpw.mods.fml.common.ModContainer; import crazypants.enderio.conduit.IConduitBundle; import crazypants.enderio.config.Config; +import crazypants.util.BlockCoord; +import java.util.Map; import mekanism.api.gas.Gas; import mekanism.api.gas.GasStack; import mekanism.api.gas.IGasHandler; @@ -15,15 +16,25 @@ 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 { + String configOption = Config.isGasConduitEnabled; + if (configOption.equalsIgnoreCase("auto")) + { + isGasConduitEnabled = Loader.isModLoaded("Mekanism"); + if (isGasConduitEnabled) { + isGasConduitEnabled = ((ModContainer)Loader.instance().getIndexedModList().get("Mekanism")).getVersion().startsWith("7"); + } + } + else if (configOption.equalsIgnoreCase("true")) + { + isGasConduitEnabled = true; + } + else + { isGasConduitEnabled = false; } useCheckPerformed = true; @@ -31,27 +42,23 @@ public final class GasUtil 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)) { @@ -60,7 +67,6 @@ public final class GasUtil return null; } - @Optional.Method(modid="MekanismAPI|gas") public static boolean isGasValid(GasStack gas) { if (gas != null) diff --git a/src/Java/miscutil/enderio/conduit/gas/IGasConduit.java b/src/Java/miscutil/enderio/conduit/gas/IGasConduit.java index f41f6ba9fc..6b09293e63 100644 --- a/src/Java/miscutil/enderio/conduit/gas/IGasConduit.java +++ b/src/Java/miscutil/enderio/conduit/gas/IGasConduit.java @@ -1,12 +1,10 @@ package crazypants.enderio.conduit.gas; -import cpw.mods.fml.common.Optional.Interface; import crazypants.enderio.conduit.IConduit; import crazypants.enderio.conduit.IExtractor; import mekanism.api.gas.IGasHandler; import net.minecraftforge.common.util.ForgeDirection; -@Optional.Interface(iface="mekanism.api.gas.IGasHandler", modid="MekanismAPI|gas") public abstract interface IGasConduit extends IConduit, IGasHandler, IExtractor { diff --git a/src/Java/miscutil/enderio/conduit/gas/ItemGasConduit.java b/src/Java/miscutil/enderio/conduit/gas/ItemGasConduit.java index df9fe0844b..d09e657023 100644 --- a/src/Java/miscutil/enderio/conduit/gas/ItemGasConduit.java +++ b/src/Java/miscutil/enderio/conduit/gas/ItemGasConduit.java @@ -1,16 +1,15 @@ package crazypants.enderio.conduit.gas; -import com.enderio.core.api.client.gui.IAdvancedTooltipProvider; -import com.enderio.core.client.handlers.SpecialTooltipHandler; -import com.enderio.core.common.Lang; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import crazypants.enderio.EnderIO; import crazypants.enderio.ModObject; import crazypants.enderio.conduit.AbstractItemConduit; import crazypants.enderio.conduit.IConduit; import crazypants.enderio.conduit.ItemConduitSubtype; import crazypants.enderio.config.Config; +import crazypants.enderio.gui.IAdvancedTooltipProvider; +import crazypants.enderio.gui.TooltipAddera; +import crazypants.util.Lang; import java.util.List; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -19,8 +18,7 @@ public class ItemGasConduit extends AbstractItemConduit implements IAdvancedTooltipProvider { - private static ItemConduitSubtype[] subtypes = { new ItemConduitSubtype(ModObject.itemGasConduit - .name(), "enderio:itemGasConduit") }; + private static ItemConduitSubtype[] subtypes = { new ItemConduitSubtype(ModObject.itemGasConduit.name(), "enderio:itemGasConduit") }; public static ItemGasConduit create() { @@ -58,12 +56,12 @@ public class ItemGasConduit @SideOnly(Side.CLIENT) public void addDetailedEntries(ItemStack itemstack, EntityPlayer entityplayer, List list, boolean flag) { - String gpt = " " + EnderIO.lang.localize("gas.gasTick"); + String gpt = " " + Lang.localize("gas.gasTick"); int extractRate = Config.gasConduitExtractRate; int maxIo = Config.gasConduitMaxIoRate; - list.add(EnderIO.lang.localize("itemGasConduit.tooltip.maxExtract") + " " + extractRate + gpt); - list.add(EnderIO.lang.localize("itemGasConduit.tooltip.maxIo") + " " + maxIo + gpt); - SpecialTooltipHandler.addDetailedTooltipFromResources(list, "enderio.itemGasConduit"); + list.add(Lang.localize("itemGasConduit.tooltip.maxExtract") + " " + extractRate + gpt); + list.add(Lang.localize("itemGasConduit.tooltip.maxIo") + " " + maxIo + gpt); + TooltipAddera.addDetailedTooltipFromResources(list, "enderio.itemGasConduit"); } public boolean shouldHideFacades(ItemStack stack, EntityPlayer player) diff --git a/src/Java/miscutil/enderio/conduit/gas/PacketGasLevel.java b/src/Java/miscutil/enderio/conduit/gas/PacketGasLevel.java index 0e1b96313c..15ea65840a 100644 --- a/src/Java/miscutil/enderio/conduit/gas/PacketGasLevel.java +++ b/src/Java/miscutil/enderio/conduit/gas/PacketGasLevel.java @@ -1,11 +1,11 @@ package crazypants.enderio.conduit.gas; -import com.enderio.core.common.network.MessageTileEntity; import cpw.mods.fml.common.network.ByteBufUtils; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import crazypants.enderio.conduit.IConduitBundle; +import crazypants.enderio.network.MessageTileEntity; import crazypants.util.ClientUtil; import io.netty.buffer.ByteBuf; import net.minecraft.nbt.NBTTagCompound; |