diff options
| author | Foghrye4 <foghrye4@gmail.com> | 2017-06-13 20:58:18 +0300 |
|---|---|---|
| committer | Foghrye4 <foghrye4@gmail.com> | 2017-06-13 20:58:18 +0300 |
| commit | 1da8dcd58647e34c9af94ceeecaeaf3b0d08c48c (patch) | |
| tree | f9de575627405d0c407b2afb442ab18a6fbea01f /ihl/flexible_cable | |
| parent | 50d62a1298f05d6d440a5bc261a0fdf9ffece893 (diff) | |
enet update
Diffstat (limited to 'ihl/flexible_cable')
| -rw-r--r-- | ihl/flexible_cable/AnchorTileEntity.java | 11 | ||||
| -rw-r--r-- | ihl/flexible_cable/FlexibleCableHolderBaseTileEntity.java | 17 | ||||
| -rw-r--r-- | ihl/flexible_cable/IHLENet.java | 2 | ||||
| -rw-r--r-- | ihl/flexible_cable/IHLGrid.java | 27 | ||||
| -rw-r--r-- | ihl/flexible_cable/PowerCableNodeEntity.java | 5 | ||||
| -rw-r--r-- | ihl/flexible_cable/RectifierTransformerUnitTileEntity.java | 8 | ||||
| -rw-r--r-- | ihl/flexible_cable/SubAnchorEnergyNetNode.java | 23 | ||||
| -rw-r--r-- | ihl/flexible_cable/SubRTUEnergyNetNode.java | 15 |
8 files changed, 102 insertions, 6 deletions
diff --git a/ihl/flexible_cable/AnchorTileEntity.java b/ihl/flexible_cable/AnchorTileEntity.java index 1262a01..2da08a6 100644 --- a/ihl/flexible_cable/AnchorTileEntity.java +++ b/ihl/flexible_cable/AnchorTileEntity.java @@ -75,6 +75,11 @@ public class AnchorTileEntity extends TileEntityBlock implements IEnergySink, IE MinecraftForge.EVENT_BUS.post(new EnergyTileUnloadEvent(this));
this.addedToEnergyNet = false;
}
+ for(SubAnchorEnergyNetNode sen:energyNetNodes)
+ {
+ sen.onUnloaded();
+ }
+
}
}
@@ -257,7 +262,7 @@ public class AnchorTileEntity extends TileEntityBlock implements IEnergySink, IE double amount=0d;
for(short i=0;i<6;i++)
{
- amount+=energyNetNodes[i].getDemandedEnergy();
+ amount=energyNetNodes[i].getDemandedEnergy();
}
return amount;
}
@@ -437,4 +442,8 @@ public class AnchorTileEntity extends TileEntityBlock implements IEnergySink, IE }
}
+
+ public boolean isTileEntityInvalid() {
+ return this.tileEntityInvalid;
+ }
}
diff --git a/ihl/flexible_cable/FlexibleCableHolderBaseTileEntity.java b/ihl/flexible_cable/FlexibleCableHolderBaseTileEntity.java index 2923ed2..919e130 100644 --- a/ihl/flexible_cable/FlexibleCableHolderBaseTileEntity.java +++ b/ihl/flexible_cable/FlexibleCableHolderBaseTileEntity.java @@ -41,6 +41,18 @@ public abstract class FlexibleCableHolderBaseTileEntity extends TileEntityInvent }
}
+ @Override
+ public void onUnloaded()
+ {
+ super.onUnloaded();
+ if(gridID!=-1)
+ {
+ IHLGrid grid = IHLMod.enet.getGrid(gridID);
+ grid.remove(this);
+ }
+ }
+
+
@SuppressWarnings("unchecked")
@Override
public void setFacing(short facing1)
@@ -217,4 +229,9 @@ public abstract class FlexibleCableHolderBaseTileEntity extends TileEntityInvent {
this.checkCables=b;
}
+
+ @Override
+ public boolean isTileEntityBaseInvalid(){
+ return this.tileEntityInvalid;
+ }
}
diff --git a/ihl/flexible_cable/IHLENet.java b/ihl/flexible_cable/IHLENet.java index cf0670d..2d4ec23 100644 --- a/ihl/flexible_cable/IHLENet.java +++ b/ihl/flexible_cable/IHLENet.java @@ -67,6 +67,8 @@ public class IHLENet { public IHLGrid getGrid(int gridID)
{
+ if(gridID==-1)
+ throw new IllegalArgumentException("Node should never ask grid with ID -1");
if(this.grids.get(gridID)==null)
{
IHLGrid cgrid;
diff --git a/ihl/flexible_cable/IHLGrid.java b/ihl/flexible_cable/IHLGrid.java index d223e10..92a64c8 100644 --- a/ihl/flexible_cable/IHLGrid.java +++ b/ihl/flexible_cable/IHLGrid.java @@ -21,7 +21,7 @@ public class IHLGrid public double energy=0D;
private IEnergyNetNode sink;
private IEnergyNetNode source;
- private double voltage;
+ private double voltage=400d;
private double lastVoltage;
public boolean isGridValid=true;
private double total20TicksEU;
@@ -139,6 +139,18 @@ public class IHLGrid private void updateGrid()
{
+ Iterator<IEnergyNetNode> atei2 = telist.iterator();
+ while (atei2.hasNext()) {
+ IEnergyNetNode cte = atei2.next();
+ if (cte.isTileEntityBaseInvalid()) {
+ if (!cte.getCableList().isEmpty()) {
+ for (IHLCable cable : cte.getCableList()) {
+ IHLMod.enet.cablesToGrids.remove(cable.chainUID);
+ }
+ }
+ atei2.remove();
+ }
+ }
if(this.source!=null &&
this.sink!=null &&
this.source!=this.sink &&
@@ -240,6 +252,8 @@ public class IHLGrid cursor=this.getHasCable(cable, cursor, gridTEList);
}
this.energyLossSinkMap.put(sink, powerLossPerSquaredEU);
+ if(voltage1<1d)
+ voltage1=1d;
this.voltageSinkMap.put(sink, voltage1);
}
this.calculatedSources.add(this.source);
@@ -299,4 +313,15 @@ public class IHLGrid }
}
}
+
+ public void remove(IEnergyNetNode e) {
+ this.telist.remove(e);
+ if(!e.getCableList().isEmpty())
+ {
+ for(IHLCable cable:e.getCableList())
+ {
+ IHLMod.enet.cablesToGrids.remove(cable.chainUID);
+ }
+ }
+ }
}
diff --git a/ihl/flexible_cable/PowerCableNodeEntity.java b/ihl/flexible_cable/PowerCableNodeEntity.java index 7396967..346b86c 100644 --- a/ihl/flexible_cable/PowerCableNodeEntity.java +++ b/ihl/flexible_cable/PowerCableNodeEntity.java @@ -235,4 +235,9 @@ public class PowerCableNodeEntity extends NodeEntity implements IEnergyNetNode{ @Override
public void injectEnergyInThisNode(double amount, double voltage) {}
+ @Override
+ public boolean isTileEntityBaseInvalid() {
+ return this.isDead;
+ }
+
}
diff --git a/ihl/flexible_cable/RectifierTransformerUnitTileEntity.java b/ihl/flexible_cable/RectifierTransformerUnitTileEntity.java index 484df85..60a5a76 100644 --- a/ihl/flexible_cable/RectifierTransformerUnitTileEntity.java +++ b/ihl/flexible_cable/RectifierTransformerUnitTileEntity.java @@ -66,6 +66,10 @@ public class RectifierTransformerUnitTileEntity extends TileEntityInventory impl @Override
public void onUnloaded()
{
+ for(short i=0;i<2;i++)
+ {
+ energyNetNodes[i].onUnloaded();
+ }
if (IC2.platform.isSimulating() && this.addedToEnergyNet)
{
MinecraftForge.EVENT_BUS.post(new EnergyTileUnloadEvent(this));
@@ -323,6 +327,10 @@ public class RectifierTransformerUnitTileEntity extends TileEntityInventory impl }
}
+
+ public boolean isTileEntityInvalid() {
+ return this.tileEntityInvalid;
+ }
}
diff --git a/ihl/flexible_cable/SubAnchorEnergyNetNode.java b/ihl/flexible_cable/SubAnchorEnergyNetNode.java index 5fd4d91..daada72 100644 --- a/ihl/flexible_cable/SubAnchorEnergyNetNode.java +++ b/ihl/flexible_cable/SubAnchorEnergyNetNode.java @@ -7,6 +7,7 @@ import ic2.api.energy.EnergyNet; import ic2.api.energy.event.EnergyTileLoadEvent; import ic2.api.energy.event.EnergyTileUnloadEvent; import ic2.api.energy.tile.IEnergySink; +import ic2.api.energy.tile.IEnergySource; import ic2.core.IC2; import ihl.IHLMod; import ihl.interfaces.IEnergyNetNode; @@ -152,6 +153,15 @@ public class SubAnchorEnergyNetNode implements IEnergyNetNode{ } } + public void onUnloaded() + { + if(gridID!=-1) + { + IHLGrid grid = IHLMod.enet.getGrid(gridID); + grid.remove(this); + } + } + public NBTTagCompound writeToNBT() { NBTTagCompound nbt = new NBTTagCompound(); @@ -186,10 +196,9 @@ public class SubAnchorEnergyNetNode implements IEnergyNetNode{ } else { - double dEnergy = this.getGrid().energy; - if(dEnergy<1d) + if(this.getGrid().energy<=1d) { - return Integer.MAX_VALUE; + return 65536d; } else { @@ -280,7 +289,7 @@ public class SubAnchorEnergyNetNode implements IEnergyNetNode{ } if(te instanceof IEnergySink) { - return ((IEnergySink)te).getDemandedEnergy(); + return ((IEnergySink)te).acceptsEnergyFrom(this.base, ForgeDirection.getOrientation(this.facing))?((IEnergySink)te).getDemandedEnergy():0d; } return 0d; } @@ -328,4 +337,10 @@ public class SubAnchorEnergyNetNode implements IEnergyNetNode{ amount=((IEnergySink)te1).injectEnergy(direction, amount, voltage); } } + + @Override + public boolean isTileEntityBaseInvalid() { + return base.isTileEntityInvalid(); + } + } diff --git a/ihl/flexible_cable/SubRTUEnergyNetNode.java b/ihl/flexible_cable/SubRTUEnergyNetNode.java index df5e9e4..06fc964 100644 --- a/ihl/flexible_cable/SubRTUEnergyNetNode.java +++ b/ihl/flexible_cable/SubRTUEnergyNetNode.java @@ -176,6 +176,15 @@ public class SubRTUEnergyNetNode implements IEnergyNetNode{ } } + public void onUnloaded() + { + if(gridID!=-1) + { + IHLGrid grid = IHLMod.enet.getGrid(gridID); + grid.remove(this); + } + } + public NBTTagCompound writeToNBT() { NBTTagCompound nbt = new NBTTagCompound(); @@ -302,4 +311,10 @@ public class SubRTUEnergyNetNode implements IEnergyNetNode{ } } } + + @Override + public boolean isTileEntityBaseInvalid() { + return this.base.isTileEntityInvalid(); + } + } |
