Скачать Equipment API — Minecraft Моды — MetaMods

Equipment API

Активный

Установок

0

Последнее обновление

9 лет назад
Клиент
Утилиты

Equipment API: Система слотов для экипировки

Данное API предоставляет разработчикам модификаций возможность создавать собственные слоты для снаряжения. Основанное на концепции украшений, это решение позволяет регистрировать специализированные ячейки для различных типов предметов.

Для доступа к интерфейсу снаряжения нажмите клавишу R или кликните по иконке кирки в углу инвентаря игрока.

Открытие интерфейса снаряжения

В окне снаряжения отображаются все зарегистрированные слоты. При наличии более 8 ячеек используйте стрелки навигации для переключения между страницами.

Первая страница слотов

Вторая страница слотов

Примечание: Все показанные слоты предназначены исключительно для демонстрации и не включены в основную модификацию.

Руководство по использованию API

Работа с API максимально упрощена и в основном сводится к регистрации типа EquipmentType, который определяет совместимые предметы, внешний вид слота и обработчики изменений.

EquipmentApi.registerEquipment(YOUR_EQUIPMENT_ID, new EquipmentType() {

    ResourceLocation overlay = new ResourceLocation(YOURMODID, "textures/YOUR_SLOT_OVERLAY.png");

    @Override
    / Текстура для наложения на слот (отображается под предметом) /
    public ResourceLocation getSlotOverlay(ItemStack stack) {
        return overlay;
        // альтернативно можно использовать return stack == null ? null : overlay;
        // это скроет фоновое изображение при размещении предмета в слоте
    }

    @Override
    / Может ли игрок извлечь указанный стак из слота /
    public boolean canRemoveStack(ItemStack stack, EntityPlayer player) {
        return true;
    }

    @Override
    / Может ли игрок поместить указанный стак в слот /
    public boolean canPlaceStack(ItemStack stack) {
        return stack != null && stack.getItem() != null && stack.getItem() == Items.arrow;
    }

    @Override
    / Максимальный размер стака в этом слоте /
    public int getStackLimit() {
        return 64;
    }

    @Override
    / Текстовое описание при наведении курсора, поддерживает перевод строки /
    public String getSlotDescription(EntityPlayer player) {
        return "Стрелы";
    }

    @Override
    / Вызывается при любом изменении содержимого слота /
    public void onChange(ItemStack from, ItemStack to, EntityPlayer player) {

    }
});
Участники проекта
thecodewarrior1

thecodewarrior1

Создан: 26 ноя 2015

ID: 80294