ProjectBlue

[!INFO] Git Commit: c01a5e7 | Updated: 2026-05-27 | Minecraft 1.7.10 | 作者: Greg Ewing

Project Blue 是一个 Project Red 附属方块/物品模组(mcmod.info 原文:“Additional blocks and items for Project Red.”),GTNH 环境下由 GTNewHorizons 维护。核心内容是控制面板(Control Panel)——一个贴在方块任意面上的多合一开关面板,以及一组微型拉杆/按钮/灯;可选地提供 MineFactory Reloaded RedNet ↔ Bundled Cable 转接方块。

项 值
modid ProjectBlue
显示名 Project Blue
Java 包 gcewing.projectblue
资源命名空间 gcewing_projectblue(包名点转下划线)
语言文件 assets/projectblue/lang/en_US.lang(无中文翻译)
硬依赖 ProjectRed 4.12.37-GTNH
可选依赖 MineFactory Reloaded、NotEnoughItems

⚠️ 本 mod 没有 X

任务简报假设这是一个「GTNH 电力库」,带 LV/MV/HV/EV/IV/UV/XV 电压等级族、能量储存、传输速率、距离衰减。源码中完全不存在这些。 逐条 grep 证据如下:

简报假设 实际情况 grep 证据
电压等级 LV…XV 不存在。全仓库无 voltage / tier / V 命名 grep -rn "voltage|tier|MV|HV|EV\b" src/main/scala → 无相关命中
能量储存 / 容量 不存在。无 EU、无 battery、无 capacitor grep -rn "energy|storage|capacity|charge|watt|ampere" src/main/scala → 无相关命中
传输速率 / 距离衰减 不存在。无数据包衰减概念 无任何 loss / distance / attenuat 逻辑
线缆网络 getPipe 不存在。Project Blue 自己不注册线缆 registerBlocks() 为空;唯一方块是 MFR 集成里的转接器
实体注册 不注册任何实体 见下方实体条目
指令 不注册任何指令 grep -rn "CommandBase|ICommand|addChatCommand|registerCommand" src/main/scala → 无输出
快捷键 不注册任何 KeyBinding grep -rn "KeyBinding|registerKeyBinding" src/main/scala → 无输出
附魔 无 grep -rn "net.minecraftforge.enchantment|Enchantment\b" src/main/scala → 无输出
维度 无 grep -rn "WorldProvider|DimensionManager|registerDimension" src/main/scala → 无输出
群系 无 grep -rn "BiomeGen|Biome\b" src/main/scala → 无输出
成就 无 grep -rn "Achievement" src/main/scala → 无输出
Buff / Debuff 无 grep -rn "Potion|PotionEffect" src/main/scala → 无输出
多方块结构 无 grep -rn "TileMultiblock|IMultiblock|Multiblock" src/main/scala → 无输出
世界生成 / 矿物 无 grep -rn "IWorldGenerator|Feature|Populator" src/main/scala → 无输出
硬度 / 爆炸抗性 / 亮度 一个都没设置 grep -rn "setHardness|setResistance|setLightLevel|setBlockStrength" src/main/scala → 无输出
核心 Mod / Mixin / AT 全部为空 见下表

构建配置实测值

字段 值
accessTransformersFile (空)
usesMixins false
mixinPlugin (空)
coreModClass (空)
containsMixinsAndOrCoreModOnly false

本 mod 不做任何字节码变换。

实体

BaseMod 提供了 4 个 addEntity 重载和 EntityRegistry.registerModEntity 调用,但没有任何调用点 —— 这是通用框架的未使用代码。mod 不注册实体。

孤儿资源

assets/gcewing_projectblue/models/tubewire_*.json(8 个)与 textures/blocks/tubewire.png、redwire_*.png、pneumatic_*.png 存在于仓库,但对应的 PneumaticTubePart / PneumaticTubeItem / PneumaticExtractorPart 源文件不存在,注册调用也全被注释。属已移除功能的残留资源。详见 捆绑信号网络。


