Remove network rebuilding on change code duplication

This commit is contained in:
Raoul Van den Berge
2016-07-31 15:33:00 +02:00
parent 01be58bb13
commit ae72ec15cd
4 changed files with 20 additions and 25 deletions

View File

@@ -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() {
}

View File

@@ -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

View File

@@ -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()) {

View File

@@ -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();