Guides / Commands & Data

Ekstensi tidak menunjukkan format skema — 31 dari 33 berkas .schematic adalah tebakan format lain

Lima format, empat cara berbeda untuk mengemas blok, dan .schematic digunakan oleh dua di antaranya. Mengendus akar NBT lebih baik daripada memercayai nama berkas, dengan bukti terhitung.

Ada lima format skema yang beredar, dan nama berkas lebih merupakan petunjuk daripada fakta. Penampil di sini memutuskan jenis berkas dengan melihat isinya, dan ada alasan terukur untuk itu.

Lima format, lima ekstensi

ekstensiformat
.nbtstruktur vanilla
.schemSpons
.schematicSpons — secara default
.litematicLitematica
.mcstructureBatu Dasar

Baris masalah adalah .schematic. Ekstensi itu digunakan bersama oleh format MCEdit klasik dan format Spons, dan berkas-berkas tersebut diganti namanya oleh orang-orang yang tidak tahu atau tidak peduli.

Dihitung dari korpus nyata: dari 33 berkas .schematic, 31 adalah MCEdit, satu adalah struktur vanilla, dan satu adalah Litematica. Jadi tebakan default ekstensi salah untuk hampir semua berkas tersebut, dan dua berkas sama sekali bukan .schematic — hanya salah nama.

Solusinya adalah mengendus akar NBT dan membiarkan apa isi berkas mengalahkan apa namanya:

  • kunci Regions → Litematica
  • palette dan blocks → struktur vanilla
  • jika tidak, uji bentuk MCEdit, lalu kembali ke ekstensi

Empat cara mengemas blok yang sama

Format-format tersebut tidak berbeda secara kosmetik. Masing-masing menyimpan data blok dengan cara yang benar-benar berbeda, dan setiap pilihan memiliki konsekuensi:

Vanilla .nbt — daftar jarang. Satu entri per blok yang ditempatkan, masing-masing menamai indeks palet. Udara tidak ada, jadi bangunan berongga murah.

Spons .schem — aliran varint. Indeks palet dikemas sebagai bilangan bulat lebar variabel: tujuh bit muatan per byte, bit tinggi diatur untuk melanjutkan. Palet kecil membutuhkan satu byte per blok; palet lebih dari 127 entri mulai membutuhkan dua byte untuk indeks tinggi. Padat, tetapi menjelaskan diri sendiri.

MCEdit .schematic — array byte datar. Satu byte per blok, jadi maksimal 256 jenis blok — itulah mengapa ia membutuhkan array samping AddBlocks yang mengemas bit kesembilan sebagai nibble per blok. Ini adalah format ID numerik lama dari sebelum status blok, dan ID-nya diselesaikan melalui senyawa SchematicaMapping daripada menjadi nama.

Litematica .litematic — long yang dikemas bit. Indeks dikemas tepat max(2, bits needed for the palette) bit masing-masing, LSB-pertama, dan sebuah entri dapat melintasi batas antara dua long. Palet 5 entri menggunakan 3 bit per blok; palet 300 entri menggunakan 9.

Batas bawah 2 bit penting: bahkan palet dua blok tidak mengompres di bawah 2 bit per entri, jadi bangunan monokrom tidak sekecil yang disarankan oleh matematika.

Batu Dasar adalah little-endian

.mcstructure adalah yang aneh pada tingkat yang lebih rendah: Batu Dasar menulis NBT little-endian di mana setiap format Java menulis big-endian. Itu diputuskan sebelum parsing format apa pun terjadi — membaca byte dengan endianness yang salah dan Anda tidak mendapatkan struktur yang salah, Anda mendapatkan sampah yang gagal diurai sama sekali.

Apa artinya ini secara praktis

Jika sebuah skema tidak dapat dibuka di suatu tempat, pertanyaan pertama bukanlah "apakah berkasnya rusak" tetapi "apakah berkas ini sesuai dengan namanya". Sebuah .schematic dari halaman unduhan jauh lebih mungkin menjadi MCEdit daripada Spons, dan alat yang memercayai ekstensi akan menolak berkas yang sempurna.

Dan ketika membandingkan dua ekspor dari bangunan yang sama, perbedaan ukuran sebagian besar tentang pengodean daripada konten — sebuah .nbt vanilla jarang dari bangunan berongga dan .litematic yang dikemas bit dari hal yang sama sedang memecahkan masalah yang berbeda.

Penampil skematik 3D →

More guides

Browse all →

Cari alat Minecraft lainnya?

Kumpulan generator, penampil, dan pengonversi yang berjalan di peramban — semuanya gratis.