Predikat dengan Satu Kondisi Tidak Memiliki Pembungkus, dan Itu Adalah Perubahan Bentuk Nyata
Satu kondisi adalah objek itu sendiri. Dua atau lebih akan dibungkus dalam all_of atau any_of. Ditambah delapan jenis kondisi, dan mengapa pembalikan adalah pembungkus, bukan tanda.
Predikat paket data adalah file JSON yang menjelaskan suatu kondisi, dan strukturnya berubah tergantung pada berapa banyak kondisi yang Anda miliki. Ini adalah bagian yang membingungkan orang yang menyalin contoh dan mengembangkannya.
Satu Bukan Daftar Satu
| kondisi | bentuk keluaran |
|---|---|
| 0 | {} |
| 1 | objek kondisi itu sendiri |
| 2+ | { "condition": "minecraft:all_of", "terms": [ … ] } |
Tidak ada pembungkus di sekitar satu kondisi. Tambahkan yang kedua dan seluruh file berubah bentuk — kondisi asli menjadi elemen pertama dari array terms di bawah root baru. Apa pun yang membaca atau menghasilkan ini harus menangani kedua bentuk, dan contoh yang dibuat dari satu kondisi tidak menunjukkan bentuk yang Anda perlukan saat Anda menambahkan yang lain.
any_of adalah kombinator alternatif: semua istilah harus lulus, atau salah satu dari mereka.
Pembalikan Juga Pembungkus, Bukan Tanda
Tidak ada bidang "invert": true. Kondisi yang dinegasikan dibungkus:
{ "condition": "minecraft:inverted", "term": { …the original condition… } }
Perhatikan term, tunggal — inverted mengambil tepat satu, di mana all_of dan any_of mengambil array terms. Dua kunci yang terlihat serupa dengan bentuk yang berbeda, dan pembalikan berlaku per kondisi, sehingga predikat dapat mencampur istilah terbalik dan biasa secara bebas di dalam satu all_of.
Delapan Jenis Kondisi
entity_properties random_chance
value_check random_chance_with_looting
weather_check time_check
location_check match_tool
random_chance_with_looting adalah yang patut diperhatikan: ia mengambil peluang dasar dan looting_multiplier, sehingga probabilitasnya berskala dengan level Penjarahan (Looting) pembunuh. Itu membuatnya bermakna hanya di mana seorang pembunuh ada dalam konteks — itu adalah kondisi tingkat penurunan, bukan gerbang acak serbaguna. random_chance biasa adalah yang harus digunakan di tempat lain.
value_check membandingkan angka dengan salah satu dari tiga sumber: level enchantment, keberuntungan (luck), atau ekspresi kustom yang Anda edit ke dalam JSON secara manual setelah menyalin.
Pemilih Sama Persis dengan Set Vanilla
Penting untuk diketahui saat Anda memeriksa apakah ID bioma atau struktur itu nyata: daftar drop-down pembuat bukan sampel yang dikurasi.
- 66 bioma — setiap bioma dalam game, tanpa ada yang hilang dan tanpa ada yang dibuat-buat
- 34 struktur — demikian juga
- 18 tag blok dan 15 item, yang merupakan subset yang berfungsi
Itu diverifikasi terhadap data registri game sendiri daripada diasumsikan, jadi jika ID tidak ada dari daftar bioma atau struktur, ID tersebut tidak ada. Untuk tag blok dan item, justru sebaliknya: ketidakadaan hanya berarti pemilih tidak mencantumkannya, dan mengetik ID sendiri tidak masalah.