介绍
LDLib2
一款现代 Minecraft 模组开发前置库,提供 UI、渲染、同步、持久化和游戏内编辑器功能。
文档 |
Java 集成 |
UI 指南 |
Compose |
Discord |
CurseForge |
Modrinth
LDLib2 是对原版 LDLib 的全面重写,专为现代 Minecraft 和 NeoForge 开发重新设计。它为模组作者提供更高层级的开发基础,让你无需在每个项目中重复搭建基础设施,就能创建 UI、游戏内工具、由渲染器驱动的内容、同步数据以及可持久化的运行时系统。
功能亮点
![]() LDLib2 UI 使用 Taffy 布局、LSS 样式表、可复用组件、XML 定义、数据绑定、RPC 事件和 HUD 覆盖层,打造 Minecraft 界面。 |
Compose UI 在 Kotlin 中基于 Compose runtime,以状态为输入编写界面函数。列表、标签页和对话框会随数据变化,每个控件也都是真正的 LDLib2 元素。作为可选的 ldlib2-compose 模组提供。
|
|
数据同步与持久化 使用 @Persisted、@DescSynced 和 RPC 辅助工具标注字段,即可自动生成 NBT 读写、编解码器、脏字段同步和数据包传输,大幅减少样板代码。
|
可配置属性 将带注解的 Java 对象转换为可供检查的属性面板,支持范围、选择器、列表、物品和流体选择器、搜索框、撤销历史及持久化。 |
![]() 节点图工具包 创建游戏内图编辑器,支持节点、端口、连线、变量、子图、黑板、自动布局、可撤销命令以及基于资源的图形资产。 |
![]() 游戏内编辑器框架 打造 Unity、Blender 或 Blockbench 风格的工具,支持可停靠视图、项目文件、资源浏览器、检查器、历史记录、可重新绑定的快捷键和设置。 |
![]() 渲染与集成 使用 LDLib2 的着色器、纹理、模型渲染和场景工具,并集成 JEI、REI、EMI、KubeJS 及 Java 插件入口。 |
![]() UI 测试工具 编写测试场景,在真实客户端中打开真实 UI,通过点击和输入进行操作,等待服务端同步,并保存截图和报告。支持无头运行、并行运行,或在专用服务器上搭配多个客户端运行。同一套脚本还可以录制文档视频,并与测试分开保存:包含平滑指针、点击涟漪、按键显示、双语字幕、聚光和缩放效果,并直接编码为 MP4( -PldRecord,参见 uitest.md)。
|
Java 集成
LDLib2 已发布到 FirstDark Maven snapshots 仓库。
repositories {
maven { url = "https://maven.firstdark.dev/snapshots" }
}
dependencies {
implementation("com.lowdragmc.ldlib2:ldlib2-neoforge-${minecraft_version}:${ldlib2_version}:all")
}
对于 2.2.1 之前的 LDLib2 版本,请禁用传递依赖并手动添加 Yoga:
dependencies {
implementation("com.lowdragmc.ldlib2:ldlib2-neoforge-${minecraft_version}:${ldlib2_version}:all") {
transitive = false
}
compileOnly("org.appliedenergistics.yoga:yoga:1.0.0")
}
建议的项目变量:
minecraft_version=1.21.1
ldlib2_version=2.2.44
可选:Compose UI
Compose UI 是一个独立模组 ldlib2-compose,由你的模组以 Jar-in-Jar 方式打包分发。它基于 Kotlin 编写,需要使用与 Kotlin 插件版本相同的 Kotlin Compose 编译器插件。
其版本号以适用的 Minecraft 版本开头:21.0.0.1 是首个适用于 1.21.1 的版本,每个 Minecraft 版本都有独立构建。目前仅发布了 1.21.1 版本。
dependencies {
implementation "com.lowdragmc.ldlib2:ldlib2-compose-1.21.1:21.0.0.1"
jarJar(group: 'com.lowdragmc.ldlib2', name: 'ldlib2-compose-1.21.1') {
version { require '[21.0.0.1,)'; prefer '21.0.0.1' }
}
}
关于插件、仓库和 设置,请参阅 可选模块:ldlib2-composeneoforge.mods.toml。
LDLib 插件入口
如果你的模组需要注册 LDLib2 资源、集成或启动钩子,请创建一个插件类。
import com.lowdragmc.lowdraglib2.plugin.ILDLibPlugin;
import com.lowdragmc.lowdraglib2.plugin.LDLibPlugin;
@LDLibPlugin
public class MyLDLibPlugin implements ILDLibPlugin {
@Override
public void onLoad() {
// Register LDLib2 extensions here.
}
}
快速 UI 示例
此示例会创建一个简单的 ModularUI,包含标签、按钮和经过样式设置的根元素。
public class MyScreenUi {
public static ModularUI createUi() {
var root = new UIElement()
.layout(layout -> layout.paddingAll(7).gapAll(5))
.style(style -> style.background(Sprites.BORDER));
root.addChildren(
new Label().setText("My First LDLib2 UI"),
new Button()
.setText("Click Me")
.setOnClick(event -> {
// Handle the click here.
})
);
return ModularUI.of(UI.of(root));
}
}
完整操作说明请参阅 UI 入门指南。
使用 Compose UI 时,界面是一个由状态驱动的 Kotlin 函数;状态变化时,界面元素也会随之更新:
@Composable
fun Counter() {
var count by remember { mutableStateOf(0) }
Column(layout = { width(120.px); padding { all(6.px) }; gap { all(4.px) } }) {
Text("Clicked $count times")
Button(onClick = { count++ }, text = "Click")
}
}
fun openCounter() {
val mc = Minecraft.getInstance()
val mui = composeModularUI(mc.player, StylesheetManager.MODERN) { Counter() }
mc.setScreen(ModularUIScreen(mui, Component.literal("Counter")))
}
开发者工具
如果你正在开发 LDLib2,建议安装 LDLib Dev Tool IDEA 插件,以便在编辑器中获得针对 LDLib2 特定文件和注解的辅助功能。Java 集成指南介绍了代码高亮、语法检查、跳转到定义、自动补全和注解支持。
从 LDLib 迁移
LDLib2 并非对 LDLib 的小幅修补。它移除了旧系统,并针对 Minecraft 1.21+ 重建了核心架构。
- 旧版 UI 和过时的框架组件已移除。
- UI 布局、样式、事件和数据流都经过重新设计。
- 文档和示例均围绕新架构编写。
- 兼容性工作重点面向现代 NeoForge 和当前的模组开发集成。
链接
许可证
LDLib2 使用 LGPL-3.0 许可证。
常见问题
LDLib2 [Fabric] 支持哪些 Minecraft 版本?
LDLib2 [Fabric] 支持 Minecraft Java 版 26.1–26.1.2,共 3 个版本,可用的加载器:Fabric。下载时注意选择和你游戏版本一致的文件。
LDLib2 [Fabric] 怎么安装?
先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。
TysonTheEmber 的其他作品
查看全部 →Wither: Reincarnated
一款强化了 Minecraft 中表现平平的凋灵 Boss 的模组
Embers Text API
可以随意使用炫酷的文字效果,包括自定义字体!
Orbital Railgun Reforged
用轨道打击摧毁你的敌人!
Spelunkery+
一个为 Spelunkery 添加兼容性的附属模组!





评论
登录后评论和评分