بكسل الخريطة بايت واحد، وبتان منه للسطوع
61 لونًا أساسيًا × 4 درجات = 244 لونًا من مصفوفة بحجم 16,384 بايت. درجة واحدة فقط من الدرجات الأربع هي اللون الحقيقي للكتلة؛ أما الثلاث درجات الأخرى فيتم تعتيمها إلى 86% و 71% و 53%.
كل خريطة مملوءة في Minecraft لها نفس الحجم على القرص: مصفوفة colors بايت تحتوي على 16,384 إدخالًا بالضبط، وهو ما يعادل 128 × 128. هذا ينطبق على خريطة بحجم 0 تغطي 128 كتلة وخريطة بحجم 4 تغطي 2,048 كتلة — عدد البكسلات لا يتغير أبدًا. كل شيء آخر يتعلق بفن الخرائط ينبع من هذه الحقيقة الواحدة.
البايت ينقسم إلى قسمين
كل بايت من هذه الـ 16,384 بايت ليس لونًا. إنه لون أساسي ودرجة سطوع مدمجة معًا:
baseColorId = colorId >> 2 // 0–63
shadeIndex = colorId & 3 // 0–3
إذًا، البتان السفليان هما للسطوع والباقي يحدد الكتلة التي تنظر إليها. مع تعريف 61 لونًا أساسيًا (المعرف 0 هو الفتحة الشفافة/غير المستكشفة)، أعلى بايت تحمله خريطة حقيقية هو 61 × 4 + 3 = 247.
61 × 4 = 244 لونًا مميزًا، وهي لوحة الألوان الكاملة المتاحة لفن الخرائط. ليس 61، وليس 256.
درجة واحدة فقط هي اللون الفعلي للكتلة
المضاعفات الأربعة ليست متباعدة بالتساوي، وواحد منها هو 1.0:
| مؤشر الدرجة | مضاعف | كنسبة مئوية |
|---|---|---|
| 0 | 180 / 255 | 70.6% |
| 1 | 220 / 255 | 86.3% |
| 2 | 255 / 255 | 100% |
| 3 | 135 / 255 | 52.9% |
الدرجة 2 هي لون نسيج الكتلة، دون تغيير. الثلاث درجات الأخرى هي نسخ أغمق منها، والأغمق — الدرجة 3 — هي أكثر بقليل من نصف السطوع.
هذا هو السبب في أن فن الخرائط المتدرج (staircased map art) يبدو مختلفًا تمامًا عن الخريطة المسطحة. البناء المسطح يمكنه فقط إنتاج واحدة من هذه الأربع درجات لكل كتلة، لذا فإن الخريطة المسطحة تحتوي على 61 لونًا متاحًا. تغيير الارتفاع يفتح الدرجات الثلاث الأخرى لكل كتلة ويأخذك إلى 244. لوحة الألوان لا تصبح أوسع — لا تحصل على درجات لونية جديدة — بل تصبح أعمق بأربع مرات في القيمة، وهو بالضبط ما يحتاجه التدرج اللوني (dithering).
لاحظ أيضًا أن ترتيب الدرجات ليس رتيبًا: المؤشر 3 هو الأغمق، وليس الأفتح. الترتيب حسب المؤشر وتوقع التدرج يعطيك 71%، 86%، 100%، 53%.
الحجم يضاعف المساحة، وليس الدقة أبدًا
حقل scale يتراوح من 0 إلى 4، والأرض التي يغطيها هي 128 × 2^scale كتل على الجانب:
| حجم | الكتل المغطاة | بكسل واحد من الخريطة هو |
|---|---|---|
| 0 | 128 × 128 | كتلة واحدة |
| 1 | 256 × 256 | 2 × 2 كتل |
| 2 | 512 × 512 | 4 × 4 كتل |
| 3 | 1,024 × 1,024 | 8 × 8 كتل |
| 4 | 2,048 × 2,048 | 16 × 16 كتل — بالضبط قطعة واحدة (chunk) |
تغطي خريطة بحجم 4 256 ضعف مساحة خريطة بحجم 0 باستخدام نفس الـ 16,384 بايت. هذا هو السبب الرئيسي وراء ضرورة بناء فن الخرائط بحجم 0: بأي تكبير آخر، يكون البكسل الواحد متوسطًا لعدة كتل ويتم إعادة أخذ عينات الصورة التي وضعتها بعناية.
صف الحجم 4 يستحق التذكر لسبب مختلف — بكسل واحد هو بالضبط قطعة واحدة (chunk)، مما يجعل الخريطة المكبرة بالكامل شبكة قطع قابلة للاستخدام.
ماذا يعني هذا لملف تالف
إذا كان لدى map_<id>.dat مصفوفة colors ليست بحجم 16,384 بايت، فهي ليست خريطة ذات بكسلات مفقودة — إنها ليست خريطة قابلة للقراءة على الإطلاق. لا يوجد شكل بطول جزئي. المصفوفة دائمًا بالحجم الكامل، مع تخزين المناطق غير المستكشفة بمعرف اللون 0 بدلاً من حذفها.