mirror of
https://github.com/GTNewHorizons/EnderIO.git
synced 2026-10-26 14:24:40 +00:00
Fixed a bug that caused all 'power providing' blocks to send power to the wrong side of recievers. This resulted in the any direction limits specified for a conduit connection to be ignored.
This commit is contained in:
1 parent
1b3c1585dc
commit
9e06b59590
4 files changed
+105
-106
No files matched your search
@@ -17,7 +17,6 @@ import buildcraft.api.power.PowerHandler.Type;
|
||||
import crazypants.enderio.ModObject;
|
||||
import crazypants.enderio.machine.AbstractMachineEntity;
|
||||
import crazypants.enderio.machine.SlotDefinition;
|
||||
import crazypants.enderio.power.BasicCapacitor;
|
||||
import crazypants.enderio.power.Capacitors;
|
||||
import crazypants.enderio.power.IInternalPowerReceptor;
|
||||
import crazypants.enderio.power.PowerHandlerUtil;
|
||||
@@ -37,7 +36,7 @@ public class TileEntityStirlingGenerator extends AbstractMachineEntity implement
|
||||
|
||||
public TileEntityStirlingGenerator() {
|
||||
super(new SlotDefinition(1, 0), Type.ENGINE);
|
||||
configurePowerHandler();
|
||||
configurePowerHandler();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -45,9 +44,9 @@ public class TileEntityStirlingGenerator extends AbstractMachineEntity implement
|
||||
super.setCapacitor(capacitorType);
|
||||
configurePowerHandler();
|
||||
}
|
||||
|
||||
|
||||
void configurePowerHandler() {
|
||||
powerHandler.configure(0, 0, 0, capacitorType.capacitor.getMaxEnergyStored());
|
||||
powerHandler.configure(0, 0, 0, capacitorType.capacitor.getMaxEnergyStored());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -92,7 +91,7 @@ public class TileEntityStirlingGenerator extends AbstractMachineEntity implement
|
||||
|
||||
@Override
|
||||
public float getProgress() {
|
||||
if (totalBurnTime <= 0) {
|
||||
if(totalBurnTime <= 0) {
|
||||
return 0;
|
||||
}
|
||||
return (float) burnTime / (float) totalBurnTime;
|
||||
@@ -121,7 +120,7 @@ public class TileEntityStirlingGenerator extends AbstractMachineEntity implement
|
||||
protected boolean processTasks(boolean redstoneCheckPassed) {
|
||||
boolean needsUpdate = false;
|
||||
|
||||
if (burnTime > 0) {
|
||||
if(burnTime > 0) {
|
||||
// powerProvider.getPowerReceiver().receiveEnergy(Type.ENGINE,
|
||||
// ENERGY_PER_TICK, ForgeDirection.DOWN);
|
||||
powerHandler.setEnergy(powerHandler.getEnergyStored() + ENERGY_PER_TICK);
|
||||
@@ -131,10 +130,10 @@ public class TileEntityStirlingGenerator extends AbstractMachineEntity implement
|
||||
|
||||
needsUpdate |= transmitEnergy();
|
||||
|
||||
if (burnTime <= 0 && powerHandler.getEnergyStored() < powerHandler.getMaxEnergyStored() && redstoneCheckPassed) {
|
||||
if (inventory[0] != null && inventory[0].stackSize > 0) {
|
||||
if(burnTime <= 0 && powerHandler.getEnergyStored() < powerHandler.getMaxEnergyStored() && redstoneCheckPassed) {
|
||||
if(inventory[0] != null && inventory[0].stackSize > 0) {
|
||||
burnTime = TileEntityFurnace.getItemBurnTime(inventory[0]);
|
||||
if (burnTime > 0) {
|
||||
if(burnTime > 0) {
|
||||
totalBurnTime = burnTime;
|
||||
decrStackSize(0, 1);
|
||||
}
|
||||
@@ -147,7 +146,7 @@ public class TileEntityStirlingGenerator extends AbstractMachineEntity implement
|
||||
|
||||
private boolean transmitEnergy() {
|
||||
|
||||
if (powerHandler.getEnergyStored() <= 0) {
|
||||
if(powerHandler.getEnergyStored() <= 0) {
|
||||
powerHandler.update();
|
||||
return false;
|
||||
}
|
||||
@@ -160,7 +159,7 @@ public class TileEntityStirlingGenerator extends AbstractMachineEntity implement
|
||||
|
||||
checkReceptors();
|
||||
|
||||
if (!receptors.isEmpty() && !receptorIterator.hasNext()) {
|
||||
if(!receptors.isEmpty() && !receptorIterator.hasNext()) {
|
||||
receptorIterator = receptors.listIterator();
|
||||
}
|
||||
|
||||
@@ -169,10 +168,10 @@ public class TileEntityStirlingGenerator extends AbstractMachineEntity implement
|
||||
while (receptorIterator.hasNext() && canTransmit > 0 && appliedCount < numReceptors) {
|
||||
|
||||
Receptor receptor = receptorIterator.next();
|
||||
PowerReceiver pp = receptor.receptor.getPowerReceiver(receptor.fromDir);
|
||||
if (pp != null && pp.getMinEnergyReceived() <= canTransmit && pp.getType() != Type.ENGINE) {
|
||||
PowerReceiver pp = receptor.receptor.getPowerReceiver(receptor.fromDir.getOpposite());
|
||||
if(pp != null && pp.getMinEnergyReceived() <= canTransmit && pp.getType() != Type.ENGINE) {
|
||||
float used;
|
||||
if (receptor.receptor instanceof IInternalPowerReceptor) {
|
||||
if(receptor.receptor instanceof IInternalPowerReceptor) {
|
||||
used = PowerHandlerUtil.transmitInternal((IInternalPowerReceptor) receptor.receptor, pp, canTransmit, Type.ENGINE, receptor.fromDir.getOpposite());
|
||||
} else {
|
||||
used = pp.receiveEnergy(Type.ENGINE, canTransmit, receptor.fromDir.getOpposite());
|
||||
@@ -180,11 +179,11 @@ public class TileEntityStirlingGenerator extends AbstractMachineEntity implement
|
||||
transmitted += used;
|
||||
canTransmit -= used;
|
||||
}
|
||||
if (canTransmit <= 0) {
|
||||
if(canTransmit <= 0) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (!receptors.isEmpty() && !receptorIterator.hasNext()) {
|
||||
if(!receptors.isEmpty() && !receptorIterator.hasNext()) {
|
||||
receptorIterator = receptors.listIterator();
|
||||
}
|
||||
appliedCount++;
|
||||
@@ -197,7 +196,7 @@ public class TileEntityStirlingGenerator extends AbstractMachineEntity implement
|
||||
}
|
||||
|
||||
private void checkReceptors() {
|
||||
if (!receptorsDirty) {
|
||||
if(!receptorsDirty) {
|
||||
return;
|
||||
}
|
||||
receptors.clear();
|
||||
@@ -206,7 +205,7 @@ public class TileEntityStirlingGenerator extends AbstractMachineEntity implement
|
||||
for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
|
||||
BlockCoord checkLoc = bc.getLocation(dir);
|
||||
TileEntity te = worldObj.getBlockTileEntity(checkLoc.x, checkLoc.y, checkLoc.z);
|
||||
if (te instanceof IPowerReceptor) {
|
||||
if(te instanceof IPowerReceptor) {
|
||||
IPowerReceptor rec = (IPowerReceptor) te;
|
||||
receptors.add(new Receptor((IPowerReceptor) te, dir));
|
||||
}
|
||||
|
||||
@@ -98,7 +98,7 @@ public class TileHyperCube extends TileEntity implements IInternalPowerReceptor
|
||||
private void balanceCubeNetworkEnergy() {
|
||||
|
||||
List<TileHyperCube> cubes = HyperCubeRegister.instance.getCubesForChannel(channel);
|
||||
if (cubes == null || cubes.isEmpty()) {
|
||||
if(cubes == null || cubes.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
float totalEnergy = 0;
|
||||
@@ -109,7 +109,7 @@ public class TileHyperCube extends TileEntity implements IInternalPowerReceptor
|
||||
float energyPerNode = totalEnergy / cubes.size();
|
||||
float totalToTranfer = 0;
|
||||
for (TileHyperCube cube : cubes) {
|
||||
if (cube.getPowerHandler().getEnergyStored() < energyPerNode) {
|
||||
if(cube.getPowerHandler().getEnergyStored() < energyPerNode) {
|
||||
totalToTranfer += (energyPerNode - cube.getPowerHandler().getEnergyStored());
|
||||
}
|
||||
}
|
||||
@@ -135,10 +135,10 @@ public class TileHyperCube extends TileEntity implements IInternalPowerReceptor
|
||||
|
||||
@Override
|
||||
public void updateEntity() {
|
||||
if (worldObj == null) { // sanity check
|
||||
if(worldObj == null) { // sanity check
|
||||
return;
|
||||
}
|
||||
if (worldObj.isRemote) {
|
||||
if(worldObj.isRemote) {
|
||||
return;
|
||||
} // else is server, do all logic only on the server
|
||||
|
||||
@@ -152,8 +152,8 @@ public class TileHyperCube extends TileEntity implements IInternalPowerReceptor
|
||||
|
||||
powerHandler.setEnergy(stored);
|
||||
|
||||
if (registeredChannel == null ? channel != null : !registeredChannel.equals(channel)) {
|
||||
if (registeredChannel != null) {
|
||||
if(registeredChannel == null ? channel != null : !registeredChannel.equals(channel)) {
|
||||
if(registeredChannel != null) {
|
||||
HyperCubeRegister.instance.deregister(this, registeredChannel);
|
||||
}
|
||||
HyperCubeRegister.instance.register(this);
|
||||
@@ -166,7 +166,7 @@ public class TileHyperCube extends TileEntity implements IInternalPowerReceptor
|
||||
powerInputEnabled = RedstoneControlMode.isConditionMet(inputControlMode, this);
|
||||
powerOutputEnabled = RedstoneControlMode.isConditionMet(outputControlMode, this);
|
||||
|
||||
if (powerOutputEnabled) {
|
||||
if(powerOutputEnabled) {
|
||||
transmitEnergy();
|
||||
}
|
||||
|
||||
@@ -175,7 +175,7 @@ public class TileHyperCube extends TileEntity implements IInternalPowerReceptor
|
||||
// Update if our power has changed by more than 0.5%
|
||||
requiresClientSync |= lastSyncPowerStored != storedEnergy && worldObj.getTotalWorldTime() % 21 == 0;
|
||||
|
||||
if (requiresClientSync) {
|
||||
if(requiresClientSync) {
|
||||
lastSyncPowerStored = storedEnergy;
|
||||
// this will cause 'getPacketDescription()' to be called and its result
|
||||
// will be sent to the PacketHandler on the other end of
|
||||
@@ -189,7 +189,7 @@ public class TileHyperCube extends TileEntity implements IInternalPowerReceptor
|
||||
|
||||
private boolean transmitEnergy() {
|
||||
|
||||
if (powerHandler.getEnergyStored() <= 0) {
|
||||
if(powerHandler.getEnergyStored() <= 0) {
|
||||
return false;
|
||||
}
|
||||
float canTransmit = Math.min(powerHandler.getEnergyStored(), internalCapacitor.getMaxEnergyExtracted());
|
||||
@@ -197,7 +197,7 @@ public class TileHyperCube extends TileEntity implements IInternalPowerReceptor
|
||||
|
||||
checkReceptors();
|
||||
|
||||
if (!receptors.isEmpty() && !receptorIterator.hasNext()) {
|
||||
if(!receptors.isEmpty() && !receptorIterator.hasNext()) {
|
||||
receptorIterator = receptors.listIterator();
|
||||
}
|
||||
|
||||
@@ -206,12 +206,12 @@ public class TileHyperCube extends TileEntity implements IInternalPowerReceptor
|
||||
while (receptorIterator.hasNext() && canTransmit > 0 && appliedCount < numReceptors) {
|
||||
|
||||
Receptor receptor = receptorIterator.next();
|
||||
PowerReceiver pp = receptor.receptor.getPowerReceiver(receptor.fromDir);
|
||||
if (pp != null && pp.getMinEnergyReceived() <= canTransmit && pp.getType() != Type.ENGINE && !powerHandler.isPowerSource(receptor.fromDir)) {
|
||||
PowerReceiver pp = receptor.receptor.getPowerReceiver(receptor.fromDir.getOpposite());
|
||||
if(pp != null && pp.getMinEnergyReceived() <= canTransmit && pp.getType() != Type.ENGINE && !powerHandler.isPowerSource(receptor.fromDir)) {
|
||||
float used;
|
||||
float boundCanTransmit = Math.min(canTransmit, pp.getMaxEnergyReceived());
|
||||
if (boundCanTransmit > 0) {
|
||||
if (receptor.receptor instanceof IInternalPowerReceptor) {
|
||||
if(boundCanTransmit > 0) {
|
||||
if(receptor.receptor instanceof IInternalPowerReceptor) {
|
||||
used = PowerHandlerUtil.transmitInternal((IInternalPowerReceptor) receptor.receptor, pp, boundCanTransmit, Type.STORAGE,
|
||||
receptor.fromDir.getOpposite());
|
||||
} else {
|
||||
@@ -221,11 +221,11 @@ public class TileHyperCube extends TileEntity implements IInternalPowerReceptor
|
||||
canTransmit -= used;
|
||||
}
|
||||
}
|
||||
if (canTransmit <= 0) {
|
||||
if(canTransmit <= 0) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (!receptors.isEmpty() && !receptorIterator.hasNext()) {
|
||||
if(!receptors.isEmpty() && !receptorIterator.hasNext()) {
|
||||
receptorIterator = receptors.listIterator();
|
||||
}
|
||||
appliedCount++;
|
||||
@@ -248,14 +248,14 @@ public class TileHyperCube extends TileEntity implements IInternalPowerReceptor
|
||||
|
||||
@Override
|
||||
public PowerHandler getPowerHandler() {
|
||||
if (powerInputEnabled) {
|
||||
if(powerInputEnabled) {
|
||||
return powerHandler;
|
||||
}
|
||||
return getDisabledPowerHandler();
|
||||
}
|
||||
|
||||
private PowerHandler getDisabledPowerHandler() {
|
||||
if (disabledPowerHandler == null) {
|
||||
if(disabledPowerHandler == null) {
|
||||
disabledPowerHandler = PowerHandlerUtil.createHandler(new BasicCapacitor(0, 0), this, Type.STORAGE);
|
||||
}
|
||||
return disabledPowerHandler;
|
||||
@@ -270,7 +270,7 @@ public class TileHyperCube extends TileEntity implements IInternalPowerReceptor
|
||||
}
|
||||
|
||||
private void checkReceptors() {
|
||||
if (!receptorsDirty) {
|
||||
if(!receptorsDirty) {
|
||||
return;
|
||||
}
|
||||
receptors.clear();
|
||||
@@ -278,7 +278,7 @@ public class TileHyperCube extends TileEntity implements IInternalPowerReceptor
|
||||
for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
|
||||
BlockCoord checkLoc = myLoc.getLocation(dir);
|
||||
TileEntity te = worldObj.getBlockTileEntity(checkLoc.x, checkLoc.y, checkLoc.z);
|
||||
if (te instanceof IPowerReceptor) {
|
||||
if(te instanceof IPowerReceptor) {
|
||||
IPowerReceptor rec = (IPowerReceptor) te;
|
||||
receptors.add(new Receptor((IPowerReceptor) te, dir));
|
||||
}
|
||||
@@ -297,7 +297,7 @@ public class TileHyperCube extends TileEntity implements IInternalPowerReceptor
|
||||
|
||||
String channelName = nbtRoot.getString("channelName");
|
||||
String channelUser = nbtRoot.getString("channelUser");
|
||||
if (channelName != null && !channelName.isEmpty()) {
|
||||
if(channelName != null && !channelName.isEmpty()) {
|
||||
channel = new Channel(channelName, channelUser.isEmpty() ? null : channelUser);
|
||||
} else {
|
||||
channel = null;
|
||||
@@ -312,7 +312,7 @@ public class TileHyperCube extends TileEntity implements IInternalPowerReceptor
|
||||
nbtRoot.setFloat("storedEnergy", powerHandler.getEnergyStored());
|
||||
nbtRoot.setShort("inputControlMode", (short) inputControlMode.ordinal());
|
||||
nbtRoot.setShort("outputControlMode", (short) outputControlMode.ordinal());
|
||||
if (channel == null) {
|
||||
if(channel == null) {
|
||||
nbtRoot.setString("channelName", "");
|
||||
nbtRoot.setString("channelUser", "");
|
||||
} else {
|
||||
|
||||
@@ -69,20 +69,20 @@ public class TileCapacitorBank extends TileEntity implements IInternalPowerRecep
|
||||
@Override
|
||||
public void updateEntity() {
|
||||
|
||||
if (worldObj == null) { // sanity check
|
||||
if(worldObj == null) { // sanity check
|
||||
return;
|
||||
}
|
||||
|
||||
if (worldObj.isRemote) {
|
||||
if(worldObj.isRemote) {
|
||||
return;
|
||||
} // else is server, do all logic only on the server
|
||||
|
||||
if (multiblockDirty) {
|
||||
if(multiblockDirty) {
|
||||
formMultiblock();
|
||||
multiblockDirty = false;
|
||||
}
|
||||
|
||||
if (!isContoller()) {
|
||||
if(!isContoller()) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -100,22 +100,22 @@ public class TileCapacitorBank extends TileEntity implements IInternalPowerRecep
|
||||
boolean requiresClientSync = false;
|
||||
|
||||
boolean hasSignal = isRecievingRedstoneSignal();
|
||||
if (inputControlMode == RedstoneControlMode.IGNORE) {
|
||||
if(inputControlMode == RedstoneControlMode.IGNORE) {
|
||||
inputEnabled = true;
|
||||
} else if (inputControlMode == RedstoneControlMode.NEVER) {
|
||||
} else if(inputControlMode == RedstoneControlMode.NEVER) {
|
||||
inputEnabled = false;
|
||||
} else {
|
||||
inputEnabled = (inputControlMode == RedstoneControlMode.ON && hasSignal) || (inputControlMode == RedstoneControlMode.OFF && !hasSignal);
|
||||
}
|
||||
if (outputControlMode == RedstoneControlMode.IGNORE) {
|
||||
if(outputControlMode == RedstoneControlMode.IGNORE) {
|
||||
outputEnabled = true;
|
||||
} else if (outputControlMode == RedstoneControlMode.NEVER) {
|
||||
} else if(outputControlMode == RedstoneControlMode.NEVER) {
|
||||
outputEnabled = false;
|
||||
} else {
|
||||
outputEnabled = (outputControlMode == RedstoneControlMode.ON && hasSignal) || (outputControlMode == RedstoneControlMode.OFF && !hasSignal);
|
||||
}
|
||||
|
||||
if (outputEnabled) {
|
||||
if(outputEnabled) {
|
||||
transmitEnergy();
|
||||
}
|
||||
|
||||
@@ -124,7 +124,7 @@ public class TileCapacitorBank extends TileEntity implements IInternalPowerRecep
|
||||
// Update if our power has changed by more than 0.5%
|
||||
requiresClientSync |= lastSyncPowerStored != storedEnergy && worldObj.getTotalWorldTime() % 21 == 0;
|
||||
|
||||
if (requiresClientSync) {
|
||||
if(requiresClientSync) {
|
||||
lastSyncPowerStored = storedEnergy;
|
||||
|
||||
// this will cause 'getPacketDescription()' to be called and its result
|
||||
@@ -138,7 +138,7 @@ public class TileCapacitorBank extends TileEntity implements IInternalPowerRecep
|
||||
}
|
||||
|
||||
public boolean isOutputEnabled() {
|
||||
return getController().outputEnabled;
|
||||
return getController().outputEnabled;
|
||||
}
|
||||
|
||||
public boolean isInputEnabled() {
|
||||
@@ -147,7 +147,7 @@ public class TileCapacitorBank extends TileEntity implements IInternalPowerRecep
|
||||
|
||||
private boolean transmitEnergy() {
|
||||
|
||||
if (powerHandler.getEnergyStored() <= 0) {
|
||||
if(powerHandler.getEnergyStored() <= 0) {
|
||||
return false;
|
||||
}
|
||||
float canTransmit = Math.min(storedEnergy, maxIO);
|
||||
@@ -155,7 +155,7 @@ public class TileCapacitorBank extends TileEntity implements IInternalPowerRecep
|
||||
|
||||
checkReceptors();
|
||||
|
||||
if (!receptors.isEmpty() && !receptorIterator.hasNext()) {
|
||||
if(!receptors.isEmpty() && !receptorIterator.hasNext()) {
|
||||
receptorIterator = receptors.listIterator();
|
||||
}
|
||||
|
||||
@@ -164,17 +164,18 @@ public class TileCapacitorBank extends TileEntity implements IInternalPowerRecep
|
||||
while (receptorIterator.hasNext() && canTransmit > 0 && appliedCount < numReceptors) {
|
||||
|
||||
Receptor receptor = receptorIterator.next();
|
||||
PowerReceiver pp = receptor.receptor.getPowerReceiver(receptor.fromDir);
|
||||
if (pp != null && pp.getMinEnergyReceived() <= canTransmit && pp.getType() != Type.ENGINE && !powerHandler.isPowerSource(receptor.fromDir)) {
|
||||
PowerReceiver pp = receptor.receptor.getPowerReceiver(receptor.fromDir.getOpposite());
|
||||
if(pp != null && pp.getMinEnergyReceived() <= canTransmit && pp.getType() != Type.ENGINE && !powerHandler.isPowerSource(receptor.fromDir)) {
|
||||
float used;
|
||||
if (receptor.receptor instanceof IInternalPowerReceptor) {
|
||||
if(! (receptor.receptor instanceof IConduitBundle) ) { //power conduits manage the exchange between them an the cap bank
|
||||
if(receptor.receptor instanceof IInternalPowerReceptor) {
|
||||
if(!(receptor.receptor instanceof IConduitBundle)) { //power conduits manage the exchange between them an the cap bank
|
||||
used = PowerHandlerUtil.transmitInternal((IInternalPowerReceptor) receptor.receptor, pp, canTransmit, Type.STORAGE, receptor.fromDir.getOpposite());
|
||||
} else {
|
||||
IConduitBundle bundle = (IConduitBundle)receptor.receptor;
|
||||
IConduitBundle bundle = (IConduitBundle) receptor.receptor;
|
||||
IPowerConduit conduit = bundle.getConduit(IPowerConduit.class);
|
||||
if(conduit != null && conduit.getConectionMode(receptor.fromDir) == ConnectionMode.INPUT) {
|
||||
used = PowerHandlerUtil.transmitInternal((IInternalPowerReceptor) receptor.receptor, pp, canTransmit, Type.STORAGE, receptor.fromDir.getOpposite());
|
||||
if(conduit != null && conduit.getConectionMode(receptor.fromDir) == ConnectionMode.INPUT) {
|
||||
used = PowerHandlerUtil.transmitInternal((IInternalPowerReceptor) receptor.receptor, pp, canTransmit, Type.STORAGE,
|
||||
receptor.fromDir.getOpposite());
|
||||
} else {
|
||||
used = 0;
|
||||
}
|
||||
@@ -185,11 +186,11 @@ public class TileCapacitorBank extends TileEntity implements IInternalPowerRecep
|
||||
transmitted += used;
|
||||
canTransmit -= used;
|
||||
}
|
||||
if (canTransmit <= 0) {
|
||||
if(canTransmit <= 0) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (!receptors.isEmpty() && !receptorIterator.hasNext()) {
|
||||
if(!receptors.isEmpty() && !receptorIterator.hasNext()) {
|
||||
receptorIterator = receptors.listIterator();
|
||||
}
|
||||
appliedCount++;
|
||||
@@ -201,13 +202,13 @@ public class TileCapacitorBank extends TileEntity implements IInternalPowerRecep
|
||||
}
|
||||
|
||||
private void checkReceptors() {
|
||||
if (!receptorsDirty) {
|
||||
if(!receptorsDirty) {
|
||||
return;
|
||||
}
|
||||
receptors.clear();
|
||||
|
||||
BlockCoord[] coords;
|
||||
if (isMultiblock()) {
|
||||
if(isMultiblock()) {
|
||||
coords = multiblock;
|
||||
} else {
|
||||
coords = new BlockCoord[] { new BlockCoord(this) };
|
||||
@@ -218,9 +219,9 @@ public class TileCapacitorBank extends TileEntity implements IInternalPowerRecep
|
||||
for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
|
||||
BlockCoord checkLoc = bc.getLocation(dir);
|
||||
TileEntity te = worldObj.getBlockTileEntity(checkLoc.x, checkLoc.y, checkLoc.z);
|
||||
if (te instanceof IPowerReceptor) {
|
||||
if(te instanceof IPowerReceptor) {
|
||||
IPowerReceptor rec = (IPowerReceptor) te;
|
||||
if (!(te instanceof TileCapacitorBank)) {
|
||||
if(!(te instanceof TileCapacitorBank)) {
|
||||
receptors.add(new Receptor((IPowerReceptor) te, dir));
|
||||
}
|
||||
}
|
||||
@@ -267,11 +268,11 @@ public class TileCapacitorBank extends TileEntity implements IInternalPowerRecep
|
||||
}
|
||||
|
||||
private boolean isRecievingRedstoneSignal() {
|
||||
if (!isMultiblock()) {
|
||||
if(!isMultiblock()) {
|
||||
return worldObj.getStrongestIndirectPower(xCoord, yCoord, zCoord) > 0;
|
||||
}
|
||||
for (BlockCoord bc : multiblock) {
|
||||
if (worldObj.getStrongestIndirectPower(bc.x, bc.y, bc.z) > 0) {
|
||||
if(worldObj.getStrongestIndirectPower(bc.x, bc.y, bc.z) > 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -283,12 +284,12 @@ public class TileCapacitorBank extends TileEntity implements IInternalPowerRecep
|
||||
}
|
||||
|
||||
public void setInputControlMode(RedstoneControlMode inputControlMode) {
|
||||
if (!isMultiblock()) {
|
||||
if(!isMultiblock()) {
|
||||
this.inputControlMode = inputControlMode;
|
||||
} else {
|
||||
for (BlockCoord bc : multiblock) {
|
||||
TileCapacitorBank cp = getCapBank(bc);
|
||||
if (cp != null) {
|
||||
if(cp != null) {
|
||||
cp.inputControlMode = inputControlMode;
|
||||
}
|
||||
}
|
||||
@@ -300,12 +301,12 @@ public class TileCapacitorBank extends TileEntity implements IInternalPowerRecep
|
||||
}
|
||||
|
||||
public void setOutputControlMode(RedstoneControlMode outputControlMode) {
|
||||
if (!isMultiblock()) {
|
||||
if(!isMultiblock()) {
|
||||
this.outputControlMode = outputControlMode;
|
||||
} else {
|
||||
for (BlockCoord bc : multiblock) {
|
||||
TileCapacitorBank cp = getCapBank(bc);
|
||||
if (cp != null) {
|
||||
if(cp != null) {
|
||||
cp.outputControlMode = outputControlMode;
|
||||
}
|
||||
}
|
||||
@@ -314,7 +315,6 @@ public class TileCapacitorBank extends TileEntity implements IInternalPowerRecep
|
||||
|
||||
// ------------ Multiblock implementations
|
||||
|
||||
|
||||
int doGetMaxIO() {
|
||||
return maxIO;
|
||||
}
|
||||
@@ -324,14 +324,14 @@ public class TileCapacitorBank extends TileEntity implements IInternalPowerRecep
|
||||
}
|
||||
|
||||
PowerHandler doGetPowerHandler() {
|
||||
if (inputEnabled) {
|
||||
if(inputEnabled) {
|
||||
return powerHandler;
|
||||
}
|
||||
return getDisabledPowerHandler();
|
||||
}
|
||||
|
||||
private PowerHandler getDisabledPowerHandler() {
|
||||
if (disabledPowerHandler == null) {
|
||||
if(disabledPowerHandler == null) {
|
||||
disabledPowerHandler = PowerHandlerUtil.createHandler(new BasicCapacitor(0, 0), this, Type.STORAGE);
|
||||
}
|
||||
return disabledPowerHandler;
|
||||
@@ -372,7 +372,7 @@ public class TileCapacitorBank extends TileEntity implements IInternalPowerRecep
|
||||
|
||||
private void updatePowerHandler() {
|
||||
powerHandler = PowerHandlerUtil.createHandler(new BasicCapacitor(maxIO, maxStoredEnergy), this, Type.STORAGE);
|
||||
if (storedEnergy > maxStoredEnergy) {
|
||||
if(storedEnergy > maxStoredEnergy) {
|
||||
storedEnergy = maxStoredEnergy;
|
||||
}
|
||||
powerHandler.setEnergy(storedEnergy);
|
||||
@@ -386,7 +386,7 @@ public class TileCapacitorBank extends TileEntity implements IInternalPowerRecep
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(int blockId) {
|
||||
if (blockId != ModObject.blockCapacitorBank.actualId) {
|
||||
if(blockId != ModObject.blockCapacitorBank.actualId) {
|
||||
getController().receptorsDirty = true;
|
||||
}
|
||||
}
|
||||
@@ -397,12 +397,12 @@ public class TileCapacitorBank extends TileEntity implements IInternalPowerRecep
|
||||
}
|
||||
|
||||
private void clearCurrentMultiblock() {
|
||||
if (multiblock == null) {
|
||||
if(multiblock == null) {
|
||||
return;
|
||||
}
|
||||
for (BlockCoord bc : multiblock) {
|
||||
TileCapacitorBank res = getCapBank(bc);
|
||||
if (res != null) {
|
||||
if(res != null) {
|
||||
res.setMultiblock(null);
|
||||
|
||||
}
|
||||
@@ -415,7 +415,7 @@ public class TileCapacitorBank extends TileEntity implements IInternalPowerRecep
|
||||
blocks.add(this);
|
||||
findNighbouringBanks(this, blocks);
|
||||
|
||||
if (blocks.size() < 2) {
|
||||
if(blocks.size() < 2) {
|
||||
return;
|
||||
}
|
||||
for (TileCapacitorBank cb : blocks) {
|
||||
@@ -435,7 +435,7 @@ public class TileCapacitorBank extends TileEntity implements IInternalPowerRecep
|
||||
BlockCoord bc = new BlockCoord(tileCapacitorBank);
|
||||
for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
|
||||
TileCapacitorBank cb = getCapBank(bc.getLocation(dir));
|
||||
if (cb != null && !blocks.contains(cb)) {
|
||||
if(cb != null && !blocks.contains(cb)) {
|
||||
blocks.add(cb);
|
||||
findNighbouringBanks(cb, blocks);
|
||||
}
|
||||
@@ -444,12 +444,12 @@ public class TileCapacitorBank extends TileEntity implements IInternalPowerRecep
|
||||
|
||||
private void setMultiblock(BlockCoord[] mb) {
|
||||
|
||||
if (multiblock != null && isMaster()) {
|
||||
if(multiblock != null && isMaster()) {
|
||||
// split up current multiblock and reconfigure all the internal capacitors
|
||||
float powerPerBlock = storedEnergy / multiblock.length;
|
||||
for (BlockCoord bc : multiblock) {
|
||||
TileCapacitorBank cb = getCapBank(bc);
|
||||
if (cb != null) {
|
||||
if(cb != null) {
|
||||
cb.maxStoredEnergy = BASE_CAP.getMaxEnergyStored();
|
||||
cb.maxIO = BASE_CAP.getMaxEnergyExtracted();
|
||||
cb.storedEnergy = powerPerBlock;
|
||||
@@ -460,13 +460,13 @@ public class TileCapacitorBank extends TileEntity implements IInternalPowerRecep
|
||||
|
||||
}
|
||||
multiblock = mb;
|
||||
if (isMaster()) {
|
||||
if(isMaster()) {
|
||||
float totalStored = 0;
|
||||
int totalCap = multiblock.length * BASE_CAP.getMaxEnergyStored();
|
||||
int totalIO = multiblock.length * BASE_CAP.getMaxEnergyExtracted();
|
||||
for (BlockCoord bc : multiblock) {
|
||||
TileCapacitorBank cb = getCapBank(bc);
|
||||
if (cb != null) {
|
||||
if(cb != null) {
|
||||
totalStored += cb.storedEnergy;
|
||||
}
|
||||
cb.multiblockDirty = false;
|
||||
@@ -484,7 +484,7 @@ public class TileCapacitorBank extends TileEntity implements IInternalPowerRecep
|
||||
}
|
||||
|
||||
TileCapacitorBank getController() {
|
||||
if (isMaster() || !isMultiblock()) {
|
||||
if(isMaster() || !isMultiblock()) {
|
||||
return this;
|
||||
}
|
||||
TileCapacitorBank res = getCapBank(multiblock[0]);
|
||||
@@ -496,7 +496,7 @@ public class TileCapacitorBank extends TileEntity implements IInternalPowerRecep
|
||||
}
|
||||
|
||||
boolean isMaster() {
|
||||
if (multiblock != null) {
|
||||
if(multiblock != null) {
|
||||
return multiblock[0].equals(xCoord, yCoord, zCoord);
|
||||
}
|
||||
return false;
|
||||
@@ -507,12 +507,12 @@ public class TileCapacitorBank extends TileEntity implements IInternalPowerRecep
|
||||
}
|
||||
|
||||
private boolean isCurrentMultiblockValid() {
|
||||
if (multiblock == null) {
|
||||
if(multiblock == null) {
|
||||
return false;
|
||||
}
|
||||
for (BlockCoord bc : multiblock) {
|
||||
TileCapacitorBank res = getCapBank(bc);
|
||||
if (res == null || !res.isMultiblock()) {
|
||||
if(res == null || !res.isMultiblock()) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -525,7 +525,7 @@ public class TileCapacitorBank extends TileEntity implements IInternalPowerRecep
|
||||
|
||||
private TileCapacitorBank getCapBank(int x, int y, int z) {
|
||||
TileEntity te = worldObj.getBlockTileEntity(x, y, z);
|
||||
if (te instanceof TileCapacitorBank) {
|
||||
if(te instanceof TileCapacitorBank) {
|
||||
return (TileCapacitorBank) te;
|
||||
}
|
||||
return null;
|
||||
@@ -545,7 +545,7 @@ public class TileCapacitorBank extends TileEntity implements IInternalPowerRecep
|
||||
updatePowerHandler();
|
||||
|
||||
boolean wasMulti = isMultiblock();
|
||||
if (nbtRoot.getBoolean("isMultiblock")) {
|
||||
if(nbtRoot.getBoolean("isMultiblock")) {
|
||||
int[] coords = nbtRoot.getIntArray("multiblock");
|
||||
multiblock = new BlockCoord[coords.length / 3];
|
||||
int c = 0;
|
||||
@@ -569,7 +569,7 @@ public class TileCapacitorBank extends TileEntity implements IInternalPowerRecep
|
||||
nbtRoot.setShort("outputControlMode", (short) outputControlMode.ordinal());
|
||||
|
||||
nbtRoot.setBoolean("isMultiblock", isMultiblock());
|
||||
if (isMultiblock()) {
|
||||
if(isMultiblock()) {
|
||||
int[] vals = new int[multiblock.length * 3];
|
||||
int i = 0;
|
||||
for (BlockCoord bc : multiblock) {
|
||||
|
||||
@@ -31,7 +31,7 @@ public class TileEntitySolarPanel extends TileEntity implements IInternalPowerRe
|
||||
private float energyPerTick = 1;
|
||||
|
||||
public TileEntitySolarPanel() {
|
||||
capacitor = new BasicCapacitor(0,10000,10);
|
||||
capacitor = new BasicCapacitor(0, 10000, 10);
|
||||
powerHandler = PowerHandlerUtil.createHandler(capacitor, this, Type.ENGINE);
|
||||
}
|
||||
|
||||
@@ -69,7 +69,7 @@ public class TileEntitySolarPanel extends TileEntity implements IInternalPowerRe
|
||||
|
||||
@Override
|
||||
public void updateEntity() {
|
||||
if (worldObj == null || worldObj.isRemote) {
|
||||
if(worldObj == null || worldObj.isRemote) {
|
||||
return;
|
||||
}
|
||||
collectEnergy();
|
||||
@@ -77,7 +77,7 @@ public class TileEntitySolarPanel extends TileEntity implements IInternalPowerRe
|
||||
}
|
||||
|
||||
private void collectEnergy() {
|
||||
if (!worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord)) {
|
||||
if(!worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord)) {
|
||||
return;
|
||||
}
|
||||
float fromSun = calculateLightRatio();
|
||||
@@ -90,7 +90,7 @@ public class TileEntitySolarPanel extends TileEntity implements IInternalPowerRe
|
||||
int lightValue = worldObj.getSavedLightValue(EnumSkyBlock.Sky, xCoord, yCoord, zCoord) - worldObj.skylightSubtracted;
|
||||
float sunAngle = worldObj.getCelestialAngleRadians(1.0F);
|
||||
|
||||
if (sunAngle < (float) Math.PI) {
|
||||
if(sunAngle < (float) Math.PI) {
|
||||
sunAngle += (0.0F - sunAngle) * 0.2F;
|
||||
} else {
|
||||
sunAngle += (((float) Math.PI * 2F) - sunAngle) * 0.2F;
|
||||
@@ -104,7 +104,7 @@ public class TileEntitySolarPanel extends TileEntity implements IInternalPowerRe
|
||||
|
||||
private boolean transmitEnergy() {
|
||||
|
||||
if (powerHandler.getEnergyStored() <= 0) {
|
||||
if(powerHandler.getEnergyStored() <= 0) {
|
||||
powerHandler.update();
|
||||
return false;
|
||||
}
|
||||
@@ -119,7 +119,7 @@ public class TileEntitySolarPanel extends TileEntity implements IInternalPowerRe
|
||||
|
||||
checkReceptors();
|
||||
|
||||
if (!receptors.isEmpty() && !receptorIterator.hasNext()) {
|
||||
if(!receptors.isEmpty() && !receptorIterator.hasNext()) {
|
||||
receptorIterator = receptors.listIterator();
|
||||
}
|
||||
|
||||
@@ -128,10 +128,10 @@ public class TileEntitySolarPanel extends TileEntity implements IInternalPowerRe
|
||||
while (receptorIterator.hasNext() && canTransmit > 0 && appliedCount < numReceptors) {
|
||||
|
||||
Receptor receptor = receptorIterator.next();
|
||||
PowerReceiver pp = receptor.receptor.getPowerReceiver(receptor.fromDir);
|
||||
if (pp != null && pp.getMinEnergyReceived() <= canTransmit && pp.getType() != Type.ENGINE) {
|
||||
PowerReceiver pp = receptor.receptor.getPowerReceiver(receptor.fromDir.getOpposite());
|
||||
if(pp != null && pp.getMinEnergyReceived() <= canTransmit && pp.getType() != Type.ENGINE) {
|
||||
float used;
|
||||
if (receptor.receptor instanceof IInternalPowerReceptor) {
|
||||
if(receptor.receptor instanceof IInternalPowerReceptor) {
|
||||
used = PowerHandlerUtil.transmitInternal((IInternalPowerReceptor) receptor.receptor, pp, canTransmit, Type.ENGINE, receptor.fromDir.getOpposite());
|
||||
} else {
|
||||
used = pp.receiveEnergy(Type.ENGINE, canTransmit, receptor.fromDir.getOpposite());
|
||||
@@ -139,11 +139,11 @@ public class TileEntitySolarPanel extends TileEntity implements IInternalPowerRe
|
||||
transmitted += used;
|
||||
canTransmit -= used;
|
||||
}
|
||||
if (canTransmit <= 0) {
|
||||
if(canTransmit <= 0) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (!receptors.isEmpty() && !receptorIterator.hasNext()) {
|
||||
if(!receptors.isEmpty() && !receptorIterator.hasNext()) {
|
||||
receptorIterator = receptors.listIterator();
|
||||
}
|
||||
appliedCount++;
|
||||
@@ -156,7 +156,7 @@ public class TileEntitySolarPanel extends TileEntity implements IInternalPowerRe
|
||||
}
|
||||
|
||||
private void checkReceptors() {
|
||||
if (!receptorsDirty) {
|
||||
if(!receptorsDirty) {
|
||||
return;
|
||||
}
|
||||
receptors.clear();
|
||||
@@ -165,10 +165,10 @@ public class TileEntitySolarPanel extends TileEntity implements IInternalPowerRe
|
||||
ForgeDirection dir = ForgeDirection.DOWN;
|
||||
BlockCoord checkLoc = bc.getLocation(dir);
|
||||
TileEntity te = worldObj.getBlockTileEntity(checkLoc.x, checkLoc.y, checkLoc.z);
|
||||
if (te instanceof IPowerReceptor) {
|
||||
if(te instanceof IPowerReceptor) {
|
||||
IPowerReceptor rec = (IPowerReceptor) te;
|
||||
PowerReceiver reciever = rec.getPowerReceiver(dir.getOpposite());
|
||||
if (reciever != null) {
|
||||
if(reciever != null) {
|
||||
receptors.add(new Receptor((IPowerReceptor) te, dir));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user