Appearance
充能方块
文档版本:基于 2026-06-01 代码分析
概述
充能方块(ChargeBlock)是扩展模组的一个功能性方块,支持充能和输出两种模式。充能模式下方块蓄力后输出红石脉冲,输出模式下持续输出红石信号。方块具有 5 级可见阶段,可通过核心模组的 config_tool 右键配置。
核心概念
两种模式
| 模式 | ID | 行为 |
|---|---|---|
| 充能(Charge) | charge | 有红石信号蓄力→达到目标→输出 10 tick 脉冲→锁定(需指令重置才能再次蓄力) |
| 输出(Output) | output | 有红石信号时蓄力,chargeTicks>0 时持续输出红石信号 |
5级阶段
方块外观呈现 5 个可见阶段(0-5),阶段随充能进度/输出状态变化:
- 阶段 0:空闲
- 阶段 1-4:充能进度(25%/50%/75%/100%)
- 阶段 5:完全充能/正在输出
可配置参数
| 参数 | 说明 |
|---|---|
| 模式 | charge / output |
| 时长 | 充能或输出持续的秒数(内部自动 ×20 转换为 tick) |
| 启用 | 开关 |
架构设计
mermaid
flowchart LR
subgraph Config["配置"]
Tool["config_tool 右键"] --> GUI["ChargeBlockConfigScreen"]
GUI -->|"UpdateChargeBlockConfigPayload"| Server["ChargeBlockPayloadHandler"]
Server --> BE["ChargeBlockEntity"]
end
subgraph Tick["每tick"]
BE --> Mode{模式?}
Mode -->|charge| Charge["充能进度++"]
Mode -->|output| Output["持续输出阶段5"]
Charge -->|"进度>=目标"| Pulse["输出红石脉冲"]
end
subgraph Redstone["红石输出(二值)"]
BE --> Block["ChargeBlock"]
Block -->|"信号强度=15(输出中) 或 0(空闲)"| Wire["红石线"]
end关键文件
| 文件 | 说明 |
|---|---|
com/chenxi/chenxi_rfm_addition/common/block/ChargeBlock.java | 充能方块类(5级阶段+红石输出) |
com/chenxi/chenxi_rfm_addition/common/block/ChargeBlockEntity.java | 方块实体(tick逻辑+配置存储) |
com/chenxi/chenxi_rfm_addition/client/screen/ChargeBlockConfigScreen.java | 配置 GUI |
com/chenxi/chenxi_rfm_addition/server/command/rfm/NfaRfmChargeBlockCommand.java | 充能方块指令 |
com/chenxi/chenxi_rfm_addition/common/network/payload/charge/ | 2 个 Payload |
关键流程
指令操作
| 指令 | 说明 |
|---|---|
/nfarfm chargeblock place <pos> | 在指定位置放置充能方块 |
/nfarfm chargeblock set <pos> | 打开配置 GUI(等同于右键) |
配置GUI
- 模式选择:充能 / 输出
- 时长滑块
- 启用/禁用开关
注意事项
- 使用核心模组的
config_tool物品右键打开配置 GUI - 红石信号为二值输出:正在输出时信号强度=15,空闲时信号强度=0(与阶段值无关)
- 阶段(STAGE 0-5)仅影响方块外观纹理,不参与红石计算
- 阶段变化触发方块状态更新和相邻方块重算