Rename INetworkNeighborhoodAware to INetworkNodeVisitor

This commit is contained in:
raoulvdberge
2017-06-05 23:47:31 +02:00
parent 436587c9ee
commit 13d66821c6
5 changed files with 20 additions and 21 deletions

View File

@@ -7,8 +7,8 @@ import net.minecraft.world.World;
/**
* Allows the network nodes to implement more optimal or non-regular discovery of neighbor nodes.
*/
public interface INetworkNeighborhoodAware {
void walkNeighborhood(Operator operator);
public interface INetworkNodeVisitor {
void visit(Operator operator);
@FunctionalInterface
interface Operator {

View File

@@ -1,8 +1,8 @@
package com.raoulvdberge.refinedstorage.apiimpl.network;
import com.raoulvdberge.refinedstorage.RSBlocks;
import com.raoulvdberge.refinedstorage.api.network.INetworkNeighborhoodAware;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeGraph;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeVisitor;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy;
import com.raoulvdberge.refinedstorage.item.ItemBlockController;
@@ -21,7 +21,6 @@ import static com.raoulvdberge.refinedstorage.proxy.CapabilityNetworkNodeProxy.N
public class NetworkNodeGraph implements INetworkNodeGraph {
private TileController controller;
private Set<INetworkNode> nodes = new HashSet<>();
public NetworkNodeGraph(TileController controller) {
@@ -48,9 +47,9 @@ public class NetworkNodeGraph implements INetworkNodeGraph {
operator.apply(controllerWorld, pos, facing.getOpposite());
}
NodeToCheck currentNodeToCheck;
while ((currentNodeToCheck = operator.toCheck.poll()) != null) {
currentNodeToCheck.walkNeighborhood(operator);
Visitor currentVisitor;
while ((currentVisitor = operator.toCheck.poll()) != null) {
currentVisitor.visit(operator);
}
this.nodes = operator.newNodes;
@@ -101,13 +100,13 @@ public class NetworkNodeGraph implements INetworkNodeGraph {
}
}
private class Operator implements INetworkNeighborhoodAware.Operator {
private class Operator implements INetworkNodeVisitor.Operator {
private Set<INetworkNode> newNodes = new HashSet<>();
private Set<INetworkNode> previousNodes = new HashSet<>(nodes);
private boolean changed;
private Queue<NodeToCheck> toCheck = new ArrayDeque<>();
private Queue<Visitor> toCheck = new ArrayDeque<>();
@Override
public void apply(World world, BlockPos pos, EnumFacing side) {
@@ -129,21 +128,21 @@ public class NetworkNodeGraph implements INetworkNodeGraph {
previousNodes.remove(otherNode);
toCheck.add(new NodeToCheck(otherNode, world, pos, side, tile));
toCheck.add(new Visitor(otherNode, world, pos, side, tile));
}
}
}
}
}
private class NodeToCheck implements INetworkNeighborhoodAware {
private class Visitor implements INetworkNodeVisitor {
private final INetworkNode node;
private final World world;
private final BlockPos pos;
private final EnumFacing side;
private final TileEntity tile;
NodeToCheck(INetworkNode node, World world, BlockPos pos, EnumFacing side, TileEntity tile) {
Visitor(INetworkNode node, World world, BlockPos pos, EnumFacing side, TileEntity tile) {
this.node = node;
this.world = world;
this.pos = pos;
@@ -152,9 +151,9 @@ public class NetworkNodeGraph implements INetworkNodeGraph {
}
@Override
public void walkNeighborhood(Operator operator) {
if (node instanceof INetworkNeighborhoodAware) {
((INetworkNeighborhoodAware) node).walkNeighborhood(operator);
public void visit(Operator operator) {
if (node instanceof INetworkNodeVisitor) {
((INetworkNodeVisitor) node).visit(operator);
} else {
for (EnumFacing checkSide : EnumFacing.VALUES) {
if (checkSide != side) { // Avoid going backward

View File

@@ -2,7 +2,7 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.node;
import com.raoulvdberge.refinedstorage.RSUtils;
import com.raoulvdberge.refinedstorage.api.network.INetwork;
import com.raoulvdberge.refinedstorage.api.network.INetworkNeighborhoodAware;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeVisitor;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
import com.raoulvdberge.refinedstorage.api.util.IWrenchable;
import com.raoulvdberge.refinedstorage.apiimpl.API;
@@ -21,7 +21,7 @@ import net.minecraftforge.items.IItemHandler;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
public abstract class NetworkNode implements INetworkNode, INetworkNeighborhoodAware, IWrenchable {
public abstract class NetworkNode implements INetworkNode, INetworkNodeVisitor, IWrenchable {
@Nullable
protected INetwork network;
protected World world;
@@ -154,7 +154,7 @@ public abstract class NetworkNode implements INetworkNode, INetworkNeighborhoodA
}
@Override
public void walkNeighborhood(Operator operator) {
public void visit(Operator operator) {
for (EnumFacing facing : EnumFacing.VALUES) {
if (canConduct(facing)) {
operator.apply(world, pos.offset(facing), facing.getOpposite());

View File

@@ -144,8 +144,8 @@ public class NetworkNodeNetworkTransmitter extends NetworkNode {
}
@Override
public void walkNeighborhood(Operator operator) {
super.walkNeighborhood(operator);
public void visit(Operator operator) {
super.visit(operator);
if (canTransmit()) {
if (!isSameDimension()) {

View File

@@ -85,7 +85,7 @@ public class NetworkNodeWirelessTransmitter extends NetworkNode implements IWire
}
@Override
public void walkNeighborhood(Operator operator) {
public void visit(Operator operator) {
operator.apply(world, pos.offset(EnumFacing.DOWN), EnumFacing.UP);
}
}