本文整理汇总了Java中cn.nukkit.level.format.LevelProvider类的典型用法代码示例。如果您正苦于以下问题:Java LevelProvider类的具体用法?Java LevelProvider怎么用?Java LevelProvider使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
LevelProvider类属于cn.nukkit.level.format包,在下文中一共展示了LevelProvider类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getEmptyChunk
import cn.nukkit.level.format.LevelProvider; //导入依赖的package包/类
public static Chunk getEmptyChunk(int chunkX, int chunkZ, LevelProvider provider) {
try {
Chunk chunk;
if (provider != null) {
chunk = new Chunk(provider, chunkX, chunkZ, new byte[DATA_LENGTH]);
} else {
chunk = new Chunk(LevelDB.class, chunkX, chunkZ, new byte[DATA_LENGTH]);
}
byte[] skyLight = new byte[16384];
Arrays.fill(skyLight, (byte) 0xff);
chunk.skyLight = skyLight;
return chunk;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
示例2: BaseRegionLoader
import cn.nukkit.level.format.LevelProvider; //导入依赖的package包/类
public BaseRegionLoader(LevelProvider level, int regionX, int regionZ, String ext) {
try {
this.x = regionX;
this.z = regionZ;
this.levelProvider = level;
this.filePath = this.levelProvider.getPath() + "region/r." + regionX + "." + regionZ + "." + ext;
this.file = new File(this.filePath);
boolean exists = this.file.exists();
if (!exists) {
file.createNewFile();
}
this.randomAccessFile = new RandomAccessFile(this.filePath, "rw");
if (!exists) {
this.createBlank();
} else {
this.loadLocationTable();
}
this.lastUsed = System.currentTimeMillis();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
示例3: fromFastBinary
import cn.nukkit.level.format.LevelProvider; //导入依赖的package包/类
public static Chunk fromFastBinary(byte[] data, LevelProvider provider) {
try {
CompoundTag chunk = NBTIO.read(new DataInputStream(new ByteArrayInputStream(data)), ByteOrder.BIG_ENDIAN);
if (!chunk.contains("Level") || !(chunk.get("Level") instanceof CompoundTag)) {
return null;
}
return new Chunk(provider, chunk.getCompound("Level"));
} catch (Exception e) {
return null;
}
}
示例4: to
import cn.nukkit.level.format.LevelProvider; //导入依赖的package包/类
LevelProviderConverter to(Class<? extends LevelProvider> toClass) {
if (toClass != Anvil.class) {
throw new IllegalArgumentException("To type can be only Anvil");
}
this.toClass = toClass;
return this;
}
示例5: fromBinary
import cn.nukkit.level.format.LevelProvider; //导入依赖的package包/类
public static Chunk fromBinary(byte[] data, LevelProvider provider) {
try {
CompoundTag chunk = NBTIO.read(new ByteArrayInputStream(Zlib.inflate(data)), ByteOrder.BIG_ENDIAN);
if (!chunk.contains("Level") || !(chunk.get("Level") instanceof CompoundTag)) {
return null;
}
return new Chunk(provider, chunk.getCompound("Level"));
} catch (Exception e) {
Server.getInstance().getLogger().logException(e);
return null;
}
}
示例6: from
import cn.nukkit.level.format.LevelProvider; //导入依赖的package包/类
LevelProviderConverter from(LevelProvider provider) {
if (!(provider instanceof McRegion) && !(provider instanceof LevelDB)) {
throw new IllegalArgumentException("From type can be only McRegion or LevelDB");
}
this.provider = provider;
return this;
}
示例7: fromBinary
import cn.nukkit.level.format.LevelProvider; //导入依赖的package包/类
public static Chunk fromBinary(byte[] data, LevelProvider provider) {
try {
CompoundTag chunk = NBTIO.read(new ByteArrayInputStream(Zlib.inflate(data)), ByteOrder.BIG_ENDIAN);
if (!chunk.contains("Level") || !(chunk.get("Level") instanceof CompoundTag)) {
return null;
}
return new Chunk(provider != null ? provider : McRegion.class.newInstance(), chunk.getCompound("Level"));
} catch (Exception e) {
return null;
}
}
示例8: fromFastBinary
import cn.nukkit.level.format.LevelProvider; //导入依赖的package包/类
public static Chunk fromFastBinary(byte[] data, LevelProvider provider) {
try {
int offset = 0;
Chunk chunk = new Chunk(provider != null ? provider : McRegion.class.newInstance(), null);
chunk.provider = provider;
chunk.x = Binary.readInt(Arrays.copyOfRange(data, offset, offset + 3));
offset += 4;
chunk.z = Binary.readInt(Arrays.copyOfRange(data, offset, offset + 3));
offset += 4;
chunk.blocks = Arrays.copyOfRange(data, offset, offset + 32767);
offset += 32768;
chunk.data = Arrays.copyOfRange(data, offset, offset + 16383);
offset += 16384;
chunk.skyLight = Arrays.copyOfRange(data, offset, offset + 16383);
offset += 16384;
chunk.blockLight = Arrays.copyOfRange(data, offset, offset + 16383);
offset += 16384;
chunk.heightMap = new int[256];
for (int i = 0; i < 256; i++) {
chunk.heightMap[i] = data[offset] & 0xff;
offset++;
}
chunk.biomeColors = new int[256];
for (int i = 0; i < 256; i++) {
chunk.biomeColors[i] = Binary.readInt(Arrays.copyOfRange(data, offset, offset + 3));
offset += 4;
}
byte flags = data[offset++];
chunk.nbt.putByte("TerrainGenerated", (flags & 0b1));
chunk.nbt.putByte("TerrainPopulated", ((flags >> 1) & 0b1));
chunk.nbt.putByte("LightPopulated", ((flags >> 2) & 0b1));
return chunk;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
示例9: getEmptyChunk
import cn.nukkit.level.format.LevelProvider; //导入依赖的package包/类
public static Chunk getEmptyChunk(int chunkX, int chunkZ, LevelProvider provider) {
try {
Chunk chunk;
if (provider != null) {
chunk = new Chunk(provider, null);
} else {
chunk = new Chunk(McRegion.class, null);
}
chunk.x = chunkX;
chunk.z = chunkZ;
chunk.data = new byte[16384];
chunk.blocks = new byte[32768];
byte[] skyLight = new byte[16384];
Arrays.fill(skyLight, (byte) 0xff);
chunk.skyLight = skyLight;
chunk.blockLight = chunk.data;
chunk.heightMap = new int[256];
chunk.biomeColors = new int[256];
chunk.nbt.putByte("V", 1);
chunk.nbt.putLong("InhabitedTime", 0);
chunk.nbt.putBoolean("TerrainGenerated", false);
chunk.nbt.putBoolean("TerrainPopulated", false);
chunk.nbt.putBoolean("LightPopulated", false);
return chunk;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
示例10: getEmptyChunk
import cn.nukkit.level.format.LevelProvider; //导入依赖的package包/类
public static Chunk getEmptyChunk(int chunkX, int chunkZ, LevelProvider provider) {
try {
Chunk chunk;
if (provider != null) {
chunk = new Chunk(provider, null);
} else {
chunk = new Chunk(Anvil.class, null);
}
chunk.x = chunkX;
chunk.z = chunkZ;
chunk.sections = new cn.nukkit.level.format.ChunkSection[16];
for (int y = 0; y < 16; ++y) {
chunk.sections[y] = new EmptyChunkSection(y);
}
chunk.heightMap = new int[256];
chunk.biomeColors = new int[256];
chunk.nbt.putByte("V", 1);
chunk.nbt.putLong("InhabitedTime", 0);
chunk.nbt.putBoolean("TerrainGenerated", false);
chunk.nbt.putBoolean("TerrainPopulated", false);
chunk.nbt.putBoolean("LightPopulated", false);
return chunk;
} catch (Exception e) {
return null;
}
}
示例11: Chunk
import cn.nukkit.level.format.LevelProvider; //导入依赖的package包/类
public Chunk(LevelProvider level, int chunkX, int chunkZ, byte[] terrain) {
this(level, chunkX, chunkZ, terrain, null);
}
示例12: getProvider
import cn.nukkit.level.format.LevelProvider; //导入依赖的package包/类
@Override
public LevelProvider getProvider() {
return provider;
}
示例13: setProvider
import cn.nukkit.level.format.LevelProvider; //导入依赖的package包/类
@Override
public void setProvider(LevelProvider provider) {
this.provider = provider;
}
示例14: ChunkConverter
import cn.nukkit.level.format.LevelProvider; //导入依赖的package包/类
public ChunkConverter(LevelProvider provider) {
this.provider = provider;
}
示例15: perform
import cn.nukkit.level.format.LevelProvider; //导入依赖的package包/类
public FullChunk perform() {
BaseFullChunk result;
try {
result = (BaseFullChunk) toClass.getMethod("getEmptyChunk", int.class, int.class, LevelProvider.class).invoke(null, chunk.getX(), chunk.getZ(), provider);
} catch (Exception e) {
throw new RuntimeException(e);
}
if (toClass == Chunk.class) {
for (int Y = 0; Y < 8; Y++) {
boolean empty = true;
for (int x = 0; x < 16; x++) {
for (int y = 0; y < 16; y++) {
for (int z = 0; z < 16; z++) {
if (chunk.getBlockId(x, (Y << 4) | y, z) != 0) {
empty = false;
break;
}
}
if (!empty) break;
}
if (!empty) break;
}
if (!empty) {
ChunkSection section = new ChunkSection(Y);
for (int x = 0; x < 16; x++) {
for (int y = 0; y < 16; y++) {
for (int z = 0; z < 16; z++) {
section.setBlockId(x, y, z, chunk.getBlockId(x, (Y << 4) | y, z));
section.setBlockData(x, y, z, chunk.getBlockData(x, (Y << 4) | y, z));
section.setBlockLight(x, y, z, chunk.getBlockLight(x, (Y << 4) | y, z));
section.setBlockSkyLight(x, y, z, chunk.getBlockSkyLight(x, (Y << 4) | y, z));
}
}
}
((BaseChunk) result).sections[Y] = section;
}
}
}
System.arraycopy(chunk.getBiomeColorArray(), 0, result.biomeColors, 0, 256);
System.arraycopy(chunk.getHeightMapArray(), 0, result.heightMap, 0, 256);
result.NBTentities = new ArrayList<>();
chunk.NBTentities.forEach((nbt) -> result.NBTentities.add(nbt.copy()));
result.NBTtiles = new ArrayList<>();
chunk.NBTtiles.forEach((nbt) -> result.NBTtiles.add(nbt.copy()));
result.setGenerated();
result.setPopulated();
result.setLightPopulated();
result.initChunk();
return result;
}