TOS 开发周记 18:拆分界面组件,也做了一次地图原型

本文根据 2026-02-02 至 2026-02-08 的 Git 提交回补。

这周一边修实时联机事件,一边拆分客户端界面,周末还加入了一个独立的 DST 风格地图 demo。后端则继续清理迁移遗留:移除 Redis,并大幅删去旧 TypeScript 实现。

联机事件与用户接口收尾

后端修正用户加入、用户离开事件和好友 API。客户端的小修复则处理角色素材文件名中的多余点号。虽然这些提交分散,但都与上一周的角色、读档和多人地图衔接有关:角色进入或离开地图时,其他客户端依赖服务端事件更新对应玩家。

后端还修正了升级接口,改动集中在堡垒 handler、service 与路由。提交能确认的是接口逻辑被调整,无法仅据此说明具体等级规则。

把主场景里的 UI 拆出来

Godot 端新增 player_info_container,把玩家信息相关场景与脚本集中起来;tile 信息弹窗也从主场景分离。目标信息随后通过 EventBus 解耦,聊天容器则修正焦点问题。

这些改动没有增加新的战斗规则,但把玩家、地块、目标和聊天四类界面的职责分开。主场景不必再直接承载所有 UI 状态,后续调整单个面板时也更容易看清事件入口。

一个独立的 DST 地图 demo

周末新增 scenes/demo_dst,包含地图生成、玩家、UI 与独立场景,并修正角色旋转表现。从目录与 README 来看,它是一套单独运行的原型,不应写成主地图系统已经切换。更准确地说,这是在现有项目旁边试验另一种地图生成与交互方式。

后端清理旧栈

Go 后端移除了 Redis 相关配置和依赖。CLI 更新则加入 Go 侧工具,并删除大批旧 TypeScript 的实体、路由、服务、worker 与生成脚本;另有一份 seed 数据文档提交。删除量主要来自旧实现退场,不代表本周新增了同等规模的功能。

小结

这一周同时做了三类事情:修联机接缝、拆客户端界面、清后端旧代码,再额外留出一个地图原型空间。它不像前几周那样围绕单一玩法推进,却让主线代码与实验代码的边界变得更清楚。

提交记录

日期 仓库 提交 原始说明
2026-02-02 后端 3fe7b99 fix: s_user_left
2026-02-02 后端 55a4ef8 fix: EventUserJoined
2026-02-02 客户端 84fc821 fix: extra dot
2026-02-03 后端 85dece1 fix: friend api
2026-02-03 客户端 206ac3a feat: add player_info_container
2026-02-03 客户端 da758e5 feat: split off the tile_info_modal
2026-02-04 后端 d4090ac fix: level up
2026-02-04 客户端 70fffad feat: decouple target_info
2026-02-04 客户端 c7c583f fix: focus issue in chat container
2026-02-07 客户端 87b37b8 feat: add dst demo
2026-02-08 后端 0238e8c feat: remove redis
2026-02-08 后端 48edfcd cli: update cli
2026-02-08 后端 80d59e8 doc: add seed
2026-02-08 客户端 9a713ee fix: ratation in dst

TOS 开发周记 18:拆分界面组件,也做了一次地图原型

https://blog.util.online/2026/02/08/tos-weekly-history/2026-02-02-tos-weekly-18/

作者

amano

发布于

2026-02-08

更新于

2026-08-04

许可协议

评论