WorldGeneratorModifiers

Untuk gambaran singkat dari proses pembuatan dunia di Sponge, tolong baca Generasi dunia. Sekarang, mari tunjukkan bagaimana anda dapat memulai membuat tanda pada pembuatan dunia.

Semua plugin diharapkan untuk membuat perubahan kedalam pembuat dunia yang harus mendaftarkan sebuah WorldGeneratorModifier. Perubahan ini didaftarkan secara menyeluruh dengan id yang unik, dimana akan ditambahkan kedalam config dari dunia itu oleh admin server. Dengan id yang ditetapkan kedalam config dunia, sebuah WorldGeneratorModifier akan secara otomatis dipanggil ketika pembuat dari dunia tersebut didirikan, mengizinkannya untuk membuat perubahan pada pembuat.

Menciptakan sebuah WorldGeneratorModifier

Mari kita mulai dengan format WorldGeneratorModifier. Pertama, anda memerlukan calss yang menjalankan bagian `` WorldGeneratorModifier``:

import org.spongepowered.api.world.storage.WorldProperties;

private class MyModifier implements WorldGeneratorModifier {

    @Override
    public String getId() {
        return "pluginid:mymodifier";
    }

    @Override
    public String getName() {
        return "My Modifier";
    }

    @Override
    public void modifyWorldGenerator(WorldProperties world, DataContainer settings, WorldGenerator worldGenerator) {

    }

}

Seperti yang bisa anda lihat, WorldGeneratorModifier memiliki tiga methods yang kita sampingkan. CatalogType#getId() harus dikesampingkan untuk mengembalikan pengidentifikasi yang konstan dan unik untuk WorldGeneratorModifier anda, inilah pengidentifikasi yang akan digunakan didalam pengaturan dunia untuk menentukan ke dunia mana perubahan anda harus diterapkan. CatalogType#getName() harus dikesampingkan dengan nama yang konstan dan mudah dibaca manusia untuk perubahan anda.

Ketiga metode ditimpa adalah di mana anda membuat perubahan ke dunia generator. Metode ini disebut dengan implementasi saat ini adalah menciptakan dunia generator untuk sebuah dunia yang telah ditentukan bahwa ``WorldGeneratorModifier``harus diterapkan.

WorldProperties dan sebuah DataContainer dari properti tambahan untuk dunia dilewatkan kedalam method dalam rangka untuk memberikan konteks kedalam perubahan anda. Contohnya, anda dapat menggunakan WorldProperties hanya untuk menerapkan perubahan pembuatan anda kedalam dunia bawah.

Daftar PengubahGeneratorDunia

Sekarang karena anda sudah membuat perubahan kami, anda harus mendaftarkannya. Waktu yang baik untuk melakukan hal ini adalah selama bagian INITIALIZATION. Untuk mendaftarkannya, langsung hubungi GameRegistry#register(Class, T) dengan WorldGeneratorModifier.class sebagai argumentasi pertama dan perubahan anda sebagai yang kedua.

@Listener
public void onGameInitialization(GameInitializationEvent event) {
    Sponge.getRegistry().register(WorldGeneratorModifier.class , new MyModifier());
}

Untuk menerapkan WorldGeneratorModifier anda kedalam dunia, anda harus menambahkannya kedalam susunan world-generation-modifiers sampai berkas config dunia ditemukan di config/sponge/worlds/[dimension]/[worldName]/world.conf. Sebagai contoh untuk menerapkan WorldGeneratorModifier langit kedalam dunia, anda akan menambahkan id perubahan langitnya kedalam daftar perubahan.

# WorldGenerationModifiers to apply to the world
world-generation-modifiers=[
"sponge:skylands"
]

Perhatikan bahwa daftar world-generation-modifiers mungkin tidak ada disana, karena dasarnya tidak ada perubahan yang diterapkan kedalam dunia dan oleh karena itu nilainya tidak dibuat ketika berkas konfigurasi diciptakan.

Pada artikel berikutnya kami akan melihat lebih dalam pada perubahan yang dapat kami buat dari WorldGeneratorModifier kami.