主页

项目处于测试阶段,任何api有可能变动。

源码(source)

默认后端实现(default backend)

如果后端没有你所需要的版本,可以自行fork并自行做些许修改,目前一个后端大约共500行代码。

简介

KotlinMCUI是使用Kotlin DSL制作的ui框架。

功能

  • 广泛二进制兼容
    • 不依赖任何fabric/forge/neoforgeapi
    • 不依赖minecraft代码
    • 提供跨平台入口点
    • 兼容性靠后端适配提供
  • Kotlin DSL实现的声明式、响应式布局
    • 原版minecraft风格
    • 整体缩放、局部缩放
    • 支持纯键盘操作
    • 文本渲染
      • 翻译
      • 颜色、字号
      • 自动换行
      • 可编辑文本
      • 下划线、阴影等样式
    • 图片渲染
      • 资源图片
      • 本地图片
      • 多种裁切策略
      • NineSlice
    • 焦点管理、悬停高亮
    • 无障碍朗读
    • 状态实时刷新
      • 局部变量
      • 插值动画
    • 常用基本组件
      • Button
      • Slider
      • ContainerSlotItem
      • EditableText
      • Row
      • Column
      • LazyColumn

用途

如果你只是想通过ui界面提供服务

如本地文件管理、网络查询、数值计算: kotlinmcui能提供一个二进制兼容层,只需要基于此开发一个jar就能兼容所有(甚至将来的)minecraft版本。

如果想开发minecraft代码相关的逻辑

仍然需要每个版本打包一个jar,并自行处理ui之外代码的兼容。 kotlinmcui能提供一个优美的DSL ui框架,减少ui代码的编写难度,并在将来迁移minecraft版本时无需更改ui代码。

kotlinmcui自身就是一个这种类型的mod。

如果想开发独立java/kotlin GUI程序/游戏

emmm…原理上也可以用,但是要自行适配后端。另外注意:这是为游戏场景设计的,每帧都会完整渲染,静态功耗会比专门的GUI框架更高。

实现

基于kotlinlambda简化语法以及实验性功能的context parameter。由于context parameter目前是kotlin的实验性功能,所以可能并不稳定。

没有使用编译器插件,维护简单并且兼容性会更好。

语法与Jetpack Compose类似,但是使用立即模式绘制(更适用于游戏),因此不需要像Compose那样需要维护状态。你可以直接把minecraft原有的字段传入ui函数并保证ui实时刷新。

开始

开始


This site uses Just the Docs, a documentation theme for Jekyll.