Общий язык для выбора предметов
Item Filters решает задачу, которая регулярно возникает в квестах и автоматизации: как описать не один конкретный предмет, а целую допустимую группу. Вместо того чтобы каждому моду создавать собственную систему сопоставления, библиотека предоставляет предмет-фильтр и единый набор правил. Этим механизмом пользуются FTB Quests, Modular Pipes и QNet.
Фильтр редактируется через игровой интерфейс и может представлять набор подходящих предметов. В задачах FTB Quests для него автоматически формируется прокручиваемый значок из допустимых вариантов. Игроку проще понять условие, а автору сборки не приходится перечислять каждый предмет вручную.
Как строятся условия
Основу составляют логические операции. NOT инвертирует дочернее правило, OR принимает совпадение хотя бы с одним условием, AND требует выполнения всех условий, а XOR выбирает только один из двух взаимоисключающих вариантов. Комбинируя их, можно описывать более точные требования без привязки к единственному идентификатору.
- Фильтр по имени Ore Dictionary объединяет взаимозаменяемые материалы.
- Фильтр творческой вкладки выбирает предметы из заданной группы интерфейса.
- Фильтр по моду принимает контент определенного проекта.
- API позволяет разработчикам создавать собственные типы сопоставления.
Такой подход особенно полезен в модпаках, где один ресурс представлен несколькими реализациями. Условие остается смысловым: например, оно может ожидать материал определенной группы или любой предмет выбранного мода. Это снижает количество жестких связей между квестами, логистикой и конкретным набором контента.
Не обычная библиотека интерфейса
FTB Library тоже служит основой для проектов экосистемы FTB, но решает более широкий круг задач: создание GUI, боковые панели, конфигурации и работу с SNBT. Item Filters сосредоточен именно на правилах выбора предметов. Эти проекты не заменяют друг друга: один дает общую инфраструктуру, другой предоставляет специализированный механизм сопоставления.
Кому нужен Item Filters
Для обычного игрока мод чаще выступает зависимостью и раскрывается внутри интерфейсов других проектов. Основная аудитория включает авторов сборок и разработчиков, которым нужны гибкие условия для заданий или транспортных сетей. Практическая ценность библиотеки заметна там, где одинаковое правило должно корректно работать с большим и меняющимся набором предметов.