From 0e613d05b85edd9a94d400ca014d778891408439 Mon Sep 17 00:00:00 2001 From: malte0811 Date: Wed, 4 Jan 2017 18:18:33 +0100 Subject: [PATCH] reduced the difference between IC2's wires and IndustrialWires's cables to prevent machines from blowing up when they shouldn't (There are still differences in some cases, but it works in most cases) added a "credits" file --- .../wire/TileEntityIC2ConnectorTin.java | 26 ++++++++++++++++--- .../assets/industrialwires/lang/credits.md | 1 + 2 files changed, 23 insertions(+), 4 deletions(-) create mode 100644 src/main/resources/assets/industrialwires/lang/credits.md diff --git a/src/main/java/malte0811/industrialWires/blocks/wire/TileEntityIC2ConnectorTin.java b/src/main/java/malte0811/industrialWires/blocks/wire/TileEntityIC2ConnectorTin.java index 02e1683..5f64399 100644 --- a/src/main/java/malte0811/industrialWires/blocks/wire/TileEntityIC2ConnectorTin.java +++ b/src/main/java/malte0811/industrialWires/blocks/wire/TileEntityIC2ConnectorTin.java @@ -56,8 +56,10 @@ public class TileEntityIC2ConnectorTin extends TileEntityImmersiveConnectable im boolean first = true; //IC2 net to IE net buffer double inBuffer = 0; + double maxToNet = 0; //IE net to IC2 net buffer double outBuffer = 0; + double maxToMachine = 0; double maxStored = IC2Wiretype.IC2_TYPES[0].getTransferRate()/8; int tier = 1; public TileEntityIC2ConnectorTin(boolean rel) { @@ -77,11 +79,12 @@ public class TileEntityIC2ConnectorTin extends TileEntityImmersiveConnectable im public void transferPower() { Set conns = new HashSet<>(ImmersiveNetHandler.INSTANCE.getIndirectEnergyConnections(pos, worldObj)); Map> maxOutputs = new HashMap<>(); + double outputMax = Math.min(inBuffer, maxToNet); double sum = 0; for (AbstractConnection c:conns) { IImmersiveConnectable iic = ApiUtils.toIIC(c.end, worldObj); if (iic instanceof IIC2Connector) { - double tmp = inBuffer-((IIC2Connector)iic).insertEnergy(inBuffer, true); + double tmp = inBuffer-((IIC2Connector)iic).insertEnergy(outputMax, true); if (tmp>.00000001) { maxOutputs.put(c, new ImmutablePair<>((IIC2Connector)iic, tmp)); sum+=tmp; @@ -91,7 +94,7 @@ public class TileEntityIC2ConnectorTin extends TileEntityImmersiveConnectable im if (sum<.0001) { return; } - final double oldInBuf = inBuffer; + final double oldInBuf = outputMax; HashMap transferedPerConn = ImmersiveNetHandler.INSTANCE.getTransferedRates(worldObj.provider.getDimension()); for (AbstractConnection c:maxOutputs.keySet()) { Pair p = maxOutputs.get(c); @@ -123,9 +126,18 @@ public class TileEntityIC2ConnectorTin extends TileEntityImmersiveConnectable im } return f; } + //Input through the net @Override public double insertEnergy(double eu, boolean simulate) { - double insert = Math.min(maxStored-outBuffer, eu); + final double insert = Math.min(maxStored-outBuffer, eu); + if (insert>0) { + if (outBuffermaxToMachine) { + maxToMachine = eu; + } + } if (!simulate) { outBuffer+=insert; } @@ -204,7 +216,13 @@ public class TileEntityIC2ConnectorTin extends TileEntityImmersiveConnectable im @Override public double injectEnergy(EnumFacing directionFrom, double amount, double voltage) { if (inBuffermaxToNet) { + maxToNet = amount; + } markDirty(); return 0; } @@ -213,7 +231,7 @@ public class TileEntityIC2ConnectorTin extends TileEntityImmersiveConnectable im @Override public double getOfferedEnergy() { - return outBuffer; + return Math.min(maxToMachine, outBuffer); } @Override diff --git a/src/main/resources/assets/industrialwires/lang/credits.md b/src/main/resources/assets/industrialwires/lang/credits.md new file mode 100644 index 0000000..7520971 --- /dev/null +++ b/src/main/resources/assets/industrialwires/lang/credits.md @@ -0,0 +1 @@ +**Chinese translation**: SihenZhang (Proofread by 3TUSK) \ No newline at end of file