注册内容总表

方块(1 个)

方块 注册名 门控
Rednet Adaptor gcewing_projectblue:rednetAdaptor 需 MFR

主类 ProjectBlue.registerBlocks() 是空方法。唯一的方块在 MFRIntegration 里注册。

物品(7 个)

物品 注册名 说明
控制面板 gcewing_projectblue:controlPanel 核心,多尺寸
微型拉杆/按钮/灯/盖板 gcewing_projectblue:miniatureLever / miniatureButton / miniatureLamp / miniatureCover 面板内控件
喷漆罐 gcewing_projectblue:sprayCan + emptySprayCan 上色,256 次

Multipart 部件(1 个)

类型名 类
pb_controlpanel ControlPanelPart

registerMultiParts() 中另外 3 行(pb_pneumatictube、pneumatic_extractor、pb_pr_insulated)全部被注释。


变体族对照表

Project Blue 没有电压等级。它有三套真正的变体维度:

变体一:面板尺寸

尺寸 gridSize 格子数 内部槽位 循环顺序
4×4 4 16 16 4 → 3 → 2 → 4
3×3 3 9 16(多余休眠) 同上
2×2 2 4 16(多余休眠) 同上

所有尺寸共用同一组 16 长数组,缩小不丢数据。详见 控制面板尺寸变体。

变体二:通道颜色(0–15)

颜色即 Project Red 捆绑线通道号,meta 与 NBT channelColors 通用:

meta 名称 meta 名称 meta 名称 meta 名称
0 White 4 Yellow 8 Light Grey 12 Brown
1 Orange 5 Lime 9 Cyan 13 Green
2 Magenta 6 Pink 10 Purple 14 Red
3 Light Blue 7 Grey 11 Blue 15 Black

变体三:喷漆罐颜色(0–16)

color 名称 用途
0–15 同上 16 色 面板通道染色 / 合成上色
16 Stone(去漆剂) 面板内重置通道为格号;合成中还原原版拉杆/按钮

⚠️ 颜色 16 虽在语言文件里叫 Stone,但显示名走的是 paintRemover.name(Paint Remover)。

微型控件的 meta 差异

物品 meta 范围 特殊值
miniatureLever 0–16 16 = Stone(未上色)
miniatureButton 0–17 16 = Stone,17 = Wooden
miniatureLamp 0–15 无
miniatureCover NBT mat 非 meta 变体

核心机制

主题 说明
捆绑信号网络 本 mod 唯一的「网络遍历」算法:BundledUtils.getAllSignals 扫描 13 个位置逐通道取最大值
微型控制器部件 部件侧状态、NBT 字段、信号收发、ProjectBlueChannel 网络同步
控制面板交互动作 11 条手持物判定规则、按钮 20 tick 自动弹起、标签编辑
Rednet Adaptor 信号路由 16 通道双向路由位掩码状态机

系统性说明

主题 说明
配置项 全 mod 只有 1 个配置项(plasticSheetNames),其余数值全硬编码
兼容门控 MFR / NEI 软门控;ProjectRed 硬依赖(缺则 postInit 抛异常)
公开 API 完整 mod 开发框架:BaseMod / BaseIntegration / BaseNBTChannel / BaseDataChannel / BaseGui / PBFacePart 等 8 组

关键数值速查

数值 值 位置
捆绑通道数 16 全局
按钮按下时长 20 tick(1 秒) ControlPanelPart.buttonDownTime
标签行数 × 长度 2 行 × 6 字符 ControlPanelLabelScreen
喷漆罐耐久 256 SprayCanItem.getMaxDamage
空喷漆罐产量 4 ProjectBlue.registerRecipes
微型件产量 8 CraftMiniatureItem
面板厚度 1/8 格 newBounds(0,0,0,1,1/8.0,1)
connectionMask 默认 0x3 ControlPanelPart.load
面板基材回退 Blocks.planks meta 0 ControlPanelMaterial