Topik soal jawab java yang dibawakan oleh editor php Yuzi akan menjawab soalan anda secara terperinci tentang struktur yang meliputi blok sedia ada di Minecraft. Dalam permainan, cara mengendalikan dan menggunakan fungsi ini secara berkesan akan menjejaskan pengalaman permainan dan keseronokan bermain. Melalui tafsiran dan panduan artikel ini, saya harap ia dapat membantu anda menguasai teknik ini dengan lebih baik dan mencapai hasil dan pengalaman yang lebih baik dalam permainan.
Saya telah cuba mencari dalam talian cara untuk mengubah suai blok sedia ada dan sifatnya dalam Fabrik Minecraft, tetapi yang saya dapati ialah cara mencipta blok baharu. Mana-mana versi yang saya temui adalah lebih rendah daripada 1.20.
Saya sebenarnya tidak dapat mencari cara untuk mengatasi sifat blok sedia ada sama sekali. Tulis ganti juga tidak berfungsi
Apa yang anda mahu lakukan ialah mendaftar semula block
contoh minecraft yang telah didaftarkan. Tetapi ada sebab tiada siapa yang telah mendokumenkan cara melakukan ini: Anda tidak sepatutnya.
Mendaftar semula bahagian dalam minecraft boleh menyebabkan isu pelik, terutamanya jika mod anda akan digunakan dalam modpack yang besar. Ini ada kaitan dengan keserasian dengan mod lain dan juga Minecraft itu sendiri. Anda lebih baik berharap untuk mengelakkan ini. Terdapat sedozen penyelesaian lain yang boleh mengubah tingkah laku blok tertentu tanpa menyebabkan terlalu banyak masalah. Ia termasuk tetapi tidak terhad kepada:
minecraft:stone
一个 age
属性(无论出于何种原因可能有用),请将 minecraft:stone
视为 age=0
并使用 age
创建自定义块(例如 modid:ged_stone
) zqb 属性从 1
kepada mana-mana umur maksimum. Satu lagi, pendekatan yang lebih umum ialah membina mixin menjadi block
kelas atau subkelas yang sesuai dan melakukan sesuatu seperti berikut untuk menyasarkan blok tertentu (dalam kes ini, batu):
block self = (block) (object) this; if (builtinregistries.block.getkey(self).equals(new resourcelocation("stone"))) { // do something only if this block is stone }
Tetapi jika anda benar-benar mahu menggantikan contoh blok sepenuhnya, berikut adalah cadangan: gunakan suntikan mixin registry.register
untuk menggantikan contoh blok tertentu dengan contoh blok tersuai:
@Mixin(Registry.class) public class RegistryMixin { @Inject( // You may need to specify the correct signature after the method // name because there are two `register` methods. method="register", at=@At("HEAD"), cancelable=true ) // Note that this is a generic method, in Mixin you'll have to use // Object to replace type parameters private static void onRegister(Registry reg, ResourceLocation id, Object value, CallbackInfoReturnable<Object> cir) { if (reg != BuiltInRegistries.BLOCK) return; if (!id.toString().equals("minecraft:stone")) return; // Now that you've filtered out the minecraft:stone block, // you can re-register it Block myCustomBlock = new Block(.......); ((WritableRegistry) reg).register(id, myCustomBlock); cir.setReturnValue(myCustomBlock); } }
Tetapi sekali lagi cuba elakkan penyelesaian ini. Terdapat naga di sini.
Sila ambil perhatian bahawa saya belum menguji sebarang coretan kod kerana saya tidak mempunyai persekitaran yang diubah suai semasa menulis artikel ini. Ia mungkin memerlukan pelarasan untuk berfungsi.
Juga, saya menggunakan pemetaan rasmi mojang, jika anda menggunakan pemetaan benang, nama mungkin berbeza. Contohnya, resourcelocation
在 yarn 中被命名为 identifier
.
Saya harap ini membantu. Selamat mengekod!
Atas ialah kandungan terperinci Struktur Minecraft menimpa blok sedia ada 1.20. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!