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