本模组的发电机分为2个系列,分别为水发电机系列和涡轮发电机,但是每个等级水发电机的基础发电量是同等级涡轮发电机的2倍

  1. 水发电机:

  • 代码部分:

if (this.getEnergyStored(EnumFacing.NORTH) < this.getMaxEnergyStored(EnumFacing.NORTH)) {
    int energy缺失 = this.getMaxEnergyStored(EnumFacing.NORTH) - this.getEnergyStored(EnumFacing.NORTH);
    FluidStack fluidStack = tank.drainInternal(Math.min((energy缺失 / updateEnergy), this.maxFluidDrain), true);
    if (fluidStack != null) {
        this.receiveEnergy = fluidStack.amount * updateEnergy;
    }
} else {
    this.receiveEnergy = 0;
}
this.energyStorage.modifyEnergyStored(this.receiveEnergy);
  • 分析:根据代码可以知道:发电量 = 流体消耗 * 基础发电量,而基础发电量是固定,每个不同等级的水发电机有不同的基础发电量,所以只用关心流体消耗。

               其中:流体消耗 = Math.min(((最大能量储存 - 现有的能量) / 基础发电量), 最大流体消耗), 而最大流体消耗 = 基础发电量。

  • 结论:水发电机的理论最大发电量 = 基础发电量 * 基础发电量


  1. 涡轮发电机:

  • 代码部分:

if (this.energyStorage.getEnergyStored() < this.energyStorage.getMaxEnergyStored()) {
    float liquidLeve = this.getLiquidLeve(this.getWorld(), this.getPos(), 0);
    this.receiveEnergy = (int) (updateEnergy * liquidLeve);
} else {
    this.receiveEnergy = 0;
}
this.energyStorage.modifyEnergyStored(this.receiveEnergy);
  • 分析:根据代码可以知道:发电量 = 流体高度 * 基础发电量,而基础发电量也是固定,每个不同等级的涡轮发电机有不同的基础发电量,所以这里只用关心流体高度。

           其中:流体高度 = 方块上方的水方块的高度(可以直到无法放置水方块,不限制是否为完整的方块),所以流体高度只受到世界的高度限制。

  • 结论:水发电机的理论最大发电量 = (世界的最高高度 - 1) * 基础发电量