From 6245b6a3eaf1ce475f6624da97ab3f04dcfd35f8 Mon Sep 17 00:00:00 2001 From: Draknyte1 Date: Mon, 29 Feb 2016 19:33:00 +1000 Subject: V0.9.2 Release - Removed dev features and some messy code to push a 0.9.2 snapshop codebase. --- src/Java/miscutil/MiscUtils.java | 2 +- src/Java/miscutil/core/commands/CommandMath.java | 145 ++++----- src/Java/miscutil/core/lib/Strings.java | 2 +- src/Java/miscutil/core/util/Utils.java | 47 +++ .../miscutil/core/waila/IWailaInfoProvider.java | 5 +- .../miscutil/core/waila/IWailaNBTProvider.java | 2 +- src/Java/miscutil/core/waila/WailaCompat.java | 52 ++-- .../conduit/GregTech/AbstractGtConduit.java | 73 ----- .../conduit/GregTech/AbstractGtTankConduit.java | 161 ---------- .../GregTech/AbstractGtTankConduitNetwork.java | 64 ---- .../enderio/conduit/GregTech/ConduitGtTank.java | 153 ---------- .../enderio/conduit/GregTech/GtConduit.java | 265 ----------------- .../enderio/conduit/GregTech/GtConduitNetwork.java | 310 ------------------- .../conduit/GregTech/GtConduitRenderer.java | 180 ----------- .../enderio/conduit/GregTech/GtOutput.java | 49 --- .../miscutil/enderio/conduit/GregTech/GtUtil.java | 69 ----- .../enderio/conduit/GregTech/IGtConduit.java | 12 - .../enderio/conduit/GregTech/ItemGtConduit.java | 76 ----- .../enderio/conduit/GregTech/PacketGtLevel.java | 43 --- .../miscutil/enderio/conduit/MetaConduitBase.java | 2 +- .../enderio/conduit/gas/AbstractGasConduit.java | 203 ------------- .../conduit/gas/AbstractGasTankConduit.java | 169 ----------- .../conduit/gas/AbstractGasTankConduitNetwork.java | 73 ----- .../enderio/conduit/gas/ConduitGasTank.java | 160 ---------- .../miscutil/enderio/conduit/gas/GasConduit.java | 258 ---------------- .../enderio/conduit/gas/GasConduitNetwork.java | 317 -------------------- .../enderio/conduit/gas/GasConduitRenderer.java | 176 ----------- .../miscutil/enderio/conduit/gas/GasOutput.java | 57 ---- src/Java/miscutil/enderio/conduit/gas/GasUtil.java | 79 ----- .../miscutil/enderio/conduit/gas/IGasConduit.java | 14 - .../enderio/conduit/gas/ItemGasConduit.java | 72 ----- .../enderio/conduit/gas/PacketGasLevel.java | 44 --- src/Java/miscutil/gregtech/enums/MaterialsNew.java | 44 +++ .../gregtech/gui/CONTAINER_SteamCondenser.java | 92 ++++++ .../miscutil/gregtech/gui/GUI_SteamCondenser.java | 53 ++++ .../init/machines/GregtechCobbleGenerator.java | 2 +- .../init/machines/GregtechSteamCondenser.java | 36 +++ .../implementations/GregtechMetaCondensor.java | 164 +++++++++++ .../implementations/GregtechMetaEnergyBuffer.java | 1 + .../implementations/GregtechMetaTileEntity.java | 66 ----- .../implementations/GregtechSteelBoiler.java | 290 ------------------ .../base/GregtechMetaBoilerBase.java | 328 +++++++++++++++++++++ .../base/GregtechMetaTileEntity.java | 67 +++++ .../implementations/base/GregtechSteelBoiler.java | 290 ++++++++++++++++++ .../gregtech/objects/GregMaterialStack.java | 42 --- src/Java/miscutil/mcmod.info | 2 +- 46 files changed, 1233 insertions(+), 3578 deletions(-) delete mode 100644 src/Java/miscutil/enderio/conduit/GregTech/AbstractGtConduit.java delete mode 100644 src/Java/miscutil/enderio/conduit/GregTech/AbstractGtTankConduit.java delete mode 100644 src/Java/miscutil/enderio/conduit/GregTech/AbstractGtTankConduitNetwork.java delete mode 100644 src/Java/miscutil/enderio/conduit/GregTech/ConduitGtTank.java delete mode 100644 src/Java/miscutil/enderio/conduit/GregTech/GtConduit.java delete mode 100644 src/Java/miscutil/enderio/conduit/GregTech/GtConduitNetwork.java delete mode 100644 src/Java/miscutil/enderio/conduit/GregTech/GtConduitRenderer.java delete mode 100644 src/Java/miscutil/enderio/conduit/GregTech/GtOutput.java delete mode 100644 src/Java/miscutil/enderio/conduit/GregTech/GtUtil.java delete mode 100644 src/Java/miscutil/enderio/conduit/GregTech/IGtConduit.java delete mode 100644 src/Java/miscutil/enderio/conduit/GregTech/ItemGtConduit.java delete mode 100644 src/Java/miscutil/enderio/conduit/GregTech/PacketGtLevel.java delete mode 100644 src/Java/miscutil/enderio/conduit/gas/AbstractGasConduit.java delete mode 100644 src/Java/miscutil/enderio/conduit/gas/AbstractGasTankConduit.java delete mode 100644 src/Java/miscutil/enderio/conduit/gas/AbstractGasTankConduitNetwork.java delete mode 100644 src/Java/miscutil/enderio/conduit/gas/ConduitGasTank.java delete mode 100644 src/Java/miscutil/enderio/conduit/gas/GasConduit.java delete mode 100644 src/Java/miscutil/enderio/conduit/gas/GasConduitNetwork.java delete mode 100644 src/Java/miscutil/enderio/conduit/gas/GasConduitRenderer.java delete mode 100644 src/Java/miscutil/enderio/conduit/gas/GasOutput.java delete mode 100644 src/Java/miscutil/enderio/conduit/gas/GasUtil.java delete mode 100644 src/Java/miscutil/enderio/conduit/gas/IGasConduit.java delete mode 100644 src/Java/miscutil/enderio/conduit/gas/ItemGasConduit.java delete mode 100644 src/Java/miscutil/enderio/conduit/gas/PacketGasLevel.java create mode 100644 src/Java/miscutil/gregtech/enums/MaterialsNew.java create mode 100644 src/Java/miscutil/gregtech/gui/CONTAINER_SteamCondenser.java create mode 100644 src/Java/miscutil/gregtech/gui/GUI_SteamCondenser.java create mode 100644 src/Java/miscutil/gregtech/init/machines/GregtechSteamCondenser.java create mode 100644 src/Java/miscutil/gregtech/metatileentity/implementations/GregtechMetaCondensor.java delete mode 100644 src/Java/miscutil/gregtech/metatileentity/implementations/GregtechMetaTileEntity.java delete mode 100644 src/Java/miscutil/gregtech/metatileentity/implementations/GregtechSteelBoiler.java create mode 100644 src/Java/miscutil/gregtech/metatileentity/implementations/base/GregtechMetaBoilerBase.java create mode 100644 src/Java/miscutil/gregtech/metatileentity/implementations/base/GregtechMetaTileEntity.java create mode 100644 src/Java/miscutil/gregtech/metatileentity/implementations/base/GregtechSteelBoiler.java delete mode 100644 src/Java/miscutil/gregtech/objects/GregMaterialStack.java (limited to 'src/Java') diff --git a/src/Java/miscutil/MiscUtils.java b/src/Java/miscutil/MiscUtils.java index 0272d0015c..c1e6a14913 100644 --- a/src/Java/miscutil/MiscUtils.java +++ b/src/Java/miscutil/MiscUtils.java @@ -61,7 +61,7 @@ implements ActionListener //Post-Init @Mod.EventHandler public void postInit(FMLPostInitializationEvent event) { - Utils.LOG_INFO("Tidying things up."); + Utils.LOG_INFO("Cleaning up the banana on the floor."); proxy.postInit(event); } diff --git a/src/Java/miscutil/core/commands/CommandMath.java b/src/Java/miscutil/core/commands/CommandMath.java index bf5e52ad94..a099d7b5a0 100644 --- a/src/Java/miscutil/core/commands/CommandMath.java +++ b/src/Java/miscutil/core/commands/CommandMath.java @@ -79,13 +79,18 @@ public class CommandMath implements ICommand System.out.println("Processing on Server side - Home Teleport engaged by: "+P.getDisplayName()); - int XP_TOTAL = P.experienceTotal; - Utils.LOG_WARNING("Total Xp:" + XP_TOTAL); - ChunkCoordinates X = P.getPlayerCoordinates(); - Utils.LOG_WARNING("Player Location: "+X); - ChunkCoordinates Y = null; - Utils.LOG_WARNING("Bed Location: "+Y); - if (!P.getBedLocation(0).equals(null)){ + int XP_TOTAL = P.experienceTotal; + Utils.LOG_WARNING("Total Xp:" + XP_TOTAL); + ChunkCoordinates X = P.getPlayerCoordinates(); + Utils.LOG_WARNING("Player Location: "+X); + ChunkCoordinates Y = null; + Utils.LOG_WARNING("Bed Location: "+Y); + try { + if (P.getBedLocation(0).equals(null)){ + Y = W.getSpawnPoint(); + Utils.LOG_WARNING("Spawn Location: "+Y); + } + else if (!P.getBedLocation(0).equals(null)){ Y = P.getBedLocation(0); Utils.LOG_WARNING("Bed Location: "+Y); } @@ -93,69 +98,73 @@ public class CommandMath implements ICommand Y = W.getSpawnPoint(); Utils.LOG_WARNING("Spawn Location: "+Y); } - if (Y == null) { - Y = W.getSpawnPoint(); - Utils.LOG_WARNING("Spawn Location: "+Y); + } + catch(NullPointerException e) { + Utils.messagePlayer(P, "You do not have a spawn, so..."); + } + if (Y == null || Y.equals(null)) { + Y = W.getSpawnPoint(); + Utils.LOG_WARNING("Spawn Location: "+Y); + } + + int x1 = X.posX; + Utils.LOG_WARNING("X1: "+x1); + int x2 = Y.posX; + Utils.LOG_WARNING("X2: "+x2); + int y1 = X.posY; + Utils.LOG_WARNING("Y1: "+y1); + int y2 = Y.posY; + Utils.LOG_WARNING("Y2: "+y2); + int z1 = X.posZ; + Utils.LOG_WARNING("Z1: "+z1); + int z2 = Y.posZ; + Utils.LOG_WARNING("Z2: "+z2); + + + double d = Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)+(z2-z1)*(z2-z1)); + String xpCost = String.valueOf((int)(d*0.15)); + + Utils.LOG_WARNING("d:" + d); + Utils.LOG_WARNING("-----------------------------------------"); + Utils.LOG_WARNING("Actual math formulae"); + Utils.LOG_WARNING(String.valueOf(d)); + Utils.LOG_WARNING("-----------------------------------------"); + Utils.LOG_WARNING("Xp Cost based on answer B."); + Utils.LOG_WARNING(String.valueOf(d*0.15) + " | " + String.valueOf(xpCost)); + Utils.LOG_WARNING("-----------------------------------------"); + Utils.LOG_WARNING("Xp Total"); + Utils.LOG_WARNING(String.valueOf(XP_TOTAL)); + Utils.LOG_WARNING("-----------------------------------------"); + + + + if ((XP_TOTAL-Float.valueOf(xpCost)) > 0){ + EntityXPOrb E = new EntityXPOrb(W, P.posX, P.posY + 1.62D - (double) P.yOffset, P.posZ, 1); + //E.moveTowards((double) Y.posX + 0.5D, (int) Y.posY + 3, (double) Y.posZ + 0.5D); + E.setVelocity((double) Y.posX + 0.5D, (int) Y.posY + 0.1, (double) Y.posZ + 0.5D); + W.spawnEntityInWorld(E); + W.playAuxSFXAtEntity((EntityPlayer) null, 1002, (int) P.posX, (int) P.posY, (int) P.posZ, 0); + P.setPositionAndUpdate(x2, y2+1, z2); + + //gregtech.api.util.GT_Utility.sendChatToPlayer(P, "Movement | X:"+x2+" | Y:"+y2+" | Z:"+z2); + gregtech.api.util.GT_Utility.sendChatToPlayer(P, "Distance Traveled | "+String.valueOf((int)(d)) + " Blocks & " + xpCost + "xp"); + gregtech.api.util.GT_Utility.sendChatToPlayer(P, "You suddenly feel at home."); + P.experienceTotal = (int) (XP_TOTAL-Float.valueOf(xpCost)); + if (!xpCost.equals("0") && Float.valueOf(xpCost) > 0){ + gregtech.api.util.GT_Utility.sendChatToPlayer(P, "...At the loss of "+xpCost+" xp."); } - - int x1 = X.posX; - Utils.LOG_WARNING("X1: "+x1); - int x2 = Y.posX; - Utils.LOG_WARNING("X2: "+x2); - int y1 = X.posY; - Utils.LOG_WARNING("Y1: "+y1); - int y2 = Y.posY; - Utils.LOG_WARNING("Y2: "+y2); - int z1 = X.posZ; - Utils.LOG_WARNING("Z1: "+z1); - int z2 = Y.posZ; - Utils.LOG_WARNING("Z2: "+z2); - - - double d = Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)+(z2-z1)*(z2-z1)); - String xpCost = String.valueOf((int)(d*0.15)); - - Utils.LOG_WARNING("d:" + d); - Utils.LOG_WARNING("-----------------------------------------"); - Utils.LOG_WARNING("Actual math formulae"); - Utils.LOG_WARNING(String.valueOf(d)); - Utils.LOG_WARNING("-----------------------------------------"); - Utils.LOG_WARNING("Xp Cost based on answer B."); - Utils.LOG_WARNING(String.valueOf(d*0.15) + " | " + String.valueOf(xpCost)); - Utils.LOG_WARNING("-----------------------------------------"); - Utils.LOG_WARNING("Xp Total"); - Utils.LOG_WARNING(String.valueOf(XP_TOTAL)); - Utils.LOG_WARNING("-----------------------------------------"); - - - - if ((XP_TOTAL-Float.valueOf(xpCost)) > 0){ - EntityXPOrb E = new EntityXPOrb(W, P.posX, P.posY + 1.62D - (double) P.yOffset, P.posZ, 1); - //E.moveTowards((double) Y.posX + 0.5D, (int) Y.posY + 3, (double) Y.posZ + 0.5D); - E.setVelocity((double) Y.posX + 0.5D, (int) Y.posY + 0.1, (double) Y.posZ + 0.5D); - W.spawnEntityInWorld(E); - W.playAuxSFXAtEntity((EntityPlayer) null, 1002, (int) P.posX, (int) P.posY, (int) P.posZ, 0); - P.setPositionAndUpdate(x2, y2+1, z2); - - //gregtech.api.util.GT_Utility.sendChatToPlayer(P, "Movement | X:"+x2+" | Y:"+y2+" | Z:"+z2); - gregtech.api.util.GT_Utility.sendChatToPlayer(P, "Distance Traveled | "+String.valueOf((int)(d)) + " Blocks & " + xpCost + "xp"); - gregtech.api.util.GT_Utility.sendChatToPlayer(P, "You suddenly feel at home."); - P.experienceTotal = (int) (XP_TOTAL-Float.valueOf(xpCost)); - if (!xpCost.equals("0") && Float.valueOf(xpCost) > 0){ - gregtech.api.util.GT_Utility.sendChatToPlayer(P, "...At the loss of "+xpCost+" xp."); - } - else if (xpCost.equals("0")){ - gregtech.api.util.GT_Utility.sendChatToPlayer(P, "...At the loss of very little xp."); - } - else { - gregtech.api.util.GT_Utility.sendChatToPlayer(P, "Something went wrong with the math, have this one on the house. :)"); - } + else if (xpCost.equals("0")){ + gregtech.api.util.GT_Utility.sendChatToPlayer(P, "...At the loss of very little xp."); } - else { - gregtech.api.util.GT_Utility.sendChatToPlayer(P, "You don't feel you're able to do this yet."); + gregtech.api.util.GT_Utility.sendChatToPlayer(P, "Something went wrong with the math, have this one on the house. :)"); } - + } + + else { + gregtech.api.util.GT_Utility.sendChatToPlayer(P, "You don't feel you're able to do this yet."); + } + } } @@ -183,11 +192,11 @@ public class CommandMath implements ICommand return false; } - + public boolean playerUsesCommand(World W, EntityPlayer P, int cost) { - + return true; } diff --git a/src/Java/miscutil/core/lib/Strings.java b/src/Java/miscutil/core/lib/Strings.java index 01976b9bdd..a26d697065 100644 --- a/src/Java/miscutil/core/lib/Strings.java +++ b/src/Java/miscutil/core/lib/Strings.java @@ -6,7 +6,7 @@ public class Strings { public static final String name = "Misc. Utils"; public static final String MODID = "miscutils"; - public static final String VERSION = "0.7.8gtu"; + public static final String VERSION = "0.9.2-gtu"; public static final boolean DEBUG = false; public static final boolean LOAD_ALL_CONTENT = false; public static final int GREG_FIRST_ID = 760; diff --git a/src/Java/miscutil/core/util/Utils.java b/src/Java/miscutil/core/util/Utils.java index 7565d1e308..2ae494d96e 100644 --- a/src/Java/miscutil/core/util/Utils.java +++ b/src/Java/miscutil/core/util/Utils.java @@ -3,6 +3,7 @@ package miscutil.core.util; import static gregtech.api.enums.GT_Values.F; import java.awt.Graphics; +import java.util.Random; import miscutil.core.lib.Strings; import net.minecraft.entity.player.EntityPlayer; @@ -14,6 +15,50 @@ import cpw.mods.fml.common.FMLLog; public class Utils { public static final int WILDCARD_VALUE = Short.MAX_VALUE; + + /** + * Returns a psuedo-random number between min and max, inclusive. + * The difference between min and max can be at most + * Integer.MAX_VALUE - 1. + * + * @param min Minimim value + * @param max Maximim value. Must be greater than min. + * @return Integer between min and max, inclusive. + * @see java.util.Random#nextInt(int) + */ + public static int randInt(int min, int max) { + + // Usually this can be a field rather than a method variable + Random rand = new Random(); + + // nextInt is normally exclusive of the top value, + // so add 1 to make it inclusive + int randomNum = rand.nextInt((max - min) + 1) + min; + + return randomNum; + } + + public static long randLong(long min, long max) { + // Usually this can be a field rather than a method variable + Random rand = new Random(); + + // nextInt is normally exclusive of the top value, + // so add 1 to make it inclusive + long randomNum = nextLong(rand,(max - min) + 1) + min; + + return randomNum; + } + + private static long nextLong(Random rng, long n) { + // error checking and 2^x checking removed for simplicity. + long bits, val; + do { + bits = (rng.nextLong() << 1) >>> 1; + val = bits % n; + } while (bits-val+(n-1) < 0L); + return val; + } + public static boolean containsMatch(boolean strict, ItemStack[] inputs, ItemStack... targets) { for (ItemStack input : inputs) @@ -81,5 +126,7 @@ public class Utils { public static FluidStack getIC2Steam(long aAmount) { return FluidRegistry.getFluidStack("ic2steam", (int)aAmount); } + + } diff --git a/src/Java/miscutil/core/waila/IWailaInfoProvider.java b/src/Java/miscutil/core/waila/IWailaInfoProvider.java index 90b96d4bc0..b8ac036ac5 100644 --- a/src/Java/miscutil/core/waila/IWailaInfoProvider.java +++ b/src/Java/miscutil/core/waila/IWailaInfoProvider.java @@ -1,7 +1,8 @@ -package crazypants.enderio.waila; +package miscutil.core.waila; import java.text.NumberFormat; import java.util.List; + import net.minecraft.entity.player.EntityPlayer; import net.minecraft.world.World; @@ -11,7 +12,7 @@ public abstract interface IWailaInfoProvider public static final int BIT_COMMON = 2; public static final int BIT_DETAILED = 4; public static final int ALL_BITS = 7; - public static final NumberFormat fmt = ; + public static NumberFormat fmt = null; public abstract void getWailaInfo(List paramList, EntityPlayer paramEntityPlayer, World paramWorld, int paramInt1, int paramInt2, int paramInt3); diff --git a/src/Java/miscutil/core/waila/IWailaNBTProvider.java b/src/Java/miscutil/core/waila/IWailaNBTProvider.java index 5b4f7dbe2b..28d15a8bce 100644 --- a/src/Java/miscutil/core/waila/IWailaNBTProvider.java +++ b/src/Java/miscutil/core/waila/IWailaNBTProvider.java @@ -1,4 +1,4 @@ -package crazypants.enderio.waila; +package miscutil.core.waila; import net.minecraft.nbt.NBTTagCompound; diff --git a/src/Java/miscutil/core/waila/WailaCompat.java b/src/Java/miscutil/core/waila/WailaCompat.java index 1f494f89bd..49cf209c87 100644 --- a/src/Java/miscutil/core/waila/WailaCompat.java +++ b/src/Java/miscutil/core/waila/WailaCompat.java @@ -1,27 +1,7 @@ -package crazypants.enderio.waila; +package miscutil.core.waila; -import crazypants.enderio.EnderIO; -import crazypants.enderio.TileEntityEio; -import crazypants.enderio.block.BlockDarkSteelAnvil; -import crazypants.enderio.conduit.ConduitUtil; -import crazypants.enderio.conduit.IConduit; -import crazypants.enderio.conduit.IConduitBundle; -import crazypants.enderio.conduit.liquid.AbstractTankConduit; -import crazypants.enderio.conduit.liquid.ConduitTank; -import crazypants.enderio.conduit.power.IPowerConduit; -import crazypants.enderio.fluid.Fluids; -import crazypants.enderio.gui.IAdvancedTooltipProvider; -import crazypants.enderio.gui.IResourceTooltipProvider; -import crazypants.enderio.gui.TooltipAddera; -import crazypants.enderio.machine.IIoConfigurable; -import crazypants.enderio.machine.IoMode; -import crazypants.enderio.machine.capbank.TileCapBank; -import crazypants.enderio.machine.power.TileCapacitorBank; -import crazypants.enderio.power.IInternalPoweredTile; -import crazypants.util.IFacade; -import crazypants.util.Lang; -import java.text.NumberFormat; import java.util.List; + import mcp.mobius.waila.api.ITaggedList; import mcp.mobius.waila.api.IWailaConfigHandler; import mcp.mobius.waila.api.IWailaDataAccessor; @@ -42,9 +22,27 @@ import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; import net.minecraft.world.WorldSettings; import net.minecraft.world.chunk.IChunkProvider; -import net.minecraft.world.storage.WorldInfo; import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.FluidStack; +import crazypants.enderio.EnderIO; +import crazypants.enderio.TileEntityEio; +import crazypants.enderio.block.BlockDarkSteelAnvil; +import crazypants.enderio.conduit.ConduitUtil; +import crazypants.enderio.conduit.IConduit; +import crazypants.enderio.conduit.IConduitBundle; +import crazypants.enderio.conduit.liquid.AbstractTankConduit; +import crazypants.enderio.conduit.liquid.ConduitTank; +import crazypants.enderio.conduit.power.IPowerConduit; +import crazypants.enderio.fluid.Fluids; +import crazypants.enderio.gui.IAdvancedTooltipProvider; +import crazypants.enderio.gui.IResourceTooltipProvider; +import crazypants.enderio.gui.TooltipAddera; +import crazypants.enderio.machine.IIoConfigurable; +import crazypants.enderio.machine.IoMode; +import crazypants.enderio.machine.capbank.TileCapBank; +import crazypants.enderio.machine.power.TileCapacitorBank; +import crazypants.enderio.power.IInternalPoweredTile; +import crazypants.util.IFacade; +import crazypants.util.Lang; public class WailaCompat implements IWailaDataProvider @@ -56,7 +54,7 @@ public class WailaCompat private WailaWorldWrapper(World wrapped) { - super(wrapped.getWorldInfo().getWorldName(), wrapped.provider, new WorldSettings(wrapped.getWorldInfo()), wrapped.theProfiler); + super(null, wrapped.getWorldInfo().getWorldName(), wrapped.provider, new WorldSettings(wrapped.getWorldInfo()), wrapped.theProfiler); this.wrapped = wrapped; this.isRemote = wrapped.isRemote; } @@ -133,7 +131,7 @@ public class WailaCompat - ConfigHandler.instance().addConfig("Ender IO", "facades.hidden", Lang.localize("waila.config.hiddenfacades")); + ConfigHandler.instance().addConfig("MiscUtils", "facades.hidden", Lang.localize("waila.config.hiddenfacades")); IWailaInfoProvider.fmt.setMaximumFractionDigits(1); } @@ -151,7 +149,7 @@ public class WailaCompat Block facade = bundle.getFacade(accessor.getWorld(), pos.blockX, pos.blockY, pos.blockZ, accessor.getSide().ordinal()); if (facade != null) { - ItemStack ret = facade.getPickBlock(pos, new WailaWorldWrapper(accessor.getWorld(), null), pos.blockX, pos.blockY, pos.blockZ); + ItemStack ret = facade.getPickBlock(pos, new WailaWorldWrapper(accessor.getWorld()), pos.blockX, pos.blockY, pos.blockZ); return ret; } } diff --git a/src/Java/miscutil/enderio/conduit/GregTech/AbstractGtConduit.java b/src/Java/miscutil/enderio/conduit/GregTech/AbstractGtConduit.java deleted file mode 100644 index de0fc13371..0000000000 --- a/src/Java/miscutil/enderio/conduit/GregTech/AbstractGtConduit.java +++ /dev/null @@ -1,73 +0,0 @@ -package miscutil.enderio.conduit.GregTech; - -import mekanism.api.gas.Gas; -import mekanism.api.gas.GasStack; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; -import net.minecraftforge.common.util.ForgeDirection; -import crazypants.enderio.conduit.AbstractConduitNetwork; -import crazypants.enderio.conduit.gas.AbstractGasConduit; -import crazypants.enderio.conduit.geom.CollidableComponent; - -public class AbstractGtConduit extends AbstractGasConduit{ - - @Override - public ItemStack createItem() { - // TODO Auto-generated method stub - return null; - } - - @Override - public AbstractConduitNetwork getNetwork() { - // TODO Auto-generated method stub - return null; - } - - @Override - public boolean setNetwork(AbstractConduitNetwork network) { - // TODO Auto-generated method stub - return false; - } - - @Override - public IIcon getTextureForState(CollidableComponent component) { - // TODO Auto-generated method stub - return null; - } - - @Override - public IIcon getTransmitionTextureForState(CollidableComponent component) { - // TODO Auto-generated method stub - return null; - } - - @Override - public int receiveGas(ForgeDirection side, GasStack stack) { - // TODO Auto-generated method stub - return 0; - } - - @Override - public GasStack drawGas(ForgeDirection side, int amount) { - // TODO Auto-generated method stub - return null; - } - - @Override - public boolean canReceiveGas(ForgeDirection side, Gas type) { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean canDrawGas(ForgeDirection side, Gas type) { - // TODO Auto-generated method stub - return false; - } - - protected boolean canJoinNeighbour(IGtConduit n) { - // TODO Auto-generated method stub - return false; - } - -} diff --git a/src/Java/miscutil/enderio/conduit/GregTech/AbstractGtTankConduit.java b/src/Java/miscutil/enderio/conduit/GregTech/AbstractGtTankConduit.java deleted file mode 100644 index 1b440aa0bb..0000000000 --- a/src/Java/miscutil/enderio/conduit/GregTech/AbstractGtTankConduit.java +++ /dev/null @@ -1,161 +0,0 @@ -package miscutil.enderio.conduit.GregTech; - -import java.util.List; - -import mekanism.api.gas.GasStack; -import mekanism.api.gas.IGasHandler; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.util.ForgeDirection; -import crazypants.enderio.conduit.AbstractConduitNetwork; -import crazypants.enderio.conduit.ConduitUtil; -import crazypants.enderio.conduit.ConnectionMode; -import crazypants.enderio.conduit.RaytraceResult; -import crazypants.enderio.tool.ToolUtil; -import crazypants.util.BlockCoord; - -public abstract class AbstractGtTankConduit extends AbstractGtConduit { - - protected ConduitGtTank tank = new ConduitGtTank(0); - protected boolean stateDirty = false; - protected long lastEmptyTick = 0; - protected int numEmptyEvents = 0; - - @Override - public boolean onBlockActivated(EntityPlayer player, RaytraceResult res, List all) { - if(player.getCurrentEquippedItem() == null) { - return false; - } - if(ToolUtil.isToolEquipped(player)) { - - if(!getBundle().getEntity().getWorldObj().isRemote) { - - if(res != null && res.component != null) { - - ForgeDirection connDir = res.component.dir; - ForgeDirection faceHit = ForgeDirection.getOrientation(res.movingObjectPosition.sideHit); - - if(connDir == ForgeDirection.UNKNOWN || connDir == faceHit) { - - if(getConnectionMode(faceHit) == ConnectionMode.DISABLED) { - setConnectionMode(faceHit, getNextConnectionMode(faceHit)); - return true; - } - - BlockCoord loc = getLocation().getLocation(faceHit); - IGtConduit n = ConduitUtil.getConduit(getBundle().getEntity().getWorldObj(), loc.x, loc.y, loc.z, IGtConduit.class); - if(n == null) { - return false; - } - if(!canJoinNeighbour(n)) { - return false; - } - if(!(n instanceof AbstractGtTankConduit)) { - return false; - } - AbstractGtTankConduit neighbour = (AbstractGtTankConduit) n; - if(neighbour.getGasType() == null || getGasType() == null) { - GasStack type = getGasType(); - type = type != null ? type : neighbour.getGasType(); - neighbour.setGasTypeOnNetwork(neighbour, type); - setGasTypeOnNetwork(this, type); - } - return ConduitUtil.joinConduits(this, faceHit); - } else if(containsExternalConnection(connDir)) { - // Toggle extraction mode - setConnectionMode(connDir, getNextConnectionMode(connDir)); - } else if(containsConduitConnection(connDir)) { - GasStack curGasType = null; - if(getTankNetwork() != null) { - curGasType = getTankNetwork().getGasType(); - } - ConduitUtil.disconectConduits(this, connDir); - setGasType(curGasType); - - } - } - } - return true; - - } - - return false; - } - - private void setGasTypeOnNetwork(AbstractGtTankConduit con, GasStack type) { - AbstractConduitNetwork n = con.getNetwork(); - if(n != null) { - AbstractGtTankConduitNetwork network = (AbstractGtTankConduitNetwork) n; - network.setGasType(type); - } - - } - - protected abstract boolean canJoinNeighbour(IGtConduit n); - - public abstract AbstractGtTankConduitNetwork getTankNetwork(); - - public void setGasType(GasStack gasType) { - if(tank.getGas() != null && tank.getGas().isGasEqual(gasType)) { - return; - } - if(gasType != null) { - gasType = gasType.copy(); - } else if(tank.getGas() == null) { - return; - } - tank.setGas(gasType); - stateDirty = true; - } - - public ConduitGtTank getTank() { - return tank; - } - - public GasStack getGasType() { - GasStack result = null; - if(getTankNetwork() != null) { - result = getTankNetwork().getGasType(); - } - if(result == null) { - result = tank.getGas(); - } - return result; - } - - @Override - public boolean canOutputToDir(ForgeDirection dir) { - if (super.canOutputToDir(dir)) { - IGasHandler ext = getExternalHandler(dir); - return ext != null && ext.canReceiveGas(dir.getOpposite(), tank.getGasType()); - } - return false; - } - - protected abstract void updateTank(); - - @Override - public void readFromNBT(NBTTagCompound nbtRoot, short nbtVersion) { - super.readFromNBT(nbtRoot, nbtVersion); - updateTank(); - if(nbtRoot.hasKey("tank")) { - GasStack gas = GasStack.readFromNBT(nbtRoot.getCompoundTag("tank")); - tank.setGas(gas); - } else { - tank.setGas(null); - } - } - - @Override - public void writeToNBT(NBTTagCompound nbtRoot) { - super.writeToNBT(nbtRoot); - GasStack gt = getGasType(); - if(GtUtil.isGasValid(gt)) { - updateTank(); - gt = gt.copy(); - gt.amount = tank.getStored(); - nbtRoot.setTag("tank", gt.write(new NBTTagCompound())); - } - } - -} diff --git a/src/Java/miscutil/enderio/conduit/GregTech/AbstractGtTankConduitNetwork.java b/src/Java/miscutil/enderio/conduit/GregTech/AbstractGtTankConduitNetwork.java deleted file mode 100644 index e48a9b97e5..0000000000 --- a/src/Java/miscutil/enderio/conduit/GregTech/AbstractGtTankConduitNetwork.java +++ /dev/null @@ -1,64 +0,0 @@ -package miscutil.enderio.conduit.GregTech; - -import mekanism.api.gas.GasStack; -import crazypants.enderio.conduit.AbstractConduitNetwork; - -public class AbstractGtTankConduitNetwork extends AbstractConduitNetwork { - - protected GasStack gasType; - private int test; - protected AbstractGtTankConduitNetwork(Class cl) { - super(cl); - } - - public GasStack getGasType() { - return gasType; - } - - @Override - public Class getBaseConduitType() { - return IGtConduit.class; - } - - @Override - public void addConduit(T con) { - super.addConduit(con); - con.setGasType(gasType); - } - - public boolean setGasType(GasStack newType) { - if(gasType != null && gasType.isGasEqual(newType)) { - return false; - } - if(newType != null) { - gasType = newType.copy(); - gasType.amount = 0; - } else { - gasType = null; - } - for (AbstractGtTankConduit conduit : conduits) { - conduit.setGasType(gasType); - } - return true; - } - - public boolean canAcceptGas(GasStack acceptable) { - return areGassCompatable(gasType, acceptable); - } - - public static boolean areGassCompatable(GasStack a, GasStack b) { - if(a == null || b == null) { - return true; - } - return a.isGasEqual(b); - } - - public int getTotalVolume() { - int totalVolume = 0; - for (T con : conduits) { - totalVolume += con.getTank().getStored(); - } - return totalVolume; - } - -} diff --git a/src/Java/miscutil/enderio/conduit/GregTech/ConduitGtTank.java b/src/Java/miscutil/enderio/conduit/GregTech/ConduitGtTank.java deleted file mode 100644 index d1a81f32d2..0000000000 --- a/src/Java/miscutil/enderio/conduit/GregTech/ConduitGtTank.java +++ /dev/null @@ -1,153 +0,0 @@ -package miscutil.enderio.conduit.GregTech; - -import mekanism.api.gas.GasStack; -import mekanism.api.gas.GasTank; -import net.minecraft.nbt.NBTTagCompound; - -public class ConduitGtTank extends GasTank { - - private int capacity; - - ConduitGtTank(int capacity) { - super(capacity); - this.capacity = capacity; - } - - public float getFilledRatio() { - if(getStored() <= 0) { - return 0; - } - if(getMaxGas() <= 0) { - return -1; - } - float res = (float) getStored() / getMaxGas(); - return res; - } - - public boolean isFull() { - return getStored() >= getMaxGas(); - } - - public void setAmount(int amount) { - if(stored != null) { - stored.amount = amount; - } - } - - public int getAvailableSpace() { - return getMaxGas() - getStored(); - } - - public void addAmount(int amount) { - setAmount(getStored() + amount); - } - - @Override - public int getMaxGas() { - return this.capacity; - } - - public void setCapacity(int capacity) { - this.capacity = capacity; - if(getStored() > capacity) { - setAmount(capacity); - } - } - - @Override - public int receive(GasStack resource, boolean doReceive) { - if(resource == null || resource.getGas().getID() < 0) { - return 0; - } - - if(stored == null || stored.getGas().getID() < 0) { - if(resource.amount <= capacity) { - if(doReceive) { - setGas(resource.copy()); - } - return resource.amount; - } else { - if(doReceive) { - stored = resource.copy(); - stored.amount = capacity; - } - return capacity; - } - } - - if(!stored.isGasEqual(resource)) { - return 0; - } - - int space = capacity - stored.amount; - if(resource.amount <= space) { - if(doReceive) { - addAmount(resource.amount); - } - return resource.amount; - } else { - if(doReceive) { - stored.amount = capacity; - } - return space; - } - - } - - @Override - public GasStack draw(int maxDrain, boolean doDraw) { - if(stored == null || stored.getGas().getID() < 0) { - return null; - } - if(stored.amount <= 0) { - return null; - } - - int used = maxDrain; - if(stored.amount < used) { - used = stored.amount; - } - - if(doDraw) { - addAmount(-used); - } - - GasStack drained = new GasStack(stored.getGas().getID(), used); - - if(stored.amount < 0) { - stored.amount = 0; - } - return drained; - } - - public String getGasName() { - return stored != null ? stored.getGas().getLocalizedName() : null; - } - - public boolean containsValidGas() { - return GtUtil.isGasValid(stored); - } - - public NBTTagCompound write(NBTTagCompound nbt) { - if(containsValidGas()) { - stored.write(nbt); - } else { - nbt.setBoolean("emptyGasTank", true); - } - return nbt; - } - - public void read(NBTTagCompound nbt) { - if(!nbt.hasKey("emptyGasTank")) { - GasStack gas = GasStack.readFromNBT(nbt); - if(gas != null) { - setGas(gas); - } - } - } - - public boolean isEmpty() { - return stored == null || stored.amount == 0; - } - -} diff --git a/src/Java/miscutil/enderio/conduit/GregTech/GtConduit.java b/src/Java/miscutil/enderio/conduit/GregTech/GtConduit.java deleted file mode 100644 index 3af9f089e4..0000000000 --- a/src/Java/miscutil/enderio/conduit/GregTech/GtConduit.java +++ /dev/null @@ -1,265 +0,0 @@ -package miscutil.enderio.conduit.GregTech; - -import java.util.HashMap; -import java.util.Map; - -import mekanism.api.gas.Gas; -import mekanism.api.gas.GasStack; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import crazypants.enderio.EnderIO; -import crazypants.enderio.conduit.AbstractConduitNetwork; -import crazypants.enderio.conduit.ConnectionMode; -import crazypants.enderio.conduit.IConduit; -import crazypants.enderio.conduit.geom.CollidableComponent; -import crazypants.enderio.config.Config; -import crazypants.render.IconUtil; -import crazypants.util.BlockCoord; - -public class GtConduit extends AbstractGtTankConduit { - - public static final int CONDUIT_VOLUME = 1000; - - public static final String ICON_KEY = "enderio:gasConduit"; - public static final String ICON_CORE_KEY = "enderio:gasConduitCore"; - public static final String ICON_EXTRACT_KEY = "enderio:gasConduitInput"; - public static final String ICON_INSERT_KEY = "enderio:gasConduitOutput"; - public static final String ICON_EMPTY_EDGE = "enderio:gasConduitEdge"; - - static final Map ICONS = new HashMap(); - - @SideOnly(Side.CLIENT) - public static void initIcons() { - IconUtil.addIconProvider(new IconUtil.IIconProvider() { - - @Override - public void registerIcons(IIconRegister register) { - ICONS.put(ICON_KEY, register.registerIcon(ICON_KEY)); - ICONS.put(ICON_CORE_KEY, register.registerIcon(ICON_CORE_KEY)); - ICONS.put(ICON_EXTRACT_KEY, register.registerIcon(ICON_EXTRACT_KEY)); - ICONS.put(ICON_INSERT_KEY, register.registerIcon(ICON_INSERT_KEY)); - ICONS.put(ICON_EMPTY_EDGE, register.registerIcon(ICON_EMPTY_EDGE)); - } - - @Override - public int getTextureType() { - return 0; - } - - }); - } - - private GtConduitNetwork network; - - private long ticksSinceFailedExtract = 0; - - public static final int MAX_EXTRACT_PER_TICK = Config.gasConduitExtractRate; - - public static final int MAX_IO_PER_TICK = Config.gasConduitMaxIoRate; - - public GtConduit() { - updateTank(); - } - - @Override - public void updateEntity(World world) { - super.updateEntity(world); - if(world.isRemote) { - return; - } - doExtract(); - if(stateDirty) { - getBundle().dirty(); - stateDirty = false; - } - } - - private void doExtract() { - BlockCoord loc = getLocation(); - if(!hasConnectionMode(ConnectionMode.INPUT)) { - return; - } - if(network == null) { - return; - } - - // assume failure, reset to 0 if we do extract - ticksSinceFailedExtract++; - if(ticksSinceFailedExtract > 25 && ticksSinceFailedExtract % 10 != 0) { - // after 25 ticks of failing, only check every 10 ticks - return; - } - - Gas f = tank.getGas() == null ? null : tank.getGas().getGas(); - for (ForgeDirection dir : externalConnections) { - if(autoExtractForDir(dir)) { - if(network.extractFrom(this, dir, MAX_EXTRACT_PER_TICK)) { - ticksSinceFailedExtract = 0; - } - } - } - - } - - @Override - protected void updateTank() { - tank.setCapacity(CONDUIT_VOLUME); - if(network != null) { - network.updateConduitVolumes(); - } - } - - @Override - public ItemStack createItem() { - return new ItemStack(EnderIO.itemGasConduit); - } - - @Override - public AbstractConduitNetwork getNetwork() { - return network; - } - - @Override - public boolean setNetwork(AbstractConduitNetwork network) { - if(network == null) { - this.network = null; - return true; - } - if(!(network instanceof GtConduitNetwork)) { - return false; - } - - GtConduitNetwork n = (GtConduitNetwork) network; - if(tank.getGas() == null) { - tank.setGas(n.getGasType() == null ? null : n.getGasType().copy()); - } else if(n.getGasType() == null) { - n.setGasType(tank.getGas()); - } else if(!tank.getGas().isGasEqual(n.getGasType())) { - return false; - } - this.network = n; - return true; - - } - - @Override - public boolean canConnectToConduit(ForgeDirection direction, IConduit con) { - if(!super.canConnectToConduit(direction, con)) { - return false; - } - if(!(con instanceof GtConduit)) { - return false; - } - if(getGasType() != null && ((GtConduit) con).getGasType() == null) { - return false; - } - return GtConduitNetwork.areGassCompatable(getGasType(), ((GtConduit) con).getGasType()); - } - - @Override - public void setConnectionMode(ForgeDirection dir, ConnectionMode mode) { - super.setConnectionMode(dir, mode); - refreshInputs(dir); - } - - private void refreshInputs(ForgeDirection dir) { - if(network == null) { - return; - } - GtOutput lo = new GtOutput(getLocation().getLocation(dir), dir.getOpposite()); - network.removeInput(lo); - if(getConnectionMode(dir).acceptsOutput() && containsExternalConnection(dir)) { - network.addInput(lo); - } - } - - @Override - public void externalConnectionAdded(ForgeDirection fromDirection) { - super.externalConnectionAdded(fromDirection); - refreshInputs(fromDirection); - } - - @Override - public void externalConnectionRemoved(ForgeDirection fromDirection) { - super.externalConnectionRemoved(fromDirection); - refreshInputs(fromDirection); - } - - @Override - public IIcon getTextureForState(CollidableComponent component) { - if(component.dir == ForgeDirection.UNKNOWN) { - return ICONS.get(ICON_CORE_KEY); - } - return ICONS.get(ICON_KEY); - } - - public IIcon getTextureForInputMode() { - return ICONS.get(ICON_EXTRACT_KEY); - } - - public IIcon getTextureForOutputMode() { - return ICONS.get(ICON_INSERT_KEY); - } - - public IIcon getNotSetEdgeTexture() { - return ICONS.get(ICON_EMPTY_EDGE); - } - - @Override - public IIcon getTransmitionTextureForState(CollidableComponent component) { - if(isActive() && tank.containsValidGas()) { - return tank.getGas().getGas().getIcon(); - } - return null; - } - - // ------------------------------------------- Gas API - - @Override - public int receiveGas(ForgeDirection from, GasStack resource) { - if(network == null || !getConnectionMode(from).acceptsInput()) { - return 0; - } - return network.fill(from, resource, true); - } - - @Override - public GasStack drawGas(ForgeDirection from, int maxDrain) { - if(network == null || !getConnectionMode(from).acceptsOutput()) { - return null; - } - return network.drain(from, maxDrain, true); - } - - @Override - public boolean canReceiveGas(ForgeDirection from, Gas gas) { - if(network == null) { - return false; - } - return getConnectionMode(from).acceptsInput() && GtConduitNetwork.areGassCompatable(getGasType(), new GasStack(gas, 0)); - } - - @Override - public boolean canDrawGas(ForgeDirection from, Gas gas) { - if(network == null) { - return false; - } - return getConnectionMode(from).acceptsOutput() && GtConduitNetwork.areGassCompatable(getGasType(), new GasStack(gas, 0)); - } - - @Override - protected boolean canJoinNeighbour(IGtConduit n) { - return n instanceof GtConduit; - } - - @Override - public AbstractGtTankConduitNetwork getTankNetwork() { - return network; - } - -} diff --git a/src/Java/miscutil/enderio/conduit/GregTech/GtConduitNetwork.java b/src/Java/miscutil/enderio/conduit/GregTech/GtConduitNetwork.java deleted file mode 100644 index 7855547a7e..0000000000 --- a/src/Java/miscutil/enderio/conduit/GregTech/GtConduitNetwork.java +++ /dev/null @@ -1,310 +0,0 @@ -package miscutil.enderio.conduit.GregTech; - -import java.util.HashSet; -import java.util.Iterator; -import java.util.Set; - -import mekanism.api.gas.GasStack; -import mekanism.api.gas.IGasHandler; -import miscutil.enderio.conduit.ConduitGTHandler; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; -import cpw.mods.fml.common.gameevent.TickEvent.ServerTickEvent; -import crazypants.enderio.conduit.ConduitNetworkTickHandler; -import crazypants.enderio.conduit.ConduitNetworkTickHandler.TickListener; -import crazypants.enderio.conduit.IConduit; -import crazypants.util.BlockCoord; - -public class GtConduitNetwork extends AbstractGtTankConduitNetwork { - - private final ConduitGtTank tank = new ConduitGtTank(0); - - private final Set outputs = new HashSet(); - - private Iterator outputIterator; - - private int ticksActiveUnsynced; - - private boolean lastSyncedActive = false; - - private int lastSyncedVolume = -1; - - private long timeAtLastApply; - - private final InnerTickHandler tickHandler = new InnerTickHandler(); - - public GtConduitNetwork() { - super(GtConduit.class); - } - - @Override - public Class getBaseConduitType() { - return IGtConduit.class; - } - - @Override - public void addConduit(GtConduit con) { - tank.setCapacity(tank.getMaxGas() + GtConduit.CONDUIT_VOLUME); - if(con.getTank().containsValidGas()) { - tank.addAmount(con.getTank().getStored()); - } - for (ForgeDirection dir : con.getExternalConnections()) { - if(con.getConnectionMode(dir).acceptsOutput()) { - outputs.add(new GtOutput(con.getLocation().getLocation(dir), dir.getOpposite())); - } - } - outputIterator = null; - super.addConduit(con); - } - - @Override - public boolean setGasType(GasStack newType) { - if(super.setGasType(newType)) { - - GasStack ft = getGasType(); - tank.setGas(ft == null ? null : ft.copy()); - return true; - } - return false; - } - - @Override - public void destroyNetwork() { - setConduitVolumes(); - outputs.clear(); - super.destroyNetwork(); - } - - private void setConduitVolumes() { - if(tank.containsValidGas() && !conduits.isEmpty()) { - GasStack gasPerConduit = tank.getGas().copy(); - int numCons = conduits.size(); - int leftOvers = gasPerConduit.amount % numCons; - gasPerConduit.amount = gasPerConduit.amount / numCons; - - for (GtConduit con : conduits) { - GasStack f = gasPerConduit.copy(); - if(leftOvers > 0) { - f.amount += 1; - leftOvers--; - } - con.getTank().setGas(f); - BlockCoord bc = con.getLocation(); - con.getBundle().getEntity().getWorldObj().markTileEntityChunkModified(bc.x, bc.y, bc.z, con.getBundle().getEntity()); - } - - } - } - - @Override - 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 > 0 && curTime != timeAtLastApply) { - timeAtLastApply = curTime; - ConduitNetworkTickHandler.instance.addListener(tickHandler); - } - - } - - private void doTick() { - if(gasType == null || outputs.isEmpty() || !tank.containsValidGas() || tank.isEmpty()) { - updateActiveState(); - return; - } - - if(outputIterator == null || !outputIterator.hasNext()) { - outputIterator = outputs.iterator(); - } - - updateActiveState(); - - int numVisited = 0; - while (!tank.isEmpty() && numVisited < outputs.size()) { - if(!outputIterator.hasNext()) { - outputIterator = outputs.iterator(); - } - GtOutput output = outputIterator.next(); - if(output != null) { - ConduitGTHandler cont = (ConduitGTHandler) getTankContainer(output.location); - if(cont != null) { - GasStack offer = tank.getGas().copy(); - int filled = cont.receiveGas(output.dir, offer); - if(filled > 0) { - tank.addAmount(-filled); - - } - } - } - numVisited++; - } - - } - - private void updateActiveState() { - boolean isActive = tank.containsValidGas() && !tank.isEmpty(); - if(lastSyncedActive != isActive) { - ticksActiveUnsynced++; - } else { - ticksActiveUnsynced = 0; - } - if(ticksActiveUnsynced >= 10 || ticksActiveUnsynced > 0 && isActive) { - if(!isActive) { - setGasType(null); - } - for (IConduit con : conduits) { - con.setActive(isActive); - } - lastSyncedActive = isActive; - ticksActiveUnsynced = 0; - } - } - - public int fill(ForgeDirection from, GasStack resource, boolean doFill) { - if(resource == null) { - return 0; - } - resource.amount = Math.min(resource.amount, GtConduit.MAX_IO_PER_TICK); - boolean gasWasValid = tank.containsValidGas(); - int res = tank.receive(resource, doFill); - if(doFill && res > 0 && gasWasValid) { - int vol = tank.getStored(); - setGasType(resource); - tank.setAmount(vol); - } - return res; - } - - public GasStack drain(ForgeDirection from, GasStack resource, boolean doDrain) { - if(resource == null || tank.isEmpty() || !tank.containsValidGas() || !GtConduitNetwork.areGassCompatable(getGasType(), resource)) { - return null; - } - int amount = Math.min(resource.amount, tank.getStored()); - amount = Math.min(amount, GtConduit.MAX_IO_PER_TICK); - GasStack result = resource.copy(); - result.amount = amount; - if(doDrain) { - tank.addAmount(-amount); - } - return result; - } - - public GasStack drain(ForgeDirection from, int maxDrain, boolean doDrain) { - if(tank.isEmpty() || !tank.containsValidGas()) { - return null; - } - int amount = Math.min(maxDrain, tank.getStored()); - GasStack result = tank.getGas().copy(); - result.amount = amount; - if(doDrain) { - tank.addAmount(-amount); - } - return result; - } - - public boolean extractFrom(GtConduit advancedGtConduit, ForgeDirection dir, int maxExtractPerTick) { - - if(tank.isFull()) { - return false; - } - - IGasHandler extTank = getTankContainer(advancedGtConduit, dir); - if(extTank != null) { - int maxExtract = Math.min(maxExtractPerTick, tank.getAvailableSpace()); - - if(gasType == null || !tank.containsValidGas()) { - GasStack drained = extTank.drawGas(dir.getOpposite(), maxExtract); - if(drained == null || drained.amount <= 0) { - return false; - } - setGasType(drained); - tank.setGas(drained.copy()); - return true; - } - - GasStack couldDrain = gasType.copy(); - couldDrain.amount = maxExtract; - - // GasStack drained = extTank.drain(dir.getOpposite(), couldDrain, true); - // if(drained == null || drained.amount <= 0) { - // return false; - // } - // tank.addAmount(drained.amount); - - //Have to use this 'double handle' approach to work around an issue with TiC - GasStack drained = extTank.drawGas(dir.getOpposite(), maxExtract); - if(drained == null || drained.amount == 0) { - return false; - } else { - if(drained.isGasEqual(getGasType())) { - tank.addAmount(drained.amount); - } - } - return true; - } - return false; - } - - public IGasHandler getTankContainer(BlockCoord bc) { - World w = getWorld(); - if(w == null) { - return null; - } - TileEntity te = w.getTileEntity(bc.x, bc.y, bc.z); - if(te instanceof IGasHandler) { - return (IGasHandler) te; - } - return null; - } - - public IGasHandler getTankContainer(GtConduit con, ForgeDirection dir) { - BlockCoord bc = con.getLocation().getLocation(dir); - return getTankContainer(bc); - } - - World getWorld() { - if(conduits.isEmpty()) { - return null; - } - return conduits.get(0).getBundle().getWorld(); - } - - public void removeInput(GtOutput lo) { - outputs.remove(lo); - outputIterator = null; - } - - public void addInput(GtOutput lo) { - outputs.add(lo); - outputIterator = null; - } - - public void updateConduitVolumes() { - if(tank.getStored() == lastSyncedVolume) { - return; - } - setConduitVolumes(); - lastSyncedVolume = tank.getStored(); - } - - private class InnerTickHandler implements TickListener { - - @Override - public void tickStart(ServerTickEvent evt) { - } - - @Override - public void tickEnd(ServerTickEvent evt) { - doTick(); - } - } - -} diff --git a/src/Java/miscutil/enderio/conduit/GregTech/GtConduitRenderer.java b/src/Java/miscutil/enderio/conduit/GregTech/GtConduitRenderer.java deleted file mode 100644 index 00070b0db5..0000000000 --- a/src/Java/miscutil/enderio/conduit/GregTech/GtConduitRenderer.java +++ /dev/null @@ -1,180 +0,0 @@ -package miscutil.enderio.conduit.GregTech; - -import static crazypants.render.CubeRenderer.addVecWithUV; - -import java.util.List; - -import mekanism.api.gas.GasStack; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.util.IIcon; -import net.minecraftforge.common.util.ForgeDirection; -import crazypants.enderio.EnderIO; -import crazypants.enderio.conduit.ConnectionMode; -import crazypants.enderio.conduit.IConduit; -import crazypants.enderio.conduit.IConduitBundle; -import crazypants.enderio.conduit.geom.CollidableComponent; -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.RenderUtil; -import crazypants.vecmath.Vector3d; -import crazypants.vecmath.Vertex; - -public class GtConduitRenderer extends DefaultConduitRenderer { - - @Override - public boolean isRendererForConduit(IConduit conduit) { - return conduit instanceof GtConduit; - } - - @Override - public void renderEntity(ConduitBundleRenderer conduitBundleRenderer, IConduitBundle te, IConduit conduit, double x, double y, double z, float partialTick, - float worldLight, RenderBlocks rb) { - super.renderEntity(conduitBundleRenderer, te, conduit, x, y, z, partialTick, worldLight, rb); - - if(!conduit.hasConnectionMode(ConnectionMode.INPUT) && !conduit.hasConnectionMode(ConnectionMode.OUTPUT)) { - return; - } - GtConduit pc = (GtConduit) conduit; - for (ForgeDirection dir : conduit.getExternalConnections()) { - IIcon tex = null; - if(conduit.getConnectionMode(dir) == ConnectionMode.INPUT) { - tex = pc.getTextureForInputMode(); - } else if(conduit.getConnectionMode(dir) == ConnectionMode.OUTPUT) { - tex = pc.getTextureForOutputMode(); - } - if(tex != null) { - Offset offset = te.getOffset(IGtConduit.class, dir); - ConnectionModeGeometry.renderModeConnector(dir, offset, tex, true); - } - } - } - - @Override - protected void renderConduit(IIcon tex, IConduit conduit, CollidableComponent component, float brightness) { - super.renderConduit(tex, conduit, component, brightness); - - if(isNSEWUD(component.dir)) { - GtConduit lc = (GtConduit) conduit; - - GasStack gas = lc.getGasType(); - IIcon texture = null; - if(gas != null) { - texture = gas.getGas().getIcon(); - } - - if(texture == null) { - texture = lc.getNotSetEdgeTexture(); - } - - float scaleFactor = 0.75f; - float xLen = Math.abs(component.dir.offsetX) == 1 ? 1 : scaleFactor; - float yLen = Math.abs(component.dir.offsetY) == 1 ? 1 : scaleFactor; - float zLen = Math.abs(component.dir.offsetZ) == 1 ? 1 : scaleFactor; - - BoundingBox cube = component.bound; - BoundingBox bb = cube.scale(xLen, yLen, zLen); - - for (ForgeDirection d : ForgeDirection.VALID_DIRECTIONS) { - if(d != component.dir && d != component.dir.getOpposite()) { - - ForgeDirection vDir = RenderUtil.getVDirForFace(d); - if(component.dir == ForgeDirection.UP || component.dir == ForgeDirection.DOWN) { - vDir = RenderUtil.getUDirForFace(d); - } else if((component.dir == ForgeDirection.NORTH || component.dir == ForgeDirection.SOUTH) && d.offsetY != 0) { - vDir = RenderUtil.getUDirForFace(d); - } - - float minU = texture.getMinU(); - float maxU = texture.getMaxU(); - float minV = texture.getMinV(); - float maxV = texture.getMaxV(); - - float sideScale = Math.max(bb.sizeX(), bb.sizeY()) * 2 / 16f; - sideScale = Math.max(sideScale, bb.sizeZ() * 2 / 16f); - float width = Math.min(bb.sizeX(), bb.sizeY()) * 15f / 16f; - - List corners = bb.getCornersWithUvForFace(d, minU, maxU, minV, maxV); - moveEdgeCorners(corners, vDir, width); - moveEdgeCorners(corners, component.dir.getOpposite(), sideScale); - for (Vertex c : corners) { - addVecWithUV(c.xyz, c.uv.x, c.uv.y); - } - - corners = bb.getCornersWithUvForFace(d, minU, maxU, minV, maxV); - moveEdgeCorners(corners, vDir.getOpposite(), width); - moveEdgeCorners(corners, component.dir.getOpposite(), sideScale); - for (Vertex c : corners) { - addVecWithUV(c.xyz, c.uv.x, c.uv.y); - } - - } - } - - if(conduit.getConnectionMode(component.dir) == ConnectionMode.DISABLED) { - tex = EnderIO.blockConduitBundle.getConnectorIcon(component.data); - List corners = component.bound.getCornersWithUvForFace(component.dir, tex.getMinU(), tex.getMaxU(), tex.getMinV(), tex.getMaxV()); - Tessellator tessellator = Tessellator.instance; - for (Vertex c : corners) { - addVecWithUV(c.xyz, c.uv.x, c.uv.y); - } - //back face - for (int i = corners.size() - 1; i >= 0; i--) { - Vertex c = corners.get(i); - addVecWithUV(c.xyz, c.uv.x, c.uv.y); - } - } - - } - - } - - @Override - protected void renderTransmission(IConduit conduit, IIcon tex, CollidableComponent component, float selfIllum) { - super.renderTransmission(conduit, tex, component, selfIllum); - } - - private void moveEdgeCorners(List vertices, ForgeDirection edge, float scaleFactor) { - int[] indices = getClosest(edge, vertices); - vertices.get(indices[0]).xyz.x -= scaleFactor * edge.offsetX; - vertices.get(indices[1]).xyz.x -= scaleFactor * edge.offsetX; - vertices.get(indices[0]).xyz.y -= scaleFactor * edge.offsetY; - vertices.get(indices[1]).xyz.y -= scaleFactor * edge.offsetY; - vertices.get(indices[0]).xyz.z -= scaleFactor * edge.offsetZ; - vertices.get(indices[1]).xyz.z -= scaleFactor * edge.offsetZ; - } - - private int[] getClosest(ForgeDirection edge, List vertices) { - int[] res = new int[] { -1, -1 }; - boolean highest = edge.offsetX > 0 || edge.offsetY > 0 || edge.offsetZ > 0; - double minMax = highest ? -Double.MAX_VALUE : Double.MAX_VALUE; - int index = 0; - for (Vertex v : vertices) { - double val = get(v.xyz, edge); - if(highest ? val >= minMax : val <= minMax) { - if(val != minMax) { - res[0] = index; - } else { - res[1] = index; - } - minMax = val; - } - index++; - } - return res; - } - - private double get(Vector3d xyz, ForgeDirection edge) { - if(edge == ForgeDirection.EAST || edge == ForgeDirection.WEST) { - return xyz.x; - } - if(edge == ForgeDirection.UP || edge == ForgeDirection.DOWN) { - return xyz.y; - } - return xyz.z; - } - -} diff --git a/src/Java/miscutil/enderio/conduit/GregTech/GtOutput.java b/src/Java/miscutil/enderio/conduit/GregTech/GtOutput.java deleted file mode 100644 index afaa97eb00..0000000000 --- a/src/Java/miscutil/enderio/conduit/GregTech/GtOutput.java +++ /dev/null @@ -1,49 +0,0 @@ -package miscutil.enderio.conduit.GregTech; - -import net.minecraftforge.common.util.ForgeDirection; -import crazypants.util.BlockCoord; - -public class GtOutput { - - final ForgeDirection dir; - final BlockCoord location; - - public GtOutput(BlockCoord bc, ForgeDirection dir) { - this.dir = dir; - this.location = bc; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((location == null) ? 0 : location.hashCode()); - result = prime * result + ((dir == null) ? 0 : dir.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if(this == obj) - return true; - if(obj == null) - return false; - if(getClass() != obj.getClass()) - return false; - GtOutput other = (GtOutput) obj; - if(location == null) { - if(other.location != null) - return false; - } else if(!location.equals(other.location)) - return false; - if(dir != other.dir) - return false; - return true; - } - - @Override - public String toString() { - return "GasOutput [dir=" + dir + ", location=" + location + "]"; - } - -} \ No newline at end of file diff --git a/src/Java/miscutil/enderio/conduit/GregTech/GtUtil.java b/src/Java/miscutil/enderio/conduit/GregTech/GtUtil.java deleted file mode 100644 index 16408ca88c..0000000000 --- a/src/Java/miscutil/enderio/conduit/GregTech/GtUtil.java +++ /dev/null @@ -1,69 +0,0 @@ -package miscutil.enderio.conduit.GregTech; - -import mekanism.api.gas.GasStack; -import mekanism.api.gas.IGasHandler; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.IBlockAccess; -import cpw.mods.fml.common.Loader; -import crazypants.enderio.conduit.IConduitBundle; -import crazypants.enderio.config.Config; -import crazypants.util.BlockCoord; - -public final class GtUtil { - - private static boolean useCheckPerformed = false; - private static boolean isGasConduitEnabled = false; - - public static boolean isGasConduitEnabled() { - if (!useCheckPerformed) { - String configOption = Config.isGasConduitEnabled; - if (configOption.equalsIgnoreCase("auto")) { - isGasConduitEnabled = Loader.isModLoaded("Mekanism"); - if (isGasConduitEnabled) { - isGasConduitEnabled = Loader.instance().getIndexedModList().get("Mekanism").getVersion().startsWith("7"); - } - } else if (configOption.equalsIgnoreCase("true")) { - isGasConduitEnabled = true; - } else { - isGasConduitEnabled = false; - } - useCheckPerformed = true; - } - return isGasConduitEnabled; - } - - public static IGasHandler getExternalGasHandler(IBlockAccess world, BlockCoord bc) { - IGasHandler con = getGasHandler(world, bc); - return (con != null && !(con instanceof IConduitBundle)) ? con : null; - } - - public static IGasHandler getGasHandler(IBlockAccess world, BlockCoord bc) { - return getGasHandler(world, bc.x, bc.y, bc.z); - } - - public static IGasHandler getGasHandler(IBlockAccess world, int x, int y, int z) { - TileEntity te = world.getTileEntity(x, y, z); - return getGasHandler(te); - } - - public static IGasHandler getGasHandler(TileEntity te) { - if(te instanceof IGasHandler) { - return (IGasHandler) te; - } - return null; - } - - public static boolean isGasValid(GasStack gas) { - if(gas != null) { - String name = gas.getGas().getLocalizedName(); - if(name != null && !name.trim().isEmpty()) { - return true; - } - } - return false; - } - - private GtUtil() { - } - -} diff --git a/src/Java/miscutil/enderio/conduit/GregTech/IGtConduit.java b/src/Java/miscutil/enderio/conduit/GregTech/IGtConduit.java deleted file mode 100644 index 869966e33d..0000000000 --- a/src/Java/miscutil/enderio/conduit/GregTech/IGtConduit.java +++ /dev/null @@ -1,12 +0,0 @@ -package miscutil.enderio.conduit.GregTech; - -import net.minecraftforge.common.util.ForgeDirection; -import crazypants.enderio.conduit.IConduit; - -public interface IGtConduit extends IConduit { - - boolean canOutputToDir(ForgeDirection dir); - - boolean isExtractingFromDir(ForgeDirection dir); - -} diff --git a/src/Java/miscutil/enderio/conduit/GregTech/ItemGtConduit.java b/src/Java/miscutil/enderio/conduit/GregTech/ItemGtConduit.java deleted file mode 100644 index 9ded118f20..0000000000 --- a/src/Java/miscutil/enderio/conduit/GregTech/ItemGtConduit.java +++ /dev/null @@ -1,76 +0,0 @@ -package miscutil.enderio.conduit.GregTech; - -import java.util.List; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -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; - -public class ItemGtConduit extends AbstractItemConduit implements IAdvancedTooltipProvider { - - private static ItemConduitSubtype[] subtypes = new ItemConduitSubtype[] { - new ItemConduitSubtype(ModObject.itemGa