Fix a last few issues, and stop leaking networks on the client

This commit is contained in:
Ben Spiers 2015-04-06 04:11:08 +01:00
parent c13b3b240f
commit d70595ad84
3 changed files with 17 additions and 2 deletions

View file

@ -52,6 +52,10 @@ public abstract class PartTransmitter<A, N extends DynamicNetwork<A, N>> extends
getTransmitter().takeShare();
TransmitterNetworkRegistry.invalidateTransmitter(getTransmitter());
}
else
{
getTransmitter().setTransmitterNetwork(null);
}
}
@Override
@ -61,6 +65,10 @@ public abstract class PartTransmitter<A, N extends DynamicNetwork<A, N>> extends
{
TransmitterNetworkRegistry.invalidateTransmitter(getTransmitter());
}
else
{
getTransmitter().setTransmitterNetwork(null);
}
super.preRemove();
}

View file

@ -164,8 +164,7 @@ public class PacketTransmitterUpdate implements IMessageHandler<TransmitterUpdat
break;
case FLUID:
fluidStack = (FluidStack)data[0];
fluidScale = (Float)data[1];
didFluidTransfer = (Boolean)data[2];
didFluidTransfer = (Boolean)data[1];
break;
default:
break;

View file

@ -24,9 +24,17 @@ public abstract class Transmitter<A, N extends DynamicNetwork<A, N>> implements
@Override
public void setTransmitterNetwork(N network)
{
if(theNetwork == network)
{
return;
}
if(world().isRemote && theNetwork != null)
{
theNetwork.transmitters.remove(this);
if(theNetwork.transmitters.isEmpty())
{
theNetwork.deregister();
}
}
theNetwork = network;
orphaned = theNetwork == null;