Bir harita pikseli bir bayttır ve iki biti parlaklıktır
61 temel renk × 4 ton = 16.384 baytlık bir diziden 244 renk. Dört tondan yalnızca biri rengin tam değeridir; diğer üçü %86, %71 ve %53 oranında karartılmıştır.
Minecraft'taki her dolu harita diskte aynı boyuttadır: tam olarak 16.384 girdilik bir colors bayt dizisi, yani 128 × 128. Bu, 128 blok kaplayan bir Ölçek 0 harita için de, 2.048 blok kaplayan bir Ölçek 4 harita için de geçerlidir — piksel sayısı asla değişmez. Harita sanatına dair geri kalan her şey bu tek olgudan doğar.
Bayt ikiye ayrılır
Bu 16.384 baytın her biri bir renk değildir. İçinde bir temel renk ile bir ton birlikte paketlenmiştir:
baseColorId = colorId >> 2 // 0–63
shadeIndex = colorId & 3 // 0–3
Yani alt iki bit parlaklıktır, geri kalanı ise hangi bloğa baktığınızdır. Tanımlı 61 temel renkle (id 0 şeffaf/keşfedilmemiş yuvadır), gerçek bir haritanın tutabileceği en yüksek bayt 61 × 4 + 3 = 247 olur.
61 × 4 = 244 ayrı renk, yani harita sanatının kullanabileceği paletin tamamı. Ne 61, ne de 256.
Tonlardan yalnızca biri rengin tam değeridir
Dört çarpan eşit aralıklı değildir ve biri 1.0'dır:
| ton indeksi | çarpan | yüzde olarak |
|---|---|---|
| 0 | 180 / 255 | %70,6 |
| 1 | 220 / 255 | %86,3 |
| 2 | 255 / 255 | %100 |
| 3 | 135 / 255 | %52,9 |
Ton 2, harita renginin kendi RGB'sidir, ölçeklenmemiş hâliyle — blok dokusundan örneklenen değil, her renk id'si için sabit bir değer. Diğer üçü bunun koyulaştırılmış hâlleridir ve en koyusu — ton 3 — parlaklığın yalnızca yarısından biraz fazladır.
Basamaklı harita sanatının düz olandan bu kadar farklı görünmesinin sebebi budur. Düz bir yapı yalnızca normal tonu (%86) üretir, dolayısıyla düz bir haritada 61 renk bulunur. Yüksekliği değiştirmek her bloğun daha açık ve daha koyu tonlarının kilidini açar ve sizi 183'e taşır. Palet genişlemez — yeni renk tonları kazanmazsınız — değer bakımından üç kat derinleşir; dithered (dithering) tam olarak buna ihtiyaç duyar. Dördüncü ton (%53) bloklardan hiçbir zaman üretilmez: bayt biçiminde vardır ve yalnızca düzenlenmiş bir harita dosyası onu kullanır.
Ayrıca ton sıralamasının tekdüze olmadığını unutmayın: en koyu olan indeks 3'tür, en parlak değil. İndekse göre sıralayıp bir gradyan beklemek size %71, %86, %100, %53 verir.
Ölçek alanı çarpar, çözünürlüğü asla
scale alanı 0–4 arasında çalışır ve kapladığı zemin bir kenarda 128 × 2^scale bloktur:
| ölçek | kaplanan blok | bir harita pikseli |
|---|---|---|
| 0 | 128 × 128 | 1 blok |
| 1 | 256 × 256 | 2 × 2 blok |
| 2 | 512 × 512 | 4 × 4 blok |
| 3 | 1.024 × 1.024 | 8 × 8 blok |
| 4 | 2.048 × 2.048 | 16 × 16 blok — tam olarak bir chunk |
Ölçek 4 bir harita, aynı 16.384 baytı kullanarak Ölçek 0 bir haritanın 256 katı alanı kaplar. Harita sanatının neden Ölçek 0'da inşa edilmesi gerektiğinin tüm sebebi budur: başka herhangi bir yakınlaştırmada bir piksel birkaç bloğun ortalamasıdır ve özenle yerleştirdiğiniz görüntü yeniden örneklenip silinir.
Ölçek 4 satırı başka bir sebepten hatırlamaya değer — bir piksel tam olarak bir chunk'tır, bu da tam yakınlaştırılmış bir haritayı kullanışlı bir chunk ızgarası hâline getirir.
Bunun bozuk bir dosya için anlamı
Eğer bir harita dosyası (dünya klasöründeki data/minecraft/maps/<id>.dat) 16.384 bayt olmayan bir colors dizisine sahipse, bu eksik pikselli bir harita değildir: oyun haritayı yine de yükler ama pikselleri atar ve boş gösterir. Kısmi uzunlukta bir biçim yoktur. Dizi her zaman tam boyuttadır; keşfedilmemiş alanlar atlanmak yerine renk id 0 olarak saklanır.