跳转到内容

简介

绘图后端(酸橙熊熊)架构简介

酸橙熊熊(Limekuma)是迪拉熊Bot的绘图后端服务,负责为玩家的游玩成绩(如B50、成绩列表等)生成精美的图片。它通过纯托管图形库ImageSharp实现了脱离原生环境依赖的图形渲染,并内置了基于XML的灵活布局引擎。

  • 核心框架:.NET
  • 通信协议:gRPC
  • 图像处理:ImageSharp
  • 表达式引擎:NCalc
  • 模板引擎:SmartFormat
  • 配置管理:Hocon
  • 高性能渲染:基于ImageSharp,无需依赖本地系统GDI或libgdiplus,跨平台支持好
  • 多数据源支持:原生支持落雪(Lxns)与水鱼(Diving-Fish)查分器API
  • 丰富的图像生成接口:支持生成玩家B50成绩图、成绩列表图、成绩记录图、谱面信息图、达成率信息图等
  • 自定义布局引擎:渲染逻辑与布局分离,基于XML节点定义的灵活布局系统
  • 流式gRPC通信:基于Protobuf定义,提供流式的图片字节序列返回,降低大图片传输的内存占用

酸橙熊熊使用基于XML的DSL(领域特定语言)来定义图像布局。该DSL支持:

  • 声明式XML编写图像排版与渲染逻辑
  • 内嵌NCalc表达式引擎实现动态数据绑定
  • SmartFormat模板系统实现运行时条件渲染
Terminal window
# 克隆项目仓库
git clone <your-repo-url>/limekuma-printer.git
cd limekuma-printer
# 安装依赖
dotnet restore
# 运行项目
dotnet run --project src/Limekuma.csproj

项目启动后,将通过配置中指定的端口提供gRPC服务。

API接口均定义在src/Protos/kumabot.proto文件中。