Minestom/src/main/java/net/minestom/server/utils/SerializerUtils.java

23 lines
612 B
Java
Raw Normal View History

2020-04-24 03:25:58 +02:00
package net.minestom.server.utils;
2021-07-08 13:48:28 +02:00
import net.minestom.server.coordinate.Point;
import net.minestom.server.coordinate.Vec;
public final class SerializerUtils {
private SerializerUtils() {
}
2019-08-25 20:03:43 +02:00
public static long positionToLong(int x, int y, int z) {
return (((long) x & 0x3FFFFFF) << 38) | (((long) z & 0x3FFFFFF) << 12) | ((long) y & 0xFFF);
}
public static Point longToBlockPosition(long value) {
2020-08-01 11:00:31 +02:00
final int x = (int) (value >> 38);
2021-12-13 16:41:30 +01:00
final int y = (int) (value << 52 >> 52);
2020-08-01 11:00:31 +02:00
final int z = (int) (value << 26 >> 38);
return new Vec(x, y, z);
}
}