forked from GeyserMC/Geyser
Fix ChunkPosition
This commit is contained in:
parent
9008036ee4
commit
3615ec2b90
1 changed files with 5 additions and 10 deletions
|
@ -27,12 +27,14 @@ package org.geysermc.connector.world.chunk;
|
||||||
|
|
||||||
import com.github.steveice10.mc.protocol.data.game.entity.metadata.Position;
|
import com.github.steveice10.mc.protocol.data.game.entity.metadata.Position;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
@EqualsAndHashCode
|
||||||
public class ChunkPosition {
|
public class ChunkPosition {
|
||||||
|
|
||||||
private int x;
|
private int x;
|
||||||
|
@ -43,16 +45,9 @@ public class ChunkPosition {
|
||||||
}
|
}
|
||||||
|
|
||||||
public Position getChunkBlock(int x, int y, int z) {
|
public Position getChunkBlock(int x, int y, int z) {
|
||||||
int chunkX = x % 16;
|
int chunkX = x & 15;
|
||||||
int chunkY = y % 16;
|
int chunkY = y & 15;
|
||||||
int chunkZ = z % 16;
|
int chunkZ = z & 15;
|
||||||
|
|
||||||
if (chunkX < 0)
|
|
||||||
chunkX = -chunkX;
|
|
||||||
if (chunkY < 0)
|
|
||||||
chunkY = -chunkY;
|
|
||||||
if (chunkZ < 0)
|
|
||||||
chunkZ = -chunkZ;
|
|
||||||
|
|
||||||
return new Position(chunkX, chunkY, chunkZ);
|
return new Position(chunkX, chunkY, chunkZ);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue