package mekanism.common.integration; import mekanism.api.MekanismConfig.general; import mekanism.common.base.IEnergyWrapper; import net.darkhax.tesla.api.ITeslaConsumer; import net.darkhax.tesla.api.ITeslaHolder; import net.darkhax.tesla.api.ITeslaProducer; import net.minecraft.util.EnumFacing; import net.minecraftforge.fml.common.Optional.Interface; import net.minecraftforge.fml.common.Optional.InterfaceList; import net.minecraftforge.fml.common.Optional.Method; @InterfaceList({ @Interface(iface = "net.darkhax.tesla.api.ITeslaConsumer", modid = "tesla"), @Interface(iface = "net.darkhax.tesla.api.ITeslaProducer", modid = "tesla"), @Interface(iface = "net.darkhax.tesla.api.ITeslaHolder", modid = "tesla") }) public class TeslaIntegration implements ITeslaHolder, ITeslaConsumer, ITeslaProducer { public IEnergyWrapper tileEntity; public EnumFacing side; public TeslaIntegration(IEnergyWrapper tile, EnumFacing facing) { tileEntity = tile; side = facing; } @Override @Method(modid = "tesla") public long getStoredPower() { return (long)Math.round(tileEntity.getEnergy()*general.TO_TESLA); } @Override @Method(modid = "tesla") public long getCapacity() { return (long)Math.round(tileEntity.getMaxEnergy()*general.TO_TESLA); } @Override @Method(modid = "tesla") public long takePower(long power, boolean simulated) { return (long)(tileEntity.extractEnergy(side, (int)(power*general.FROM_TESLA*general.TO_RF), simulated)*general.FROM_RF*general.TO_TESLA); } @Override @Method(modid = "tesla") public long givePower(long power, boolean simulated) { return (long)(tileEntity.receiveEnergy(side, (int)(power*general.FROM_TESLA*general.TO_RF), simulated)*general.FROM_RF*general.TO_TESLA); } }