Fixed RF not outputting
This commit is contained in:
parent
dcc437c1fe
commit
a5505ccd0c
3 changed files with 62 additions and 5 deletions
|
@ -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
|
||||
}
|
||||
|
|
60
src/main/java/techreborn/powerSystem/RFProviderTile.java
Normal file
60
src/main/java/techreborn/powerSystem/RFProviderTile.java
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue