Скачать Ritual thingy — Minecraft Моды — MetaMods
Ritual thingy

Ritual thingy

Активный

Установок

0

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

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

Версии

1.19.2 — 1.20.1
Сервер
Fabric
Quilt
Библиотеки

Ritual thingy

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

Основные возможности

Многоблочные структуры

Поддержка многоблочных структур реализована через интеграцию с Patchouli, при этом ведется разработка альтернативных систем. Добавляйте многоблочные конструкции через JSON-файлы Patchouli или используя соответствующий API. Блоки, добавленные в тег ritual-thingy:altar, проверяются на наличие многоблочных структур при нажатии правой кнопкой мыши.

Условия для предметов

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

Волны существ

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

Действия с предметами

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


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

Формат конфигурации

Файлы ритуалов должны располагаться по пути data/ВАШ_ПРОСТРАНСТВ_ИМЁН/rituals/НАЗВАНИЕ_РИТУАЛА.json

Ключи, отмеченные , являются обязательными (но могут быть опущены, если родительский тег отсутствует)

{
  "soundEvent": "block.beacon.activate", // Звук, воспроизводимый в начале
  "maxUses": 1, // Максимальное количество использований ритуала на игрока. Установите 0 для отключения
  "altar": {
    "patchouli": true, // Должно быть установлено в true
    "id": "ritual-thingy:test_altar", // Идентификатор алтаря Patchouli
    "itemCondition": { // Не включайте для отключения проверки предметов
      "predicate": "ritual-thingy:mainhand", // Идентификатор предиката (по умолчанию "ritual-thingy:mainhand")
      "ingredient": { // Ингредиент: использует тот же формат, что и рецепты
        "item": "minecraft:stick"
      },
      "decrement": 1 // Удалить столько предметов из стека при использовании правильного предмета
    },
    "dimensionCondition": {
      "dimensions": [
        "minecraft:overworld"
      ], // Список разрешенных измерений
      "allowed": true // True означает, что список содержит разрешенные измерения, false - запрещенные
    }
  },
  "stack": { // Награда в виде предмета
    "item": "minecraft:diamond_sword",
    "count": 1
  },
  "startMessage": "Ritual starting", // Сообщение в начале
  "completeMessage": "Ritual ending", // Сообщение в конце
  "completeAction": "ritual-thingy:drop_offset", // Идентификатор действия с предметом (по умолчанию "ritual-thingy:none")
  "trial": { // Пропустите для мгновенного завершения ритуала
    "waveTickDelay": 80, // Задержка между волнами испытания в тиках
    "beginningCountdown": 80, // Обратный отсчет до испытания в тиках
    "delayBossBarColor": "blue", // Цвет полосы босса для задержки и отсчета
    "waves": [ // Волны существ
      {
        "bossBarText": "Pig", // Текст полосы босса для волны
        "bossBarColor": "blue", // Цвет полосы босса для волны
        "isBoss": true, // Должна ли полоса босса отображать здоровье вместо количества существ
        "spawnRange": 4, // Диапазон спавна мобов от нажатого блока
        "startSound": "entity.wither.shoot", // Звук в начале волны
        "endSound": "entity.experience_orb.pickup", // Звук в конце волны
        "groups": [ // Отдельные группы существ
          {// Эта группа содержит одну свинью без дополнительных данных
            "count": 1,
            "entityType": "minecraft:pig"
          }
        ]
      },
      {
        "bossBarText": "Cows",
        "bossBarColor": "blue",
        "spawnRange": 4,
        "startSound": "entity.wither.shoot",
        "endSound": "entity.experience_orb.pickup", // Используйте конечный звук последней волны как конечный звук самого ритуала
        "groups": [
          {
            "count": 8,
            "entityType": "minecraft:cow",
            "tag": "{}" // Дополнительные данные существа (имя, броня, эффекты, вариант...)
          }
        ]
      }
    ]
  }
}

Зависимости

Для использования API или других частей мода как разработчик добавьте это в ваш build.gradle

repositories {
  maven {
    url = 'https://maven.riftrealms.de/releases'
  }
  repositories {
        maven { url 'https://maven.blamejared.com' }
    }
}
dependencies {
    // Добавьте версию в ваш gradle.properties или замените ${project.ritual_thingy_version} на версию мода
    modApi "eu.ansquare.ritualthingy:ritual-thingy:${project.ritual_thingy_version}"
}

API

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

Условия

ItemConditionPredicate YOUR_CONDITION = RitualApi.registerItemCondition(new Identifier("YOUR_MOD_ID", "YOUR_CONDITION_ID"), (ingredient, player, pos) -> {
        ItemStack stack = // Получить стек предметов
        return new Pair<>(ingredient.test(stack), stack); // Проверить стек с ингредиентом и вернуть его для возможного уменьшения
    });

Стандартные условия:

  • ritual-thingy:mainhand проверяет предмет в основной руке игрока

Действия

ItemConditionPredicate YOUR_ACTION = RitualApi.registerItemAction(new Identifier("YOUR_MOD_ID", "YOUR_ACTION_ID"), (stack, player, pos) -> {
      // Выполнить действие
  });

Стандартные действия:

  • ritual-thingy:none - ничего не делать
  • ritual-thingy:give - выдать предмет игроку
  • ritual-thingy:drop - выбросить на позиции ритуального блока
  • ritual-thingy:drop_offset - выбросить на один блок выше ритуального блока (сверху на него)

Предотвращение ритуалов

PreventRitualCallback.EVENT.register((player, world, hand, hitResult) -> {
          return false; // Вернуть false, если ритуал не разрешен
      });
Участники проекта
farpo

farpo

Разработчик

DinoGamer2k9

DinoGamer2k9

Разработчик

flexhd

flexhd

Разработчик

Создан: 20 окт 2024

ID: 62493