modsmith Войти Войти Рус / Eng

SolLib

sollib · 267025 загрузок · LicenseRef-AGNYA-License

клиент: required · сервер: required (заявлено автором мода)

Позволяет модам проявить себя, предоставляя набор (в основном) утилит для работы с данными.

Описание

Banner

Это основная библиотека для модов Minecraft. Да, мы знаем, очень оригинально.

Хотите верьте, хотите нет, но копирование множества классов в каждый проект — не самая эффективная и не самая стабильная идея.


Sol предлагает целый набор общего кода для разработки модов.

Большинство из них вращаются вокруг данных, мультизагрузчика и помощников рендеринга. Вот несколько ключевых моментов:

Простая система настройки.

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

SolConfig config = MOD.createConfig("sollib/test", 1.0, builder -> builder
    .addObject("category", category -> category
        .comment("This is a comment")
        .add("hello", "world")
        .add("easyconfig", true)
    )
);

MOD.getLogger().info(config.get("category.hello", ""));
// world

Данные времени выполнения, управляемые кодом.

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

SolRegistries.Data.RUNTIME.addJson(Identifier.of("minecraft", "recipe/dropper.json"), json -> {
    if (json == null) return null;
    if (!config.get("recipe.copper_dropper", false)) return null;
    
    json.getAsJsonObject("key")
            .getAsJsonObject("#")
            .addProperty("item", "minecraft:copper_ingot");
    return json;
});

Помощники рендеринга.

Централизованный и независимый от загрузчика. Также нет необходимости создавать больше миксинов.

ResourceLocation TEXTURE = MOD.makeID("textures/models/sword_overlay.png");

SolClientRegistries.Render.ITEM.register(stack -> stack.is(Items.DIAMOND_SWORD) && stack.isEnchanted(),
        (stack, context, matrices, bufferSource, light, overlay) -> {
    matrices.scale(1.005f, 1.005f, 1.005f);
    matrices.translate(0, 0.995, 0.4975);
    matrices.mulPose(Axis.XP.rotationDegrees(180));

    MockItemRenderer.renderItem(matrices, bufferSource, light, TEXTURE);
});

Упрощенный реестр.

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

MOD.register(BlockHolder.class, "block_block", () -> new Block(BlockBehaviour.Properties.of()))
    .withItem(item -> item.withFuel(200)).dropsSelf()
    .withSlab().withStairs().withWall()
    .withFlammability(20, 5);

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

Но если вы разработчик и вам это интересно, лучший способ узнать — прочитать (wip) Wiki или присоединиться к Discord.

Версии (24)

ВерсияMinecraftЗагрузчикиФайл
neo-1.21.1-2.1 1.21.1 neoforge скачать
fabric-1.21.1-2.1 1.21.1 fabric скачать
forge-1.20.1-2.1 1.20.1 forge скачать
fabric-1.20.1-2.1 1.20.1 fabric скачать
forge-1.20.1-2.0 1.20.1 forge скачать
fabric-1.20.1-2.0 1.20.1 fabric скачать
neo-1.21.1-2.0 1.21.1 neoforge скачать
fabric-1.21.1-2.0 1.21.1 fabric скачать
forge-1.20.1-1.4 1.20.1 forge скачать
fabric-1.20.1-1.4 1.20.1 fabric скачать
neo-1.21.1-1.3 1.21.1 neoforge скачать
fabric-1.21.1-1.3 1.21.1 fabric скачать
forge-1.20.1-1.3 1.20.1 forge скачать
fabric-1.20.1-1.3 1.20.1 fabric скачать
neo-1.21.1-1.2 1.21.1 neoforge скачать
fabric-1.21.1-1.2 1.21.1 fabric скачать
forge-1.20.1-1.2 1.20.1 forge скачать
fabric-1.20.1-1.2 1.20.1 fabric скачать
fabric-1.20.1-1.1 1.20.1 fabric скачать
forge-1.20.1-1.1 1.20.1 forge скачать
neo-1.21.1-1.0 1.21.1 neoforge скачать
fabric-1.21.1-1.0 1.21.1 fabric скачать
forge-1.20.1-1.0 1.20.1 forge скачать
fabric-1.20.1-1.0 1.20.1 fabric скачать

Страница на Modrinth →