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 倍:

物品列表

全部 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 光吸收板

横向对比要点

  1. 数值全部是 4 倍等比:8192 → 32768 → 131072 → 524288,容量同步 4 倍,只有光子板因 int 溢出被截断。
  2. 四个方块的属性完全相同:材质 Material.rock、硬度 3F、soundTypeMetal、无爆炸抗性、无亮度。它们之间唯一的差异是 TileEntity 传入的 5 个配置值 + 父类构造第 2 参数 + 贴图。
  3. 四个方块的 onBlockActivated 逐字相同:未潜行 → 打开 Advanced Solar Panel GUI(GUI ID 恒为 1),潜行 → 返回 false 交回原版拆除。
  4. 夜间发电四项默认全为 0:默认配置下所有面板夜间完全不发电(前提是父类按 GenNight/GenDay 二选一结算,该逻辑在 Advanced Solar Panel 中)。
  5. 白天发电 = 输出上限(四项全部相等):意味着即使父类全额供给,输出侧也不构成额外瓶颈。

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 中未记录,以上依赖仅作纯文本说明。