
Beyond Dimensions - это мод, который решает проблему хранения ресурсов в поздней игре Майнкрафт. Вместо сундуков и шалкеров он предлагает единую виртуальную сеть - Dimensional Network, способную хранить предметы, жидкости, FE-энергию, опыт, а также ресурсы из Mekanism, Ars Nouveau, Botania и Industrial Foregoing. Всё это с отличной производительностью и удобным интерфейсом.
Начало работы
Чтобы получить доступ к сети, нужно победить Визера (или добыть Звезду Незера иным способом). Из звезды крафтится Нестабильный фрагмент пространства-времени. Носите его в инвентаре около часа - он превратится в Стабильный фрагмент. Из него крафтится Генератор Dimensional Network, при активации которого создаётся ваша персональная сеть. Дальше просто нажмите клавишу (по умолчанию O), чтобы открыть интерфейс хранения.
Система хранения
- Вместимость: По умолчанию - 2,1 миллиарда различных типов ресурсов, каждый тип может хранить до 2^63-1 единиц (максимум Java long). Количество типов и объём на тип можно настроить через KubeJS.
- Производительность: Мод оптимизирован, тесты показывают отличные результаты как при работе с AE2, так и в одиночку. Подробности - в разделе тестирования.
- Мультиплеер: Сеть привязывается к игроку, но её можно открыть для других участников. Также возможен обмен через терминалы в предметной форме.
Интерфейс
Интуитивно понятное хранилище: Интерфейс сделан по образцу популярных модов вроде AE2 и RS.
- Встроенная сетка крафта.
- Несколько режимов поиска: по названию, описанию или ID мода. Префикс
#- строгий поиск по описанию,@- поиск по ID мода. - Настраиваемое количество строк с предметами.
- Сортировка: по времени добавления, количеству, имени, ID мода.
Универсальные слоты: Любой слот в интерфейсе может хранить все поддерживаемые типы ресурсов, и с ним работают быстрые операции.
Быстрая работа с контейнерами: ПКМ по слоту с контейнером (шалкер, Sophisticated Backpack и т.д.) - предметы сразу помещаются в контейнер; ПКМ по пустому слоту - предметы из контейнера извлекаются. Работает даже с жидкостями, химикатами из Mekanism и FE-энергией.
Автоматизация и полезные блоки
Все блоки нужно привязать к сети, поддерживают управление редстоуном.
- Dimensional Network Pathway: Выставляет всё содержимое сети наружу - можно подключать трубы, воронки, Storage Bus из AE2/RS, разгрузчики из Sophisticated Backpack.
- Dimensional Network Energy Pathway: То же самое, но для FE-энергии. В интерфейсе виден текущий поток. Режим выброса - до 2,1 млрд FE/такт.
- Network Interface: Аналог ME Interface. Имеет слоты для паттернов и хранения. Пытается вставить ресурсы в сеть и извлечь то, что отмечено в паттернах.
- Net Pump: Активно вытягивает ресурсы из соседних контейнеров и отправляет в сеть. Есть фильтр с чёрным/белым списком.
- Net Hopper: Подбирает предметы и даже текущие жидкости поблизости и отправляет в сеть. Радиус настраивается от 2 блоков до целого чанка. Чем больше радиус, тем реже срабатывает. Есть фильтр.
- Net Furnace: Позволяет задать рецепты (вход и топливо). Автоматически забирает нужные ресурсы из сети и плавит. Работает на FE или лаве. Готовые предметы можно выбрасывать в соседние контейнеры или возвращать в сеть.
- Net Feeder: Когда голод игрока падает ниже порога, автоматически кормит его едой из сети. Не тратит "бесконечную" еду вроде Neverending Bacon. Вешается в слот Curios Charm.
- Net Magnet: Портативная версия Net Hopper. Подбирает предметы быстрее. Включается/выключается клавишей. Тоже в слот Curios.
- Быстрый перенос предмета из руки: Средняя кнопка мыши по блоку - достаёт стак этого предмета из сети. Shift+средняя кнопка - отправляет предмет из руки в сеть. Клавиши настраиваются.
Интеграция с другими модами
- Полная поддержка перетаскивания ингредиентов и быстрого переноса рецептов из JEI/EMI.
- JEI/EMI распознаёт предметы, хранящиеся в AE2 Generic Stack.
- AE2 Dimensional ME Storage Cell - ячейка, которая читает содержимое сети. Производительность более чем в 10 раз выше, чем у Storage Bus.
- Хранение химикатов из Mekanism.
- Сетка крафта совместима с Polymorph.
- Portable Network Terminal можно носить в слоте Curios Charm. При установке Beyond Dimensions с Curios добавляется дополнительный слот Charm.
- KubeJS: открыты классы для настройки создания сети, начальной ёмкости, расширения и прямого управления хранилищем.
- Внимание: из-за серьёзных изменений интерфейса мод отключает Inventory Profiles Next (IPN) внутри своих GUI. Для быстрого переноса используйте Mouse Tweaks.
Создание аддонов и настройка через KubeJS
Для разработчиков аддонов
Добавить новый тип хранимых ресурсов довольно просто. Нужно реализовать интерфейсы:
IStackType- чтобы мод распознавал и хранил ресурс.IStackHandlerWrapper- для взаимодействия с контейнерами.CapabilityHelper.BlockCapabilityMap- чтобы ресурс был доступен через трубы/Storage Bus из блоков.CapabilityHelper.ItemCapabilityMap- для быстрых операций со слотами.UnifiedStorage.typedHandlerMap- для манипуляций в ядре хранилища.StackTypedHandler.typedHandlerMap- для периферийных блоков (например, Network Interface).AEHelper.ISTACK_TO_AEKEY_MAP- для совместимости с AE2 (читающая ячейка).AEHelper.AEKEY_TO_STACK_TYPE_MAP- обратное преобразование.
Примеры реализации - в главном файле регистрации мода (BeyondDimensions.java). Учтите, что API может меняться.
Настройка через KubeJS
Чтобы изменить ёмкость сети, отключите стандартный рецепт генератора и используйте KubeJS-методы.
| Класс | Метод | Возвращаемый тип | Статический | Описание |
|---|---|---|---|---|
DimensionsNet | createNewNetForPlayer(Player player, long defaultSlotCapability, int defaultSlotMaxSize) | DimensionsNet | Да | Создать сеть для игрока. defaultSlotCapability: макс. единиц на тип. defaultSlotMaxSize: макс. кол-во типов. |
getNetFromId(int id, MinecraftServer dataProvider) | DimensionsNet | Да | Получить сеть по ID. | |
getNetFromPlayer(Player player) | DimensionsNet | Да | Получить сеть, привязанную к игроку. | |
getUnifiedStorage() | UnifiedStorage | Нет | Получить объект хранилища содержимого сети. | |
UnifiedStorage | setSlotCapacity(long capacity) | void | Нет | Установить макс. ёмкость на каждый тип ресурса. |
setSlotMaxSize(int maxSize) | void | Нет | Установить макс. количество разных типов ресурсов. |
Кроме того, мод открывает другие классы для прямого изменения содержимого хранилища. API полностью документировано на китайском.
Дополнительная информация
Тестирование производительности
Тесты проводились на одной машине в одинаковых условиях с помощью Spark. Использовался 1319 случайных уникальных предметов.
- Только Beyond Dimensions: предметы хранятся и изменяются через мод. Ввод/вывод через трубы Mekanism.
- Beyond Dimensions через AE2 Storage Cell: сеть подключена к AE2 через Dimensional ME Storage Cell. Ввод/вывод через трубы Mekanism.
- Нативное AE2 хранилище: предметы в стандартных дисках AE2 (21 x 64k ячейки). Ввод/вывод через трубы Mekanism.
Примечание: сценарий 1 использует блоки Beyond Dimensions (Pathway, Interface) и отражает производительность ядра мода. Сценарии 2 и 3 используют одинаковые AE2-компоненты (Export Bus, ME Interface), различается только источник хранения, что позволяет прямое сравнение.
Результаты:
| Тестовое окружение | TPS | MSPT (медиана) | MSPT (95-й перцентиль) | Загруженные чанки | Количество сущностей |
|---|---|---|---|---|---|
| Только Beyond Dimensions | 20 | 3.67 | 4.86 | 2601 | 13 |
| AE2 + Dimensional ME Cell | 20 | 2.97 | 3.37 | 2601 | 13 |
| AE2 нативное хранилище | 20 | 2.70 | 3.08 | 2601 | 13 |
Как видите, производительность отличная - на уровне нативного AE2, а иногда и лучше.
Планы на будущее
- Изменение максимальной ёмкости для предметов/жидкостей на 64-битные целые (уже сделано).
- Хранилище опыта и утилиты для него.
- Хранилище Source из Ars Nouveau и утилиты.
- Выделенный компонент для Refined Storage (RS).
- Механика прогрессии (сначала ограниченное хранилище, которое нужно расширять).
- Больше автоматизации и утилит.
- Дополнительные предметы и снаряжение.
Поддерживаемые версии
| Версия Minecraft | Загрузчик | Версия мода | Статус |
|---|---|---|---|
| 1.21.1 | NeoForge | 0.3.0+ | Активно обновляется |
| 1.20.1 | Forge/NeoForge | 0.3.0+ | Активно обновляется |
| 1.12.2 | Forge | 0.1.7.4 | Только критические баги |
Поддержка других версий пока не планируется, пока не будет завершена дорожная карта для текущих.
Скачайте мод Beyond Dimensions и забудьте о хаосе в сундуках - всё нужное будет под рукой в любой точке мира!
