Add utility methods for world height in QueueCoordinator

This commit is contained in:
dordsor21 2022-02-09 13:14:32 +00:00 committed by Jordan
parent 9328695c75
commit a233bfe111
3 changed files with 33 additions and 5 deletions

View File

@ -111,8 +111,8 @@ public class BukkitQueueCoordinator extends BasicQueueCoordinator {
public boolean enqueue() { public boolean enqueue() {
final Clipboard regenClipboard; final Clipboard regenClipboard;
if (isRegen()) { if (isRegen()) {
BlockVector3 start = BlockVector3.at(getRegenStart()[0] << 4, getWorld().getMinY(), getRegenStart()[1] << 4); BlockVector3 start = BlockVector3.at(getRegenStart()[0] << 4, getMinY(), getRegenStart()[1] << 4);
BlockVector3 end = BlockVector3.at((getRegenEnd()[0] << 4) + 15, getWorld().getMaxY(), (getRegenEnd()[1] << 4) + 15); BlockVector3 end = BlockVector3.at((getRegenEnd()[0] << 4) + 15, getMaxY(), (getRegenEnd()[1] << 4) + 15);
Region region = new CuboidRegion(start, end); Region region = new CuboidRegion(start, end);
regenClipboard = new BlockArrayClipboard(region); regenClipboard = new BlockArrayClipboard(region);
regenClipboard.setOrigin(start); regenClipboard.setOrigin(start);
@ -134,7 +134,7 @@ public class BukkitQueueCoordinator extends BasicQueueCoordinator {
int sx = blockVector2.getX() << 4; int sx = blockVector2.getX() << 4;
int sz = blockVector2.getZ() << 4; int sz = blockVector2.getZ() << 4;
if (isRegenChunk) { if (isRegenChunk) {
for (int layer = (getWorld().getMinY() >> 4); layer <= (getWorld().getMaxY() >> 4); layer++) { for (int layer = getMinLayer(); layer <= getMaxLayer(); layer++) {
for (int y = 0; y < 16; y++) { for (int y = 0; y < 16; y++) {
for (int x = 0; x < 16; x++) { for (int x = 0; x < 16; x++) {
for (int z = 0; z < 16; z++) { for (int z = 0; z < 16; z++) {

View File

@ -53,8 +53,8 @@ public class LocalChunk {
this.parent = parent; this.parent = parent;
this.x = x; this.x = x;
this.z = z; this.z = z;
this.minSection = parent.getWorld() != null ? (parent.getWorld().getMinY() >> 4) : 0; this.minSection = parent.getMinLayer();
int sections = parent.getWorld() != null ? (parent.getWorld().getMaxY() >> 4) - minSection + 1 : 16; int sections = parent.getMaxLayer() - parent.getMinLayer() + 1;
baseblocks = new BaseBlock[sections][]; baseblocks = new BaseBlock[sections][];
biomes = new BiomeType[sections][]; biomes = new BiomeType[sections][];
} }

View File

@ -481,4 +481,32 @@ public abstract class QueueCoordinator {
} }
} }
/**
* Get the min Y limit associated with the queue
*/
protected int getMinY() {
return getWorld() != null ? getWorld().getMinY() : PlotSquared.platform().versionMinHeight();
}
/**
* Get the max Y limit associated with the queue
*/
protected int getMaxY() {
return getWorld() != null ? getWorld().getMinY() : PlotSquared.platform().versionMaxHeight();
}
/**
* Get the min chunk layer associated with the queue. Usually 0 or -4;
*/
protected int getMinLayer() {
return (getWorld() != null ? getWorld().getMinY() : PlotSquared.platform().versionMinHeight()) >> 4;
}
/**
* Get the max chunk layer associated with the queue. Usually 15 or 19
*/
protected int getMaxLayer() {
return (getWorld() != null ? getWorld().getMinY() : PlotSquared.platform().versionMaxHeight()) >> 4;
}
} }