mirror of
https://github.com/Minestom/Minestom.git
synced 2025-02-15 03:41:30 +01:00
Add valuesLength
This commit is contained in:
parent
9165a4d2b3
commit
5efa6d7980
@ -111,7 +111,7 @@ final class PaletteImpl implements Palette, Cloneable {
|
||||
return;
|
||||
}
|
||||
// Initialize the section
|
||||
this.values = values = new long[(size + valuesPerLong - 1) / valuesPerLong];
|
||||
this.values = values = new long[valuesLength(bitsPerEntry)];
|
||||
}
|
||||
// Change to palette value
|
||||
final int sectionIndex = getSectionIndex(x % dimension, y % dimension, z % dimension);
|
||||
@ -151,7 +151,7 @@ final class PaletteImpl implements Palette, Cloneable {
|
||||
final int valuesPerLong = VALUES_PER_LONG[bitsPerEntry];
|
||||
long[] values = this.values;
|
||||
if (values.length == 0) {
|
||||
this.values = values = new long[(size + valuesPerLong - 1) / valuesPerLong];
|
||||
this.values = values = new long[valuesLength(bitsPerEntry)];
|
||||
}
|
||||
long block = 0;
|
||||
for (int i = 0; i < valuesPerLong; i++)
|
||||
@ -270,12 +270,9 @@ final class PaletteImpl implements Palette, Cloneable {
|
||||
@Override
|
||||
public void write(@NotNull BinaryWriter writer) {
|
||||
writer.writeByte((byte) bitsPerEntry);
|
||||
// Palette
|
||||
if (bitsPerEntry < 9) {
|
||||
// Palette has to exist
|
||||
if (bitsPerEntry <= maxBitsPerEntry) { // Palette index
|
||||
writer.writeVarIntList(paletteToValueList, BinaryWriter::writeVarInt);
|
||||
}
|
||||
// Raw
|
||||
writer.writeLongArray(values);
|
||||
}
|
||||
|
||||
@ -342,7 +339,7 @@ final class PaletteImpl implements Palette, Cloneable {
|
||||
final int valuesPerLong = VALUES_PER_LONG[bitsPerEntry];
|
||||
long[] values = this.values;
|
||||
if (values.length == 0) {
|
||||
this.values = values = new long[(size + valuesPerLong - 1) / valuesPerLong];
|
||||
this.values = values = new long[valuesLength(bitsPerEntry)];
|
||||
}
|
||||
final int magicMask = MAGIC_MASKS[bitsPerEntry];
|
||||
for (int i = 0; i < values.length; i++) {
|
||||
@ -401,6 +398,11 @@ final class PaletteImpl implements Palette, Cloneable {
|
||||
return cache;
|
||||
}
|
||||
|
||||
int valuesLength(int bitsPerEntry) {
|
||||
int valuesPerLong = VALUES_PER_LONG[bitsPerEntry];
|
||||
return (size + valuesPerLong - 1) / valuesPerLong;
|
||||
}
|
||||
|
||||
static int maxPaletteSize(int bitsPerEntry) {
|
||||
return 1 << bitsPerEntry;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user