Accessory API
Предоставляет API для аксессуаров для b1.7.3 в инструментарии Babric
- Загрузчики
- FabricOrnitheBabric
- Скачиваний на Modrinth
- 9,7 тыс.
- Подписчиков на Modrinth
- 7
- версий
- 18
- Обновлён
- 10 июня 202610 июн.
- Опубликован
- в 2023
Коротко о моде
Нужен и в игре, и на сервере
Примечание:
Aether for Station API использует этот мод!
Accessory API
Используя Babric в b1.7.3, этот мод предоставляет API для добавления дополнительных слотов для различных предметов, похожий на Trinkets API и Baubles API, с оформлением, вдохновлённым Aether из b1.7.3.

Для разработчиков
Чтобы узнать о моддинге b1.7.3 в тулчейне babric, присоединяйтесь к The Modification Station!
Это очень похоже на fabric и fabric-api, но для b1.7.3.
Рабочее пространство
Добавьте Accessory API в ваш build.gradle
repositories {
maven {
name = "Jitpack"
url "https://jitpack.io/"
}
}
dependencies {
modImplementation('com.github.matthewperiut:accessory-api:0.5.1') {
transitive false
}
}Рекомендация
Если вы хотите быстро посмотреть, как использовать этот API, клонируйте репозиторий (желательно в IDE) и перейдите в src/test/java/com/matthewperiut/testmod.
Также посмотрите javadocs / документацию API
Реализация
Реализуйте "Accessory" в вашем классе предмета (со STAPI будет работать с любым API/миксинами)
public class ExampleRing extends TemplateItemBase implements Accessory
{
public Pendant(Identifier identifier)
{
super(identifier);
}
// Чтобы определить слоты аксессуаров, в которые может помещаться ваш предмет:
@Override
public String[] getAccessoryTypes(ItemInstance item)
{
return new String[]{ "ring" };
// return new String[0]; // не возвращает слотов
// return new String[]{ "ring", "cape" }; // можно поместить в несколько типов слотов
// return new String[]{ "all" }; // может быть в любом слоте аксессуара
}
// другие методы, которые вы можете использовать, используйте @Override
// void tickWhileWorn(PlayerBase player, ItemInstance accessory)
// void onAccessoryAdded(PlayerBase player, ItemInstance accessory)
// void onAccessoryRemoved(PlayerBase player, ItemInstance accessory)
// Рендеринг
private YourCustomRenderer renderer;
@Override
public Optional<AccessoryRenderer> getRenderer()
{
return Optional.ofNullable(renderer);
}
}Вы можете выбрать разные типы стандартных аксессуаров:
"pendant"
"cape"
"shield"
"ring"
"gloves"
"misc"
"all"
или использовать свой собственный тип аксессуара
Пояснение функций аксессуаров
Вызывается, когда по слоту аксессуара кликают предметом, предмет передаётся в функцию.
Это предоставляет информацию о слоте, чтобы проверить, совместим ли он с ним.String[] getAccessoryTypes(ItemInstance item)
Вызывается в функции tick связанного игрока, передавая предмет, который тикает, и игрока, на котором он надет.void tickWhileWorn(PlayerBase player, ItemInstance item)
Вызывается, когда в инвентаре, связанном с аксессуаром, добавляется/удаляется предмет.
Функция предоставляет игрока, который добавил/удалил аксессуар, а также предмет, который был добавлен/удалён.void onAccessoryAdded(PlayerBase player, ItemInstance accessory)void onAccessoryRemoved(PlayerBase player, ItemInstance accessory)
Предоставьте функции рендеринга через getRenderer:public AccessoryRenderer getRenderer()
Создание рендерера аксессуара
пример:
public class CustomRenderer implements AccessoryRenderer {
void renderThirdPerson(PlayerBase player, PlayerRenderer renderer, ItemInstance itemInstance, double x, double y, double z, float h, float v)
{
// творите магию рендеринга сущности
}
void renderFirstPerson(PlayerBase player, PlayerRenderer renderer, ItemInstance itemInstance)
{
// творите магию рендеринга сущности от первого лица
}
}Использование аналогично EntityRenderers
Встроенные AccessoryRenderers:CapeRendererGloveRendererNecklaceRendererConfigurableRenderer
Частые вопросы
Как установить Accessory API?
Установите Fabric под свою версию Minecraft, скачайте Accessory API под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Нужен ли Accessory API на сервере?
Нужен и в игре, и на сервере