Provide Chunk Coordinates as a Long API
Allows you to easily access the chunks X/z as a long, and a method to look up by the long key too.
This commit is contained in:
@@ -36,6 +36,32 @@ public interface Chunk extends PersistentDataHolder {
|
||||
*/
|
||||
int getZ();
|
||||
|
||||
// Paper start
|
||||
/**
|
||||
* @return The Chunks X and Z coordinates packed into a long
|
||||
*/
|
||||
default long getChunkKey() {
|
||||
return getChunkKey(getX(), getZ());
|
||||
}
|
||||
|
||||
/**
|
||||
* @param loc Location to get chunk key
|
||||
* @return Location's chunk coordinates packed into a long
|
||||
*/
|
||||
static long getChunkKey(@NotNull Location loc) {
|
||||
return getChunkKey((int) Math.floor(loc.getX()) >> 4, (int) Math.floor(loc.getZ()) >> 4);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param x X Coordinate
|
||||
* @param z Z Coordinate
|
||||
* @return Chunk coordinates packed into a long
|
||||
*/
|
||||
static long getChunkKey(int x, int z) {
|
||||
return (long) x & 0xffffffffL | ((long) z & 0xffffffffL) << 32;
|
||||
}
|
||||
// Paper end
|
||||
|
||||
/**
|
||||
* Gets the world containing this chunk
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user