From 324242bfeaf463a9da99ca2ecae01f7e200a3848 Mon Sep 17 00:00:00 2001 From: FloSoft Date: Tue, 5 Mar 2013 18:02:49 +0100 Subject: [PATCH] TileGenericPipe.java: - fixes not calling powerRequest of IPowerReceptor-Pipe PipePowerWood.java: - fixes exploding pipes directly behind of a wooden pipe if no power-consumer exists, instead it will only extract the power amount which is requested by the consumers --- common/buildcraft/transport/TileGenericPipe.java | 4 +++- common/buildcraft/transport/pipes/PipePowerWood.java | 9 +++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/common/buildcraft/transport/TileGenericPipe.java b/common/buildcraft/transport/TileGenericPipe.java index 71f43807..9b81234b 100644 --- a/common/buildcraft/transport/TileGenericPipe.java +++ b/common/buildcraft/transport/TileGenericPipe.java @@ -418,7 +418,9 @@ public class TileGenericPipe extends TileEntity implements IPowerReceptor, ITank @Override public int powerRequest() { - return getPowerProvider().getMaxEnergyReceived(); + if (BlockGenericPipe.isValid(pipe) && pipe instanceof IPowerReceptor) + return ((IPowerReceptor) pipe).powerRequest(); + return 0; } @Override diff --git a/common/buildcraft/transport/pipes/PipePowerWood.java b/common/buildcraft/transport/pipes/PipePowerWood.java index 98174748..cdb85df7 100644 --- a/common/buildcraft/transport/pipes/PipePowerWood.java +++ b/common/buildcraft/transport/pipes/PipePowerWood.java @@ -108,9 +108,14 @@ public class PipePowerWood extends Pipe implements IPowerReceptor { energyToRemove = 1; } - float energyUsed = powerProvider.useEnergy(1, energyToRemove, true); + float energyUsable = powerProvider.useEnergy(1, energyToRemove, false); - trans.receiveEnergy(o.getOpposite(), energyUsed); + float energySend = Math.min(energyUsable, ((PipeTransportPower)transport).powerQuery[o.ordinal()]); + if(energySend > 0) + { + trans.receiveEnergy(o.getOpposite(), energySend); + powerProvider.useEnergy(1, energySend, true); + } } } }