本模组的发电机分为2个系列,分别为水发电机系列和涡轮发电机,但是每个等级水发电机的基础发电量是同等级涡轮发电机的2倍
水发电机:
代码部分:
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(((最大能量储存 - 现有的能量) / 基础发电量), 最大流体消耗), 而最大流体消耗 = 基础发电量。
结论:水发电机的理论最大发电量 = 基础发电量 * 基础发电量
涡轮发电机:
代码部分:
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) * 基础发电量