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];
|
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));
|
NetworkFinder finder = new NetworkFinder(((TileEntity)splitPoint).getWorldObj(), getTransmissionType(), Coord4D.get(connectedBlockA), Coord4D.get((TileEntity)splitPoint));
|
||||||
List<Coord4D> partNetwork = finder.exploreNetwork();
|
List<Coord4D> partNetwork = finder.exploreNetwork();
|
||||||
|
|
|
@ -511,7 +511,6 @@ public abstract class PartSidedPipe extends TMultiPart implements TSlottedPart,
|
||||||
if(nowPowered != redstonePowered)
|
if(nowPowered != redstonePowered)
|
||||||
{
|
{
|
||||||
refreshConnections();
|
refreshConnections();
|
||||||
redstonePowered = nowPowered;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -565,7 +564,6 @@ public abstract class PartSidedPipe extends TMultiPart implements TSlottedPart,
|
||||||
public void onAdded()
|
public void onAdded()
|
||||||
{
|
{
|
||||||
super.onAdded();
|
super.onAdded();
|
||||||
redstonePowered = redstoneReactive && world().isBlockIndirectlyGettingPowered(x(), y(), z());
|
|
||||||
refreshConnections();
|
refreshConnections();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -573,7 +571,6 @@ public abstract class PartSidedPipe extends TMultiPart implements TSlottedPart,
|
||||||
public void onChunkLoad()
|
public void onChunkLoad()
|
||||||
{
|
{
|
||||||
super.onChunkLoad();
|
super.onChunkLoad();
|
||||||
redstonePowered = redstoneReactive && world().isBlockIndirectlyGettingPowered(x(), y(), z());
|
|
||||||
refreshConnections();
|
refreshConnections();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,17 +16,12 @@ import mekanism.common.network.PacketTransmitterUpdate.TransmitterUpdateMessage;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
import codechicken.lib.data.MCDataInput;
|
|
||||||
import codechicken.lib.data.MCDataOutput;
|
|
||||||
import codechicken.multipart.TMultiPart;
|
|
||||||
import codechicken.multipart.TileMultipart;
|
import codechicken.multipart.TileMultipart;
|
||||||
|
|
||||||
public abstract class PartTransmitter<N extends DynamicNetwork<?, N>> extends PartSidedPipe implements IGridTransmitter<N>
|
public abstract class PartTransmitter<N extends DynamicNetwork<?, N>> extends PartSidedPipe implements IGridTransmitter<N>
|
||||||
{
|
{
|
||||||
public N theNetwork;
|
public N theNetwork;
|
||||||
|
|
||||||
public byte newSidesMerged;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void bind(TileMultipart t)
|
public void bind(TileMultipart t)
|
||||||
{
|
{
|
||||||
|
@ -68,50 +63,6 @@ public abstract class PartTransmitter<N extends DynamicNetwork<?, N>> extends Pa
|
||||||
getTransmitterNetwork();
|
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
|
@Override
|
||||||
public void setTransmitterNetwork(N network)
|
public void setTransmitterNetwork(N network)
|
||||||
{
|
{
|
||||||
|
@ -271,30 +222,4 @@ public abstract class PartTransmitter<N extends DynamicNetwork<?, N>> extends Pa
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void chunkLoad() {}
|
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