Руководства / Строительство и ресурсы
Три пути к текстурам в ресурспаках плоские. У мобов путь вложенный, и это ещё полбеды
Предметы, блоки и картины лежат на глубине одного файла. Мобы живут в папке, названной в честь самих себя, — и для большинства мобов в этой папке несколько файлов, так что замена одного файла молча промахивается.
Переопределить текстуру в ресурспаке — значит положить 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-компонент текста — необработанный знак параграфа в обычной строке и есть весь механизм.