Пользовательские картины и музыкальные диски без замены оригинальных
Теперь и то, и другое стало реестрами пакетов данных, так что вы можете добавлять новые элементы вместо того, чтобы перезаписывать ванильные. Вот два файла, которые нужны для каждого, и правило размеров, которому должны следовать картины.
Раньше, чтобы добавить пользовательскую Картину, приходилось перезаписывать paintings_kristoffer_zetterstrand.png и терять одну из ванильных. Теперь и Картины, и музыкальные диски являются реестрами, поэтому вы можете добавлять их, а не заменять.
Для картин нужны два файла
Запись в пакете данных, определяющая Картину:
data/<namespace>/painting_variant/my_art.json
{
"asset_id": "my_pack:my_art",
"width": 2,
"height": 2,
"title": { "text": "My Art" },
"author": { "text": "Me" }
}
И пакет ресурсов, предоставляющий изображение:
assets/my_pack/textures/painting/my_art.png
width и height указываются в блоках, и текстура должна соответствовать этому соотношению при 16 пикселях на блок. Для Картины размером 2×1 нужна текстура 32×16. Если соотношение неверно, изображение будет растянуто; автоматической подгонки нет.
Ванильные размеры варьируются от 1×1 до 4×4. Большие размеры также работают, но требуют соответствующей стены.
Как сделать их доступными
Добавление варианта не помещает его в игру. Есть два способа:
- Тег размещения — добавьте его в
#minecraft:placeable, чтобы обычный предмет Картины мог
случайно превратиться в него.
- Напрямую —
/give @p painting[entity_data={id:"minecraft:painting",variant:"my_pack:my_art"}]
Большинство создателей Карт предпочитают второй способ: конкретную Картину, а не случайную.
Для музыкальных дисков нужны три файла
data/<namespace>/jukebox_song/my_song.json
{
"sound_event": { "sound_id": "my_pack:music/my_song" },
"description": { "text": "My Artist - My Song" },
"length_in_seconds": 154,
"comparator_output": 12
}
Плюс sounds.json, сопоставляющий этот идентификатор звука с файлом, плюс сам .ogg:
assets/my_pack/sounds.json
assets/my_pack/sounds/music/my_song.ogg
Важны три детали:
length_in_secondsдолжен быть правильным. Он определяет, когда Проигрыватель останавливается и когда
заканчивается поток частиц, а не аудио. Неправильное значение означает тишину в конце или обрыв.
comparator_output— это значение от 1 до 15, которое считывает компаратор. Каждый ванильный диск имеет
отдельное значение; если использовать одно и то же, редстоун не сможет их различить.
- Потоковая передача ogg.
"stream": trueвsounds.jsonдля всего, что по длине является музыкой.
Затем выдайте его:
/give @p music_disc_13[jukebox_playable="my_pack:my_song"]
Любой предмет диска работает как носитель — компонент определяет, что будет воспроизводиться.
Почему это лучше, чем перезапись
Пакет, который заменяет ванильные ассеты, конфликтует с каждым другим пакетом, делающим то же самое, и ломается, когда Mojang переименовывает файл. Добавления в реестр имеют пространства имен, поэтому два пакета, добавляющие Картины, сосуществуют. Это также единственный подход, который переживает обновление версии без редактирования.
Создавайте варианты картин, песни для Проигрывателя, тотемы и эмодзи чата в одном готовом zip-архиве пакета ресурсов с помощью Custom Content Pack Makers.