Compass State
基本信息
| 属性 | 值 |
|---|---|
| 枚举类 | com.chaosthedude.naturescompass.util.EnumCompassState |
| 存储字段 | NBT State(int) |
| 默认值 | INACTIVE(0) |
行为
Nature’s Compass 的所有运行状态都落在 4 枚枚举值上。ItemNaturesCompass 在每次 tick、GUI 关闭、HUD 渲染时都会读取 State 来决定下一步动作。
| ID | 名称 | 触发场景 | HUD 显示 | GUI 行为 |
|---|---|---|---|---|
| 0 | INACTIVE |
玩家潜行右键 / 创建物品 / 玩家主动取消 | 无叠加文字 | 按钮可用 |
| 1 | SEARCHING |
玩家在 GUI 选了群系后服务端启动 BiomeSearchWorker |
Status: Searching + 群系名 |
关闭 GUI,由 server tick 推动 worker |
| 2 | FOUND |
BiomeSearchWorker 命中目标群系时调用 setFound() |
Status: Found + 群系名 + 坐标 + 距离 |
Teleport 按钮启用(OP/cheat) |
| 3 | NOT_FOUND |
worker 走到 maxDistance 或超过 maxSamples 仍未命中 |
Status: Not Found + 群系名 + 已扫描半径 |
不可传送 |
数值
| 数值 | 默认值 |
|---|---|
| INACTIVE ID | 0 |
| SEARCHING ID | 1 |
| FOUND ID | 2 |
| NOT_FOUND ID | 3 |
状态转换图
┌────────────┐
│ INACTIVE │ <──── 潜行右键 / 重置
└─────┬──────┘
│ GUI 选择群系
▼
┌────────────┐
命中 ◄── │ SEARCHING │
└─────┬──────┘
耗尽 ────────┤
▼
┌────────────────────┐
│ FOUND / NOT_FOUND │
└────────────────────┘
触发的设置方法(ItemNaturesCompass)
| 方法 | 何时调用 | 写入 NBT |
|---|---|---|
setState(stack, EnumCompassState, player) |
通用写入 | State |
setSearching(stack, biomeID, player) |
搜索启动 | State=1 |
setFound(stack, x, z, player) |
命中 | State=2, FoundX, FoundZ |
setNotFound(stack, player, radius) |
搜索结束未命中 | State=3, SearchRadius |
setInactive(stack, player) |
玩家潜行右键取消 | State=0 |
setSearchRadius(stack, radius, player) |
worker 每多扫 500 块写入一次 | SearchRadius |
相关条目
- Nature’s Compass - 持有者
- BiomeSearchWorker - 状态写入的源头
- RenderTickHandler - 状态驱动 HUD 渲染