This commit is contained in:
dordsor21
2020-09-21 17:09:17 +01:00
parent 3b2fe2ffde
commit 3b660756f6
17 changed files with 84 additions and 17 deletions

View File

@ -87,6 +87,12 @@ public class ImageBrush implements Brush {
RecursiveVisitor visitor = new RecursiveVisitor(new AbstractExtentMask(editSession) {
private final MutableVector3 mutable = new MutableVector3();
@Override
public boolean test(Extent extent, BlockVector3 vector) {
return test(vector);
}
@Override
public boolean test(BlockVector3 vector) {
if (solid.test(vector)) {

View File

@ -6,6 +6,7 @@ import com.boydti.fawe.object.mask.RadiusMask;
import com.sk89q.worldedit.EditSession;
import com.sk89q.worldedit.MaxChangedBlocksException;
import com.sk89q.worldedit.command.tool.brush.Brush;
import com.sk89q.worldedit.extent.Extent;
import com.sk89q.worldedit.function.mask.AbstractExtentMask;
import com.sk89q.worldedit.function.mask.BlockMask;
import com.sk89q.worldedit.function.mask.Mask;
@ -47,6 +48,11 @@ public class LayerBrush implements Brush {
Operations.completeBlindly(visitor);
BlockVectorSet visited = visitor.getVisited();
visitor = new RecursiveVisitor(new AbstractExtentMask(editSession) {
@Override
public boolean test(Extent extent, BlockVector3 vector) {
return test(vector);
}
@Override
public boolean test(BlockVector3 pos) {
int depth = visitor.getDepth() + 1;

View File

@ -4,6 +4,7 @@ import com.boydti.fawe.object.collection.LocalBlockVectorSet;
import com.boydti.fawe.object.mask.SurfaceMask;
import com.sk89q.worldedit.EditSession;
import com.sk89q.worldedit.MaxChangedBlocksException;
import com.sk89q.worldedit.extent.Extent;
import com.sk89q.worldedit.function.mask.AbstractExtentMask;
import com.sk89q.worldedit.function.operation.Operations;
import com.sk89q.worldedit.function.pattern.Pattern;
@ -36,6 +37,11 @@ public class SplatterBrush extends ScatterBrush {
SurfaceMask surface = new SurfaceMask(editSession);
RecursiveVisitor visitor = new RecursiveVisitor(new AbstractExtentMask(editSession) {
@Override
public boolean test(Extent extent, BlockVector3 vector) {
return test(vector);
}
@Override
public boolean test(BlockVector3 vector) {
double dist = vector.distanceSq(position);

View File

@ -4,6 +4,7 @@ import com.boydti.fawe.object.brush.heightmap.HeightMap;
import com.boydti.fawe.util.MathMan;
import com.sk89q.worldedit.EditSession;
import com.sk89q.worldedit.MaxChangedBlocksException;
import com.sk89q.worldedit.extent.Extent;
import com.sk89q.worldedit.extent.clipboard.Clipboard;
import com.sk89q.worldedit.function.mask.AbstractExtentMask;
import com.sk89q.worldedit.function.mask.SolidBlockMask;
@ -55,6 +56,11 @@ public class StencilBrush extends HeightBrush {
double scale = (yscale / sizeDouble) * (maxY + 1);
RecursiveVisitor visitor = new RecursiveVisitor(new AbstractExtentMask(editSession) {
@Override
public boolean test(Extent extent, BlockVector3 vector) {
return test(vector);
}
private final MutableVector3 mutable = new MutableVector3();
@Override
public boolean test(BlockVector3 vector) {

View File

@ -22,6 +22,16 @@ public class DataMask extends AbstractExtentMask implements ResettableMask {
}
}
@Override
public boolean test(Extent extent, BlockVector3 vector) {
if (data != -1) {
return extent.getBlock(vector).getInternalPropertiesId() == data;
} else {
data = extent.getBlock(vector).getInternalPropertiesId();
return true;
}
}
@Override
public void reset() {
this.data = -1;

View File

@ -12,7 +12,7 @@ public class IdDataMask extends AbstractExtentMask implements ResettableMask {
}
@Override
public boolean test(BlockVector3 vector) {
public boolean test(Extent extent, BlockVector3 vector) {
if (combined != -1) {
return getExtent().getBlock(vector).getInternalId() == combined;
} else {
@ -21,6 +21,11 @@ public class IdDataMask extends AbstractExtentMask implements ResettableMask {
}
}
@Override
public boolean test(BlockVector3 vector) {
return test(getExtent(), vector);
}
@Override
public void reset() {
this.combined = -1;

View File

@ -13,15 +13,20 @@ public class IdMask extends AbstractExtentMask implements ResettableMask {
}
@Override
public boolean test(BlockVector3 vector) {
public boolean test(Extent extent, BlockVector3 vector) {
if (id != -1) {
return getExtent().getBlock(vector).getInternalBlockTypeId() == id;
return extent.getBlock(vector).getInternalBlockTypeId() == id;
} else {
id = getExtent().getBlock(vector).getInternalBlockTypeId();
id = extent.getBlock(vector).getInternalBlockTypeId();
return true;
}
}
@Override
public boolean test(BlockVector3 vector) {
return test(getExtent(), vector);
}
@Override
public void reset() {
this.id = -1;