Konseptler

Özellikler

Tüm bloklar temel tip*e sahiptir. Temel tip örneklerine kir, merdiven ve yapraklar dahildir. Bununla birlikte, bu temel tiplerinden ayırt etmek için, her bloğun farklı özellikleri vardır, bunların her biri sınırlı sayıda değerler alabilir (örn. *podzol kir, tuğla merdiven, meşe yapraklar). Bir blok birden fazla özelliğe sahip olabilir (mesela doğuya bakan, tuğla merdiven).

Examples of block properties

minecraft:dirt[snowy=false,variant=default]
minecraft:dirt[snowy=true,variant=default]
minecraft:dirt[snowy=false,variant=grassless]
minecraft:dirt[snowy=true,variant=grassless]
minecraft:planks[variant=oak]
minecraft:planks[variant=spruce]
minecraft:planks[variant=birch]
minecraft:redstone_wire[east=up,north=up,power=0,south=up,west=up]
minecraft:redstone_wire[east=side,north=up,power=0,south=up,west=up]
minecraft:redstone_wire[east=none,north=up,power=0,south=up,west=up]
minecraft:redstone_wire[east=up,north=side,power=0,south=up,west=up]

Bununla birlikte, bazı özellikler, kısa ömürlüdür – yalnızca oyun çalışırken bulunurlar. Değerleri kayıt dosyasına yazılmaz çünkü değerleri otomatik olarak algılanabilir. Örneğin, kablolu Kızıltaş, güçleri olup olmadığı çevreye göre otomatik olarak tespit edildi. (açık olan bir kaldıraç var mı?). Bu durumda, yukarıda gösterildiği gibi minecraft:redstone_wire ın power özelliği kısa ömürlü bir özelliktir.

Yazma esnasında, Minecraft hala blok verilerini temel bir tip için 12 bitlik eski bir formatta saklar (4096 olası temel tipleri) ve “metadata” için 4 bit (16 olası temel tip başına değer). Bununla birlikte, özellikler eski sebeplerden dolayı metadata’ya doğrudan eşleme yapmaz: örneğin, fırın bloğu iki ana tipten oluşur (şu anda eritmeye karşı eritme değil); her biri metadata’larını hiç kullanmıyor. Diğer yandan, kütüler metadata’ları tam olarak kullanırlar, fakat özelliklerin kombinasyonu olası 16 değeri aşıyor (ağaç türünü ve yönünü düşün), kütükler iki temel tip üzerinde bölünmelidir.

Gelecekte, burada yalnızca 16 bitlik bir numara olacak (65536 olası temel tip kombinasyonları + özellikleri). Bloklara otomatik olarak bir ID atanır ve bu atama otomatik olarak world save dosyasında saklanır. Bu aşağıda resmedilmiştir:

0 => minecraft:dirt[snowy=false,variant=default] 1 => minecraft:dirt[snowy=true,variant=default] 2 => minecraft:dirt[snowy=false,variant=grassless] 3 => minecraft:dirt[snowy=true,variant=grassless] 4 => minecraft:planks[variant=oak] 5 => minecraft:planks[variant=spruce] v.b.

Karo Varlık Verisi

65536 olası kombinasyonları ile, envanter gibi bir çok bilgiyi depolamak mümkün değildir, bu yüzden * bazı * blokların verilere sahip olmalarının ek bir yolu vardır: karo birimleri.

Karo varlıkları kendileri Java nesneleridir (Chest sınıfı gibi). Normalde, Minecraft kodu verisini elde ederek bir karo varlığının örneğini alıyor ve sonra yöntem veya alan adı olarak adlandırılıyor, normal bir nesne gibi (world.getTileEntity(position).getInventory()). Karo varlıklarının kayıt dosyasına yazılması gerektiği zaman, bunlar NBT format içinde saklanır.

Tüyo

Bazı şeyler, resim yapmak gibidir, aslında varlıklardır.

Ancak, karo varlıklar render’ı geçersiz kılabilir ve böylece normal bir blok gibi gözükmezler, ancak bu genellikle yetersizdir ve bir müşterinin kare hızının düşmesine neden olur.