Beyond Dimensions
Beyond Dimensions — это мод, ориентированный на системы хранения и утилиты. Он представляет «Измеренческую сеть» (Dimensional Network) — универсальную систему хранения, поддерживающую предметы, жидкости, энергию FE, опыт (XP), химикаты из Mekanism, источники из Ars Nouveau, ману из Botania и души из Industrial Foregoing. Она сочетает исключительную ёмкость и производительность с удобным интерфейсом, с лёгкостью справляясь с задачами хранения в большинстве сценариев.
Начало работы
Вам необходимо победить Визера или получить Звезду Низа любым другим способом. Скрафтите из неё Нестабильный фрагмент пространства-времени. Подержите этот фрагмент в инвентаре в течение одного часа, чтобы он превратился в Стабильный фрагмент пространства-времени. Используйте его для создания Генератора измеренческой сети и активируйте его, чтобы создать свою Измеренческую сеть. Затем просто нажмите горячую клавишу (по умолчанию: 'O'), чтобы открыть интерфейс хранилища.
Система хранения
- Ёмкость: Ёмкость хранения по умолчанию максимальна. Она может хранить 2,1 миллиарда различных типов предметов или ресурсов, причём каждый тип может содержать до 2^63^-1 единиц (максимальное значение для
long
в Java). Максимальное количество хранимых типов, ёмкость на тип и методы расширения хранилища можно настроить с помощью KubeJS. - Производительность: Система хранения прошла тщательную оптимизацию. Тесты производительности показывают отличные результаты как при подключении к AE2, так и при использовании только этого мода. См. раздел Тестирование производительности для получения конкретных результатов.
- Мультиплеер: Система хранения привязывает сети с использованием прав игроков. Одна сеть может быть доступна нескольким игрокам. Альтернативно, общий доступ можно организовать с помощью Терминалов в форме предметов.
Пользовательский интерфейс (UI)
Интуитивный интерфейс хранилища: Мод предоставляет интерфейс, следующий логике взаимодействия,一致ной с популярными модами хранения, такими как AE2 и RS.
- Встроенная сетка крафта.
- Несколько режимов поиска: Прямой ввод текста ищет по названиям, всплывающим подсказкам или ID модов. Префикс
#
для строгого соответствия всплывающим подсказкам. Префикс@
для строгого соответствия ID модов. - Настраиваемое количество отображаемых строк предметов.
- Несколько вариантов сортировки: по времени хранения, по количеству, по имени, по ID мода.
Универсальная система слотов: Любой слот в любом из GUI мода может хранить все поддерживаемые типы ресурсов и поддерживает механику быстрого взаимодействия.
Быстрая операция с контейнерами: Щелчок правой кнопкой мыши по слоту с удержанием соответствующего контейнера позволяет быстро поместить/извлечь ресурсы из контейнера. Например: Щелчок правой кнопкой мыши по слоту с Шалкером ящиком, Sophisticated Backpack или любым другим контейнером быстро сохранит предметы в контейнер; щелчок правой кнопкой мыши по пустому слоту быстро извлечёт предметы из контейнера и поместит их в слот. Эта операция поддерживает жидкости, химикаты Mekanism и даже энергию FE.
Поддержка автоматизации и утилиты
Мод предоставляет блоки для автоматизации и полезные предметы. Эти блоки необходимо привязать к сети, и большинство из них поддерживает управление редстоуном, позволяя взаимодействовать с другими модами через хранилище.
- Измеренческий сетевой путь (Dimensional Network Pathway): Предоставляет доступ ко всем содержимому хранилища Измеренческой сети. Позволяет ввод/вывод через трубы, загрузочные воронки, AE2/RS Storage Buses и апгрейды разгрузки Sophisticated Backpack.
- Энергетический путь измеренческой сети (Dimensional Network Energy Pathway): Функционирует почти идентично Сетевому пути, но предназначен для передачи энергии FE. Его интерфейс показывает текущий поток энергии FE. Поддерживает «Режим выброса», выводящий FE в соседние блоки со скоростью 2,1 миллиарда FE/тик.
- Сетевой интерфейс (Network Interface): Аналогичен ME Interface. Имеет «Слоты для шаблонов» и «Слоты хранения». Пытается вставить хранимые ресурсы в сеть и извлечь ресурсы из сети, отмеченные в слотах шаблонов. Поддерживает Режим выброса.
- Сетевая помпа (Net Pump): Активно вытягивает ресурсы из соседних контейнеров и вставляет их в Измеренческую сеть. Имеет слоты для фильтров, поддерживающие чёрный/белый списки.
- Сетевая воронка (Net Hopper): Поглощает nearby entity предметов и даже текущие жидкости, помещая их непосредственно в сеть. Её рабочий диапазон регулируется (от 2 блоков до целого чанка). Большие диапазоны имеют большие интервалы работы. Имеет слоты для фильтров, поддерживающие чёрный/белый списки.
- Сетевая печь (Net Furnace): Позволяет отмечать рецепты (ввод и топливо). Автоматически забирает отмеченные ресурсы из сети для переплавки. Поддерживает FE или лаву в качестве топлива. Готовые продукты могут быть выброшены в соседние контейнеры или возвращены в сеть.
- Сетевой питатель (Net Feeder): Когда голод игрока падает ниже заданного порога, он будет кормить игрока едой, отмеченной в сети. Не будет потреблять «бесконечную» еду, такую как Neverending Bacon или Eternal Steak. Можно экипировать в слот Charm мода Curios.
- Сетевой магнит (Net Magnet): Похож на Сетевую воронку, но портативный. Поглощает entity предметов с более высокой частотой, чем Воронка. Имеет переключаемую горячую клавишу. Можно экипировать в слот Charm мода Curios.
- Быстрая передача предмета из активной руки: Средний щелчок по блоку мгновенно извлекает стак предметов того же типа, что и удерживаемый, из сети. Присесть + Средний щелчок, чтобы поместить удерживаемый предмет(ы) обратно в сеть. Эта клавиша настраивается.
Интеграция и поддержка модов
- Поддерживает перетаскивание ghost-ингредиентов и быструю передачу рецептов в JEI/EMI.
- Отметка ghost-ингредиентов в JEI/EMI может распознавать предметы, хранящиеся внутри AE2 Generic Stack.
- Добавляет Ячейку ME измеренческого хранилища для AE2 (AE2 Dimensional ME Storage Cell) для чтения содержимого привязанной сети. Обеспечивает более чем 10-кратное повышение производительности по сравнению с использованием Storage Buses.
- Поддерживает хранение химикатов Mekanism.
- Сетка крафта поддерживает мод Polymorph.
- Портативный сетевой терминал (Portable Network Terminal) можно экипировать в слот Charm мода Curios. Установка Beyond Dimensions вместе с Curios добавляет дополнительный слот Charm.
- Поддержка KubeJS: Предоставляет классы, позволяющие настраивать логику создания сети, начальную ёмкость, методы расширения и прямое управление хранилищем.
- Отключает мод Inventory Profiles Next (IPN) внутри GUI мода из-за значительных изменений в интерфейсе, делающих их несовместимыми. Пожалуйста, используйте Mouse Tweaks для быстрых передач.
Разработка аддонов и помощь по настройке KubeJS
Разработка аддонов
Добавление новых сохраняемых типов ресурсов в коде straightforward. Реализуйте следующие интерфейсы и зарегистрируйте тип ресурса вместе с соответствующими обработчиками:
IStackType
— Позволяет mod распознавать и хранить этот тип ресурса.IStackHandlerWrapper
— Позволяет mod взаимодействовать программно с контейнерами/блоками модов, содержащими этот ресурс.CapabilityHelper.BlockCapabilityMap
— Позволяет типам ресурсов быть доступными для труб/Storage Buses других модов из блоков.CapabilityHelper.ItemCapabilityMap
— Включает быстрое взаимодействие со слотами контейнеров (средний щелчок) для предметов, содержащих этот ресурс.UnifiedStorage.typedHandlerMap
— Позволяет основному хранилищу Измеренческой сети управлять этим ресурсом.StackTypedHandler.typedHandlerMap
— Позволяет периферийным блокам (таким как Сетевые интерфейсы) управлять этим ресурсом в их внутренних слотах.
Специальная совместимость с AE2, даже если пропущена, не препятствует использованию storage buses для чтения.:
AEHelper.ISTACK_TO_AEKEY_MAP
— Сопоставляет объекты ресурсов Beyond Dimensions с ключами AE2 (для чтения с помощью Dimensional ME Storage Cell).AEHelper.AEKEY_TO_STACK_TYPE_MAP
— Сопоставляет ключи AE2 обратно с типами ресурсов Beyond Dimensions (для операций с Dimensional ME Storage Cell).
Обратитесь к основному файлу регистрации мода (BeyondDimensions.java) для примеров реализации. Примечание: Специфика регистрации может измениться в будущих версиях.
Помощь по настройке KubeJS
Чтобы настроить ёмкость сети:
- Отключите рецепт Генератора измеренческой сети по умолчанию.
- Используйте предоставленные классы/методы, доступные через KubeJS, чтобы реализовать собственную логику создания и расширения сети.
Имя класса | Сигнатура метода | Тип возвращаемого значения | Static | Назначение |
---|---|---|---|---|
DimensionsNet | createNewNetForPlayer(Player player, long defaultSlotCapability, int defaultSlotMaxSize) | DimensionsNet | Да | Создать Измеренческую сеть для указанного игрока. defaultSlotCapability : Макс. единиц на тип ресурса. defaultSlotMaxSize : Макс. количество типов ресурсов. |
getNetFromId(int id, MinecraftServer dataProvider) | DimensionsNet | Да | Получить объект DimensionsNet по его числовому ID. | |
getNetFromPlayer(Player player) | DimensionsNet | Да | Получить DimensionsNet, привязанную к указанному игроку. | |
getUnifiedStorage() | UnifiedStorage | Нет | Получить объект UnifiedStorage, представляющий содержимое хранилища этой сети. | |
UnifiedStorage | setSlotCapacity(long capacity) | void | Нет | Установить максимальную ёмкость хранения (единиц) для каждого типа ресурса в этой сети. |
setSlotMaxSize(int maxSize) | void | Нет | Установить максимальное количество различных типов ресурсов, которые эта сеть может хранить. |
Кроме того, мод предоставляет некоторые другие классы для KubeJS. Подробности см. здесь.
Класс UnifiedStorage
также содержит значительное количество других методов, позволяющих напрямую изменять содержимое хранилища игрока.
API мода поставляется с полными китайскими аннотациями. Ознакомьтесь с ними здесь.
Другая информация
Тестирование производительности
Тесты охватили три сценария на одной машине в идентичных фоновых условиях с использованием мода Spark. Все тесты использовали 1319 случайно сгенерированных уникальных предметов.
- Автономный Beyond Dimensions: Предметы хранились/изменялись через Beyond Dimensions. Ввод/вывод через трубы Mekanism.
- Beyond Dimensions через ячейку хранения AE2: Сеть подключена к AE2 через Dimensional ME Storage Cell. Ввод/вывод через трубы Mekanism.
- Нативное хранилище AE2: Предметы хранились в стандартных дисках AE2 (21 x 64k Storage Cells). Ввод/вывод через трубы Mekanism.
Примечание: Сценарий 1 использует блоки Beyond Dimensions (Dimensional Network Pathway
, Network Interface
) и отражает основную производительность мода. Сценарии 2 и 3 используют идентичные настройки AE2 (Export Bus, ME Interface, infinite channels), различаясь только источником хранилища, что позволяет проводить прямое сравнение.
Результаты:
Тестовая среда | TPS | MSPT (Медиана) | MSPT (95-й %) | Загружено чанков | Количество entity |
---|---|---|---|---|---|
Автономный 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 |
Подробные профили Spark и информация о настройке тестов доступны здесь.
План развития (Предстоящие функции)
- Изменение максимальной ёмкости хранения ванильных предметов/жидкостей на 64-битные целые числа (Завершено).
- Хранение опыта (XP) и утилиты.
- Хранение Source из Ars Nouveau и утилиты.
- Выделенный компонент хранения для Refined Storage (RS).
- Добавление механики прогрессии (изначально предоставляется ограниченное хранилище, требующее расширения).
- Больше утилит и инструментов для автоматизации.
- Дополнительные полезные предметы и снаряжение.
Поддерживаемые версии
Версия MC | Загрузчик | Версия мода | Статус |
---|---|---|---|
1.21.1 | Neoforge | 0.3.0+ | Активно обновляется |
1.20.1 | Forge / Neoforge | 0.3.0+ | Активно обновляется |
1.12.2 | Forge | 0.1.7.4 | Только поддержка (Только критические баги) |
Поддержка других версий Minecraft не планируется до тех пор, пока текущий план для поддерживаемых версий не будет в значительной степени завершён.