Remove network rebuilding on change code duplication
This commit is contained in:
@@ -4,6 +4,10 @@ import net.minecraft.inventory.Container;
|
||||
import refinedstorage.RefinedStorage;
|
||||
|
||||
public class TileNetworkReceiver extends TileNode {
|
||||
public TileNetworkReceiver() {
|
||||
rebuildOnUpdateChange = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateNode() {
|
||||
}
|
||||
|
@@ -36,28 +36,24 @@ public class TileNetworkTransmitter extends TileNode {
|
||||
private BlockPos receiver;
|
||||
private int receiverDimension;
|
||||
|
||||
private boolean couldUpdate;
|
||||
|
||||
// Used clientside
|
||||
private int distance;
|
||||
private boolean inSameDimension;
|
||||
|
||||
public TileNetworkTransmitter() {
|
||||
rebuildOnUpdateChange = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateNode() {
|
||||
}
|
||||
|
||||
public void update() {
|
||||
super.update();
|
||||
|
||||
if (network != null && couldUpdate != canUpdate()) {
|
||||
couldUpdate = canUpdate();
|
||||
|
||||
network.rebuildNodes();
|
||||
}
|
||||
}
|
||||
|
||||
public boolean canTransmit() {
|
||||
return receiver != null && worldObj.getTileEntity(receiver) instanceof TileNetworkReceiver && isInSameDimension();
|
||||
return canUpdate()
|
||||
&& receiver != null
|
||||
&& isInSameDimension()
|
||||
&& worldObj.getTileEntity(receiver) instanceof TileNetworkReceiver
|
||||
&& ((TileNetworkReceiver) worldObj.getTileEntity(receiver)).canUpdate();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -17,6 +17,7 @@ public abstract class TileNode extends TileBase implements INetworkNode, ISynchr
|
||||
private boolean active;
|
||||
private boolean update;
|
||||
|
||||
protected boolean rebuildOnUpdateChange;
|
||||
protected boolean connected;
|
||||
protected INetworkMaster network;
|
||||
|
||||
@@ -42,6 +43,10 @@ public abstract class TileNode extends TileBase implements INetworkNode, ISynchr
|
||||
update = canUpdate();
|
||||
|
||||
onConnectionChange(network, update);
|
||||
|
||||
if (rebuildOnUpdateChange) {
|
||||
network.rebuildNodes();
|
||||
}
|
||||
}
|
||||
|
||||
if (active != isActive() && canSendConnectivityUpdate()) {
|
||||
|
@@ -6,10 +6,10 @@ import refinedstorage.container.ContainerRelay;
|
||||
import refinedstorage.tile.config.RedstoneMode;
|
||||
|
||||
public class TileRelay extends TileNode {
|
||||
private boolean couldUpdate;
|
||||
|
||||
public TileRelay() {
|
||||
setRedstoneMode(RedstoneMode.LOW);
|
||||
|
||||
rebuildOnUpdateChange = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -21,16 +21,6 @@ public class TileRelay extends TileNode {
|
||||
public void updateNode() {
|
||||
}
|
||||
|
||||
public void update() {
|
||||
super.update();
|
||||
|
||||
if (network != null && couldUpdate != canUpdate()) {
|
||||
couldUpdate = canUpdate();
|
||||
|
||||
network.rebuildNodes();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canConduct() {
|
||||
return canUpdate();
|
||||
|
Reference in New Issue
Block a user