supersolarpanels
[!INFO] Git Commit:
ae2a5d9| Updated: 2026-04-27
Super Solar Panel(modid supersolarpanel)是 Advanced Solar Panel 的附属扩展,为其提供 4 级递进的太阳能发电方块。MC 1.7.10 / Forge 10.13.4.1614,GTNH fork(原作者 SeNtiMeL,mod by bartimaeusnek,贴图 Krezzard)。
硬依赖 Advanced Solar Panel 与 IC2(@Mod(dependencies = "required-after:AdvancedSolarPanel; required-after:IC2; before:dreamcraft"))。本 mod 自身不实现任何能量系统。
⚠️ 首要事实:本 mod 是纯数据壳
本仓库(24 个 Java 文件,1028 行)不包含任何发电逻辑。 四个面板的 TileEntity 全部继承自 Advanced Solar Panel 的 advsolar.common.tiles.TileEntitySolarPanel,各自仅在构造函数里传入 6 个参数,然后不做任何事。
因此,关于「输出速率依赖什么 y 高度 / 什么阳光条件」这类问题——答案不在本 mod 内,本 mod 也从未回答过这个问题。实际的发电量计算、天空可见性判定、昼夜判定、能量缓冲全部实现在 Advanced Solar Panel 中,本仓库无相关代码。详见下方「本 mod 不具备的内容」。
本 mod 真正提供的只有三样东西:4 个方块 + 4 个对应 ItemBlock + 5 个纯配方物品 + 16 个配置项 + 9 个配方。
方块列表
四级链条,每级输出为上一级的 4 倍:
- 光谱太阳能板 - 链条第 1 级,基础面板
- 奇异太阳能板 - 链条第 2 级(类名
BlockSuperSP,与 “Singular” 命名错位) - 光吸收太阳能板 - 链条第 3 级(注册名
AdminSolarPanel) - 光子太阳能板 - 链条第 4 级,终点
物品列表
全部 5 个都是纯配方中间件,没有任何独立游戏内用途(未覆写任何 Item 交互方法):
- 末影量子组件 - 合成奇异板的核心材料
- 太阳能板分光器 - 合成光谱板的核心材料
- 红色光谱组件 - 合成分光器(精确列序的左列)
- 绿色光谱组件 - 合成分光器(中列;唯一无序配方,成本最低)
- 蓝色光谱组件 - 合成分光器(右列)
游戏设定
- 配置文件 - 16 个 int 配置项(4 面板 × 发电白天/夜间/输出/容量)+ DreamCraft 配方抑制规则
面板对比表
默认值取自 ConfigLoader;单位为 EU/t 与 EU。
| 光谱太阳能板 | 奇异太阳能板 | 光吸收太阳能板 | 光子太阳能板 | |
|---|---|---|---|---|
| 方块类 | BlockSpectralSP |
BlockSuperSP |
BlockAdminSP |
BlockPhotonSP |
| Tile 类 | TileSpectralSolarPanel |
TileSingularSolarPanel |
TileAdminSolarPanel |
TilePhotonicSolarPanel |
| ItemBlock 类 | ItemBlockSpSP |
ItemBlockSSP |
ItemBlockAdmSP |
ItemBlockPhotonSP |
| 注册名 | BlockSpectralSP |
SingularSolarPanel |
AdminSolarPanel |
PhotonicSolarPanel |
| 内部名 | BlockSpectralSP |
BlockSSP |
BlockAdminSP |
BlockPhotonicSP |
| 玩家可见名 | Spectral Solar Panel | Singular Solar Panel | Light-Absorbing Solar Panel | Photonic Solar Panel |
| 硬度 | 3.0F | 3.0F | 3.0F | 3.0F |
| 爆炸抗性 / 亮度 | 未设置 / 无 | 未设置 / 无 | 未设置 / 无 | 未设置 / 无 |
| 脚步声 | soundTypeMetal |
soundTypeMetal |
soundTypeMetal |
soundTypeMetal |
| 白天发电 | 8192 | 32768 | 131072 | 524288 |
| 夜间发电 | 0 | 0 | 0 | 0 |
| 输出上限 | 8192 | 32768 | 131072 | 524288 |
| 内储能 | 81,920,000 | 327,680,000 | 1,310,720,000 | 2,000,000,000 |
| 容量/输出比 | 10000 tick (500s) | 10000 tick (500s) | 10000 tick (500s) | 3814.7 tick (190.7s) |
| 父类构造第 2 参数 | 5 |
6 |
7 |
8 |
| Shift 提示行数 | 4 | 4 | 4 | 5(多一行描述) |
| 贴图 | spsp_* |
ssp_*(与光谱板外观相同) |
admsp_* |
phsp_* |
| 配方材料数 | 1 分光器 + 8 高级面板(metadata 3) | 8 光谱板 + 1 末影量子组件 | 9 奇异板 | 9 光吸收板 |
横向对比要点
- 数值全部是 4 倍等比:8192 → 32768 → 131072 → 524288,容量同步 4 倍,只有光子板因
int溢出被截断。 - 四个方块的属性完全相同:材质
Material.rock、硬度3F、soundTypeMetal、无爆炸抗性、无亮度。它们之间唯一的差异是 TileEntity 传入的 5 个配置值 + 父类构造第 2 参数 + 贴图。 - 四个方块的
onBlockActivated逐字相同:未潜行 → 打开 Advanced Solar Panel GUI(GUI ID 恒为 1),潜行 → 返回false交回原版拆除。 - 夜间发电四项默认全为 0:默认配置下所有面板夜间完全不发电(前提是父类按
GenNight/GenDay二选一结算,该逻辑在 Advanced Solar Panel 中)。 - 白天发电 = 输出上限(四项全部相等):意味着即使父类全额供给,输出侧也不构成额外瓶颈。
TileEntity 层级
四个 Tile 类各 20 行,结构完全相同,只有构造参数不同:
advsolar.common.tiles.TileEntitySolarPanel ← 父类,不在本仓库
├── TileSpectralSolarPanel ("blockSpectralSolarPanel.name", 5, 8192, 0, 8192, 81920000)
├── TileSingularSolarPanel ("blockSingularSolarPanel.name", 6, 32768, 0, 32768, 327680000)
├── TileAdminSolarPanel ("blockAdminSolarPanel.name", 7, 131072, 0, 131072, 1310720000)
└── TilePhotonicSolarPanel ("blockPhotonicSolarPanel.name", 8, 524288, 0, 524288, 2000000000)
- 6 个构造参数 = 本地化键 + 1 个整数字面量 + 4 个来自
ConfigLoader的静态 int。 - 第 2 个参数(5/6/7/8)的含义在本仓库中没有任何定义。 源码里它是匿名的整数字面量,语义由 Advanced Solar Panel 的父类决定。可确证的只有两点:取值 5/6/7/8,且与配方链顺序严格对应(光谱→奇异→光吸收→光子)。本 mod 没有 Tier/等级枚举、没有
enum、没有任何等级字段——不要把它当作本 mod 定义的等级系统。 - NBT:本 mod 不定义任何 NBT 字段。
writeToNBT/readFromNBT/getDescriptionPacket/getUpdatePacket在src/main/java/下全部无匹配。四个 Tile 类不覆写任何方法。持久化与客户端同步 100% 由父类负责。 - 状态暴露:本 mod 自身不暴露 Tile 状态。客户端能看到的只有 1.7.10 原版的方块 metadata(而四个面板的
createNewTileEntity对 metadata 0/1/2 全部返回同一个 Tile,case 1与default分支内容相同,故没有 metadata 变体)。
配方链
所有 9 个配方只在 DreamCraft 未加载时注册(MainSSP.PostInit 的 if (!Loader.isModLoaded("dreamcraft")))。DreamCraft 存在时本 mod 配方全部消失,由 DreamCraft 提供替代配方。
[辐照玻璃板] --无序--> [绿色光谱组件] ┐
[强化玻璃 + 青金石] --> [蓝色组件] ├--> [太阳能板分光器] ┐
[强化玻璃 + 红石粉] --> [红色组件] ┘ (ABC/ABC/ABC) │
▼
[高级太阳能面板 metadata 3] 环绕分光器 --> [光谱太阳能板] ┐
│
[末影量子组件: 铱板+末影之眼+下界之星] ├──> [奇异太阳能板] (8×光谱 + 1 核心)
│ │
│ ▼ (9×)
└──> [光吸收太阳能板]
│ (9×)
▼
[光子太阳能板] ← 终点,无后续配方
本 mod 不具备的内容(附 grep 证据)
以下每一项都经过 grep -rniE 在 /Users/evlos/a/mirror/supersolarpanels/src/main/java/ 全量检索确认无匹配,因此本 wiki 未创建对应目录,也未生成任何占位条目。
| 维度 | 是否存在 | grep 证据(无匹配的模式) |
|---|---|---|
| 多方块结构 multiblock | ❌ 无 | multiblock|controller|formation|IMultiblock|structure|MFE|frame → 唯一命中是 4 处 addInformation 方法名中的 “formation” 子串,无任何实际结构代码 |
| 实体 entity | ❌ 无 | registerEntity 无匹配;Entity[A-Z] 仅命中 EntityPlayer(onBlockActivated 形参) |
| y 高度 / 阳光暴露判定 | ❌ 无 | yLevel|canSeeSky|getY(|\.y\b|height|isDay|worldLight|skylight|daytime|sunLight → 无匹配 |
| NBT 字段 | ❌ 无 | writeToNBT|readFromNBT|NBT|getDescriptionPacket|getUpdatePacket → 无匹配 |
| 耐久 / 衰减 degradation | ❌ 无 | maxDamage|setMaxDamage|durab|degrad|damageValue|hurtResist → 无匹配 |
| 指令 / 命令 | ❌ 无 | ICommand|CommandBase|addChatCommand → 无匹配 |
| 热键 keybinding | ❌ 无 | keybind|KeyBinding → 无匹配(Keyboard.isKeyDown 仅用于 Shift 提示文本,不是热键注册) |
| 附魔 enchantment | ❌ 无 | Enchantment → 无匹配 |
| 世界维度 dimension | ❌ 无 | WorldProvider|DimensionManager|registerDimension → 无匹配 |
| 群系 biome | ❌ 无 | BiomeGen → 无匹配 |
| 结构生成 structure | ❌ 无 | structure → 无匹配 |
| 成就 achievement | ❌ 无 | Achievement → 无匹配 |
| 药水效果 potioneffect | ❌ 无 | Potion → 无匹配 |
| 物品效果 item-effect | ❌ 无 | 无任何 ItemEffect / 状态施加代码 |
关于「等级 / Tier 系统」:本 mod 没有等级系统。虽然四个 Tile 向父类传入了 5/6/7/8,但这是匿名构造参数,源码中不存在 enum、Tier、Mk1/Mk2、等级字段或等级判定逻辑(grep -rniE "enum|Mk1|Mk2|Mk3|Tier" 除 before:dreamcraft 外无相关命中)。本 wiki 不将其记录为等级系统。
关于「多方块 / MFE 结构」:本 mod 没有任何多方块结构检查、框架检测或控制器逻辑。四个面板都是单方块,各自独立运行,不与相邻方块发生任何交互(AbstractSSP 未覆写 onNeighborChanged、onPlacedBy 等任何邻接逻辑)。四个面板的相对位置不影响任何数值。
关于「能量接口」:本 mod 不实现任何 IEnergyConverter / IC2 能量接口。ic2.api.item.IC2Items 的导入(MainSSP.java:36)仅用于合成配方取材(iridiumPlate、reinforcedGlass),源码中 EU 字符串只出现在 4 个 ItemBlock 的提示文本里(" EU/t" / " EU"),没有任何能量收发代码。
其它源码细节
AbstractSSP是空壳:仅 17 行,继承BlockContainer,提供两个构造函数(Material参数版与默认Material.rock版),未覆写任何方法。真正的面板属性全部由 4 个子类各自硬编码(setBlockName/setStepSound/setHardness(3F)/setCreativeTab四行在 4 个类中逐字重复)。itemblock.BaseItems是死代码:43 行,getUnlocalizedName里的格式化字符串本身还有 bug(String.format("item.%s%s", "supersolarpanel:", name)中%s与参数个数不匹配,会抛异常)。没有任何类继承或引用它——items/下 4 个物品类全部直接继承Item,itemblock/下 4 个全部直接继承ItemBlock。ItemEnderQuantumComponent.registericons(小写 i)是死代码:未覆写 1.7.10 的registerIcons(IIconRegister),永不被调用。- 贴图渲染缺陷:
BlockSuperSP(奇异板)注册了两组贴图但getIcon永远只索引第 0 组,导致它与光谱板渲染出完全相同的外观。 - 无效分支:4 个方块的
getIcon中case 2的if (metadata == 2) ... else ...两个分支返回同一图标;4 个方块的createNewTileEntity中case 1与default返回同一 Tile。 - 未使用的语言键:
AdmSP-do-not-have-recipe(“Does not have crafting recipe”)在src/main/java/中无引用,而光吸收板实际有配方。 - 创造栏:
CreativeTabSSP(“Super Solar Panels”),图标取MainSSP.BlockSpectralSP的物品形态,即光谱板的图标。
依赖关系
| 依赖 | 强度 | 用途 |
|---|---|---|
| Advanced Solar Panel | 硬依赖(required-after) |
提供全部能量逻辑(TileEntitySolarPanel 父类、GUI、方块 metadata 3、辐照玻璃板物品) |
| IC2 | 硬依赖(required-after) |
提供铱板、强化玻璃两种配方材料 |
| DreamCraft | 可选,但加载时抑制本 mod 全部 9 个配方 | 由 DreamCraft 接管配方 |
其它 mod 在本 wiki 中未记录,以上依赖仅作纯文本说明。