WorldGeneratorModifiers

Peringatan

These docs were written for SpongeAPI 7 and are likely out of date. If you feel like you can help update them, please submit a PR!

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;

public 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) {

    }

}

As you can see, WorldGeneratorModifier has three methods which we override. CatalogType#getId() must be overridden to return a constant and unique identifier for your WorldGeneratorModifier, this is the identifier which will be used in the world configuration to specify which worlds your modifier should be applied to. CatalogType#getName() must be overridden with a constant and simple human-readable name for your modifier.

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

Now that you have created the modifier, all you have to do is register it in the GameRegistry. To do this you need to create a listener for the GameRegistryEvent.Register<WorldGeneratorModifier> event and register your instance there, as shown in the following example:

@Listener
public void onWorldGeneratorModifierRegistration(GameRegistryEvent.Register<WorldGeneratorModifier> event) {
    event.register(new MyModifier());
}

To apply your WorldGeneratorModifier to a world you must add it to the world-generation-modifiers array within the world config file found at config/sponge/worlds/[dimension]/[worldName]/world.conf. For example, to apply the skylands WorldGeneratorModifier to a world you would add the skylands modifier's id to the modifiers list.

# 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.