/**
* Copyright (c) Lambda Innovation, 2013-2016
* This file is part of the AcademyCraft mod.
* https://github.com/LambdaInnovation/AcademyCraft
* Licensed under GPLv3, see project root for more information.
*/
package cn.academy.support.rf;
import cn.academy.crafting.ModuleCrafting;
import cn.academy.energy.ModuleEnergy;
import cn.academy.support.BlockConverterBase;
import cn.academy.support.EnergyBlockHelper;
import cn.lambdalib.annoreg.core.RegWithName;
import cn.lambdalib.annoreg.core.Registrant;
import cn.lambdalib.annoreg.mc.RegBlock;
import cn.lambdalib.annoreg.mc.RegInitCallback;
import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;
@Registrant
public class RFSupport {
/** The convert rate (1IF = <CONV_RATE> RF) */
public static final double CONV_RATE = 4;
@RegBlock(item = BlockConverterBase.Item.class)
@RegWithName("rf_input")
public static Block rfInput = new BlockRFInput();
@RegBlock(item = BlockConverterBase.Item.class)
@RegWithName("rf_output")
public static Block rfOutput = new BlockRFOutput();
// Convert macros, dividing by hand is error-prone
/**
* Converts RF to equivalent amount of IF.
*/
public static double rf2if(int rfEnergy) {
return rfEnergy / CONV_RATE;
}
/**
* Converts IF to equivalent amount of RF.
*/
public static int if2rf(double ifEnergy) {
return (int) (ifEnergy * CONV_RATE);
}
@RegInitCallback
private static void init() {
EnergyBlockHelper.register(new RFProviderManager());
EnergyBlockHelper.register(new RFReceiverManager());
GameRegistry.addRecipe(new ItemStack(rfInput), "abc", " d ",
'a', ModuleEnergy.energyUnit, 'b', ModuleCrafting.machineFrame,
'c', ModuleCrafting.constPlate, 'd', ModuleCrafting.convComp);
GameRegistry.addRecipe(new ItemStack(rfOutput), "abc", " d ",
'a', ModuleEnergy.energyUnit, 'b', ModuleCrafting.machineFrame,
'c', ModuleCrafting.resoCrystal, 'd', ModuleCrafting.convComp);
GameRegistry.addRecipe(new ItemStack(rfInput), "X",'X',new ItemStack(rfOutput));
GameRegistry.addRecipe(new ItemStack(rfOutput), "X",'X',new ItemStack(rfInput));
}
}