Три шляхи текстур у resource pack є пласкими. Шлях мобів має вкладення, і це ще найменша проблема
Предмети, блоки й картини знаходяться на глибині одного файлу. Моби розміщені у теці з їхньою назвою — і для більшості мобів ця тека містить кілька файлів, тож заміна одного файлу непомітно дає осічку.
Перевизначення текстури в resource pack означає розміщення 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, not entity/zombie.png.
Зверніть також увагу, що моби розташовані в entity/, not mob/ — the folder is named for the code concept rather than the game one.
Справжня проблема полягає в тому, що моб часто не складається з одного файлу
Вкладеність легко запам'ятати, коли ви її побачите. Але те, що насправді ламає перевизначення, — це інший вміст тієї теки.
Заміна моба одним PNG гарантовано працює лише для десяти:
zombie · skeleton · creeper · sheep · spider · enderman · wolf · witch · blaze · villager
Усі інші можуть зберігати свої текстури в іншій підтеці або розподіляти їх між кількома файлами — варіанти дитинчат, приручені варіанти, колірні варіанти. Кінь — це не одне зображення. Кіт — це не одне зображення. Заміна одного файлу в таких випадках змінює лише один стан моба, залишаючи решту недоторканими, що в грі сприймається як «мій пак застосувався лише наполовину».
Ось характерний збій, який варто усвідомити: неправильний шлях взагалі не змінює текстуру, але неповний набір шляхів змінює її частково — і другий набагато важче діагностувати, оскільки пак явно працює.
Пріоритет має найвищий перший, що не зовсім відповідає логіці zip
Коли паки об'єднуються, пак, зазначений першим, перемагає у конфліктах шляхів. Індекс 0 має найвищий пріоритет.
Це варто чітко зазначити, оскільки це перевертає звичну модель нашарування файлів, де перемагає останній записаний. Тут перший пак у списку — це той, чия версія item/diamond_sword.png survives; everything below it only fills in paths the ones above did not claim.
Дві деталі про ідентичність пака
pack.png is the icon and lives at the zip root, а не в assets/. It is squared to 64 × 64 — неквадратне зображення масштабується, а не кадрується полями, тому іконка у форматі 16:9 вийде спотвореною, а не з полями.
Коди кольорів у назві пака є звичайним текстом. The § characters go into pack.mcmeta exactly as typed and Minecraft renders them at display time: §a green, §c red, §b aqua, §e yellow, §d pink, §l bold, §r reset. There is no escaping step and no JSON text component involved — the raw section sign in a plain string is the whole mechanism.