当前位置: 首页>>代码示例>>Java>>正文


Java LevelProvider类代码示例

本文整理汇总了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);
    }
}
 
开发者ID:Rsplwe,项目名称:Nukkit-Java9,代码行数:18,代码来源:Chunk.java

示例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);
    }

}
 
开发者ID:JupiterDevelopmentTeam,项目名称:Jupiter,代码行数:25,代码来源:BaseRegionLoader.java

示例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;
    }
}
 
开发者ID:CoreXDevelopment,项目名称:CoreX,代码行数:13,代码来源:Chunk.java

示例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;
}
 
开发者ID:CoreXDevelopment,项目名称:CoreX,代码行数:8,代码来源:LevelProviderConverter.java

示例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;
    }
}
 
开发者ID:CoreXDevelopment,项目名称:CoreX,代码行数:15,代码来源:Chunk.java

示例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;
}
 
开发者ID:CoreXDevelopment,项目名称:CoreX,代码行数:8,代码来源:LevelProviderConverter.java

示例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;
    }
}
 
开发者ID:Rsplwe,项目名称:Nukkit-Java9,代码行数:13,代码来源:Chunk.java

示例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);
    }
}
 
开发者ID:Rsplwe,项目名称:Nukkit-Java9,代码行数:37,代码来源:Chunk.java

示例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);
    }
}
 
开发者ID:Rsplwe,项目名称:Nukkit-Java9,代码行数:33,代码来源:Chunk.java

示例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;
    }
}
 
开发者ID:Rsplwe,项目名称:Nukkit-Java9,代码行数:32,代码来源:Chunk.java

示例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);
}
 
开发者ID:Rsplwe,项目名称:Nukkit-Java9,代码行数:4,代码来源:Chunk.java

示例12: getProvider

import cn.nukkit.level.format.LevelProvider; //导入依赖的package包/类
@Override
public LevelProvider getProvider() {
    return provider;
}
 
开发者ID:Rsplwe,项目名称:Nukkit-Java9,代码行数:5,代码来源:BaseFullChunk.java

示例13: setProvider

import cn.nukkit.level.format.LevelProvider; //导入依赖的package包/类
@Override
public void setProvider(LevelProvider provider) {
    this.provider = provider;
}
 
开发者ID:Rsplwe,项目名称:Nukkit-Java9,代码行数:5,代码来源:BaseFullChunk.java

示例14: ChunkConverter

import cn.nukkit.level.format.LevelProvider; //导入依赖的package包/类
public ChunkConverter(LevelProvider provider) {
    this.provider = provider;
}
 
开发者ID:Rsplwe,项目名称:Nukkit-Java9,代码行数:4,代码来源:ChunkConverter.java

示例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;
}
 
开发者ID:Rsplwe,项目名称:Nukkit-Java9,代码行数:51,代码来源:ChunkConverter.java


注:本文中的cn.nukkit.level.format.LevelProvider类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。