Fixed RF not outputting

This commit is contained in:
modmuss50 2015-07-02 13:16:47 +01:00
parent dcc437c1fe
commit a5505ccd0c
3 changed files with 62 additions and 5 deletions

View file

@ -6,5 +6,5 @@ public class PowerSystem {
public static boolean EUPOWENET = true;
public static double euPerRF = 0.2; // 5eu = 1rf? //TODO
public static double euPerRF = 5; // 5eu = 1rf? //TODO
}

View file

@ -0,0 +1,60 @@
package techreborn.powerSystem;
import cofh.api.energy.IEnergyConnection;
import cofh.api.energy.IEnergyHandler;
import cofh.api.energy.IEnergyProvider;
import cofh.api.energy.IEnergyReceiver;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.util.ForgeDirection;
import techreborn.tiles.TileMachineBase;
/**
* This is done in a different class so the updateEntity can be striped for ic2 and this one will still get called.
*/
public abstract class RFProviderTile extends TileMachineBase implements IEnergyReceiver, IEnergyProvider {
@Override
public void updateEntity() {
super.updateEntity();
sendPower();
}
public void sendPower() {//TODO tick this every tick
if (!PowerSystem.RFPOWENET) {
return;
}
for (ForgeDirection direction : ForgeDirection.VALID_DIRECTIONS) {
int extracted = getEnergyStored(direction);
TileEntity tile = worldObj.getTileEntity(xCoord + direction.offsetX, yCoord + direction.offsetY, zCoord + direction.offsetZ);
if (isPoweredTile(tile, direction)) {
if (tile instanceof IEnergyHandler) {
IEnergyHandler handler = (IEnergyHandler) tile;
int neededRF = handler.receiveEnergy(
direction.getOpposite(),
extracted, false);
extractEnergy(direction.getOpposite(), neededRF, false);
} else if (tile instanceof IEnergyReceiver) {
IEnergyReceiver handler = (IEnergyReceiver) tile;
int neededRF = handler.receiveEnergy(
direction.getOpposite(),
extracted, false);
extractEnergy(direction.getOpposite(), neededRF, false);
}
}
}
}
public boolean isPoweredTile(TileEntity tile, ForgeDirection side) {
if (tile == null) {
return false;
} else if (tile instanceof IEnergyHandler || tile instanceof IEnergyReceiver) {
return ((IEnergyConnection) tile).canConnectEnergy(side.getOpposite());
} else {
return false;
}
}
}

View file

@ -16,7 +16,6 @@ import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.common.util.ForgeDirection;
import techreborn.api.power.IEnergyInterfaceTile;
import techreborn.asm.Strippable;
import techreborn.tiles.TileMachineBase;
@Optional.InterfaceList(value = {
@ -24,7 +23,7 @@ import techreborn.tiles.TileMachineBase;
@Optional.Interface(iface = "ic2.api.energy.tile.IEnergySink", modid = "IC2"),
@Optional.Interface(iface = "ic2.api.energy.tile.IEnergySource", modid = "IC2")
})
public abstract class TilePowerAcceptor extends TileMachineBase implements
public abstract class TilePowerAcceptor extends RFProviderTile implements
IEnergyReceiver, IEnergyProvider, //Cofh
IEnergyInterfaceTile,//TechReborn
IEnergyTile, IEnergySink, IEnergySource //Ic2
@ -181,8 +180,6 @@ public abstract class TilePowerAcceptor extends TileMachineBase implements
}
//END COFH
//TechReborn
@Override