-1

对于我的个人项目,我需要编辑存储在 .mca 文件中的块中每个部分的每个字节。我已经可以生成块所需的字节。我唯一的问题是我无法理解如何在 java 中很容易地编辑这些类型的文件。

4

1 回答 1

0

这是一个使用此Java NBT 库的示例,它提供了有关在自述文件中包含项目的说明。在此处输入图像描述希望这可以帮助!

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");
于 2021-01-07T17:39:52.330 回答