中文Minecraft Wiki是完全公开的。欢迎持续参与翻译工作 中文Minecraft Wiki是完全公开的。欢迎持续参与翻译工作Minecraft中文Wiki微博现已创建!或许有兴趣去看看Minecraft中文Wiki微博现已创建!或许有兴趣去看看翻译或创建页面之前,不妨看看译名标准化Wiki条例页面。翻译或创建页面之前,不妨看看译名标准化Wiki条例页面。需要管理员的协助?在管理员告示板留言也许可以帮到您。需要管理员的协助?在管理员告示板留言也许可以帮到您。想与其他用户进行编辑上的沟通?社区专页正是为此创建的。想与其他用户进行编辑上的沟通?社区专页正是为此创建的。

Anvil文件格式

出自 Minecraft Wiki
前往: 導覽搜尋

Anvil[1]文件格式在Minecraft1.2被正式使用。它在之前的文件格式Region的基礎上做出了多個更改和改進。它最初在快照12w07a中投入使用。

與MCRegion的不同之處[編輯 | 編輯原始碼]

正在將世界從McRegion格式轉化為Anvil。

從MCRegion到Anvil做出的唯一修改是區塊格式--Region文件格式仍在使用,但標識改成了Anvil。Anvil在區塊格式上做出了以下修改:

  • 最高建築高度提升到256(原為128)。
  • 世界上的空的區域並不會占用內存或保存至硬碟內。
  • 通過添加一個4位元數據層面(與元數據的儲存方法相似)使方塊ID的最大值提升到了4096(原為256)。然而剩餘的Minecraft代碼中暫時沒有使用這項修改。
  • 方塊的排列順序從XZY改成了YZX來提高壓縮率。
  • 優化了發送給客戶端的區塊資料包(一個無空氣的區塊要比在舊格式的同區塊更小,一個擁有很多空氣的區塊更是要小得多)。
  • 生態域將保存至每個X、Z列表中,這代表它們現在可由外部程序修改,這對製圖者很有幫助。

更多信息[編輯 | 編輯原始碼]

Minecraft快照12w07a/b和1.2會自動地將世界轉換至新的格式,但同時會使用舊格式創造一個世界文件的拷貝來兼容舊的遊戲版本。世界生成器未經過修改,所以將在往常的地形上生成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。要降低備份的文件大小,可以刪除這些.mcr 文件(最好是備份以後!)。

可以這麼幹:

Windows 資源管理器(以及類似的文件查看器)
  1. 打開資源管理器 (Win-e)
  2. 找到世界存檔資料夾,選擇進入
  3. 搜索 (F3):*.mcr
  4. 全選 (ctrl-a),刪除
Linux 或其它 UNIX 類指令行,如 OS X
  1. cd /到/存档/的路径,進入目錄
  2. 運行:rm *.mcr;變體:
  • rm /到/存档/的路径/*.mcr——跳過 cd,一步到位
  • find /到/一堆/存档/的路径/ -name '*.mcr' | xargs rm -f——範圍性刪除
如果你沒備份,考慮把 rm 換成 mv(移動)之類的東西吧。
Windows 指令提示符
  1. 打開指令提示符 (Win-r, cmd, Enter)
  2. 運行:del /f /s /q 到\存档\的路径\*.mcr

另見[編輯 | 編輯原始碼]

參考[編輯 | 編輯原始碼]

Promotional Content