Dünya oluşturma

Minecraft’da Dünya oluşturma işlemi karmaşık bir süreçtir ve Sponge kendi komplikasyonlarını da ekler. Burada, ilgili okuyucu için nasıl çalıştığına ilişkin temel bir bakış sunuyoruz. Bunu atlayıp şu adresten doğrudan API ayrıntılarına geçmeyi seçebilirsiniz:

Minecraft’ta Dünya oluşturma işlemine Genel Bir Bakış

Minecraft’da dünya oluşturma işlemi parçalara dayalıdır. Oyun, henüz var olmayan bir yığın çağırdığında, o parçayı sağlamak için dünya oluşturucusuna bir talep yapar. Bu yığın sağlama süreci Kuşak ve Nüfus olarak adlandırılan iki farklı aşamaya ayrılmıştır.

Üretim aşaması

Bir parça sağlama konusundaki ilk aşama Üretim Aşaması’dır. Bu öncelikli olarak temel arazi biçiminin oluşturulması, biyolojik nesiller ve köyler ve mağaralar gibi daha büyük özelliklerin oluşturulmasından sorumludur.

Not

Chunk nesnesi, aşamadaki son adıma kadar oluşturulmadığından, üretim aşamasındaki blok yerleşimi tamamen bir arabelleğe yerleştirilir.

İlk adım, biome jeneratörünün, 2x biome tamponunu biyomlarla doldurmasıdır ve bu, parça içindeki her 1x1 sütuna karşılık gelecektir. Ardından, taban GenerationPopulator arazinin temel şeklini oluşturur. Bu aşamada dünya tamamen taştan yapılmıştır. Varsayılan nesil basitçe, perlin gürültüsünden üretilen ve daha sonra doldurulan - hava seviyesini deniz seviyesinden yüksekse, su ise aşağıda olduğu takdirde suyunu bırakan bir yükseklik haritasıdır. Bu adım, :javadoc:`WorldGenerator#setBaseGenerationPopulator(GenerationPopulator)’çağırarak geçersiz kılınabilir; bu da kendi özel popülatörünüzü dünya jeneratörüne sunmak için kullanılabilir.

Ardından, yukarıda oluşturulan biyolojik tamponu kullanarak jeneratör arazinin üst katmanlarını :javadoc:`BlockState`ve biyomun :javadoc:`GroundCoverLayer` tarafından belirtilen derinlikleri ile değiştirir. Biomes, a BiomeGenerator tarafından sağlanır - bunlar da :javadoc:`WorldGenerator#setBiomeGenerator(BiomeGenerator)`yöntemi ile dünya jeneratörüne uygulanabilir.

Temel arazi oluşturulup, birincil olduğuna göre GenerationPopulator. Bunlar iki gruba ayrılır: dünya oluşturucusu için küresel olarak belirtilenler ve spesifik biom için belirtilenler. Kullanılan GenerationPopulator grubu, yığın içindeki benzersiz biyomların her biri için belirtilen GenerationPopulator’ların birleşimidir.

GenerationPopulator, büyük yoğun operasyonlar için tasarlanmıştır. (Henüz mevcut olmayan) bir Chunk nesnesi yerine arabelleğe uygulanır. Bu demek oluyor ki GenerationPopulator, şu anda üretilen parçaların sınırlarının dışına hiçbir blok yerleştiremeyebilir. Birden fazla parçaya yayılan GenerationPopulator tarafından üretilen içerik, parçanın tamamını ve dünyanın tohumunu kullanarak parçanın herhangi bir parçasının mevcut parçaya girdiğini belirlemek için üretilmelidir.

Son olarak, temel arazi oluşturulduğunda, uygulanan biyomalar ve ``GenerationPopulator``çalıştırıldığında, üretim aşamasını tamamladık ve artık Chunk nesnesi inşa edilecek ve iade edebileceğiz.

Populasyon aşaması

Nüfus Fazı, pozitif x ve z yönlerinde bitişik üç parçanın yüklenmesiyle yalnızca bir yığın üzerinde çalışabilir. Bu, bu aşamadaki nesnelerin, GenerationPopulator için kullanılan kısmi nesil gerektirmeden doldurulan 16x16 yığın alanının dışına çıkmasını sağlar. Bunu desteklemek için, bu aşamada doldurulan gerçek alan, x ve z eksenlerinin her birinde 8 x kadar ofsetli bir 16x16 alanıdır.

(x*16+16, 0, z*16+16) pozisyonundaki biome’nun sadece Populator’ ları bu bölgeye uygulanır. GenerationPopulator’ın durumunda olduğu gibi, bütün biyomlardan bir birliktelik uygulanmaz.

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.