TCDCommons API avatar

TCDCommons API [1.21.5] [1.20.6] [1.19.4]

Зависимости

Примечание: "клиент" относится к установке модов в игру через лаунчер Minecraft, тогда как "сервер" означает установку модов на сервер, к которому подключаются через меню "сетевая игра".

  • Fabric API
    • >>>> Клиент: Обязателен начиная с 1.20.5
    • >>>> Сервер: Обязателен начиная с 1.20.5

Цель

Основная задача этого API — ускорить и улучшить процесс разработки модов для Minecraft, устраняя необходимость повторного написания однотипного кода. Первоначально API создавался для реализации улучшенной системы графического интерфейса, но со временем оброс дополнительными функциями, включая события, хуки и утилиты.

Моды, использующие этот API

Основной пользователь API — TheCSDev, разрабатывающий мод Better Statistics Screen.

Возможности API

Клиентская часть

  • Система GUI: Удобная система пользовательского интерфейса с расширенными возможностями кастомизации по сравнению с ванильной реализацией.
  • Экраны HUD: Отрисовка элементов интерфейса поверх игрового HUD. Важно: эти элементы предназначены только для отображения и не поддерживают взаимодействие.

Общая часть

  • Система автоматической конфигурации: Упрощает создание JSON-конфигов, автоматически сериализуя примитивные типы данных из классов конфигурации.
  • Система событий: Позволяет отслеживать игровые события и создавать пользовательские события для взаимодействия между модами.
  • Хуки: Обеспечивает доступ к различным компонентам игры.
  • Сетевое взаимодействие: Реализация пользовательской сети на основе игрового протокола для обмена данными между клиентом и сервером.
  • Утилиты: Набор вспомогательных инструментов, включая интерфейсы, перечисления, обработку исключений, IO-операции и систему кэширования для асинхронной загрузки ресурсов.

Базовое использование системы GUI

Система использует концепцию TScreen вместо ванильных Screen. Все компоненты GUI расположены в пакете io.github.thecsdev.tcdcommons.api.client.gui.

public final class ExampleTScreen extends TScreen
{
    public ExampleTScreen() { super(Text.literal("Пример TScreen")); }
    
    @Override
    protected void init()
    {
        TButtonWidget button = new TButtonWidget(
            getWidth()/2 - 50, 
            getHeight()/2 - 10, 
            100, 20
        );
        button.setText(Text.literal("Нажми меня"));
        button.setOnClick(btn -> System.out.println("Hello World!"));
        addChild(button);
    }
}

Открытие экрана:

MinecraftClient.getInstance().setScreen(new ExampleTScreen().getAsScreen());

Работа с системой событий

public final class ExampleEvents
{
    public static final TEvent<Runnable> eSomething = TEventFactory.createLoop();
    
    public static void registerAndUnregisterListener()
    {
        Runnable listener = () -> System.out.println("Событие вызвано");
        eSomething.register(listener);
        eSomething.unregister(listener);
    }
    
    public static void invokeEvent() { eSomething.invoker().run(); }
}

Вклад в разработку

  1. Переводы: помощь с локализацией на другие языки.
  2. Идеи и предложения: отчеты об ошибках, запросы функций, улучшения.
  3. Создание issue: для обсуждения проблем и новых возможностей.

Требуемые зависимости

Fabric API avatarFabric APImodmuss50

Скачать TCDCommons API

 
Тип Скачать Версия Загрузчик Обновлено Размер
ReleaseTCDC (fabric-1.21) - v3.11.11.21Fabric21 июня 2024822,3 КБ
ReleaseTCDC (fabric-1.20.6) - v3.111.20.5+1 Fabric14 июня 2024822 КБ
ReleaseTCDC (fabric-1.21) - v3.111.21Fabric14 июня 2024822,2 КБ
ReleaseTCDC (fabric-1.20.6) - v3.101.20.5+1 Fabric3 мая 2024820,2 КБ
ReleaseTCDC (fabric-1.20.5) - v3.9.71.20.5+1 Fabric1 мая 2024815,8 КБ
ReleaseTCDC (fabric-1.20.1) - v3.9.71.20+1 Fabric25 апреля 2024808,8 КБ
ReleaseTCDC (fabric-1.20.2) - v3.9.71.20.2Fabric25 апреля 2024815,8 КБ
ReleaseTCDC (fabric-1.20.4) - v3.9.71.20.3+1 Fabric25 апреля 2024816,9 КБ
ReleaseTCDC (fabric-1.20.1) - v3.9.51.20+1 Fabric8 апреля 2024808,7 КБ
ReleaseTCDC (fabric-1.20.2) - v3.9.51.20.2Fabric8 апреля 2024815,7 КБ
Пожалуйста авторизуйтесь, чтобы оставить свой комментарий.