Скачать Static Data — Minecraft Моды — MetaMods

Static Data

Активный

Установок

0

Последнее обновление

6 месяцев назад

Версии

1.20-pre5 — 1.21.5
Сервер
Fabric
Quilt
Библиотеки
Утилиты

Static Data

Мод Static Data вводит в Minecraft новый тип ресурсов — статические данные, которые позволяют модификациям легко и структурированно обмениваться информацией о совместимости и взаимодействии друг с другом и с игровой средой.

Основные преимущества статических данных

Неизменность данных

Статические данные остаются постоянными на протяжении всего жизненного цикла мода — они не подвержены влиянию перезагрузки датапаков и ресурс-паков. Это гарантирует стабильность и предсказуемость работы ваших модификаций.

Ранняя доступность

Данные становятся доступными сразу же после запуска первого entrypoint в загрузчике, независимо от того, какой именно мод или библиотека инициализируется первой.

Возможность управления регистрацией

Поскольку статические данные не меняются и доступны до заморозки реестров, их можно использовать для регистрации блоков и сущностей на основе информации, полученной от других модов.

Как предоставлять статические данные

Для разработчиков модов

Статические данные размещаются в директории staticdata рядом с папками assets и data. Например, если мод "architecture_extensions" ищет файлы по пути "blockgroups", полный путь к файлу будет выглядеть так:

src/main/resources/staticdata/architecture_extensions/blockgroups/obsidian.json

Для создателей датапаков

Создавайте zip-архивы с корневой папкой "staticdata". Внутри архива файлы должны располагаться по аналогичному пути:

/staticdata/architecture_extensions/blockgroups/obsidian.json

Статические датапаки можно размещать в двух местах:

  • внутри модов в папке src/main/resources/staticdata/
  • в корневой директории .minecraft/staticdata/

Использование в вашем моде

Для работы с Static Data добавьте зависимость в ваш проект:

// Используйте quilt-json5 или jankson для парсинга
Gson gson = new GsonBuilder().create();

// Получение всех статических данных в указанной директории
List<StaticDataItem> dataItems = StaticData.getDataInDirectory(
        new Identifier(MODID, "bees"), // Поиск по mymod:bees
        true // Рекурсивный поиск по подпапкам
        );

for(StaticDataItem dataItem : dataItems) {
    MyDataObject dataObject = gson.fromJson(item.getAsString(), MyDataObject.class);

    // Условная загрузка данных
    String requiredMod = dataObject.only_if_present;
    if (requiredMod != null && !requiredMod.isBlank()) {
        if (!QuiltLoader.isModLoaded(requiredMod)) continue;
    }

    // Использование полученных данных
    doSomethingWithTheData(dataObject);
}

Пример класса для хранения данных:

public class MyDataObject {
    public String only_if_present;
    // другие публичные поля для данных
}

Использование в модпаках

Static Data обычно встраивается в другие моды и обеспечивает бесшовное взаимодействие между ними без дополнительной настройки. Для расширения функциональности создавайте собственные статические датапаки и включайте их в состав вашего модпака.

Участники проекта
falkreon

falkreon

Разработчик

Создан: 3 июн 2023

ID: 16391