MC Toolkit

Руководства / Строительство и ресурсы

Пользовательские картины и музыкальные диски без замены оригиналов

И то, и другое теперь стало реестрами датапаков, так что вы можете добавлять новое, а не перезаписывать ванильное. Вот два файла, которые нужны каждому, и правило соотношения сторон, которому должны следовать картины.

Старый способ получить пользовательскую картину — перезаписать 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, но 64×32 работает точно так же. Ошибётесь с соотношением — и её растянет; автоподгонки нет.

Ванильные размеры — от 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, сопоставляющий этот id звука с файлом, плюс сам .ogg:

assets/my_pack/sounds.json
assets/my_pack/sounds/music/my_song.ogg

Три детали важны:

  • length_in_seconds должен быть верным. Он определяет, когда проигрыватель останавливается — частицы, его выход редстоуна и звук, который обрезается в этот момент. Слишком длинный означает тишину в конце; слишком короткий обрезает трек.
  • comparator_output — от 0 до 15, и именно его считывает компаратор. В ванильной игре 22 диска и только 15 значений, так что семь пар уже делят одно; выберите значение, которое не использует ни один из дисков, которые ваш редстоун должен различать.
  • Потоковый ogg. "stream": true в sounds.json для всего, что длится как музыка.

Затем дайте ему:

/give @p music_disc_13[jukebox_playable="my_pack:my_song"]

Любой предмет диска подойдёт как носитель — компонент решает, что играет.

Почему это лучше перезаписи

Пак, заменяющий ванильные ресурсы, конфликтует с любым другим паком, делающим то же самое, и ломается, когда Mojang переименовывает файл. Добавления в реестр имеют пространство имён, так что два пака, добавляющих картины, сосуществуют. Это также единственный подход, который переживает смену версии без правок.

Соберите варианты картин, песни для проигрывателя, тотемы и чат-эмодзи в один готовый zip ресурспака с помощью Custom Content Pack Makers.

Конструкторы своего содержимого →

Другие руководства

Смотреть все →