【问题标题】:Block in mca ( MC Anvil map ) editing in Java在 Java 中编辑 mca(MC Anvil 地图)中的块
【发布时间】:2021-01-01 15:16:26
【问题描述】:

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

【问题讨论】:

    标签: minecraft mca


    【解决方案1】:

    这是一个使用此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");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-18
      • 2012-05-08
      • 1970-01-01
      • 2016-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多