Files
ForestryMC/src/main/java/forestry/plugins/PluginEnderIO.java
T

67 lines
2.2 KiB
Java
Raw Normal View History

package forestry.plugins;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.fluids.Fluid;
import cpw.mods.fml.common.event.FMLInterModComms;
import forestry.core.GameMode;
import forestry.core.config.Defaults;
import forestry.core.fluids.Fluids;
import forestry.core.proxy.Proxies;
@Plugin(pluginID = "EnderIO", name = "EnderIO", author = "mezz", url = Defaults.URL, unlocalizedDescription = "for.plugin.enderIO.description")
public class PluginEnderIO extends ForestryPlugin {
private static final String EnderIO = "EnderIO";
private static final String FLUID_FUEL_ADD = "fluidFuel:add";
private static final String FLUID_COOLANT_ADD = "fluidCoolant:add";
private static final String KEY_FLUID_NAME = "fluidName";
private static final String KEY_POWER_PER_CYCLE = "powerPerCycle";
private static final String KEY_TOTAL_BURN_TIME = "totalBurnTime";
private static final String KEY_COOLING_PER_MB = "coolingPerMb";
@Override
public boolean isAvailable() {
return Proxies.common.isModLoaded(EnderIO);
}
@Override
public String getFailMessage() {
return "EnderIO not found";
}
@Override
public void doInit() {
Fluid ethanol = Fluids.ETHANOL.getFluid();
if (ethanol != null) {
int ethanolBurnTime = Math.round(Defaults.ENGINE_CYCLE_DURATION_ETHANOL * GameMode.getGameMode().getFloatSetting("fuel.ethanol.combustion"));
addFuel(ethanol, 40, ethanolBurnTime);
}
Fluid crushedIce = Fluids.ICE.getFluid();
if (crushedIce != null) {
addCoolant(crushedIce, 10.0f);
}
}
private static void addFuel(Fluid fluid, int powerPerCycle, int totalBurnTime) {
NBTTagCompound fuelTag = new NBTTagCompound();
fuelTag.setString(KEY_FLUID_NAME, fluid.getName());
fuelTag.setInteger(KEY_POWER_PER_CYCLE, powerPerCycle);
fuelTag.setInteger(KEY_TOTAL_BURN_TIME, totalBurnTime);
FMLInterModComms.sendMessage(EnderIO, FLUID_FUEL_ADD, fuelTag);
}
private static void addCoolant(Fluid fluid, float coolingPerMb) {
NBTTagCompound coolantTag = new NBTTagCompound();
coolantTag.setString(KEY_FLUID_NAME, fluid.getName());
coolantTag.setFloat(KEY_COOLING_PER_MB, coolingPerMb);
FMLInterModComms.sendMessage(EnderIO, FLUID_COOLANT_ADD, coolantTag);
}
}