Skip to content

扩展模组总览

文档版本:基于 2026-06-01 代码分析

概述

chenxi_rfm_addition(扩展模组)是逃走中核心模组的可选扩展,提供广播板语音播报、充能方块红石控制、小游戏(骰子/心算读秒/抽签)、语音群组和跑道方块等功能。扩展模组强依赖 chenxi_rfm 核心模组,直接引用其权限 API、命令谓词和配置工具物品 ID。


模块关系

mermaid
graph TB
    subgraph Core["chenxi_rfm 核心模组"]
        PermAPI["NfaPermissionApi<br/>权限API"]
        CmdPred["NfaCommandPredicates<br/>命令谓词"]
        CfgTool["config_tool<br/>配置工具物品ID"]
    end

    subgraph Addition["chenxi_rfm_addition 扩展模组"]
        Broadcast["广播板<br/>语音播报+GUI"]
        Charge["充能方块<br/>充能/输出双模式"]
        Minigames["小游戏<br/>骰子·心算读秒·抽签"]
        VoiceGroup["语音群组<br/>持久群组管理"]
        Track["跑道方块<br/>6种定向跑道"]
        Conductor["红石导体<br/>伪装+传导"]
        Alarm["红石警报器<br/>红石灯变体"]
    end

    Addition --> Core
    Broadcast --> PermAPI
    Minigames --> PermAPI
    VoiceGroup --> CmdPred
    Charge --> CfgTool

桥接方式

方式说明
直接类引用导入 NfaPermissionApi(权限检查)、NfaCommandPredicates(指令权限)、NfaPermissionService(权限服务)
资源键硬编码检查物品 ID 是否为 chenxi_rfm:config_tool
内部接口注入BroadcastPadBlockEntity.VoiceBridge 通过 setter 注入 BroadcastPadVoiceManager
事件总线复用ServerLifecycleEventsServerMinigameEvents 注册到 NeoForge.EVENT_BUS

注册表一览

方块(12个)

注册名功能
charge_blockChargeBlock充能/输出双模式,5级红石输出
redstone_alarmRedstoneAlarmBlock红石警报器(RedstoneLampBlock子类)
broadcast_padBroadcastPadBlock2×1 广播面板,3状态机
dice_panelDicePanelBlock2×3 骰子显示面板
redstone_conductorRedstoneConductorBlock红石导体(伪装+传导)
nfa_running_track_blockBlock跑道基础方块
nfa_running_track_line_blockDirectionalRunningTrackBlock定向跑道线
nfa_running_track_lines_blockDirectionalRunningTrackBlock定向跑道双线
nfa_running_track_angle_blockDirectionalRunningTrackBlock定向跑道转角
nfa_running_track_vertex_blockDirectionalRunningTrackBlock定向跑道顶点
nfa_running_track_center_blockDirectionalRunningTrackBlock定向跑道中心
nfa_running_track_circle_blockDirectionalRunningTrackBlock定向跑道圆弧

方块实体(4个)

注册名
charge_blockChargeBlockEntity
broadcast_padBroadcastPadBlockEntity
dice_panelDicePanelBlockEntity
redstone_conductorRedstoneConductorBlockEntity

音效(3个)

注册名用途
alarm警报器循环音效
broadcast_start广播开始音效
broadcast_end广播结束音效

网络包(6个)

Payload方向用途
OpenBroadcastPadConfigPayloadC→S打开广播面板配置
UpdateBroadcastPadConfigPayloadS→C更新广播面板配置
SyncBroadcastPadVoiceStartPayloadS→C同步语音广播开始
SyncBroadcastPadVoiceStopPayloadS→C同步语音广播停止
OpenChargeBlockConfigPayloadC→S打开充能方块配置
UpdateChargeBlockConfigPayloadS→C更新充能方块配置

指令系统

扩展模组使用独立的根指令 /nfarfm(区别于核心模组的 /nfa):

指令权限说明
/nfarfm chargeblock place <pos>GAME_ADMIN在指定位置放置充能方块
/nfarfm chargeblock set <pos>GAME_ADMIN配置充能方块参数
/nfarfm minigames dice start/stop/throw/pointsGAME_ADMIN骰子小游戏管理
/nfarfm minigames mental start/stop/mark/listGAME_ADMIN心算读秒管理
/nfarfm group add/remove/listGAME_ADMIN持久语音群组管理
/nfarfm roll start/stop/drawGAME_ADMIN抽签管理

面板系统继承层次

扩展模组定义了可复用的面板方块基类:

AbstractPanelBlock (抽象基类)
    ├── SinglePartPanelBlock (单部件)
    ├── TwoPartPanelBlock (双部件: MAIN + EXTENSION)
    │   └── BroadcastPadBlock (广播面板)
    ├── ThreePartPanelBlock (三部件: LEFT + CENTER + RIGHT)
    └── TwoByThreePanelBlock (2×3六部件)
        └── DicePanelBlock (骰子面板)

所有面板实现 PanelDisplayTextProvider 接口,提供 getDisplayState() 返回两行文本和颜色。


注意事项

  1. 强依赖核心模组:扩展模组不可独立运行
  2. 配置独立:使用自己的 ConfigManager(路径 config/nfa_rfm_addition/
  3. 语音依赖 Simple Voice Chat:广播板和语音群组功能需要 SVC 模组
  4. 与核心模组的 config_tool 交互:广播板和充能方块用核心模组的配置工具右键打开配置 GUI

相关文档