<本站文本内容除另有声明外,转载时均必须注明出处。(详情…中文Minecraft Wiki是完全公开的。请勇于扩充与修正内容!Minecraft中文Wiki微博正在更新!或许有兴趣去看看想与其他用户进行编辑上的沟通?社区专页正是为此创建的。翻译或创建页面之前,不妨看看译名标准化Wiki条例页面。需要管理员的协助?在管理员告示板留言也许可以帮到您。>

致繁體用戶:由於近期 MediaWiki 簡繁轉換表故障頻發,繁體譯名不能正確顯示。繁體譯名一概以遊戲內為准,不便之處敬請諒解。

Anvil文件格式

来自Minecraft Wiki
(重定向自Anvil
跳转至: 导航搜索
Information icon.svg
此特性为Java版独有。

Anvil[1]文件格式在Java版1.2被正式使用。它在之前的文件格式Region的基础上做出了多个更改和改进。它最初在快照12w07a中投入使用。

与MCRegion的不同之处[编辑 | 编辑源代码]

正在将世界从McRegion格式转化为Anvil。

从MCRegion到Anvil做出的唯一修改是区块格式--Region文件格式仍在使用,但标识改成了Anvil。Anvil在区块格式上做出了以下修改:

  • 最高建筑高度提升到256(原为128)。
  • 世界上的空的区域并不会占用内存或保存至硬盘内。
  • 通过添加一个4位元数据层面(与元数据的储存方法相似)使方块ID的最大值提升到了4096(原为256)。然而剩余的Minecraft代码中暂时没有使用这项修改。
  • 方块的排列顺序从XZY改成了YZX来提高压缩率。
  • 优化了发送给客户端的区块数据包(一个无空气的区块要比在旧格式的同区块更小,一个拥有很多空气的区块更是要小得多)。
  • 生物群系将保存至每个X、Z列表中,这代表它们现在可由外部程序修改,这对制图者很有帮助。

更多信息[编辑 | 编辑源代码]

12w07a以来的Java版版本会自动地将世界转换至新的格式,但同时会使用旧格式创造一个世界文件的拷贝来兼容旧的游戏版本。世界生成器未经过修改,所以将在往常的地形上生成128层的空气,这使海平面到限制高度增加到了192米。

  • 每个区块的“Blocks”“Data”“SkyLight”和“BlockLight”标签被移动并且被改变读取方式(见下文)。
  • “Sections” 列表标签包含的复合标签已添加多达16个。
  • 每一个16x16x16的区域都有了“Blocks”“Data”“SkyLight”和“BlockLight”标签。
  • 每一个方块都有“Y”字节标签来说明高度(有些时候Y位置可以被忽略)。0是世界的最底部,15是世界的最顶部。
  • 每一个方块都有可选的“Add”标签,这是一个像“Data”一样的DataLayer字节数组。“Add”标签不包括在转换器中,因为旧格式没有超过255的方块ID。这种额外的标记创建一个方块时需要getTile()方法检查是否存在数组,然后替换默认的方块数据。换句话说,方块ID = (当小于8时) + 基础ID。
  • 每一个区块都有一个16×16字节的数组和一个生物群系ID标签“Biomes”。如果这个数组丢失了,它会在游戏开始前将数组里的每一个数值变为-1。然而开发人员提供的转换器源代码中不包含任何生物群系的源代码。
  • 注意:旧格式是XZY((x * 16 + z) * 16 + y)而新格式是YZX((y * 16 + z) * 16 + x)(请注意DataLayer与OldDataLayer的不同)。
  • 新格式使用“.mca”为扩展名而不是 “.mcr”(旧格式为安全方面保留了“.mcr”,level.dat的扩展名就是“level.dat_mcr”)。
  • 一种叫做IntArray的新NBT标签种类被加入NBT格式(ID为11)它被用于“地图高度”标签。

其他信息请见区块格式页面。

独立转换器[编辑 | 编辑源代码]

独立的文件格式转换器及其源码已经放出,方便开发者检查和准备。[1]

降低转换后文件大小[编辑 | 编辑源代码]

Anvil文件格式的文件以.mca为后缀名,而MCRegion使用.mcr。游戏在将世界转换为Anvil后会保留旧的McRegion文件——尽管它们再也不会被游戏使用了。为了降低备份的文件大小,可以删除这些.mcr文件(最好是备份以后)。可以这么干:

  • 对于Windows:
    • 使用文件资源管理器(或类似的文件查看器):
    1. 打开文件资源管理器(快捷键:⊞ Win+E
    2. 找到世界存档文件夹,选择进入
    3. 搜索(快捷键:F3):*.mcr
    4. 全选(快捷键:Ctrl+A)并删除(快捷键:delete
    • 使用命令提示符:
    1. 打开命令提示符(同时按下⊞ WinR,输入cmd,再按下↵ Enter
    2. 运行以下命令:del /f /q "<世界文件夹路径>\region\*.mcr"
  • 对于Linux、macOS等:
    • 方法一:
    1. 在终端中运行命令:cd <世界文件夹路径>,进入目录
    2. 运行命令:rm *.mcr
    • 方法二:
    1. 打开终端
    2. 运行以下命令:rm -f <世界文件夹路径>/region/*.mcr

历史[编辑 | 编辑源代码]

Java版
1.2.112w07a加入了Anvil文件格式。
1.1620w14a现在会以同步模式打开Anvil格式的文件了,这可以防止崩溃后数据丢失和损坏。

参见[编辑 | 编辑源代码]

参考[编辑 | 编辑源代码]