主题
生物模型
仿 ModelEngine 的实体模型系统:服务端权威状态 + 客户端渲染委托,深度集成 MythicMobs,支持骑乘、根运动、石化、子模型等高级特性。
架构总览
双端架构
核心概念
ModeledEntity
服务端模型实体的权威状态容器,绑定到一个 Bukkit Entity:
| 能力 | 说明 |
|---|---|
| 模型管理 | addModel() / removeModel() / extractModelTransferState() |
| 旋转权威 | 头部 Pitch/Yaw、身体 Yaw,支持平滑收敛 |
| 碰撞箱 | 主碰撞箱 + 子碰撞箱,独立于原版 AABB |
| 根运动 | 从动画曲线采样位移,驱动实体移动 |
| 观察者 | 强制可见/隐藏列表,LOD 分级,追踪开关 |
| 持久化 | 可选保存/加载(shouldSave) |
| 变更批处理 | runMutationScope() 批量更新 + 延迟提交 |
DelegatingRenderer
客户端渲染入口,包装原版 EntityRenderer:
- 外层维持原版
EntityType → EntityRenderer分发 - 内层按
entityId查询 modeled state - 命中时提交额外的动态 Bedrock Pass
- 支持 base entity 可见性控制
同步模式
| 模式 | 行为 |
|---|---|
NORMAL | 正常同步,客户端渲染所有模型 |
CULLED | 服务端判定不可见,客户端跳过渲染 |
模块导航
| 模块 | 说明 | 文档 |
|---|---|---|
| 生命周期 | 创建→同步→渲染→销毁完整链路 | 生命周期 |
| MythicMobs Mechanics | 48 个技能机制 | Mechanics |
| Conditions & Targeters | 条件、目标选择器、占位符 | Conditions |
| 高级特性 | 骑乘、根运动、石化、子模型 | 高级特性 |