Removed EditSession from RecursiveVisitor.

This commit is contained in:
sk89q 2014-03-30 13:46:20 -07:00
parent f0d97c5231
commit 25021b4a30
4 changed files with 10 additions and 20 deletions

View File

@ -828,7 +828,9 @@ public class EditSession implements Extent {
MaskIntersection mask = new MaskIntersection( MaskIntersection mask = new MaskIntersection(
new RegionMask(new EllipsoidRegion(null, origin, new Vector(radius, radius, radius))), new RegionMask(new EllipsoidRegion(null, origin, new Vector(radius, radius, radius))),
new BoundedHeightMask(origin.getBlockY() - depth + 1, origin.getBlockY()), new BoundedHeightMask(
Math.max(origin.getBlockY() - depth + 1, 0),
Math.min(getWorld().getMaxY(), origin.getBlockY())),
Masks.negate(new ExistingBlockMask(this))); Masks.negate(new ExistingBlockMask(this)));
// Want to replace blocks // Want to replace blocks
@ -837,9 +839,9 @@ public class EditSession implements Extent {
// Pick how we're going to visit blocks // Pick how we're going to visit blocks
RecursiveVisitor visitor; RecursiveVisitor visitor;
if (recursive) { if (recursive) {
visitor = new RecursiveVisitor(this, mask, replace); visitor = new RecursiveVisitor(mask, replace);
} else { } else {
visitor = new DownwardVisitor(this, mask, replace, origin.getBlockY()); visitor = new DownwardVisitor(mask, replace, origin.getBlockY());
} }
// Start at the origin // Start at the origin

View File

@ -19,7 +19,6 @@
package com.sk89q.worldedit.function.visitor; package com.sk89q.worldedit.function.visitor;
import com.sk89q.worldedit.EditSession;
import com.sk89q.worldedit.Vector; import com.sk89q.worldedit.Vector;
import com.sk89q.worldedit.function.RegionFunction; import com.sk89q.worldedit.function.RegionFunction;
import com.sk89q.worldedit.function.mask.Mask; import com.sk89q.worldedit.function.mask.Mask;
@ -40,13 +39,12 @@ public class DownwardVisitor extends RecursiveVisitor {
/** /**
* Create a new visitor. * Create a new visitor.
* *
* @param editSession the edit session
* @param mask the mask * @param mask the mask
* @param function the function * @param function the function
* @param baseY the base Y * @param baseY the base Y
*/ */
public DownwardVisitor(EditSession editSession, Mask mask, RegionFunction function, int baseY) { public DownwardVisitor(Mask mask, RegionFunction function, int baseY) {
super(editSession, mask, function); super(mask, function);
this.baseY = baseY; this.baseY = baseY;

View File

@ -42,7 +42,6 @@ import static com.google.common.base.Preconditions.checkNotNull;
*/ */
public class LayerVisitor implements Operation { public class LayerVisitor implements Operation {
private final EditSession editSession;
private final FlatRegion flatRegion; private final FlatRegion flatRegion;
private final LayerFunction function; private final LayerFunction function;
private Mask2D mask = Masks.alwaysTrue2D(); private Mask2D mask = Masks.alwaysTrue2D();
@ -57,13 +56,11 @@ public class LayerVisitor implements Operation {
* @param maxY the maximum Y to begin the search at * @param maxY the maximum Y to begin the search at
* @param function the layer function to apply t blocks * @param function the layer function to apply t blocks
*/ */
public LayerVisitor(EditSession editSession, FlatRegion flatRegion, int minY, int maxY, LayerFunction function) { public LayerVisitor(FlatRegion flatRegion, int minY, int maxY, LayerFunction function) {
checkNotNull(editSession);
checkNotNull(flatRegion); checkNotNull(flatRegion);
checkArgument(minY <= maxY, "minY <= maxY required"); checkArgument(minY <= maxY, "minY <= maxY required");
checkNotNull(function); checkNotNull(function);
this.editSession = editSession;
this.flatRegion = flatRegion; this.flatRegion = flatRegion;
this.minY = minY; this.minY = minY;
this.maxY = maxY; this.maxY = maxY;

View File

@ -19,10 +19,9 @@
package com.sk89q.worldedit.function.visitor; package com.sk89q.worldedit.function.visitor;
import com.sk89q.worldedit.EditSession;
import com.sk89q.worldedit.Vector; import com.sk89q.worldedit.Vector;
import com.sk89q.worldedit.function.mask.Mask;
import com.sk89q.worldedit.function.RegionFunction; import com.sk89q.worldedit.function.RegionFunction;
import com.sk89q.worldedit.function.mask.Mask;
/** /**
* An implementation of an {@link BreadthFirstSearch} that uses a mask to * An implementation of an {@link BreadthFirstSearch} that uses a mask to
@ -30,21 +29,15 @@ import com.sk89q.worldedit.function.RegionFunction;
*/ */
public class RecursiveVisitor extends BreadthFirstSearch { public class RecursiveVisitor extends BreadthFirstSearch {
private final EditSession editSession;
private final Mask mask; private final Mask mask;
public RecursiveVisitor(EditSession editSession, Mask mask, RegionFunction function) { public RecursiveVisitor(Mask mask, RegionFunction function) {
super(function); super(function);
this.editSession = editSession;
this.mask = mask; this.mask = mask;
} }
@Override @Override
protected boolean isVisitable(Vector from, Vector to) { protected boolean isVisitable(Vector from, Vector to) {
int y = to.getBlockY();
if (y < 0 || y > editSession.getWorld().getMaxY()) {
return false;
}
return mask.test(to); return mask.test(to);
} }
} }