Rename INetworkNeighborhoodAware to INetworkNodeVisitor
This commit is contained in:
@@ -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 {
|
||||
@@ -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
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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()) {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user