package mekanism.common; import java.util.HashMap; import mekanism.api.MekanismConfig.general; import mekanism.api.gas.Gas; import net.minecraftforge.fluids.FluidContainerRegistry; import cpw.mods.fml.common.ModAPIManager; import buildcraft.api.fuels.IronEngineFuel; import buildcraft.api.fuels.IronEngineFuel.Fuel; public class FuelHandler { public static HashMap fuels = new HashMap(); public static void addGas(Gas gas, int burnTicks, double energyPerMilliBucket) { fuels.put(gas.getName(), new FuelGas(burnTicks, energyPerMilliBucket)); } public static FuelGas getFuel(Gas gas) { if(fuels.containsKey(gas.getName())) { return fuels.get(gas.getName()); } if(ModAPIManager.INSTANCE.hasAPI("BuildCraftAPI|fuels") && gas.hasFluid()) { Fuel bcFuel = IronEngineFuel.getFuelForFluid(gas.getFluid()); if(bcFuel != null) { FuelGas fuel = new FuelGas(bcFuel); fuels.put(gas.getName(), fuel); return fuel; } } return null; } public static class FuelGas { public int burnTicks; public double energyPerTick; public FuelGas(int duration, double energyDensity) { burnTicks = duration; energyPerTick = energyDensity / duration; } public FuelGas(Fuel bcFuel) { burnTicks = bcFuel.totalBurningTime / FluidContainerRegistry.BUCKET_VOLUME; energyPerTick = bcFuel.powerPerCycle * general.FROM_BC; } } }