p2p fixes
This commit is contained in:
@@ -133,24 +133,42 @@ public class PartP2PFEPower extends PartP2PTunnel<PartP2PFEPower>
|
|||||||
}
|
}
|
||||||
|
|
||||||
final int amountPerOutput = maxReceive / outputTunnels;
|
final int amountPerOutput = maxReceive / outputTunnels;
|
||||||
int overflow = amountPerOutput == 0 ? maxReceive : maxReceive % amountPerOutput;
|
int overflow = 0;
|
||||||
|
|
||||||
if (outputs.isEmpty())
|
for( PartP2PFEPower o : PartP2PFEPower.this.getOutputs() )
|
||||||
{
|
|
||||||
for ( PartP2PFEPower o : PartP2PFEPower.this.getOutputs())
|
|
||||||
outputs.add( o );
|
outputs.add( o );
|
||||||
}
|
|
||||||
|
|
||||||
while ( !outputs.isEmpty() ) {
|
while( !outputs.isEmpty() )
|
||||||
|
{
|
||||||
PartP2PFEPower target = outputs.poll();
|
PartP2PFEPower target = outputs.poll();
|
||||||
final IEnergyStorage output = target.getAttachedEnergyStorage();
|
final IEnergyStorage output = target.getAttachedEnergyStorage();
|
||||||
final int toSend = amountPerOutput + overflow;
|
final int received = output.receiveEnergy( amountPerOutput, simulate );
|
||||||
final int received = output.receiveEnergy( toSend, simulate );
|
|
||||||
|
|
||||||
overflow = toSend - received;
|
overflow += amountPerOutput - received;
|
||||||
total += received;
|
total += received;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if( overflow > 0 )
|
||||||
|
{
|
||||||
|
for( PartP2PFEPower o : PartP2PFEPower.this.getOutputs() )
|
||||||
|
outputs.add( o );
|
||||||
|
|
||||||
|
while( !outputs.isEmpty() )
|
||||||
|
{
|
||||||
|
PartP2PFEPower target = outputs.poll();
|
||||||
|
final IEnergyStorage output = target.getAttachedEnergyStorage();
|
||||||
|
final int received = output.receiveEnergy( overflow, simulate );
|
||||||
|
|
||||||
|
overflow -= received;
|
||||||
|
total += received;
|
||||||
|
if( overflow == 0 )
|
||||||
|
{
|
||||||
|
outputs.clear();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if( !simulate )
|
if( !simulate )
|
||||||
{
|
{
|
||||||
PartP2PFEPower.this.queueTunnelDrain( PowerUnits.RF, total );
|
PartP2PFEPower.this.queueTunnelDrain( PowerUnits.RF, total );
|
||||||
|
|||||||
@@ -164,6 +164,7 @@ public class PartP2PGTCEPower extends PartP2PTunnel<PartP2PGTCEPower>
|
|||||||
|
|
||||||
if( amperage >= amperesUsed )
|
if( amperage >= amperesUsed )
|
||||||
{
|
{
|
||||||
|
outputs.clear();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user