- Загрузчики
- FabricNeoForge
- Скачиваний на Modrinth
- 185 тыс.
- Подписчиков на Modrinth
- 367
- версии
- 142
- Обновлён
- 15 сентября 202615 сент.
- Опубликован
- в 2020
Коротко о моде
Ставится только в игру; на сервер ставить не нужно
AutoSwitch — это мод для Minecraft, доступный на Fabric и NeoForge, который автоматически переключает активный инструмент на подходящий при атаке или взаимодействии с блоками или сущностями: вы бьёте по каменному блоку — он переключается на кирку, затем, когда вы попадаете по надоедливому участку гравия, он переключается на лопату. Какой инструмент выбирается и когда — всё настраивается с учётом такой информации, как текущие зачарования на инструменте, blockstate цели или снаряжение сущности.
AutoSwitch использует конфигурационный файл в формате HOCON autoswitch.conf, расположенный в папке config, которая находится рядом с папкой ресурспаков. Быстрый способ добраться туда — зайти в Options > Resource Packs > navigate up one folder.
Мод можно включать/выключать прямо в игре нажатием R (по умолчанию).
Настройка
Этот раздел относится только к AutoSwitch 12+. Более ранние версии использовали другой формат конфигурации.
В конфигурационном файле есть четыре раздела — три для определения селекторов и целей при различных действиях и один для общей настройки функций:
attack-action— правила, используемые при атаке (по сущностям или блокам).interact-action— правила, используемые при взаимодействии (ПКМ по сущностям или блокам).stat-change-action— правила, срабатывающие по событиям статов (например, активация тотема бессмертия, работает только в одиночной игре).feature-config— управляет общим поведением мода.
Каждое правило содержит:
priority— целое число; более высокие значения имеют приоритет, когда совпадает несколько целей.target—IdSelectorтипаBLOCK,ENTITY,STATилиEXPRESSION, позволяющий комбинировать другие цели).tools— упорядоченный массивIdSelectorилиEXPRESSIONс типомITEMдля переключения, либо пустой список (чтобы отключить переключение для этой цели).
IdSelector может ссылаться на теги или конкретные явные ID (#minecraft:stone, minecraft:ender_chest). У них есть необязательное поле data, позволяющее сопоставлять такие вещи, как конкретные зачарования предметов или blockstate. Поле данных player можно применить к любому типу селектора, что позволяет сопоставлять по состоянию игрока, например, приседает ли он или находится на определённом расстоянии от цели.
EXPRESSION может содержать сколько угодно элементов или уровней вложенности, что даёт большую гибкость в управлении. Конфигурация по умолчанию охватывает широкий спектр случаев и послужит отличной основой для расширения.
Правки на лету
Просто сохраните конфигурационный файл заново, пока игра запущена, и он автоматически перезагрузится.
Подробности настройки
Выражения
Выражения можно вкладывать на любую глубину.
Выражения поддерживают следующие операции:
OR— совпадение с любым из дочерних элементовAND— совпадение со всеми дочерними элементамиNOT— совпадение ни с одним из дочерних элементовXOR— совпадение только с одним из дочерних элементов
Данные
В настоящее время поддерживаются следующие типы данных:
BlockState— block state для сопоставленияComponent— на данный момент поддерживает толькоPOTION_CONTENTSна предметахEnchantment— зачарования, которые есть у предметаEntityEquipment— снаряжение, которое носит сущность, например свинья с седломPlayer— состояние игрока, например, крадётся ли он, есть ли у него определённый предмет, едет ли он на чём-то или находится на определённом расстоянии от цели.
Приоритет выбора
Сначала AutoSwitch проверяет цель на любое совпадение, отдавая предпочтение совпадению с наивысшим приоритетом и подходящими инструментами. Если есть несколько совпадений с одинаковым приоритетом, он начинает смотреть, насколько конкретна конфигурация — например, если в конфиге определены цели #minecraft:stone (тег) и minecraft:stone (блок), и обе совпадают и имеют одинаковый приоритет, он предпочтёт цель minecraft:stone без тега. Если у этой цели не было подходящих инструментов, тогда он посмотрит на инструменты, указанные у цели-тега. Если указаны какие-либо необязательные данные, это также учитывается, чтобы сделать совпадение более конкретным. Чем больше данных указано, тем более конкретным считается совпадение.
Если у совпавших целей одинаковые приоритет и специфичность, то для выбора используется оценка типа с учётом контекста. Для блоков у всех одинаковая оценка, но у зачарований она зависит от уровня зачарования, а для предметов при атаке на моба — от предполагаемого наносимого урона. У указанных данных тоже может быть своя оценка (например, зачарования на инструменте). Оценка типа имеет приоритет над оценкой данных.
После выбора цели выбор инструмента происходит примерно по тому же принципу. Приоритет инструмента зависит от того, насколько рано он появляется в списке инструментов для данной цели; в остальном специфичность, оценка типа и оценка данных такие же, как у целей.
Если на этом этапе предпочтительного инструмента нет и удерживаемый предмет входит в число этих равнозначных инструментов, то предпочтение отдаётся ему. В противном случае предпочтение отдаётся равнозначному инструменту в самой левой ячейке хотбара.
Тектовая блок-схема
START: candidate inventory slots (all slots that matched a selector)
|
v
Compare Target Priority
|-- if different --> choose highest Target Priority --> END
|
v (same)
Compare Target Rating (levels 0..N)
For each level:
- compare: isGroup? (non-group preferred)
- compare: hasData? (with data preferred)
- compare: typeRating (higher wins)
- compare: dataRating (higher wins)
|-- if difference found --> choose winner --> END
|
v (no difference)
Compare Tool Priority
|-- if different --> choose highest Tool Priority --> END
|
v (same)
Compare Tool Rating (levels 0..N)
(same per-level rules as Target Rating)
|-- if difference found --> choose winner --> END
|
v (still tied)
Prefer currently selected slot?
|-- Yes --> choose currently selected --> END
|-- No --> choose smallest (leftmost) slot --> ENDЧастые вопросы
Как установить AutoSwitch?
Установите Fabric под свою версию Minecraft, скачайте AutoSwitch под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть AutoSwitch?
У AutoSwitch есть сборки для Minecraft 1.16–1.19.3, 1.20–1.20.5, 1.21–26.3.
Нужен ли AutoSwitch на сервере?
Ставится только в игру; на сервер ставить не нужно