Panduan / Bangunan & Sumber Daya
Lukisan dan disk kustom butuh dua pack, dan gagal memasang salah satunya adalah kesalahan umum
Datapack mendaftarkan kontennya; resource pack menyediakan tekstur dan suaranya. Hanya datapack saja dan kontennya terdaftar tanpa apa pun untuk ditampilkan. Ditambah batas 16×16 dan apa yang sebenarnya dikendalikan oleh panjang disk.
Lukisan dan disk musik keduanya merupakan registry nyata di Java modern, yang berarti kamu bisa menambahkan mereka alih-alih menggantikan yang vanilla. Apa pun yang kamu tambahkan tidak akan menggeser lukisan atau disk yang sudah ada.
Masalahnya adalah kontennya terbagi ke dalam dua jenis pack yang berbeda, dan masing-masing tidak berguna sendirian.
Apa yang diletakkan di mana
Datapack mendaftarkan bendanya:
data/<ns>/painting_variant/<id>.json asset_id, width, height, title, author
data/<ns>/jukebox_song/<id>.json sound_event, description, length_in_seconds, comparator_output
Resource pack menyediakan apa yang kamu lihat dan dengar:
assets/<ns>/textures/painting/<id>.png
assets/<ns>/sounds/<id>.ogg
assets/<ns>/sounds.json
Pasang hanya datapack-nya saja dan kontennya berhasil terdaftar — bendanya ada, /give menemukannya, dan memang tidak ada tekstur maupun audio. Hasilnya jauh lebih membingungkan daripada kegagalan total, dan inilah alasan umum mengapa lukisan kustom "tidak berhasil". Alat di halaman ini mengirimkan keduanya dalam satu zip khusus agar keduanya tidak bisa dipisahkan.
Perhatikan dua berkas pack.mcmeta. Keduanya adalah pack terpisah dengan identitas terpisah; tidak ada format gabungan yang menampung keduanya.
Id registry lebih ketat daripada nama berkas
Sebuah id hanya boleh berisi a-z, 0-9, _, . dan - (ditambah / untuk subfolder). Apa pun selain itu dan game akan melewati berkas tersebut dengan baris "Invalid path" di log — pack-nya tetap dimuat, dan entri itu tidak pernah ada, yang lebih sulit dikenali daripada kegagalan. Huruf kapital dan spasi adalah dua hal yang paling sering menjebak orang, karena keduanya sepenuhnya wajar dalam nama berkas yang kamu seret masuk.
Lukisan: maksimal 16×16, dan 17 merusak pack-nya
Lukisan vanilla sendiri berkisar dari 1 × 1 hingga 4 × 4 blok, dan alat ini menawarkan rentang yang sama. Formatnya mengizinkan lebih: 26.3 membaca width dan height sebagai blok utuh dari 1 hingga 16, dan lukisan 16 × 16 dimuat, tergantung, dan tetap terpasang di dinding mana pun yang memiliki ruang 16 × 16 blok — diuji pada server 26.3. Yang menentukan apakah sebuah lukisan tetap terpasang adalah ruang, bukan ukuran: lukisan yang tidak muat di tempatnya tergantung akan jatuh sebagai item, dan lukisan vanilla 1 × 1 tanpa apa pun di belakangnya juga jatuh sama persis.
Di atas 16, game tidak membatasi angkanya, melainkan menolaknya. "width": 17 gagal dengan "Value must be within range [1;16]", seluruh pemuatan registry berhenti bersamanya, dan dunia tidak akan terbuka sampai pack-nya dihapus.
Ukurannya dideklarasikan di JSON sebagai width dan height, dalam blok. Ukuran ini tidak disimpulkan dari PNG, jadi lukisan 3 × 1 yang teksturnya persegi adalah berkas valid yang tampil dalam keadaan teregang.
Panjang disk bukan sekadar label
length_in_seconds adalah saat game memutuskan treknya sudah berakhir. Satu detik setelah panjang yang dideklarasikan, Kotak Lagu memotong suaranya, menghentikan not musik, dan mematikan sinyal redstone yang dikeluarkannya selama lagu diputar — kekuatan penuh, ke blok-blok di sekitarnya, selama persis selama game menganggap treknya masih berjalan.
Jadi panjang yang tidak akurat bukan kesalahan kosmetik. Deklarasikan trek 200 detik sebagai 100 dan musiknya terpotong di tengah, dengan sinyalnya mati pada saat yang sama; deklarasikan sebagai 300 dan Kotak Lagu terus menyalakan sinyalnya melewati 100 detik keheningan. Apa pun pilihannya, redstone yang menunggu disk berakhir akan menyala di waktu yang salah. Alat ini membaca durasi sebenarnya dari berkasnya alih-alih memintamu mengetiknya, justru karena alasan itu.
Comparator membaca hal yang berbeda: comparator_output, satu angka tetap dari 0 hingga 15 yang bertahan selama disk berada di dalam Kotak Lagu, baik sedang diputar maupun sudah selesai. Angka ini tidak naik sepanjang trek, dan panjangnya tidak mengubahnya — vanilla menggunakannya untuk membedakan disk (13 memberi 1, Kucing 2, blocks 3).
Trek juga ditulis dengan "stream": true di sounds.json. Musik itu panjang, dan memuat trek penuh ke memori sebelum memutarnya akan tersendat — streaming adalah default yang tepat untuk apa pun sepanjang disk, dan yang salah untuk efek suara pendek.