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 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 net.minecraftforge.common.util.ForgeDirection;
|
||||||
import techreborn.api.power.IEnergyInterfaceTile;
|
import techreborn.api.power.IEnergyInterfaceTile;
|
||||||
import techreborn.asm.Strippable;
|
import techreborn.asm.Strippable;
|
||||||
import techreborn.tiles.TileMachineBase;
|
|
||||||
|
|
||||||
|
|
||||||
@Optional.InterfaceList(value = {
|
@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.IEnergySink", modid = "IC2"),
|
||||||
@Optional.Interface(iface = "ic2.api.energy.tile.IEnergySource", 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
|
IEnergyReceiver, IEnergyProvider, //Cofh
|
||||||
IEnergyInterfaceTile,//TechReborn
|
IEnergyInterfaceTile,//TechReborn
|
||||||
IEnergyTile, IEnergySink, IEnergySource //Ic2
|
IEnergyTile, IEnergySink, IEnergySource //Ic2
|
||||||
|
@ -181,8 +180,6 @@ public abstract class TilePowerAcceptor extends TileMachineBase implements
|
||||||
}
|
}
|
||||||
//END COFH
|
//END COFH
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//TechReborn
|
//TechReborn
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Add table
Reference in a new issue