mirror of
https://github.com/plexusorg/Plex-FAWE.git
synced 2025-07-04 12:06:41 +00:00
Various minor
refactor some region dependencies swithc masking extent to a filter (so it can be parallelized) Some unfinished refactoring of the filters remove piston messages from strings.json
This commit is contained in:
@ -674,7 +674,7 @@ public class CuboidRegion extends AbstractRegion implements FlatRegion {
|
||||
public void filter(final IChunk chunk, final Filter filter, ChunkFilterBlock block, final IChunkGet get, final IChunkSet set, boolean full) {
|
||||
int chunkX = chunk.getX();
|
||||
int chunkZ = chunk.getZ();
|
||||
block = block.init(chunkX, chunkZ, get);
|
||||
block = block.initChunk(chunkX, chunkZ);
|
||||
|
||||
|
||||
if ((minX + 15) >> 4 <= chunkX && (maxX - 15) >> 4 >= chunkX && (minZ + 15) >> 4 <= chunkZ && (maxZ - 15) >> 4 >= chunkZ) {
|
||||
|
@ -303,6 +303,11 @@ public class EllipsoidRegion extends AbstractRegion {
|
||||
int sectionStart = y1 >> 4;
|
||||
int sectionEnd = y2 >> 4;
|
||||
|
||||
for (int layer = sectionStart; layer < sectionEnd; layer++) {
|
||||
int yStart = Math.max(layer << 4, y1);
|
||||
int yEnd = Math.min((layer << 4) + 15, y2);
|
||||
filterSpherePartial(layer, yStart, yEnd, bx, bz, filter, block, get, set);
|
||||
}
|
||||
}
|
||||
|
||||
private void filterSpherePartial(int layer, int y1, int y2, int bx, int bz, Filter filter, ChunkFilterBlock block, IChunkGet get, IChunkSet set) {
|
||||
@ -310,7 +315,7 @@ public class EllipsoidRegion extends AbstractRegion {
|
||||
int cy = center.getBlockY();
|
||||
int cz = center.getBlockZ();
|
||||
|
||||
block.init(get, set, layer);
|
||||
block.initLayer(get, set, layer);
|
||||
|
||||
int by = layer << 4;
|
||||
int diffY;
|
||||
|
@ -208,7 +208,7 @@ public interface Region extends Iterable<BlockVector3>, Cloneable, IBatchProcess
|
||||
int maxSection = Math.min(15, getMaximumY() >> 4);
|
||||
for (int layer = minSection; layer <= maxSection; layer++) {
|
||||
if ((!full && !get.hasSection(layer)) || !filter.appliesLayer(chunk, layer)) return;
|
||||
block = block.init(get, set, layer);
|
||||
block = block.initLayer(get, set, layer);
|
||||
block.filter(filter, this);
|
||||
}
|
||||
}
|
||||
@ -238,19 +238,19 @@ public interface Region extends Iterable<BlockVector3>, Cloneable, IBatchProcess
|
||||
|
||||
default void filter(final IChunk chunk, final Filter filter, ChunkFilterBlock block, final IChunkGet get, final IChunkSet set, int layer, boolean full) {
|
||||
if ((!full && !get.hasSection(layer)) || !filter.appliesLayer(chunk, layer)) return;
|
||||
block = block.init(get, set, layer);
|
||||
block = block.initLayer(get, set, layer);
|
||||
block.filter(filter);
|
||||
}
|
||||
|
||||
default void filter(final IChunk chunk, final Filter filter, ChunkFilterBlock block, final IChunkGet get, final IChunkSet set, int layer, int minX, int minY, int minZ, int maxX, int maxY, int maxZ, boolean full) {
|
||||
if ((!full && !get.hasSection(layer)) || !filter.appliesLayer(chunk, layer)) return;
|
||||
block = block.init(get, set, layer);
|
||||
block = block.initLayer(get, set, layer);
|
||||
block.filter(filter, minX, minY, minZ, maxX, maxY, maxZ);
|
||||
}
|
||||
|
||||
default void filter(final IChunk chunk, final Filter filter, ChunkFilterBlock block, final IChunkGet get, final IChunkSet set, int layer, int yStart, int yEnd, boolean full) {
|
||||
if ((!full && !get.hasSection(layer)) || !filter.appliesLayer(chunk, layer)) return;
|
||||
block = block.init(get, set, layer);
|
||||
block = block.initLayer(get, set, layer);
|
||||
block.filter(filter, yStart, yEnd);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user