parent
03f6156d23
commit
e9ef6c1866
3 changed files with 1 additions and 79 deletions
|
@ -355,7 +355,7 @@ public abstract class DynamicNetwork<A, N extends DynamicNetwork<A, N>> implemen
|
|||
{
|
||||
TileEntity connectedBlockA = connectedBlocks[count];
|
||||
|
||||
if(TransmissionType.checkTransmissionType(connectedBlockA, getTransmissionType()) && !dealtWith[count] && transmitters.contains(connectedBlockA))
|
||||
if(TransmissionType.checkTransmissionType(connectedBlockA, getTransmissionType()) && !dealtWith[count])
|
||||
{
|
||||
NetworkFinder finder = new NetworkFinder(((TileEntity)splitPoint).getWorldObj(), getTransmissionType(), Coord4D.get(connectedBlockA), Coord4D.get((TileEntity)splitPoint));
|
||||
List<Coord4D> partNetwork = finder.exploreNetwork();
|
||||
|
|
|
@ -511,7 +511,6 @@ public abstract class PartSidedPipe extends TMultiPart implements TSlottedPart,
|
|||
if(nowPowered != redstonePowered)
|
||||
{
|
||||
refreshConnections();
|
||||
redstonePowered = nowPowered;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -565,7 +564,6 @@ public abstract class PartSidedPipe extends TMultiPart implements TSlottedPart,
|
|||
public void onAdded()
|
||||
{
|
||||
super.onAdded();
|
||||
redstonePowered = redstoneReactive && world().isBlockIndirectlyGettingPowered(x(), y(), z());
|
||||
refreshConnections();
|
||||
}
|
||||
|
||||
|
@ -573,7 +571,6 @@ public abstract class PartSidedPipe extends TMultiPart implements TSlottedPart,
|
|||
public void onChunkLoad()
|
||||
{
|
||||
super.onChunkLoad();
|
||||
redstonePowered = redstoneReactive && world().isBlockIndirectlyGettingPowered(x(), y(), z());
|
||||
refreshConnections();
|
||||
}
|
||||
|
||||
|
|
|
@ -16,17 +16,12 @@ import mekanism.common.network.PacketTransmitterUpdate.TransmitterUpdateMessage;
|
|||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import codechicken.lib.data.MCDataInput;
|
||||
import codechicken.lib.data.MCDataOutput;
|
||||
import codechicken.multipart.TMultiPart;
|
||||
import codechicken.multipart.TileMultipart;
|
||||
|
||||
public abstract class PartTransmitter<N extends DynamicNetwork<?, N>> extends PartSidedPipe implements IGridTransmitter<N>
|
||||
{
|
||||
public N theNetwork;
|
||||
|
||||
public byte newSidesMerged;
|
||||
|
||||
@Override
|
||||
public void bind(TileMultipart t)
|
||||
{
|
||||
|
@ -68,50 +63,6 @@ public abstract class PartTransmitter<N extends DynamicNetwork<?, N>> extends Pa
|
|||
getTransmitterNetwork();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPartChanged(TMultiPart part)
|
||||
{
|
||||
byte transmitterConnections = currentTransmitterConnections;
|
||||
super.onPartChanged(part);
|
||||
byte addedSides = (byte)(0b00111111 & (currentTransmitterConnections & ~transmitterConnections));
|
||||
mergeNewSideNets(addedSides);
|
||||
}
|
||||
|
||||
public void mergeNewSideNets(byte sides)
|
||||
{
|
||||
if(theNetwork != null)
|
||||
{
|
||||
HashSet<N> connectedNets = new HashSet<N>();
|
||||
|
||||
for(ForgeDirection side : ForgeDirection.VALID_DIRECTIONS)
|
||||
{
|
||||
if(connectionMapContainsSide(sides, side))
|
||||
{
|
||||
TileEntity cable = Coord4D.get(tile()).getFromSide(side).getTileEntity(world());
|
||||
|
||||
if(TransmissionType.checkTransmissionType(cable, getTransmissionType()) && ((IGridTransmitter<N>)cable).getTransmitterNetwork(false) != null)
|
||||
{
|
||||
connectedNets.add(((IGridTransmitter<N>)cable).getTransmitterNetwork());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(connectedNets.size() == 0)
|
||||
{
|
||||
newSidesMerged = 0x00;
|
||||
return;
|
||||
}
|
||||
else {
|
||||
connectedNets.add(theNetwork);
|
||||
theNetwork = createNetworkByMergingSet(connectedNets);
|
||||
theNetwork.fullRefresh();
|
||||
theNetwork.updateCapacity();
|
||||
newSidesMerged = sides;
|
||||
sendDesc = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTransmitterNetwork(N network)
|
||||
{
|
||||
|
@ -271,30 +222,4 @@ public abstract class PartTransmitter<N extends DynamicNetwork<?, N>> extends Pa
|
|||
|
||||
@Override
|
||||
public void chunkLoad() {}
|
||||
|
||||
@Override
|
||||
public void readDesc(MCDataInput packet)
|
||||
{
|
||||
super.readDesc(packet);
|
||||
if(packet.readBoolean())
|
||||
{
|
||||
mergeNewSideNets(packet.readByte());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeDesc(MCDataOutput packet)
|
||||
{
|
||||
super.writeDesc(packet);
|
||||
if(newSidesMerged != 0x00)
|
||||
{
|
||||
packet.writeBoolean(true);
|
||||
packet.writeByte(newSidesMerged);
|
||||
newSidesMerged = 0x00;
|
||||
}
|
||||
else
|
||||
{
|
||||
packet.writeBoolean(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue