
SolLib
SolLib - это библиотека для разработчиков модов Minecraft. Она избавляет от копипаста, предоставляя удобную систему конфигов, контроль над данными в рантайме и помощников для рендера. Упрощает и ускоряет создание модов.
Если вы когда-нибудь пробовали писать моды для Майнкрафт, то наверняка сталкивались с ситуацией, когда из проекта в проект приходится таскать одни и те же классы. Копипаст - дело неблагодарное: то что-то сломается, то версии разъедутся. SolLib - это библиотека, которая собирает все эти общие куски кода в одном месте и даёт разработчикам готовые инструменты.
SolLib - не мод в привычном понимании, а вспомогательная библиотека, которая используется другими модами. Она берёт на себя рутину: работу с данными, конфигами, рендером и регистрацию фич. По факту, это фундамент, который позволяет моддерам не изобретать велосипед и сосредоточиться на том, что делает их мод уникальным.
Зачем нужна SolLib?
Представьте, что вы пишете несколько модов для Minecraft. Каждый раз вам нужно создавать конфиги, работать с JSON-данными, регистрировать предметы и блоки, делать рендер. Всё это можно переписывать с нуля, но это долго и чревато багами. SolLib решает эту проблему, предлагая готовые решения, которые работают одинаково на разных загрузчиках - Fabric, Forge, NeoForge и Quilt.
Основные возможности
Простая система конфигов
Конфиги - это то, без чего не обходится ни один серьёзный мод. SolLib делает их настройку максимально лёгкой. Всё загружается тогда, когда нужно, и доступно из других модов без жёстких зависимостей. Вот как это выглядит:
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
Согласитесь, это куда удобнее, чем вручную парсить свойства или JSON.
Runtime-данные, управляемые кодом
Эта фича позволяет редактировать датапак-файлы прямо во время игры. Представьте: вы можете менять рецепты в зависимости от конфига, отключать рецепты других модов, если они конфликтуют, или автоматически генерировать модели для динамических предметов. Это открывает огромные возможности для кастомизации:
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;
});
Это прямо-таки спасает, когда нужно адаптировать мод под разные условия без лишних файлов.
Помощники для рендера
Рендер - вещь капризная, а с учетом разных загрузчиков ещё и запутанная. SolLib предлагает централизованные и независимые от загрузчика хелперы, так что вам не придётся добавлять лишние миксины. Например, можно наложить текстуру на зачарованный алмазный меч:
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);
});
Всё чисто и без костылей.
Упрощённая регистрация
Регистрация предметов, блоков и сущностей в Minecraft обычно требует кучи кода. SolLib оборачивает это в удобные методы, которые можно вызывать из общего кода. Причём сразу настраивается много всего: модели, время горения, результаты пиления и прочее. Например:
MOD.register(BlockHolder.class, "block_block", () -> new Block(BlockBehaviour.Properties.of()))
.withItem(item -> item.withFuel(200)).dropsSelf()
.withSlab().withStairs().withWall()
.withFlammability(20, 5);
Одна строка - и у вас есть блок, предмет, плита, лестница и стена с топливом и горючестью.
Что это значит для игроков?
Для обычных пользователей SolLib остаётся за кулисами. Но если вы устанавливаете мод, который зависит от этой библиотеки, вы получаете более стабильную работу и меньше конфликтов. Это как фундамент дома: его не видно, но всё стоит на нём.
Совместимость
Библиотека мультилоадерная, так что работает на Fabric, Forge, NeoForge и Quilt. Это значит, что разработчикам не нужно писать отдельные версии кода для каждого загрузчика - всё делается в едином стиле. Если вы ищете SolLib скачать, то она доступна на тех же площадках, где вы обычно берёте моды.
Если вы разработчик и хотите разобраться в SolLib, лучший способ - изучить примеры кода прямо здесь. Документация пока находится в разработке, но даже то, что уже есть, позволяет быстро начать.
SolLib - это именно тот случай, когда библиотека делает жизнь моддера заметно проще. Даже если вы не пишете моды, а просто любите играть, поддержка таких проектов важна - благодаря им моддинг становится доступнее и интереснее.
