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

ImproperUI

Активный

Установок

10

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

4 месяца назад

Версии

1.20 — 1.21.8
Клиент
Fabric
Игровые механики
Библиотеки
Утилиты

ImproperUI

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

Что такое ImproperUI?

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

Демонстрация интерфейса

На скриншоте показан интерактивный экран с перетаскиваемыми и прокручиваемыми элементами, созданный с помощью ImproperUI Script

Требования к знаниям

Для эффективной работы с ImproperUI потребуются базовые знания:

  • Основы CSS и принципы работы свойств
  • Структура HTML
  • Язык программирования Java

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

Версия: 0.0.6-BETA

Добавлено:
  - добавлен ConfigReader
  - добавлен ImproperUIAPI.getConfigReader()

Исправления:
  - исправлена неправильная обработка целочисленных аргументов конфигурации

Начало работы

Подключение библиотеки

Скачайте JAR-файл и добавьте его в проект как зависимость в build.gradle:

зависимости {
    compileOnly files("libs/ImproperUI-нужнаяВерсия.jar")
}

Инициализация API

В основном классе вашего мода вызовите функцию init() у ImproperUIAPI:

public class ВашМодИнициализатор implements ModInitializer {

    @Override
    public void onInitialize() {
        ImproperUIAPI.init("вашModId", ВашМодИнициализатор.class,
                "assets/вашModId/improperui/вашЭкран1.ui",
                "assets/вашModId/improperui/вашЭкран2.ui"
        );
    }
}

Важно: При парсинге скриптов указывайте имя файла, а не полный путь!

Работа с событиями

Для обработки событий из скриптов создайте класс, реализующий CallbackListener:

public class ПользовательскиеОбработчики implements CallbackListener {

    @CallbackHandler
    public void отправитьПриветствие(MouseEvent e) {
        if (e.input.isDown())
            ChatUtils.sendMessage("Привет мир");
    }
}

В скрипте событие будет выглядеть так:

element {
    on-click: отправитьПриветствие
}

Вспомогательные методы

Вспомогательные методы:
  - ImproperUIPanel.collect() // список всех элементов и виджетов, включая дочерние
  - ImproperUIPanel.collectOrdered() // отсортированный список по z-index
  - ImproperUIPanel.collectById() // элементы по указанному ID
  - ImproperUIPanel.collectByClassAttribute() // элементы по классу

API:
  - ImproperUIAPI.parse() // парсит скрипт и возвращает элементы
  - ImproperUIAPI.parseAndRunFile() // парсит и запускает зарегистрированный файл
  - ImproperUIAPI.parseAndRunScript() // парсит и запускает скрипт
  - ImproperUIAPI.reload() // перезагружает API
  - ImproperUIAPI.reInit() // повторная инициализация API

Конфигурационные ключи

Ключ конфигурации состоит из трех частей: modId, confileFile, propertyName. Используется для сохранения значений настроек.

В скрипте:

slider #someId -yourModId:config.properties:testing-slider-value -someAnotherAttributeClass {

}

Доступные элементы

Элемент Динамические состояния Поддержка детей Конфигурация Псевдонимы Специфичные свойства
element e, div
checkbox active:boolean
radio active:boolean
button
link a href:string
slider min:double max:double value:double
input textbox pattern:quote placeholder:quote
textfield textarea
label textlabel
header1-6 h1-h6
positionable

Пример скрипта

div #background-gradient {
    size: 100%
    margin-top: 100%
    shadow-distance: 50%
    shadow-color: #9775a6
}

div #display {
    size: 420 240
    center: both
    border-radius: 10
    border-thickness: 1
    border-color: #412752
    background-color: #2d162c
    shadow-distance: 5
    shadow-color: #683a68

    child-align: grid
    grid-columns: 1

    div #title {
        inner-text: "ImproperUI Interactives"
        size: 100% 10
        text-align: center
        text-scale: 1.69
        text-color: #9775a6
        background-color: none
        margin-top: 15
    }

    div #motto {
        inner-text: "We got CSS in Minecraft before GTA 6"
        size: 100% 10
        text-align: center
        text-scale: 0.8
        background-color: none
        margin-top: 10
    }
}

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

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

ItziSpyder

Разработчик

Создан: 9 мая 2024

ID: 4541