WirelessRedstone-CBE

[!INFO] Git Commit: 9dfb913 | Updated: 2026-10-01

无线红石(Wireless Redstone)的 ChickenBones Edition,即 CBE = ChickenBones Edition。它在一个仓库里打包了 3 个独立 mod, 共享同一份核心频率系统。

身份

属性 实测值
modid(3 个) WR-CBE|Core、WR-CBE|Addons、WR-CBE|Logic
modName WR-CBE Core / WR-CBE Addons / WR-CBE Logic
主包 codechicken.wirelessredstone(.core / .addons / .logic)
Java 文件 74
物品 16(Core 7 + Addons 8 + Logic 1)
多方块部件 3(ForgeMultipart)
合成配方 18(Core 8 + Addons 7 + Logic 3)
频率总数 5000
配置文件 config/WirelessRedstone.cfg
网络频道 WRCBE
Minecraft 1.7.10(gradle.properties,Forge 10.13.4.1614)

[!IMPORTANT] modid 全大写且用 | 分隔三个 mod (WirelessRedstoneCore.java:21、WirelessRedstoneAddons.java:13、 WirelessRedstoneLogic.java:13)。资源域却是小写且分属两套: wrcbe_core:(7 个核心物品)与 wrcbe_addons:(8 个 addon 物品)。 modid ≠ 资源域,是本仓最易踩的陷阱。

三个 mod 的分工

modid 职责 硬依赖 条目数
WR-CBE|Core 频率系统、7 个基础物品、干扰器、/freq 命令 CodeChickenCore、ForgeMultipart、gtnhlib core(33)
WR-CBE|Addons 遥控器、测向仪、嗅探器、地图、追踪器、REP WR-CBE|Core addons(30)
WR-CBE|Logic 3 个 ForgeMultipart 部件(发射/接收/干扰) WR-CBE|Core、ForgeMultipart logic(11)

核心机制

  • 频率空间:0–4999 共 5000 个频率(RedstoneEther.java:31, numfreqs 是 static final 编译期常量)。
  • 干扰器:jammerrange 默认 10 格;超时默认 60 秒; 随机化窗口 jammerrandom = 超时的 1/3;实体首延迟 5 秒、 实体重试 10 秒、方块首延迟 10 秒。
  • 渲染:minrps = 0.02F、maxrps = 2.98F;能量束速度 speed = 3(每米 tick 数),淡出 fadetime = 20 tick。
  • 命令:/freq,6 个子命令 scan jam open get set private。
  • 矿物词典:本仓注册 2 个 ore name——obsidianRod 与 stoneBowl; 并在 3 条配方中消费 obsidianRod。

源码缺陷

  1. @Mod 的 version 是未替换的构建期占位符。 WirelessRedstoneCore.java:37 写死 public static final String version = "GRADLETOKEN_VERSION";, 另外两个 @Mod 都直接引用它。正式 jar 里三个 mod 的版本字面量 都会是 GRADLETOKEN_VERSION。

  2. 依赖声明里的版本区间下界为空。 WirelessRedstoneCore.java:22-23 拼接出 required-after:CodeChickenCore@[<version>,)——Maven 版本区间 没有下界。这会让 CodeChickenCore 的任何版本(含不兼容版本) 都满足约束。

  3. 物品与字段名有拼写错误。 recieverDish / blazeRecieverDish 均缺一个 e (正确拼写应为 receiver)。这是注册名与 unlocalizedName 的一部分, 会直接进入存档与 NBT,改名即破坏兼容性——不可「顺手修正」。

  4. 速率梯度硬编码了 5000。 RedstoneEther.java:46 写 gradrps = maxrps / 5000D, 而非 maxrps / numfreqs。当前 numfreqs 恰为 5000,两者数值巧合相等; 一旦 numfreqs 改动,梯度会静默失配。

  5. 一个已注册物品没有任何配方。 emptyWirelessMap 在 WRAddonProxy.java:47 注册, 但 7 条配方中没有任何一条产出它,玩家无法合成。

  6. ITileReceiver 的方法名无语义。 m1() / m2(double) / m3(double) 三个方法是信号强度曲线, 源码中没有任何注释说明其含义。

全部条目索引

core(33)

核心:频率系统、物品、干扰器、命令与 GUI

addons(30)

Addons:遥控器、测向仪、嗅探器、地图、追踪器、REP

logic(11)

Logic:3 个 ForgeMultipart 部件

覆盖率

74 / 74 = 100%(74 个 Java 文件逐个成文,1:1 无遗漏):

  • core — 33 条 (含 4 个接口 ITileWireless / ITileReceiver / ITileJammer / WirelessTransmittingDevice / WirelessReceivingDevice, 6 个 Param* 子命令处理器)
  • addons — 30 条
  • logic — 11 条

依赖关系

依赖 收录状态
CodeChickenCore 已登记(data/relation.md),尚未成文 → 前向引用
ForgeMultipart 已登记,尚未成文 → 前向引用
gtnhlib 不在 relation.md 中 → 不建分类
ChromaticTooltipsCompat chromatictooltipscompat——它为 waila 等 mod 补 tooltip,与本模组无直接依赖

CodeChickenLib 来自 CodeChickenCore,不单列。 三个 mod 之间是硬依赖链:Core ← Addons、Core ← Logic。