mirror of
https://github.com/PaperMC/Paper.git
synced 2025-08-07 07:32:03 -07:00
Allow Blocks to be accessed via a long key
The key can be retrieved via methods Location#toBlockKey() and Block#getBlockKey() World provides lookup for blocks by long key via method World#getBlockAtKey(long) The formatting for the key is as follows: 10 bit y|27 bit z|27 bit x The y value is considered unsigned while z and x are considered two's complement Y range: [0, 1023] X, Z range: [-67 108 864, 67 108 863]
This commit is contained in:
@@ -15,7 +15,6 @@ import org.jetbrains.annotations.Nullable;
|
||||
|
||||
// Paper start
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.function.Predicate;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
@@ -610,6 +609,19 @@ public class Location implements Cloneable, ConfigurationSerializable, io.paperm
|
||||
blockLoc.setZ(getBlockZ());
|
||||
return blockLoc;
|
||||
}
|
||||
|
||||
// Paper start
|
||||
/**
|
||||
* @return The block key for this location's block location.
|
||||
* @see Block#getBlockKey(int, int, int)
|
||||
* @deprecated only encodes y block ranges from -512 to 511 and represents an already changed implementation detail
|
||||
*/
|
||||
@Deprecated(since = "1.18.1")
|
||||
public long toBlockKey() {
|
||||
return Block.getBlockKey(getBlockX(), getBlockY(), getBlockZ());
|
||||
}
|
||||
// Paper end
|
||||
|
||||
/**
|
||||
* @return A new location where X/Y/Z are the center of the block
|
||||
*/
|
||||
|
Reference in New Issue
Block a user