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

View File

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

View File

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

View File

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