光谱太阳能板(Spectral Solar Panel)
四级太阳能板链条的第一级,也是本 mod 最基础的发电方块。
基本信息
| 属性 | 值 |
|---|---|
| modid | supersolarpanel |
| 内部方块名 | BlockSpectralSP(setBlockName) |
| 注册名 | SingularSolarPanel 之上的 BlockSpectralSP,注册于 MainSSP.BlockSpectralSP |
| TileEntity | TileSpectralSolarPanel |
| 材质 | Material.rock |
| 硬度 | 3.0F(setHardness(3F)) |
| 爆炸抗性 | 未设置(沿用 Material.rock 默认) |
| 亮度 | 无(未调用 setLightLevel) |
| 脚步声 | soundTypeMetal |
| 创造栏 | Super Solar Panels(MainSSP.tabssp) |
| 本地化名 | tile.BlockSpectralSP.name = Spectral Solar Panel |
发电数值
数值全部来自配置文件,构造 TileEntity 时传入。默认值:
| 参数 | 配置键 | 默认值 | 单位 |
|---|---|---|---|
| 白天发电 | SpectralSPGenDay |
8192 | EU/t |
| 夜间发电 | SpectralSPGenNight |
0 | EU/t |
| 输出 | SpectralSPOutput |
8192 | EU/t |
| 容量 | SpectralSPStorage |
81,920,000 | EU |
默认配置下白天发电率与输出上限相等(8192 = 8192),意味着满阳光时面板始终处于满输出状态。容量为输出的 10000 tick(500 秒)。
⚠️ 这些数字不等于「什么条件下发电」。本 mod 源码中不存在任何 y 高度、天空可见性(
canSeeSky)、光照等级或昼夜判定的运算。发电量的实际计算在 Advanced Solar Panel 的advsolar.common.tiles.TileEntitySolarPanel中完成,本仓库不包含该代码。详见分类页的「本 mod 不具备的内容」。
TileEntity 参数
TileSpectralSolarPanel 只有 20 行,构造时向父类传入 6 个参数:
super("blockSpectralSolarPanel.name", 5,
ConfigLoader.spectralpanelGenDay,
ConfigLoader.spectralpanelGenNight,
ConfigLoader.spectralpanelOutput,
ConfigLoader.spectralpanelStorage);
- 第 1 个参数
"blockSpectralSolarPanel.name"是本地化键(lang 中为 “Spectral Solar Panel”),不是方块名。 - 第 2 个参数是整数字面量
5。其含义由 Advanced Solar Panel 的父类定义,本仓库未定义;可确证的只是四个面板分别传入 5/6/7/8,且与配方链顺序一致(光谱 5 → 奇异 6 → 光吸收 7 → 光子 8)。 - 其余 4 个参数即上表数值。
本类不覆写任何 NBT 方法(writeToNBT / readFromNBT 在本仓库中 grep 无匹配),NBT 与状态同步完全由父类处理。
摆放要求
无朝向要求。AbstractSSP 未覆写 onBlockActivated 之外的放置逻辑,也未定义朝向 metadata。
交互
| 触发 | 行为 |
|---|---|
| 右键(未潜行) | 打开 Advanced Solar Panel 的 GUI(player.openGui(AdvancedSolarPanel.instance, 1, ...),GUI ID 恒为 1) |
| 右键(潜行) | 返回 false,不打开 GUI,交回原版破坏流程(潜行拆除) |
| 左键 | 未覆写,走原版挖掘流程 |
注意:右键 GUI 打开前只判断了 tileentity != null,没有判断 TileEntity 类型或面板状态。
物品形态
ItemBlockSpSP(MainSSP 中以 GameRegistry.registerBlock(BlockSpectralSP, ItemBlockSpSP.class, "SpectralSolarPanel") 绑定)。
- 继承
ItemBlock,未设置耐久(未调用setMaxDamage),因此无磨损。 - 悬停按住 Shift 显示 4 行数值(白天发电 / 夜间发电 / 输出 / 容量),单位硬编码为
EU/t与EU;不按 Shift 只显示<Press SHIFT>。 - 本条目不显示额外的描述行(只有光子板有)。
纹理
BlockSpectralSP 声明 IIcon[2][6] 两组贴图,但只使用第 1 组(icons[1],即 spsp_*):
| 面 | 图标 |
|---|---|
| 底面 (0) | spsp_bottom |
| 顶面 (1) | spsp_top |
| 侧面 (2–5) | spsp_side |
getIcon 中 case 2 的 if (metadata == 2) return icons[1][2]; else return icons[1][2]; 两分支返回同一个图标,是无效分支。所有 metadata 值都得到相同外观。
合成配方
3×3 有序合成,仅在 DreamCraft 未加载时注册(见 MainSSP.PostInit 的 if (!Loader.isModLoaded("dreamcraft"))):
B B B A = 太阳能板分光器 (solarsplitter)
B A B B = Advanced Solar Panel 的 blockAdvSolarPanel,metadata 3
B B B