【发布时间】:2021-01-01 15:16:26
【问题描述】:
对于我的个人项目,我需要编辑存储在 .mca 文件中的块中每个部分的每个字节。我已经可以生成块所需的字节了。我唯一的问题是我无法理解如何在 java 中很容易地编辑这些类型的文件。
【问题讨论】:
对于我的个人项目,我需要编辑存储在 .mca 文件中的块中每个部分的每个字节。我已经可以生成块所需的字节了。我唯一的问题是我无法理解如何在 java 中很容易地编辑这些类型的文件。
【问题讨论】:
这是一个使用此Java NBT library 的示例,它提供了有关将您的项目包含在自述文件中的说明。 希望对您有所帮助!
byte[][][] generatedBytes = new byte[16][256][16];
MCAFile mcaFile = new MCAFile(0, 0);
Chunk chunk = Chunk.newChunk();
// Generate bytes to be put into chunk, here we just generate some stripes
for (int y=0; y < 256; y++) {
for (int z = 0; z < 16; z++) {
for (int x = 0; x < 16; x++) {
generatedBytes[x][y][z] = (byte) (x % 3);
}
}
}
// Write our generated bytes to a chunk
for (int y=0; y < 256; y++) {
for (int z = 0; z < 16; z++) {
for (int x = 0; x < 16; x++) {
CompoundTag blockTag = new CompoundTag();
String blockType = "minecraft:air";
switch (generatedBytes[x][y][z]) {
case 1:
blockType = "minecraft:stone";
break;
case 2:
blockType = "minecraft:grass_block";
break;
default:
break;
}
blockTag.putString("Name", blockType);
chunk.setBlockStateAt(x, y, z, blockTag, false);
}
}
}
mcaFile.setChunk(0, 0, chunk);
MCAUtil.write(mcaFile, "r.0.0.mca");
【讨论】: