TOS 开发周记 26:背包拖放、快捷栏与数据库初始化
本文根据 2026-04-06 至 2026-04-12 的 Git 提交补记。
背包改成拖放交互
这周我重做了背包操作。原先“点来源、点目标、再确认”的流程被替换为拖放:按住有物品的格子,超过移动阈值后显示拖动影子,松开时判断落在另一个背包格还是快捷栏。背包内拖放仍然调用服务端的槽位交换接口;拖到快捷栏则保存物品绑定,并在栏位上显示对应图标。
同一轮改动还接入了使用消耗品和装备武器、护甲的 API,调整了背包在快捷栏上方的位置与弹窗布局。随后又补了遮罩、网格边距和 Esc 行为:背包打开时由自己的输入逻辑处理关闭,不再保留额外的 Esc 按钮。
清理旧入口
客户端删除了已经不再使用的开始菜单脚本和场景,并清理了几份过时的 WebSocket 迁移文档。这里没有新增玩法,主要是让当前的登录、详情模式、游戏内菜单和背包路径不再与旧入口并存。
后端把可重复工作写进工具
后端新增了大量单元测试文件,覆盖 handler 参数校验、service、路由、资源 CLI、i18n 检查和生成器等区域。这里能确认的是覆盖范围被扩展了;历史提交本身不足以说明当时整套测试的运行结果。
数据库初始化也从平台脚本逐步收敛为 Go 命令:setupdb 负责组织数据库准备、迁移、地理数据导入和种子流程,geojson 命令处理地理数据,仓库同时加入新的 GeoJSON 数据文件并移除旧 seed dump。由于大文件占了绝大多数行数,本周的变更规模看起来很夸张,但核心其实是把初始化步骤集中到一条明确的命令链中。
提交记录
| 日期 | 仓库 | 提交 | 原始说明 |
|---|---|---|---|
| 2026-04-06 | 客户端 | 0c1b0af |
tidy: remove start menu |
| 2026-04-06 | 客户端 | d50ed9e |
feat: support for swaping items |
| 2026-04-07 | 后端 | 60e71c0 |
test: expand backend unit coverage across handlers, services, and CLI |
| 2026-04-07 | 客户端 | 08fd2d1 |
feat(client): bag panel layout, modal backdrop, grid insets |
| 2026-04-07 | 客户端 | 8d62e80 |
feat: remove esc button in bag |
| 2026-04-08 | 后端 | 3e3b948 |
feat: add one-key script to setup db |
| 2026-04-09 | 后端 | 9636cdd |
db: update one-key script for db |
| 2026-04-10 | 后端 | fb3cd38 |
tidy |
| 2026-04-10 | 客户端 | f333443 |
tidy |
TOS 开发周记 26:背包拖放、快捷栏与数据库初始化
https://blog.util.online/2026/04/12/tos-weekly-history/2026-04-06-tos-weekly-26/