Generasi dunia

Generasi Dunia di Minecraft adalah proses yang rumit, dan Sponge juga menambahkan komplikasinya sendiri. Di sini kami memberikan gambaran umum tentang bagaimana cara kerjanya bagi pembaca yang berminat. Anda dapat memilih untuk melewati ini dan langsung beralih ke detail API di:

Gambaran Umum Generasi Dunia di Minecraft

Generasi dunia di Minecraft didasarkan pada * potongan . Setiap kali permainan memanggil sepotong yang belum ada, permintaan dibuat ke generator dunia untuk menyediakan potongan itu. Proses untuk menyediakan potongan ini dibagi menjadi dua tahap berbeda, bernama * Generasi ** dan ** Populasi **.

Fase Generasi

Tahap pertama dalam memberikan potongan adalah * Generasi Fase *. Hal ini terutama bertanggung jawab atas penciptaan bentuk dasar medan, pembangkitan biomassa, dan fitur yang lebih besar seperti desa dan gua.

Catatan

Blok penempatan dalam fase generasi berlangsung seluruhnya di dalam buffer, karena objek Chunk tidak dibuat sampai langkah terakhir dalam fase.

Langkah pertama untuk generator bioma adalah mengisi buffer 2 biomaterial dengan biomes yang sesuai dengan masing-masing kolom 1x1 dalam bingkisan. Selanjutnya, basisnya :javadoc: GenerationPopulator menciptakan bentuk dasar medan. Pada tahap ini dunia seluruhnya terbuat dari batu. Generasi bawaan hanyalah sebuah peta ketinggian yang dihasilkan dari kebisingan perlin, lalu diisi - meninggalkan udara jika lebih tinggi dari permukaan laut, dan air jika di bawah. Langkah ini dapat diganti dengan memanggil :javadoc: WorldGenerator # setBaseGenerationPopulator (GenerationPopulator) untuk menyediakan peminat kustom Anda sendiri ke generator dunia.

Selanjutnya, menggunakan bioma buffer dibuat di atas, generator menggantikan lapisan atas dari daerah dengan :javadoc: blockstate S dan kedalaman ditentukan oleh bioma ini :javadoc:` groundcoverlayer` S. yang bioma disediakan oleh :javadoc: biomegenerator - yang juga dapat diterapkan pada dunia generator dengan :javadoc:` worldgenerator # setbiomegenerator (biomegenerator) `metode.

Setelah medan dasar terbentuk dan prima, kita bisa melewati :javadoc: GenerationPopulator s. Ini datang dalam dua kelompok: yang ditentukan secara global untuk generator dunia, dan yang ditentukan untuk bioma tertentu. Kumpulan `` GenerationPopulator` s yang digunakan adalah gabungan dari GenerationPopulator` s yang ditentukan untuk masing-masing biomes unik dalam potongan.

`` GenerationPopulator`` dirancang untuk operasi intensif yang besar, dan diterapkan (ke buffer daripada objek) Chunk yang belum ada. Ini berarti harus ada batasan bahwa `` GenerationPopulator`` tidak boleh menempatkan blok apapun di luar batas potongan yang sedang dibuat. Konten yang dihasilkan oleh `` GenerationPopulator`` yang mencakup beberapa potongan harus menghasilkan potongan dengan menggunakan posisi potongan dan benih dunia untuk menentukan potongan keseluruhan dari keseluruhan potongan saat ini.

Akhirnya, dengan medan dasar yang dibuat, biomassa diterapkan, dan `` GenerationPopulator` `s lari, kita telah menyelesaikan fase pembangkitan, dan objek Chunk dapat dibangun dan dikembalikan.

Fase Populasi

Fase Populasi * hanya dapat berjalan pada bongkahan begitu tiga bongkah yang bersebelahan dengannya dalam arah x dan z positif dimuat. Ini memungkinkan objek selama fase ini berkembang di luar area potongan 16x16 yang dihuni, tanpa memerlukan generasi parsial yang digunakan untuk `` GenerationPopulator`` s. Untuk mendukung ini, area aktual yang dihuni selama fase ini adalah area 16x16 yang diimbangi 8 di masing-masing sumbu x dan z.

Hanya :javadoc: Populator dari bioma pada posisi (x * 16 + 16, 0, z * 16 + 16) diterapkan ke area ini. Ini tidak menerapkan penyatuan semua biomassa seperti kasus `` GenerationPopulator`` s.

Populators are ideal for small features (e.g. desert wells) and additional terrain covering (e.g. trees). Sponge provides access to a great number of vanilla specified populators which may be reconfigured for your use.