Aetherial Structure Compatibility
Мод на совместимость структур с генерацией летающих островов. Переносит начало структур на подходящие летающие острова. Совместим с C2ME, YOUNG's и Integrated structures.
- Загрузчики
- NeoForge
- Скачиваний на Modrinth
- 383
- Подписчиков на Modrinth
- 4
- версии
- 2
- Обновлён
- 9 августа 20269 авг.
- Опубликован
- в 2026
Коротко о моде
Ставится только на сервер; игрокам ставить не нужно
Aetherial Structure Compatibility
Версия: 1.0.0g
Minecraft: 1.21.1
Загрузчик: NeoForge 21.1.242+
Java: 21
Автор: OurElephant
Контакт: slon1k.nash@atomicmail.io
Мод на совместимость структур с генерацией в виде летающих островов. Переносит начало структур на подходящие летающие острова
Назначение
Aetherial Structure Compatibility (ASC) адаптирует обычную генерацию структур Minecraft под миры из отдельных летающих островов. В немодифицированном конвейере структур начало структуры выбирается по правилам биома и structure-set, без учёта того, достаточно ли terrain под будущими частями или вокруг них. В мире островов это может порождать структуры в пустоте, структуры, разделённые между несвязанными островами, комнаты без опоры или подземные структуры за пределами доступной каменной массы.
ASC оценивает terrain ближайших островов, прежде чем принять начало структуры. Он ищет подходящий остров и якорь, проверяет сгенерированную структуру на соответствие этому острову и либо генерирует начало в цели, либо переносит готовые части структуры — в зависимости от выбранной стратегии генерации.
ASC меняет только размещение. Он не добавляет структуры, не заменяет их лут, не изменяет интервалы structure-set и не меняет правила допустимости биомов сверх проверки валидных целевых позиций.
Как это работает
- Minecraft запрашивает начало структуры в её номинальном чанке.
- ASC определяет структуру и загружает её индивидуальный профиль, при необходимости откатываясь к профилю
defaults. - Ближайшие колонки сэмплируются и группируются в кандидатов-летающих островов.
- Кандидаты-якоря ранжируются по размеру острова, толщине, свободному пространству и расстоянию переноса.
- ASC генерирует или переносит структуру согласно
generationStrategy. - Реальные части структуры проверяются на соответствие одному острову. Наземные структуры требуют terrain под большинством частей; подземные структуры требуют достаточного заключения или перекрытия; водные структуры требуют подходящей воды и дна.
- Если ни одна цель не проходит проверку,
global.fallbackопределяет, пропускается структура или остаётся на ванильной позиции.
Номинальный чанк начала остаётся владельцем структуры. Части структуры и кэшированный bounding box обновляются, чтобы размещение и /locate structure использовали перенесённую геометрию, оставаясь в пределах максимальной дистанции ссылки на структуру в восемь чанков.
Изменения в генерации структур
- Начала структур можно перемещать по горизонтали и вертикали к проверенному якорю острова.
regenerate_at_targetпросит генератор структуры создать начало в целевом чанке.generate_then_translateсначала генерирует исходное начало, а затем перемещает все готовые части как группу.autoвыбирает обычный путь генерации в цели, со специальной обработкой переноса для YUNG's Better Mineshafts и зарытых сокровищ.- Наземные структуры проверяются по их реальным частям, а не только по одному большому bounding rectangle.
- Ветвящиеся шахты проверяются по частям, чтобы пустые промежутки между туннелями не считались отсутствующим terrain.
- Trial Chambers и другие подземные структуры с учётом частей выравниваются и проверяются по реальным комнатам и коридорам.
- Стандартные вертикальные опорные колонны можно отключить через
verticalSupports. Отдельная совместимость с YUNG сохраняет цепи, подавляя нежелательные сплошные опорные ноги. - Уже сгенерированные структуры не переносятся задним числом. Тестируйте изменения в новом мире или неисследованных чанках.
Производительность
ASC выполняет дополнительный сэмплинг terrain, определение островов, ранжирование кандидатов и проверку структур во время генерации чанков. Это увеличивает нагрузку на CPU при генерации мира и может заметно замедлить генерацию чанков, особенно при большом радиусе поиска, высоких лимитах сэмплирования или множестве модов на структуры.
Для больших миров и модпаков рекомендуется использовать Chunky, чтобы предварительно сгенерировать нужную область мира перед обычной игрой. Также рекомендуется C2ME для параллельной загрузки и генерации чанков — это снижает практическое влияние ASC на исследование и запуск сервера. Производительность всё ещё зависит от пресета мира, железа, модпака и значений конфигурации, поэтому тестируйте настройки на резервной копии, прежде чем генерировать рабочий мир.
Совместимость
У ASC нет обязательной зависимости от модов на структуры. Он читает активный динамический реестр STRUCTURE, поэтому стандартные структуры из модов и датапаков на основе реестра могут автоматически получать профили.
Встроенный шаблон содержит готовые к редактированию профили для:
- Ванильных структур Minecraft;
- YUNG's Better Desert Temples;
- YUNG's Better Dungeons;
- YUNG's Better Nether Fortresses;
- YUNG's Better Jungle Temples;
- YUNG's Better Mineshafts;
- YUNG's Better Ocean Monuments;
- YUNG's Better Strongholds;
- YUNG's Better Witch Huts;
- Integrated Dungeons and Structures (IDAS);
- Integrated Stronghold;
- Integrated Villages;
- Revamped Shipwrecks;
- структур Supplementaries.
Для YUNG's Better Mineshafts и YUNG's Better Dungeons включены отдельные миксины там, где эти моды ставят опорные ноги напрямую. Эти необязательные адаптеры не требуют установки модов YUNG.
Код генерации и кэширования рассчитан на параллельную генерацию мира, включая C2ME. Вспомогательные потоки генерации мира Distant Horizons не выполняют сканирование островов; там используется настроенный fallback, чтобы избежать простоев генерации чанков в рабочих потоках.
Расположение конфигурации
Файл конфигурации:
config/aetherial_structure_compat.jsonКогда файла нет, ASC записывает встроенный шаблон. После того как реестр структур становится доступен, ASC дополняет файл одним полным разделом на каждую зарегистрированную структуру. Внутренние ключи, начинающиеся с _, — это маркеры миграции или шаблона, и они скрыты из игрового списка структур.
Глобальные настройки
| Поле | По умолчанию | Допустимое значение | Описание |
|---|---|---|---|
enabled | true | Boolean | Главный переключатель ASC. Когда false, используется ванильная генерация структур. |
searchRadius | 128 | 16–1024 блоков | Максимальный радиус поиска островного рельефа. |
maxRelocationChunks | 8 | 1–8 чанков | Максимальное горизонтальное смещение старта. Восемь — это также лимит ссылок на структуры в Minecraft. |
cacheRadius | 128 | 16–256 блоков | Радиус, сохраняемый кэшем анализа островов. |
maxAttempts | 32 | 1–256 | Максимальное число попыток генерации кандидатов для обычной структуры. |
sampleStep | 8 | 2–64 блока | Шаг между колонками при первичной выборке острова. Меньшие значения точнее и дороже. |
maxSampleColumns | 8192 | 64–16384 | Жёсткий лимит колонок, проверяемых при первичном анализе острова. |
validationStep | 4 | 2–32 блока | Шаг между колонками при детальной проверке размещения. |
maxValidationColumns | 4096 | 32–8192 | Жёсткий лимит колонок, проверяемых при детальной проверке. |
verticalConnectionTolerance | 16 | 0–64 блока | Максимальное вертикальное расстояние при объединении выбранных областей в один остров. |
maxAnchorsPerIsland | 12 | 1–32 | Максимальное число точек-кандидатов, сохраняемых для каждого острова. |
maxCacheEntries | 64 | 4–2048 | Максимальное число записей в основном кэше островов. |
maxColumnCacheEntries | 786432 | 8192–2097152 | Максимальное число сохраняемых колонок мира. |
maxColumnCacheMemoryMb | 384 | 32–512 MiB | Примерный потолок памяти для кэша колонок. |
fallback | skip | skip, vanilla | Действие, когда подходящий остров не найден: пропустить старт или оставить ванильное размещение. |
logDecisions | false | Boolean | Записывает в лог подробные решения о размещении и статистику отказов. |
Поля размещения по умолчанию и для отдельных структур
Объект defaults задаёт наследуемые значения. Объект верхнего уровня с идентификатором структуры, например minecraft:village_plains, переопределяет эти значения для данной структуры.
| Поле | По умолчанию | Допустимое значение | Описание |
|---|---|---|---|
enabled | true | Boolean | Включает обработку ASC для этой области или структуры. |
chanceMultiplier | 1.0 | 0.0–1.0 | Вероятность того, что ASC обработает необязательный старт структуры. |
mode | auto | auto, surface, underground, aquatic | Целевое окружение. auto выводит режим из идентификатора структуры. |
undergroundPlacement | auto | auto, relaxed, contained, mandatory | Политика подземного размещения. relaxed допускает частичное пересечение с туннелями; contained требует замкнутого пространства; mandatory выполняет более широкий обязательный поиск. |
generationStrategy | auto | auto, regenerate_at_target, generate_then_translate | Выбирает, регенерируется ли старт на острове или сначала генерируется, а затем переносится. |
verticalSupports | false | Boolean | Разрешает стандартные вертикальные опорные колонны под частями. False безопаснее для парящего рельефа. |
minRadius | 10 | 0–2048 блоков | Минимальный горизонтальный радиус острова. |
minDepth | 5 | 1–384 блоков | Минимальная толщина острова или полезная вертикальная глубина. |
minSurfaceArea | 160 | 0–20000000 колонн | Минимальная полезная площадь поверхности. |
minSolidPercent | 0.18 | 0.0–1.0 | Минимальная доля твёрдых блоков в оцениваемом объёме острова. |
minStonePercent | 0.0 | 0.0–1.0 | Минимальная доля камнеподобных блоков, в первую очередь для подземных структур. |
minFreeSpace | 0.06 | 0.0–1.0 | Минимальная доля свободного объёма вокруг цели или внутри неё. |
minWaterDepth | 0 | 0–384 блоков | Минимальная глубина воды для водного размещения. |
minWaterCoverage | 0.0 | 0.0–1.0 | Минимальная доля площади основания, покрытая водой. |
minFootprintCoverage | 0.56 | 0.0–1.0 | Минимальная доля реальной площади частей структуры, поддерживаемая выбранным островом. Эффективные пороги могут быть строже для поверхностных структур или структур с учётом частей. |
maxSurfaceVariation | 14 | 0–128 блоков | Максимально допустимый перепад высот по всей области размещения. |
aquaticPlacement | floor | floor, water_surface, preserve | Выравнивает водные структуры по морскому дну, поверхности воды или исходной относительной высоте. |
verticalOffset | 0 | -64–64 блоков | Дополнительное смещение по Y, применяемое после выравнивания. |
horizontalMargin | 2 | 0–128 блоков | Дополнительный горизонтальный зазор вокруг основания. |
verticalMargin | 1 | 0–128 блоков | Дополнительный зазор над и под структурой. |
sizeWeight | 0.38 | Decimal | Вклад размера острова в ранжирование кандидатов. |
distanceWeight | 0.12 | Decimal | Вклад расстояния переноса в ранжирование кандидатов. |
thicknessWeight | 0.32 | Decimal | Вклад толщины острова в ранжирование кандидатов. |
freeSpaceWeight | 0.18 | Decimal | Вклад свободного объёма в ранжирование кандидатов. |
Четыре веса ранжирования не обязаны в сумме давать ровно 1.0, но нормализованная сумма делает их относительное влияние понятнее.
Частые вопросы
Как установить Aetherial Structure Compatibility?
Установите NeoForge под свою версию Minecraft, скачайте Aetherial Structure Compatibility под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть Aetherial Structure Compatibility?
У Aetherial Structure Compatibility есть сборки для Minecraft 1.21.1.
Нужен ли Aetherial Structure Compatibility на сервере?
Ставится только на сервер; игрокам ставить не нужно