Archived
0

перемещение NibbleArray в Core

This commit is contained in:
2018-11-10 17:28:35 +03:00
parent bd2991abaa
commit 82c5345693
4 changed files with 67 additions and 32 deletions

View File

@@ -5,6 +5,7 @@ import gnu.trove.list.TByteList;
import gnu.trove.list.array.TByteArrayList;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import mc.core.utils.NibbleArray;
import mc.core.world.Biome;
import mc.core.world.chunk.Chunk;
import mc.core.world.chunk.ChunkSection;

View File

@@ -4,6 +4,7 @@ import gnu.trove.list.TByteList;
import gnu.trove.list.linked.TByteLinkedList;
import lombok.Getter;
import lombok.Setter;
import mc.core.utils.NibbleArray;
import mc.core.world.Biome;
import mc.core.world.block.Block;
import mc.core.world.chunk.ChunkSection;

View File

@@ -1,32 +0,0 @@
package mc.world.anvil;
import lombok.RequiredArgsConstructor;
import mc.core.world.block.BlockLocation;
@RequiredArgsConstructor
public class NibbleArray {
private final byte[] data;
private int coordsToIndex(int x, int y, int z) {
return y << 8 | z << 4 | x;
}
private int nibbleIndex(int index) {
return index >> 1;
}
private boolean isLowerNibble(int index) {
return (index & 1) == 0;
}
public int get(BlockLocation location) {
return get(location.getX(), location.getY(), location.getZ());
}
public int get(int x, int y, int z) {
final int idx = coordsToIndex(x, y, z);
final int ni = nibbleIndex(idx);
return isLowerNibble(idx) ? this.data[ni] & 15 : this.data[ni] >> 4 & 15;
}
}