Lukisan dan Cakram Kustom Membutuhkan Dua Paket, dan Kesalahan Umumnya adalah Hanya Menginstal Salah Satunya
Datapack mendaftarkan konten; resource pack menyediakan tekstur dan suara. Datapack saja akan terdaftar tapi tidak ada yang ditampilkan. Ditambah batasan 4x4 dan mengapa durasi cakram bukan sekadar kosmetik.
Lukisan dan cakram musik keduanya adalah registri nyata di Java modern, yang berarti Anda bisa menambahkannya daripada mengganti yang vanila. Tidak ada yang Anda tambahkan akan menggantikan lukisan atau cakram yang sudah ada.
Masalahnya adalah kontennya terbagi dalam dua jenis paket yang berbeda, dan masing-masing tidak berguna jika berdiri sendiri.
Apa Diletakkan di Mana
Datapack mendaftarkan objeknya:
data/<ns>/painting_variant/<id>.json asset_id, width, height, title, author
data/<ns>/jukebox_song/<id>.json sound_event, description, length, comparator
Resource pack menyediakan apa yang Anda lihat dan dengar:
assets/<ns>/textures/painting/<id>.png
assets/<ns>/sounds/<id>.ogg
assets/<ns>/sounds.json
Jika hanya menginstal datapack, konten akan berhasil terdaftar — ia ada, /give menemukannya, dan hanya saja tidak ada tekstur dan tidak ada audio. Itu adalah hasil yang jauh lebih membingungkan daripada kegagalan total, dan itu adalah alasan umum mengapa lukisan kustom "tidak berfungsi". Alat di halaman ini mengirimkan keduanya dalam satu file zip agar tidak dapat dipisahkan.
Perhatikan dua file pack.mcmeta. Keduanya adalah paket terpisah dengan identitas terpisah; tidak ada format gabungan yang menampung keduanya.
ID Registri Lebih Ketat dari Nama File
ID hanya boleh berisi a-z, 0-9, _, ., dan -. Jika ada yang lain, paket akan gagal dimuat — bukan hanya entri yang rusak, tetapi seluruh paket. Huruf kapital dan spasi adalah dua hal yang sering menjebak orang, karena keduanya sangat umum dalam nama file yang Anda seret masuk.
Lukisan: 1x1 hingga 4x4
Ukuran vanila berkisar dari 1 × 1 hingga 4 × 4 blok, memberikan enam belas bentuk yang mungkin. Varian di luar rentang itu masih akan dirender — game tidak menolaknya — tetapi tidak dapat digantung di dinding dengan ukuran yang diharapkan pemain, sehingga secara efektif tidak dapat ditempatkan dalam pembangunan normal.
Ukuran dideklarasikan dalam JSON sebagai width dan height, dalam blok. Ini tidak disimpulkan dari PNG, jadi lukisan 3 × 1 yang teksturnya persegi adalah file yang valid yang ditampilkan meregang.
Durasi Cakram Bukan Sekadar Label
length_in_seconds menggerakkan dua hal: waktu kotak lagu (jukebox) dan rampa komparator (comparator ramp) — sinyal yang dibaca komparator dari kotak lagu yang sedang memutar akan meningkat sepanjang durasi yang dideklarasikan.
Jadi, durasi yang tidak akurat bukanlah kesalahan kosmetik. Deklarasikan trek 200 detik sebagai 100 detik dan komparator akan menyelesaikan rampanya di tengah jalan, yang secara diam-diam merusak redstone apa pun yang diatur untuk berakhirnya cakram. Alat ini membaca durasi sebenarnya dari file daripada meminta Anda mengetiknya, karena alasan itu.
Trek juga ditulis dengan "stream": true di sounds.json. Musik itu panjang, dan memuat trek penuh ke dalam memori sebelum memutarnya akan menyebabkan gagap — streaming adalah pengaturan default yang tepat untuk apa pun yang berdurasi cakram, dan yang salah untuk efek suara pendek.