跳到正文
烈焰甘蔗Wiki

Solar Engine(太阳能引擎)

基本信息

属性 值
注册名 StevesCarts:CartModule,metadata 1 / 45 / 56
模块类 ModuleSolarStandard(1)、ModuleSolarBasic(45)、ModuleSolarCompact(56)
基类 ModuleSolarBase
引擎分组 engineGroup(ModuleData.java:929、930、933)
最大堆叠 64(未调用 setMaxStackSize)
耐久 无(setMaxDamage(0),ItemCartModule.java:25)
附魔适用 否
燃料槽 无(ModuleSolarBase.hasSlots() 返回 false,ModuleSolarBase.java:25-27)

⚠️ 审计订正

  • 原文注册名 StevesCarts:SolarEngine 错。不存在此注册名,引擎均为 StevesCarts:CartModule 的 metadata 变体(ModItems.java:40)。
  • 原文「最大堆叠 1」错 → 64。
  • 原文「附魔适用 是」错 → 否。
  • 原文把 ID 1 称作「Standard Solar Engine」错。源码中 ID 1 的模块名就叫 "Solar Engine",ModuleSolarStandard 只是类名(ModuleData.java:232)。
  • 原文「利用光照产生动力,白天无需燃料即可持续输出。夜间不产生能量」机制描述不准。实际判定是方块光照等级 == 15 且每 tick 50% 概率充能(ModuleSolarBase.java:78-85),与"白天"不是同一个条件(熔岩/火把旁同样可发电)。
  • 原文未给出容量/发电速度,已补上真实数值。

充电机制(ModuleSolarBase.java:53-85)

private void updateLight() {
    light = getCart().worldObj.getBlockLightValue(x, y, z);
    if (light == 15 && !getCart().worldObj.canBlockSeeTheSky(x, y + 1, z)) { light = 14; }
}
private void chargeSolar() {
    if (light == 15 && getCart().worldObj.rand.nextInt(8) < 4) {
        setFuelLevel(getFuelLevel() + getGenSpeed());
        if (getFuelLevel() > getMaxCapacity()) { setFuelLevel(getMaxCapacity()); }
    }
}
  • 采 getBlockLightValue(方块光照,非天空光照)
  • 满光但被遮挡时降为 14 → 不发电
  • 满光时每 tick 有 4/8 概率加 getGenSpeed() 点能量

变体(ModuleData.java:232-255)

变体 ID 功率 容量 每 tick 发电 安装面 顶部模型
Solar Engine(ModuleSolarStandard) 1 20 800000 5 CENTER + TOP 无(removeModel("Top"))
Basic Solar Engine(ModuleSolarBasic) 45 12 100000 2 CENTER + TOP 无(removeModel("Top"))
Compact Solar Engine(ModuleSolarCompact) 56 32 25000 5 RIGHT + LEFT 有

容量/发电速度证据:ModuleSolarStandard.java:17-24、ModuleSolarBasic.java:17-24、ModuleSolarCompact.java:26-33

合成配方

变体 配方
Solar Engine (1) 铁锭/太阳能板/铁锭;太阳能板/高级 PCB/太阳能板;活塞/太阳能板/活塞(ModuleData.java:235-238)
Basic Solar (45) 太阳能板/铁锭/太阳能板;铁锭/简单 PCB/铁锭;空/活塞/空(ModuleData.java:243-246)
Compact (56) 高级太阳能板/铁锭/高级太阳能板;高级 PCB/红石/高级 PCB;活塞/铁锭/活塞(ModuleData.java:251-255)

相关条目

浏览全部模组