- библиотека которая позволяет разработчикам работать с возможностью дополнительных слотов для брони.
Как использовать Curios разработчикам:
Создание нового типа Curio
Регистрация новых типов Curio всегда будет происходить через InterModComms (IMC). Используйте
InterModComms#sendTo(String, String, Supplier) метод для отправки необходимой информации. Отправьте сообщение во время фазы
InterModEnqueueEvent.
Первый параметр String - это модид для Curios ("curios").
Второй параметр String является допустимым типом метода для обработки IMC. Действительные типы можно найти в
CuriosAPI.IMC. В настоящее время их всего два:
REGISTER_TYPE для регистрации типов и
MODIFY_TYPE для модификаций типов. (Примечание: есть также
REGISTER_ICON для регистрации значков, но это обсудим позже.)
Третий параметр является поставщиком формата
() -> new CurioIMCMessage(String), а внутренний параметр String является уникальным идентификатором для типа curio. Обратите внимание, что дубликаты идентификаторов в нескольких модах будут объединены вместе. Рекомендуется использовать идентификаторы, которые являются как можно более общими для вашего конкретного варианта использования, чтобы избежать избыточности.
У
CurioIMCMessage объекта есть несколько методов для управления атрибутами типа curio, который будет зарегистрирован:
- setSize(int): Количество слотов по умолчанию для этого типа Curio. Обратите внимание, что размер можно только добавлять, а не вычитать. Поэтому, если несколько модов пытаются зарегистрировать разные суммы для одного и того же типа, большее всегда будет принято. Кроме того, это используется только для определения суммы по умолчанию. У каждого отдельного игрока есть отдельное количество слотов, которым можно манипулировать.
- setEnabled(boolean): Определяет, включен ли тип curio по умолчанию. Отключение этого параметра будет по-прежнему вызывать регистрацию, но игрокам в начале не будет предоставлено никаких слотов, связанных с этим типом. Это не гарантирует, что игрок не сможет включить слоты для этого типа позже.
- setHidden(boolean): Определяет, будут ли слоты для этого типа curio отображаться в графическом интерфейсе Curios по умолчанию.
Языковые ключи
Стандартный графический интерфейс Curio имеет всплывающие подсказки, которые идентифицируют слоты, используя записи в файле lang. Формат ключа есть
curios.identifier.<name>. Если вы хотите, чтобы в вашем слоте curio использовался графический интерфейс по умолчанию, и вы не используете один из общих идентификаторов curio, включенных в Curios, вам нужно убедиться, что у вас есть соответствующая запись языкового ключа в файлах lang для правильного форматирования всплывающей подсказки.
Регистрация значков слотов Curio
По умолчанию все типы Curio, за исключением некоторых обычно используемых, будут иметь общие значки слотов. Чтобы зарегистрировать уникальный значок слота, отправьте сообщение IMC, как описано выше, с регистрациями типа Curios. Разница в том, что вместо отправки экземпляра CurioIMCMessage вы будете отправлять что-то вроде
() -> new Tuple<>(String, ResourceLocation): Первый параметр - это уникальный идентификатор типа curio, а второй - местоположение ресурса для значка слота. Если несколько модов пытаются зарегистрировать значок для одного и того же идентификатора, будет выбран только один (исключая избыточность).
Маркировка предметов типами Curio
Классификация предметов Curio основана на системе ванильных бирок. Вам просто нужно добавить соответствующий файл JSON в папку ресурсов. Убедитесь, что вы используете теги элементов.
Кроме того, убедитесь, что вы используете
curios пространство имен. Таким образом, путь вашего файла будет выглядеть следующим образом
data/curios/tags/items. Если вы используете пространство имен вашего собственного мода, тег не будет распознан реестром curio. Сам тег должен совпадать с идентификатором типа curio, к которому вы хотите его отнести.
Использование API
В
CuriosAPI.class вы найдете несколько вспомогательных методов для манипулирования слотами для curio игроков различными способами. Это включает в себя включение / отключение типов и добавление / удаление слотов для определенных типов.
Как использовать Curios пользователям:
Создание нового типа Curio
Моды должны регистрировать свои собственные типы curio, но иногда вы можете зарегистрировать свои собственные.
Зайдите в папку config и откройте
curios-common.toml файл. Измените
createCurios значение, добавив уникальные идентификаторы для каждого типа Curio, который вы хотите создать (например, «кольцо»). Когда Minecraft загружается, идентификаторы, перечисленные здесь, автоматически генерируют типы curio с настройками по умолчанию. На данный момент нет способа изменить настройки по умолчанию с помощью этого метода.
Языковые ключи и маркировка приметов идентична инструкции выше для разработчиков.Пошаговое руководство:
Давайте пошагово пройдем процесс, чтобы понять, как создать новый слот Curio и назначить предмет для этого слота. Для примера мы сделаем слот для «Яйца» и соответственно назначим предмет "яйцо" этому слоту.
1. Откройте файл конфигурации
Зайдите в папку
config и откройте файл
curios-common.toml. Если у вас нет этого файла, скорее всего, вы еще не запускали Minecraft, поэтому просто запустите его один раз, чтобы можно было сгенерировать конфигурацию. Файл должен выглядеть так:
[common]
#List of curio types to create
createCurios = []
#List of curio types to disable by default
disabledCurios = []
2. Добавьте идентификатор для слота
Подумайте об уникальном идентификаторе вашего слота, который должен представлять типы предметов, которые, как ожидается, будут там. В этом случае мы будем использовать «яйца». Введите этот идентификатор в
createCurios массив, заключенный в кавычки. И это в значительной степени для создания слотов, Curios позаботится обо всем остальном. Обновленный файл конфигурации должен выглядеть следующим образом:
[common]
#List of curio types to create
createCurios = ["eggs"]
#List of curio types to disable by default
disabledCurios = []
Если вы хотите добавить несколько, не забудьте разделить их запятыми. Вот так:
[common]
#List of curio types to create
createCurios = ["eggs", "someotherslot"]
#List of curio types to disable by default
disabledCurios = []
Вы можете проверить, успешно ли вы добавили слот, зайдя в игру и проверив свои слоты curio.
3. Создайте пакет данных
Чтобы реально использовать новый слот, нам нужно назначить ему предметы. Для этого, поскольку мы ничего не модифицируем напрямую, нам нужно создать пакет данных. Перейдите к миру, сохраненному в корневой папке Minecraft, возможно, в,
.minecraft/saves/(world-name) а затем перейдите к
datapacks папке (или создайте, если ее там еще нет). Если вы не используете какие-либо пакеты данных, эта папка будет пустой. Создайте новую папку для вашего пакета данных, называйте ее как хотите. Затем перейдите в эту папку, у вас должен быть такой адрес
.minecraft/saves/(world-name)/datapacks/(datapack-name).
Как только вы окажетесь внутри, создайте файл
pack.mcmeta, именно с таким названием. Откройте файл и заполните его этим кодом:
{
"pack": {
"pack_format": 4,
"description": "put a description here, or not"
}
}
Как только вы закончите, сохраните его. Вы должны вернуться в корневую папку пакета данных по адресу
.minecraft/saves/(world-name)/datapacks/(datapack-name). Теперь мы собираемся создать несколько вложенных папок. Создайте здесь новую папку с именем
data, затем другую папку в data называемой
curios, затем другую папку в
curios называемой
tags, затем другую в
tags под названием
items.
У нас должна получиться такая директория:
.minecraft/saves/(world-name)/datapacks/(datapack-name)/data/curios/tags/items. Вот и все, структура папок создана.
4. Создайте файл тегов.
Теперь создайте новый файл с именем
(your-slot-name-here).json. В нашем яйце слота, например, мы назвали бы его
eggs.json. Очень важно, чтобы имя совпадало с именем, которое вы выбрали на шаге 2.
В этом файле введите это:
{
"replace": "false",
"values": []
}
Это основная структура файла тегов.
replace определяет, добавляете ли вы просто теги или полностью переопределяете теги. Я рекомендую оставить это значение "false", если вы не знаете, что делаете.
values это свойство, которое нас больше всего интересует. Здесь вы перечисляете все предметы, которые можно размещать в слоте curio. В нашем примере мы хотели бы положить яйца в слот. Таким образом, мы находим имя реестра элемента и это
minecraft:egg, которое относится к элементу egg, и вводим его в
values массив. Вот так:
{
"replace": "false",
"values": ["minecraft:egg"]
}
Помните, что, как и в шаге 2, мы можем указать здесь любое количество значений, но все они должны быть разделены запятой внутри скобок. Вот так:
{
"replace": "false",
"values": ["minecraft:egg", "minecraft:someotheritem"]
}
Если вы не знаете имя реестра элемента, который хотите добавить, вы можете увидеть его в игре, используя
F3+H активированные всплывающие подсказки и наводя курсор на элемент.
Вы можете проверить, правильно ли вы добавили предмет, посмотрев на всплывающую подсказку, потому что у всех curio будет всплывающая подсказка золотисто-оранжевого цвета, в которой указаны их типы.
И это все! Если вы достигли этой точки, у вас теперь есть новый слот curio и новый предмет, который может быть размещен в этот слот.
Информация была взята и переведена из репозитория автора:
https://github.com/TheIllusiveC4/Curios