
SolLib
让模组通过带来一系列(大部分)数据实用工具而大放异彩。

这是一个 Minecraft 模组的核心库。是的,我们知道,这很常见。
信不信由你,在每个项目中复制粘贴一堆类既不是最高效也不是最稳定的方案。
Sol 为模组开发提供了一整套通用的代码支持。
其中大部分围绕数据、多加载器和渲染辅助功能展开。一些关键亮点包括:
简易配置系统。
可按需即时加载,设置简单,其他模组无需硬依赖即可访问。
SolConfig config = MOD.createConfig("sollib/test", 1.0, builder -> builder
.addObject("category", category -> category
.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;
});
渲染辅助工具。
集中且与加载器无关。也不需要再写更多 mixin 了。
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);
对于普通用户来说,把这个页面做得尽善尽美其实并不重要。毕竟它只是一个库而已。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。