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