ثلاثة من مسارات أنسجة حزم الموارد مسطّحة. أما مسار الكائنات الحية فهو متداخل، وهذه ليست سوى البداية
العناصر والمكعبات واللوحات تقع على عمق ملف واحد. أما الكائنات الحية فتسكن في مجلد يحمل اسمها — وفي معظم الحالات يحتوي ذلك المجلد على عدة ملفات، لذا فإن استبدال ملف واحد يفشل بصمت.
استبدال نسيج في حزمة موارد يعني وضع ملف PNG في المسار الدقيق الذي يبحث فيه اللعبة. وبالنسبة لثلاثة من الأنواع الأربعة الشائعة، يكون ذلك المسار منتظمًا تمامًا. أما الرابع فليس كذلك، وهذا الشذوذ أسوأ مما يبدو للوهلة الأولى.
المسارات الأربعة
assets/minecraft/textures/item/<name>.png
assets/minecraft/textures/block/<name>.png
assets/minecraft/textures/painting/<name>.png
assets/minecraft/textures/entity/<name>/<name>.png ← note the folder
العناصر والمكعبات واللوحات هي ملف واحد في مجلد مشترك. أما الكائن الحي فهو مجلد قائم بذاته، يحمل اسم الكائن، ويحتوي على ملف يحمل عادةً اسم الكائن أيضًا. لذا فإن نسيج الزومبي هو entity/zombie/zombie.png، وليس entity/zombie.png.
لاحظ أيضًا أن الكائنات الحية تقع تحت entity/، وليس mob/ — فالمجلد سُمّي وفق المفهوم البرمجي لا وفق مفهوم اللعبة.
المشكلة الحقيقية أن الكائن الحي غالبًا ليس ملفًا واحدًا
التداخل سهل التذكّر بمجرد أن تراه. لكن ما يكسر الاستبدال فعليًا هو ما يوجد أيضًا داخل ذلك المجلد.
مسار <name>/<name>.png صحيح لهؤلاء العشرة:
زومبي · هيكل عظمي · كريبر · خروف · عنكبوت · اندرمان · ذئب · الساحرة · الملتهب · قروي
بالنسبة لستة منهم — كريبر، هيكل عظمي، عنكبوت، اندرمان، الساحرة، الملتهب — يكون ذلك الملف الواحد هو الكائن الحي بأكمله (العيون المتوهجة وبريق الكريبر المشحون طبقات منفصلة). أما الزومبي والخروف والقروي والذئب فتحتفظ بملفات أخرى إلى جانبه: أنسجة الصغار، وصوف الخروف، ومهن القروي وأنواعه الحيوية، وثمانية أنواع أخرى من الذئاب — wolf.png هو الذئب الشاحب فقط.
أما كل ما تبقى فقد يحتفظ بأنسجته في مجلد فرعي مختلف، أو يوزعها على عدة ملفات — أنواع الصغار، والأنواع المروَّضة، وأنواع الألوان. الحصان ليس صورة واحدة. القطة ليست صورة واحدة. استبدال ملف واحد في تلك الحالات يغيّر حالة واحدة من الكائن الحي ويترك الباقي دون مساس، وهو ما يظهر في اللعبة كأنه «حزمتي طُبِّقت جزئيًا فقط».
هذا هو نمط الفشل الجدير بالاستيعاب: المسار الخاطئ لا يُظهر أي تغيير في النسيج على الإطلاق، أما مجموعة المسارات الناقصة فتُظهر تغييرًا جزئيًا — والثاني أصعب بكثير في التشخيص، لأن الحزمة تعمل بشكل واضح.
الأولوية من الأعلى أولًا، وهذا ليس ما يوحي به ملف zip
عند دمج الحزم، الحزمة المدرجة أولًا هي التي تفوز عند تعارض المسارات. الفهرس 0 هو الأعلى أولوية.
يستحق هذا التوضيح الصريح لأنه يقلب النموذج الذهني الذي يجلب الناس من تراكب الملفات، حيث يفوز آخر ما كُتب. هنا الحزمة الأولى في القائمة هي التي تبقى نسختها من item/diamond_sword.png؛ وكل ما دونها يملأ فقط المسارات التي لم تطالب بها الحزم الأعلى.
تفصيلان عن هوية الحزمة
pack.png هو الأيقونة ويقع في جذر ملف zip، وليس تحت assets/. وهو مربّع بأبعاد 64 × 64 — الصورة غير المربعة يُعاد تحجيمها بدل إضافة أشرطة حولها، لذا فإن أيقونة مصممة بنسبة 16:9 ستظهر مشوّهة لا مبطّنة.
رموز الألوان في اسم الحزمة نصّ حرفي. محارف § تدخل في pack.mcmeta تمامًا كما كُتبت، وتعرضها Minecraft وقت العرض: §a أخضر، §c أحمر، §b سماوي، §e أصفر، §d وردي، §l عريض، §r إعادة تعيين. لا توجد خطوة تهريب ولا مكوّن نص JSON في الأمر — علامة القسم الخام داخل سلسلة نصية عادية هي الآلية بأكملها.