Skip to content

API для создания диалоговых окон в майнкрафт

License

Notifications You must be signed in to change notification settings

bat1set/DialogueToolBox

Repository files navigation

Диалоговые окна для Minecraft модов

В разработке
Версия мода

Введение

Этот мод предоставляет API для создания и управления диалоговыми окнами в Minecraft. Он поддерживает как Kotlin, так и Java, что делает его универсальным инструментом для разработчиков модов. API позволяет создавать диалоговые окна с различными настройками, включая текст, иконки, цвета, размеры и многое другое.

Установка

Скачивание и подключение

  1. Скачайте последнюю версию мода с релизов GitHub.
  2. Поместите мод в папку для библиотек, например, libs в вашем проекте.
  3. Настройте build.gradle для подключения локальной библиотеки:

Gradle (Kotlin DSL)

repositories {
    mavenCentral()
    flatDir {
        dirs("libs")
    }
}

dependencies {
    implementation(":lololowkaui:0.0.0")
}

Gradle (Groovy DSL)

repositories {
    mavenCentral()
    flatDir {
        dirs 'libs'
    }
}

dependencies {
    implementation ':lololowkaui:0.0.0'
}

Использование API

Форматирование текста

API поддерживает форматирование текста с использованием XML-подобных тегов. Доступны следующие возможности:

  1. HEX цвета в формате ARGB: <color=#ff4500>Текст</color>
  2. Заложенные цвета: <color=red>Текст</color>
  3. Жирный текст: <b>Текст</b>
  4. Курсивный текст: <i>Текст</i>

Пример на Kotlin

val text = """
    <color=#ff4500>Красный текст</color> 
    <color=blue>Синий текст</color> 
    <b>Жирный текст</b> 
    <i>Курсивный текст</i>
""".trimIndent()

Пример на Java

String formattedText = "<color=#ff4500>Красный текст</color>" + 
    "<color=blue>Синий текст</color>" +
    "<b>Жирный текст</b>" +
    "<i>Курсивный текст</i>";

Создание диалогов

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

  1. DYNAMIC - Динамическое окно, которое автоматически подстраивается под размер текста.
  2. STATIC - Статическое окно с фиксированной позицией и размером.
  3. TEXT_ADAPTIVE - Окно, которое адаптируется под длину текста.
  4. LIMITED - Полностью настраиваемое окно.

Пример на Kotlin

DialogAPI.showDialog(player) {
    setText("""
        <color=#FFD700><b>Добро пожаловать в Волшебный магазин!</b></color>
        <color=#E6E6FA>Особые предметы сегодняшнего дня:</color>
        <color=#FF69B4>• Зачарованный меч – 500 г</color>
        <color=#87CEEB>• Волшебное зелье – 250 г</color>
        <color=#98FB98>• Свиток телепортации – 100 г</color>
        <i>Нажмите на товар, чтобы купить!</i>
    """.trimIndent())
    setIcon("icons/shop")
    setType(DialogType.TEXT_ADAPTIVE)
    setBackgroundColor(25, 25, 112, 200)
    setBorderColor(255, 215, 0, 255)
    setMinSize(350, 200)
    setPadding(20, 20, 20, 20)
    setIconSize(64)
}

Пример на Java

DialogAPI.showDialog(player, 
    "<color=#FFD700><b>Добро пожаловать в Волшебный магазин!</b></color>\n" +
    "<color=#E6E6FA>Особые предметы сегодняшнего дня:</color>\n" +
    "<color=#FF69B4>• Зачарованный меч – 500 г</color>\n" +
    "<color=#87CEEB>• Волшебное зелье – 250 г</color>\n" +
    "<color=#98FB98>• Свиток телепортации – 100 г</color>\n" +
    "<i>Нажмите на товар, чтобы купить!</i>",
    "icons/shop",
    new DialogAPI.DialogBuilder()
        .setType(DialogType.TEXT_ADAPTIVE)
        .setBackgroundColor(25, 25, 112, 200)
        .setBorderColor(255, 215, 0, 255)
        .setMinSize(350, 200)
        .setPadding(20, 20, 20, 20)
        .setIconSize(64)
        .build()
);

Поддержка версий

Версия Minecraft Поддерживаемые версии мода
1.19.2 0.0.0
1.20+ В планах

Планы на будущее

  • Поддержка новых версий Minecraft.
  • Расширение функционала диалогов.
  • сделать дебаг команды по типу: сброс до первого диалога, закрыть диалоги, узнать сколько диалогов в ожидании и тд
  • сделать проверки по типу: есть ли диалоги в очереди, у каких игрок открыты диалоги и тд
  • сделать сетку интерфейсов иначе говоря есть разные диалоги и при разных параметрах они отличаются, а если изменять интерфейс, то так же меняется размер и позиция в зависимости от задач, так что думаю хорошей практикой сделать адаптацию что бы не настраивать каждый интерфейс отдельно(ну или на оборот)
  • сделать историю диалогов, что бы при выходе с мира диалоги не слетали

Дополнительная информация

  • Для работы с API мод должен быть установлен в проекте. Если он используется в коде, необходимо скачать мод, сам же он будет являться зависимостью.
  • Вопросы и предложения можно оставлять в разделе Issues на GitHub.

About

API для создания диалоговых окон в майнкрафт

Resources

License

Stars

Watchers

Forks

Packages

No packages published