Это реализуемо с помощью OptiFine Custom Item Textures (сокращённо — CIT).
В пакете ресурсов переходим в путь assets/minecraft, создаём папку optifine. В папке optifine создаём папку cit. Теперь нам нужно создать несколько текстовых файлов в формате properties:
1) Для предметов брони полицейского:
policeman_helmet.properties
policeman_chestplate.properties
policeman_leggings.properties
policeman_boots.properties
2) Для моделей брони полицейского:
policeman_layer_1.properties
policeman_layer_2.properties
3) Для предметов брони пожарного:
fireman_helmet.properties
fireman_chestplate.properties
fireman_leggings.properties
fireman_boots.properties
4) Для моделей брони пожарного:
fireman_layer_1.properties
fireman_layer_2.properties
Перейдём к настройке этих предметов и моделей. Во всех файлах предметов policeman (шапки, туники, штаны и ботинки) используем следующий синтаксис:
type=item
matchItems=minecraft:leather_helmet
texture.leather_helmet=transparent_item
texture.leather_helmet_overlay=policeman_helmet
nbt.display.color=3949738
Где minecraft:leather_helmet — идентификатор кожаной шапки (для туники используем chestplate вместо helmet, для штанов — leggings, для ботинков — boots).
В texture.leather_helmet, texture.leather_helmet_overlay и policeman_helmet также заменяем helmet на нужную часть брони для каждой из четырёх частей.
transparent_item — ссылка на абсолютно прозрачную текстуру предмета брони, предназначенной для окрашивания (я предполагаю, что текстуры, нарисованные вами, уже окрашены).
3949738 — цвет брони, окрашенной синим красителем (можете заменить на другой цвет, если хотите).
То же самое проделываем для fireman, заменяя все policeman на fireman, а 3949738 (синий краситель) — на 11546150 (красный краситель).
Далее — настройка моделей. В обоих файлах policeman_layer_*.properties (1 и 2) используем следующий синтаксис:
type=armor
matchItems=minecraft:leather_helmet minecraft:leather_chestplate minecraft:leather_leggings minecraft:leather_boots
texture.leather_layer_1=transparent_armor
texture.leather_layer_1_overlay=policeman_layer_1
nbt.display.color=3949738
В файле layer_2 заменим все три единицы на 2.
То же самое проделываем для fireman, заменяя все policeman на fireman, а 3949738 (синий краситель) — на 11546150 (красный краситель).
Свойства CIT настроены, теперь время для текстур. Все текстуры необходимо положить в ту же папку с файлами properties (assets/minecraft/optifine/cit):
policeman_helmet.png — текстура предмета шапки полицейского
policeman_chestplate.png — текстура предмета туники полицейского
policeman_leggings.png — текстура предмета штанов полицейского
policeman_boots.png — текстура предмета ботинков полицейского
fireman_helmet.png — текстура предмета шапки пожарного
fireman_chestplate.png — текстура предмета туники пожарного
fireman_leggings.png — текстура предмета штанов пожарного
fireman_boots.png — текстура предмета ботинков пожарного
policeman_layer_1.png — текстура первой части брони полицейского
policeman_layer_2.png — текстура второй части брони полицейского
fireman_layer_1.png — текстура первой части брони пожарного
fireman_layer_2.png — текстура второй части брони пожарного
transparent_item.png — полностью прозрачная текстура предмета (стандартное разрешение — 16x16)
transparent_armor.png — полностью прозрачная текстура брони (стандартное разрешение — 64x32)
Итак, пользовательские предметы готовы. Обратите внимание, что здесь я использовал определение предмета по тегу цвета брони (display.color). Чаще используют другие теги, например display.Name (по имени переименованного предмета), но так как вы задали вопрос насчёт определения именно по цвету брони, я использовал display.color.
Для правильного использования пакета ресурсов потребуется OptiFine с включенной опцией «Текстуры предметов» (раздел «Качество»).
Источник: документация OptiFine.
, , нравится это сообщение.
Сообщение отредактировал 10 августа 2020 - 11:58