

Smart Ore Generation
Активный0.0
Установок
Последнее обновление
Версии
📖 Smart Ore Generation
🎮 Smart Ore Generation представляет собой библиотеку для датапаков Minecraft, которая реализует интеллектуальную систему размещения пользовательских руд.
🔍 Основные возможности
Эта библиотека дополняет стандартную систему генерации руд в Minecraft, а не заменяет её. Она была разработана с учётом совместимости с другими библиотеками генерации руд и предоставляет умный способ размещения ресурсов, при этом функции обработки пользовательских блоков должны быть реализованы отдельно.
🌍 Конфигурация измерений: Библиотеку можно настроить для генерации руд в определённом измерении или во всех измерениях.
⚡ Корректная работа на любой высоте: Система корректно работает с изменённой минимальной высотой в Обычном мире.
🌐 Поддержка пользовательских измерений: Библиотека поддерживает пользовательские измерения, но для исключения их из сканирования необходимо добавить их в функцию denied_dimensions
.
✨ **Гибкая интеграция в сущест
🔧 Принцип работы системы
Система активируется каждые 5 секунд в месте положения каждого игрока и выполняет следующие шаги:
⚡ Сначала выполняет функцию denied_dimensions
, чтобы определить, какие измерения следует исключить из процесса сканирования.
🌍 Если измерение разрешено, библиотека сканирует 8 регионов вокруг игроков (по умолчанию размер региона - 96х96 блоков).
🔍 Для каждого региона проверяется, был ли он уже отсканирован. Если нет - запускается генерация руд для этого участка.
📍 Затем вызывается функция generate_ores
в точке начала региона (координаты 0, 0, 0), где можно добавлять собственные условия генерации в зависимости от измерений, биомов и других параметров.
🎲 При создании каждого месторождения руды необходимо использовать функцию random_position
, чтобы получить случайное положение внутри региона. Эта функция перемещает позицию к ближайшему воздушному блоку, предотвращая генерацию руд внутри сплошных блоков, где игроки никогда их не найдут.
🚫 После всех проверок библиотека сохраняет статус региона как "отсканированный" путём размещения барьерного блока в начале региона.
✨ В завершение вызывается функция post_generation
для выполнения задач после генерации, таких как добавление NBT-тегов ко всем новым рудам.
🔄 Функции и настройки
📥 Сигналы
#smart_ore_generation:v1/denied_dimensions
🔍 Эта функция вызывается, когда библиотека хочет просканировать регион. Можно добавить измерение, в котором нужно запретить сканирование.
📝 Для использования нужно добавить функцию в тег, расположенный в data/smart_ore_generation/tags/function/v1/signals/denied_dimensions.json
.
Вот пример отключения генерации в измерении:
execute if score #authorized smart_ore_generation.data matches 1 if predicate simplenergy:in_overworld run scoreboard players set #authorized smart_ore_generation.data 0
Или другой вариант:
execute if score #authorized smart_ore_generation.data matches 1 if dimension minecraft:overworld run scoreboard players set #authorized smart_ore_generation.data 0
В комментариях к данному коду указано:#> smart_ore_generation:v1.7.0/signals/denied_dimensions
При использовании следует учитывать основы в коде ниже. Также важно учитывать #authorized-счётчик с данными smart_ore_generation общий при значении 1 или от 0, а ноль означает блокировку другого датапака проверять статус измерения. Помни, устанавливая счётчик #authorized на ноль, ты отключишь активацию для этого измерения во всех датапаках.
#smart_ore_generation:v1/generate_ores
🔍 Эта функция запускается, когда библиотека хочет сгенерировать руды в регионе. Можно добавить свои функции генерации руд.
📝 Функция должна быть добавлена в тег data/smart_ore_generation/tags/function/v1/signals/generate_ores.json
.
Пример использования кода:#> smart_ore_generation:v1.7.0/signals/generate_ores функционального блока, выполняемого в особых условиях функции из датапалов mod simplification; Важная инструкция:Не используй /kill @s – это остановит всю работу библиотеки. Также не забывай о setting - and setting Max - ключи Мин через перемену данных перед применением тега, иллю следующего кода.