Archived
0

Hello, Trove4j!

This commit is contained in:
2018-10-14 00:25:38 +03:00
parent 75389cfdb1
commit 35ecd49ce3
2 changed files with 13 additions and 6 deletions

View File

@@ -4,4 +4,6 @@ version '1.0-SNAPSHOT'
dependencies {
/* Core */
compile_excludeCopy project(':core')
compile (group: 'net.sf.trove4j', name: 'trove4j', version: '3.0.3')
}

View File

@@ -2,6 +2,8 @@ package mc.world.anvil;
import com.flowpowered.nbt.Tag;
import com.flowpowered.nbt.stream.NBTInputStream;
import gnu.trove.list.TByteList;
import gnu.trove.list.array.TByteArrayList;
import lombok.extern.slf4j.Slf4j;
import mc.core.world.chunk.Chunk;
@@ -13,19 +15,22 @@ import java.util.zip.InflaterInputStream;
@Slf4j
public class RegionFile implements Closeable {
private static final byte BYTE_TRUE = 1,
BYTE_FALSE = 0;
private RandomAccessFile file;
private List<Boolean> sectorFree; //TODO заменить на Trove TByteList
private TByteList sectorFree;
private final int[] offsets = new int[1024];
public RegionFile(File file) throws IOException {
this.file = new RandomAccessFile(file, "rw");
int sizeOfSectorFree = (int)this.file.length() / 4096;
sectorFree = new ArrayList<>(sizeOfSectorFree);
sectorFree.add(false);
sectorFree.add(false);
sectorFree = new TByteArrayList(sizeOfSectorFree);
sectorFree.add(BYTE_FALSE);
sectorFree.add(BYTE_FALSE);
for (int i = 0; i < sizeOfSectorFree-2; i++) {
sectorFree.add(true);
sectorFree.add(BYTE_TRUE);
}
for (int i = 0; i < offsets.length; ++i) {
@@ -34,7 +39,7 @@ public class RegionFile implements Closeable {
if (read != 0 && (read >> 8) + (read & 255) <= this.sectorFree.size()) {
for (int j = 0; j < (read & 255); ++j) {
this.sectorFree.set((read >> 8) + j, false);
this.sectorFree.set((read >> 8) + j, BYTE_FALSE);
}
}
}