Скачать Packed Inventory — Minecraft Моды — MetaMods
Packed Inventory

Packed Inventory

Активный

Установок

0

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

1 год назад

Версии

1.17.1 — 1.20.4
Клиент и сервер
Fabric
Библиотеки
Хранилища
Утилиты

Packed Inventory

Мод для Minecraft, который решает проблему постоянно растущего беспорядка в инвентаре, позволяя управлять содержимым шалкеровых ящиков, эндер-сундуков и других контейнеров прямо из вашего инвентаря.

Логотип

Основные возможности

  • Управление содержимым шалкеровых ящиков без необходимости их размещения
  • Доступ к эндер-сундуку прямо из инвентаря
  • Быстрая передача предметов в контейнеры и обратно
  • Использование верстаков, камнерезов и других рабочих станций из инвентаря
  • Информативные подсказки для шалкеровых ящиков, эндер-сундуков и карт
  • Поддержка предметов с NBT-данными, полученных в творческом режиме
  • Простой API для разработчиков модов

Функциональность как у связок

Анимация быстрой передачи

Предметы с инвентарем (шалкеровые ящики, эндер-сундуки и другие) получают функциональность, похожую на связки, позволяя быстро перемещать предметы.

Для помещения предметов в контейнер:

  • Возьмите контейнер и нажмите k на предметах
  • Возьмите контейнер и нажмите k на других контейнерах
  • Возьмите предметы и нажмите k на контейнере

Для извлечения предметов:

  • Возьмите контейнер и нажмите k на пустых слотах
  • Возьмите контейнер и нажмите l или ctrl + k на слотах
  • Нажмите l или ctrl + k на контейнере

Для выброса всех предметов:

  • Возьмите контейнер, вынесите за пределы инвентаря и нажмите k

Подсказки

Мод добавляет информативные подсказки для различных предметов:

  • Подсказки для контейнеров
  • Цветные подсказки для контейнеров
  • Компактные подсказки
  • Подсказки для заполненных карт

Предварительный просмотр

Настройка управления

Клавиши можно настроить в меню управления игры:

  1. Откройте Настройки
  2. Выберите Управление
  3. Перейдите в Назначение клавиш
  4. Найдите раздел Packed Inventory
  5. Настройте нужные клавиши
Название Описание По умолчанию
Взаимодействие с предметом Открывает экран предмета или управляет содержимым k
Переключение режима взаимодействия Изменяет поведение основной клавиши Левый Ctrl
Извлечение из предмета Извлекает предметы из контейнера l
Инверсия видимости подсказок Переключает отображение подсказок Левый Shift
Инверсия компактного режима Переключает компактный режим подсказок c

Конфигурация

При наличии мода Cloth Config можно настроить поведение Packed Inventory через файл ./config/packed-inventory.json:

{
  "defaultTooltipConfig": {
    "showWhenEmpty": false,
    "rows": -1,
    "columns": -1,
    "usePredefinedColor": false,
    "enable": true,
    "compact": false
  },
  "tooltips": {
    "minecraft:shulker_box": {
      "showWhenEmpty": false,
      "rows": -1,
      "columns": -1,
      "usePredefinedColor": false,
      "enable": true,
      "compact": false
    },
    "minecraft:ender_chest": {
      "syncInterval": 5000,
      "showWhenEmpty": false,
      "rows": -1,
      "columns": -1,
      "usePredefinedColor": false,
      "enable": true,
      "compact": false
    },
    "minecraft:filled_map": {
      "size": 128,
      "enable": false,
      "compact": false
    }
  },
  "defaultValidationConfig": {
    "suppressValidationInCreative": true,
    "requiresPlayerOnGround": true,
    "enable": true
  },
  "validation": {
    "minecraft:shulker_box": {
      "suppressValidationInCreative": true,
      "requiresPlayerOnGround": true,
      "enable": true
    },
    "minecraft:ender_chest": {
      "requiresSilkTouch": true,
      "suppressValidationInCreative": true,
      "requiresPlayerOnGround": true,
      "enable": true
    }
  }
}

Для разработчиков

Установка зависимости

Добавьте Packed Inventory как зависимость в ваш проект:

build.gradle:

repositories {
  maven {
    name = "Modrinth"
    url = "https://api.modrinth.com/maven"
    content {
      includeGroup "maven.modrinth"
    }
  }
}

dependencies {
  modImplementation "maven.modrinth:packed-inventory:${project.packed_inventory_version}"
}

gradle.properties:

packed_inventory_version=/ версия (например, 0.3.0+1.20.3) /

Точки входа

API предоставляет две точки входа для интеграции:

Название Описание Интерфейс Сторона
packed-inventory Запускается первой в любой среде PackedInventoryInitializer *
packed-inventory-client Запускается только на клиенте PackedInventoryClientInitializer client

fabric.mod.json:

{
  "entrypoints": {
    "packed-inventory": [
      "a.b.c.MyMod"
    ],
    "packed-inventory-client": [
      "a.b.c.MyClientMod"
    ]
  }
}

Представления инвентаря

Основная концепция мода - представления инвентаря, позволяющие редактировать содержимое предметов без их размещения.

Пример регистрации просмотрщика для эндер-сундука:

public class MyMod implements PackedInventoryInitializer {
    @Override
    public void registerInventoryViewers(InventoryViewerRegistry registry, PackedInventoryApiConfig config) {
        registry.register(
            (inventory, slot, player) -> player.getEnderChestInventory(),
            Items.ENDER_CHEST
        );
    }
}

Валидация действий

Для установки ограничений можно использовать валидаторы:

public class MyMod implements PackedInventoryInitializer {
    @Override
    public void registerInventoryViewers(InventoryViewerRegistry registry, PackedInventoryApiConfig config) {
        registry.register(
            (inventory, slot, player) -> player.getEnderChestInventory(),
            InventoryValidators.IS_IN_CREATIVE.or(
                InventoryValidators.IS_ON_GROUND.and(InventoryValidators.HAS_PICKAXE_WITH_SILK_TOUCH)
            ),
            Items.ENDER_CHEST
        );
    }
}

Подсказки для разработчиков

Регистрация провайдера подсказок для эндер-сундука:

public class MyClientMod implements PackedInventoryClientInitializer {
    @Override
    public void registerTooltipProviders(TooltipProviderRegistry registry, PackedInventoryApiConfig config) {
        registry.register(
            TooltipProvider.builder()
                .useSyncData(GenericContainerTooltipSyncData::of)
                .tooltipData((stack, context, syncData) -> GenericContainerTooltipData.of(syncData.getInventory()))
                .build(),
            Items.ENDER_CHEST
        );
    }
}

Установка

Требования:

  • Minecraft 1.20.x
  • Fabric Loader >=0.15.0
  • Fabric API >=0.83.0

Сборка из исходников

Требования:

  • JDK 17

Linux/MacOS:

git clone https://github.com/Kir-Antipov/packed-inventory.git
cd packed-inventory

chmod +x ./gradlew
./gradlew build
cd build/libs

Windows:

git clone https://github.com/Kir-Antipov/packed-inventory.git
cd packed-inventory

gradlew build
cd build/libs
Участники проекта
Kir_Antipov

Kir_Antipov

Разработчик

Kira-NT

Kira-NT

Разработчик

Kira_NT

Kira_NT

Создан: 8 июл 2022

ID: 5878