光谱太阳能板(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

相关条目