Скачать env.json — Minecraft Моды — MetaMods

env.json

Активный

Установок

0

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

1 год назад

Версии

1.20.1 — 1.21.1
Клиент
Fabric
Quilt
Игровые механики
Библиотеки
Управление

env.json

env.json представляет собой библиотеку для Minecraft, которая вводит новый формат файлов с расширением .env.json. Основная цель этой библиотеки — перенаправлять игровые ресурсы на альтернативные в зависимости от текущего игрового контекста.

Совместимость

Библиотека работает с Fabric Loader и Quilt Loader. Для корректной работы требуется установка Fabric API.

Принцип работы

Сама библиотека env.json не реализует механизмы перенаправления ресурсов напрямую. Вместо этого она предоставляет инструменты для работы с файлами .env.json и управления перезагрузкой ресурсов.

Официальные реализации

На данный момент существуют две официальные реализации, использующие возможности env.json:

Environment Driven Assets (EDA)

  • Идентификатор мода: env-driven-assets
  • Рабочая среда: Клиент
  • Применяет операции .env.json к стандартным типам ресурсов Minecraft

Environment Driven Data (EDD)

  • Идентификатор мода: env-driven-data
  • Рабочая среда: Общая и серверная
  • Применяет операции .env.json к типам данных Minecraft

Формат файла .env.json

[
  {
    "rules": [ // основной набор правил, работает по принципу "любое"
      {
        "type": "sequence", // все правила в последовательности должны выполняться
        "rule": [] // правила
      },
      {
        "type": "any", // срабатывает, если хотя бы одно правило выполняется
        "rule": [] // правила
      },
      {
        "type": "not", // инвертирует правило
        "rule": { // правило
          "type": "...",
          "rule": "..."
        }
      },
      {
        "type": "dimension", // срабатывает, если текущее измерение совпадает
        "rule": "minecraft:overworld" // измерение, может быть тегом
      },
      {
        "type": "biome", // срабатывает, если текущий биом совпадает
        "rule": "minecraft:plains" // биом, может быть тегом
      },
      {
        "type": "x_coord", // проверяет координаты по оси X
        "rule": {
          "comparator": "==", // может быть <, >, ==, <=, >=, =< или =>
          "value": "100" // должно быть целым числом
        }
      },
      {
        "type": "y_coord", // проверяет координаты по оси Y
        "rule": {
          "comparator": "==", // может быть <, >, ==, <=, >=, =< или =>
          "value": "100" // должно быть целым числом
        }
      },
      {
        "type": "z_coord", // проверяет координаты по оси Z
        "rule": {
          "comparator": "==", // может быть <, >, ==, <=, >=, =< или =>
          "value": "100" // должно быть целым числом
        }
      },
      {
        "type": "submerged", // проверяет, находится ли контекст под водой
        "rule": true // true для "если под водой", false для "если не под водой"
      },
      {
        "type": "sky", // проверяет положение относительно небесного предела
        "rule": "at" // может быть "above", "at" или "below"
      },
      {
        "type": "water", // проверяет положение относительно уровня воды
        "rule": "at" // может быть "above", "at" или "below"
      },
      {
        "type": "void", // проверяет положение относительно предела пустоты
        "rule": "at" // может быть "above", "at" или "below"
      }
    ],
    "result": "minecraft:block/stone" // перенаправленный ресурс
  }
]

Файлы должны регистрироваться в формате: перенаправляемый_ресурс-расширение.env.json.

Использование для разработчиков

В файле build.gradle:

repositories {
    // ...
    maven { url 'https://jitpack.io' }
}

// ...

dependencies {
    // ...
    modImplementation "com.mmodding:env.json:${самая_подходящая_версия}"
}

Теперь вы можете получить объект EnvJson из объекта Resource с помощью ExtendedResource#of(Resource)#getEnvJson или разобрать его с помощью EnvJson#parse(Path) или EnvJson#parse(InputStream).

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

FirstMegaGame4

Разработчик

Neokys

Neokys

Разработчик

MModding

MModding

MModdingTeam

MModdingTeam

Создан: 30 дек 2023

ID: 9181