Skip to content

Wanye-7300/baker-dx

Repository files navigation

Baker

基于 Dioxus 0.7 的会话编辑与回放界面,面向聊天场景的 UI 原型与交互演示。 这个项目旨在还原《明日方舟:终末地》中 Baker 的聊天功能,当然还有一点功能没实现的……留作以后再完善。

Baker-Dx 将暂缓开发一会儿 & 将迁移到 Tauri

其实这个项目在开始的时候只是我因为想要学习前端开发而写的,随着内容越来越多,我实在离不开 AI 帮我写一些功能了;另外,代码越来越繁杂,界面一层 div 套一层,快到了必须重构的地步了。

正好,借着这个时间迁移到 Tauri,能有更成熟的 GUI 库用。

计划如下:主分支继续写一些小更新,比如国际化,还有样式还原等;feature-tauri 则待我基本学完前端的知识后,开始写。

感谢你使用这个软件!

功能概览

  • 会话与联系人管理:选择会话、发起单聊或群聊、配置干员列表
  • 消息编辑能力:发送、编辑、删除、在指定位置插入
  • 消息类型支持:普通消息、状态行、图片、贴纸
  • 反应与演出:消息反应、发送动画、回放打字效果
  • 回放能力:从指定消息起开始回放,并在回放结束后显示“话题结束”
  • 导出能力:离屏渲染当前会话并导出截图
  • 个性化设置:会话头样式切换、背景模式设置、用户资料配置、教程开关
  • 本地持久化存储:当前版本使用 LocalStorage + IndexedDB,并兼容旧版 baker_dx_state.json 数据迁移

TO-DO LIST

  • 移动端有限宽度的布局支持
  • 应用配置导出
  • “任务”消息支持
  • 会话的离屏渲染并导出
  • 群组会话时控制哪些干员消息位于会话右方
  • 回放结束后显示“话题结束,暂无新话题”的提示

使用的技术

  • Rust 2024
  • Dioxus 0.7.3
  • 桌面端默认启用,Web 端可选
  • Dioxus Router
  • reqwest / webbrowser / image

运行

cargo install dioxus-cli
dx serve --platform desktop
dx serve --platform web

默认特性为 desktop。如果你希望只构建 Web,可以按需调整 Cargo feature。

存储说明

  • 当前状态数据会序列化为 v2 存储结构
  • 元数据使用 LocalStorage 保存
  • 联系人、消息和图片资源使用 IndexedDB 保存
  • 旧版本的本地 JSON 状态文件 baker_dx_state.json 仍可作为迁移来源读取

项目结构

  • src/main.rs:应用入口、资源注入、状态加载与保存
  • src/components/baker/layout.rs:主页面控制层与路由入口
  • src/components/baker/chat_area.rs:聊天区域与消息渲染
  • src/components/baker/input_bar.rs:输入栏、图片与贴纸发送
  • src/components/baker/modals.rs:各类弹窗
  • src/components/baker/storage.rs:状态编码、解码与迁移逻辑
  • server/:独立的轻量服务端子工程

问题、建议、Pull Request

如果你在使用这个软件时遇到任何 bug 或者对软件有啥建议,请在 Github 上提交 Issue,谢谢!

如果有什么功能你想实现,也欢迎提交 Pull Request,我会尽快合并。


……

我是管理员,这个项目的作者请我帮忙带个话:“请注意,作者在天师考校上课,由于天师考校复课(高中开学),因此作者在工作日可能不能及时回复问题或者查看拉取请求。”谢谢你的理解!

展示

展示-Perlica

About

用以还原《明日方舟:终末地》中Baker的应用。Recreate the Baker application from 'Arknights: Endfield'.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors