API 分类与核对清单
这份清单用于把
docs-vuepress/api下的页面按职责分层,并按分类逐批核对 API 文案、参数语义、返回值、同步边界与源码实现。
核对原则
- 先核对接口真实语义,再核对参数、返回值与调用边界。
- API 页只保留接口说明、注意点与跳转;复杂机制统一下沉到
architecture/source-analysis。 - 对
Player 身份、控制权、可见性、ownerOnly、同步/广播、异步回调这些容易混淆的概念,必须拆开说明。 - CHM 原文、现有文案、源码行为三者冲突时,以源码实际行为为准,并在 API 页补充“源码解析”跳转。
分类总览
| 分类 | 页面范围 | 当前重点 | 状态 |
|---|---|---|---|
| 核心概念层 | api/README、basetypes、keywords | 基础类型、关键词、EntityCall/属性描述术语统一 | 未开始 |
| 客户端运行时层 | client/KBEngine、client/Entity、bots/KBEngine、bots/Entity、bots/PyClientApp | player、isPlayer、isControlled、可见性回调、客户端移动与 ownerOnly 边界 | 进行中 |
| 服务端实体层 | baseapp/Entity、baseapp/Proxy、cellapp/Entity | Base/Cell 实体职责、controlledBy、控制器、AOI、持久化、客户端绑定 | 进行中 |
| 服务端全局入口层 | baseapp/KBEngine、cellapp/KBEngine、loginapp/KBEngine、dbmgr/KBEngine、interfaces/KBEngine、logger/KBEngine | 全局函数、全局数据字典、进程级回调、组件边界 | 进行中 |
| 交叉专题层 | 跨多个 API 页的同名概念 | 玩家身份/控制权、生命周期、计时器、全局数据、属性同步、空间与控制器 | 进行中 |
推荐核对顺序
- 客户端运行时层
- 服务端实体层
- 服务端全局入口层
- 核心概念层
这样排的原因很直接:
- 客户端 API 最容易出现“名字像控制权、实际是身份判断”的误读。
- 服务端实体层决定了客户端 API 的真实语义,第二批跟进最合适。
- 进程级
KBEngine入口多,但大多是围绕实体、数据字典与回调展开,放在实体层之后核对更稳。 basetypes和keywords更像统一术语表,适合作为最后的收口整理。
分类明细
1. 核心概念层
页面:
重点核对:
- 基础类型定义是否和
.def、脚本桥接、序列化实现一致 ENTITYCALL、CELLDATADICT、PyClient等术语是否只讲“表面名词”,没有交代运行时语义- 关键词之间是否存在重复解释或互相矛盾
建议关联源码解析:
2. 客户端运行时层
页面:
重点核对:
player()、isPlayer()与controlledBy/isControlled的边界onEnterWorld()、onLeaveWorld()、onEnterSpace()、onLeaveSpace()的真实触发语义baseCall()、cellCall()的调用限制与“只能访问玩家实体”这类边界条件isOnGround、移动接口、客户端可写属性的同步方向ownerOnly属性在客户端的可见性与回调行为
建议关联源码解析:
当前已完成:
- client/KBEngine.player
- client/KBEngine.findEntity
- client/KBEngine.entities
- client/KBEngine.entity_id
- client/KBEngine.spaceID
- client/Entity.baseCall
- client/Entity.cellCall
- client/Entity.isPlayer
- client/Entity.onEnterWorld
- client/Entity.onLeaveWorld
- client/Entity.onEnterSpace
- client/Entity.onLeaveSpace
- client/Entity.base
- client/Entity.cell
- client/Entity.clientapp
- client/Entity.isOnGround
- client/Entity.inWorld
- bots/PyClientApp.player
- bots/PyClientApp.id
- bots/PyClientApp.entities
- bots/Entity.isPlayer
- bots/Entity.onEnterWorld
- bots/Entity.onLeaveWorld
- bots/Entity.onEnterSpace
- bots/Entity.onLeaveSpace
- bots/Entity.base
- bots/Entity.cell
- bots/Entity.clientapp
- bots/Entity.moveToPoint
- bots/Entity.cancelController
- bots/Entity.isOnGround
下一批待核对:
cellapp/Entity.addTimer()/delTimer()cellapp/Entity.moveToPoint()/navigate()/cancelController()
3. 服务端实体层
页面:
重点核对:
- Base / Cell / Proxy 各自职责边界
controlledBy、giveClientTo、客户端迁移与控制权切换- 控制器接口、导航接口、AOI / Witness / View 回调
writeToDB()、cell 备份、灾难恢复与真实持久化链路
建议关联源码解析:
当前已完成:
- cellapp/Entity.controlledBy
- baseapp/Entity.createCellEntity
- baseapp/Entity.onGetCell
- baseapp/Proxy.giveClientTo
- cellapp/Entity.addTimer
- cellapp/Entity.delTimer
- cellapp/Entity.moveToPoint
- cellapp/Entity.navigate
- cellapp/Entity.cancelController
优先核对:
baseapp/Entity.writeToDB()baseapp/Entity.destroy()cellapp/Entity.addProximity()cellapp/Entity.writeToDB()
4. 服务端全局入口层
页面:
重点核对:
- 每个进程级
KBEngine模块到底提供哪些“只在本组件可用”的接口 globalData、baseAppData、cellAppData的同步方向、回调时机与使用边界- 账号、数据库、外部接口、日志相关 API 的真实职责
建议关联源码解析:
当前已完成:
- baseapp/KBEngine.baseAppData
- baseapp/KBEngine.globalData
- baseapp/KBEngine.onBaseAppData
- baseapp/KBEngine.onBaseAppDataDel
- baseapp/KBEngine.onGlobalData
- baseapp/KBEngine.onGlobalDataDel
- cellapp/KBEngine.cellAppData
- cellapp/KBEngine.globalData
- cellapp/KBEngine.onCellAppData
- cellapp/KBEngine.onCellAppDataDel
- cellapp/KBEngine.onGlobalData
- cellapp/KBEngine.onGlobalDataDel
优先核对:
loginapp/KBEngine入口回调与账号流程接口dbmgr/KBEngine数据库入口与回调接口interfaces/KBEngine外部接口桥接logger/KBEngine进程日志入口
5. 交叉专题层
这一层不按单页推进,而是按“同一个概念横跨多个组件”推进。
当前专题:
- 玩家身份与控制权
- 实体生命周期与视野可见性
- 定时器与回调
- 全局数据字典同步
- 属性同步、广播与
ownerOnly - 移动、控制器与导航
已打通的专题入口:
- client/KBEngine.player
- client/KBEngine.findEntity
- client/Entity.baseCall
- client/Entity.cellCall
- client/Entity.isPlayer
- client/Entity.onEnterWorld
- client/Entity.onEnterSpace
- client/Entity.base
- client/Entity.cell
- client/Entity.clientapp
- client/Entity.isOnGround
- client/Entity.inWorld
- bots/PyClientApp.player
- bots/PyClientApp.entities
- bots/Entity.isPlayer
- bots/Entity.onEnterWorld
- bots/Entity.onEnterSpace
- bots/Entity.base
- bots/Entity.cell
- bots/Entity.clientapp
- bots/Entity.moveToPoint
- bots/Entity.cancelController
- bots/Entity.isOnGround
- client/KBEngine.entity_id
- client/KBEngine.spaceID
- baseapp/Entity.createCellEntity
- baseapp/Entity.onGetCell
- cellapp/Entity.controlledBy
- cellapp/Entity.addTimer
- cellapp/Entity.delTimer
- cellapp/Entity.moveToPoint
- cellapp/Entity.navigate
- cellapp/Entity.cancelController
- baseapp/KBEngine.baseAppData
- baseapp/KBEngine.globalData
- baseapp/KBEngine.onBaseAppData
- baseapp/KBEngine.onBaseAppDataDel
- baseapp/KBEngine.onGlobalData
- baseapp/KBEngine.onGlobalDataDel
- cellapp/KBEngine.cellAppData
- cellapp/KBEngine.globalData
- cellapp/KBEngine.onCellAppData
- cellapp/KBEngine.onCellAppDataDel
- cellapp/KBEngine.onGlobalData
- cellapp/KBEngine.onGlobalDataDel
- 源码解析:
Entity.createCellEntity()不是本地建对象,而是一次 Base -> Cell 交接 - 源码解析:
isPlayer()、player()和controlledBy()的关系 - 源码解析:客户端实体进入/离开世界与空间回调
- 源码解析:
baseCall()与cellCall()的真实限制条件 - 源码解析:客户端
moveToPoint()、cancelController()与isOnGround同步 - 源码解析:客户端的句柄表与实体容器语义
- baseapp/Proxy.giveClientTo
- 源码解析:
Proxy.giveClientTo()转移的是客户端绑定与 Witness 链路 - 源码解析:Cell 实体的
addTimer()/delTimer()实际上操作的是ScriptID -> TimerHandle映射 - 源码解析:Cell 实体的
moveToPoint()/navigate()/cancelController()共享同一套控制器链 - 源码解析:
baseAppData/globalData/cellAppData的同步链与回调分发
当前执行策略
- 先把“一个术语在多个页面写法不一致”的问题收敛掉
- 再把每个分类里最容易误解的 API 按“API 页简述 + 源码解析页深讲 + API 页跳转”补齐
- 最后再回到
basetypes、keywords做统一术语清理
