Search in sources :

Example 1 with IOreDictListenerEvent

use of gregapi.oredict.event.IOreDictListenerEvent in project gregtech6 by GregTech6.

the class Loader_Recipes_Temporary method run.

@Override
public void run() {
    ItemStack tStack = null;
    // TODO: Graphite Electrodes are made from petroleum coke after it is mixed with coal tar pitch. They are then extruded and shaped, baked to carbonize the binder (pitch) and finally graphitized by heating it to temperatures approaching 3273K.
    RM.Extruder.addRecipe2(T, 512, 512, OP.dust.mat(MT.Graphite, 1), IL.Shape_Extruder_Rod.get(0), OP.stick.mat(MT.Graphite, 1));
    // TODO: I will keep this antiquated shit for now.
    OM.data(CR.get(tStack = OP.ingot.mat(MT.Bronze, 1), tStack, tStack, tStack, null, tStack, tStack, tStack, tStack), new OreDictItemData(MT.Bronze, 8 * U));
    OM.data(CR.get(tStack = OP.plate.mat(MT.Bronze, 1), tStack, tStack, tStack, null, tStack, tStack, tStack, tStack), new OreDictItemData(MT.Bronze, 8 * U));
    // TODO: Better Coolant Item than Lapis.
    RM.Injector.addRecipe1(T, 16, 16, OM.dust(MT.Lapis, 1 * U), FL.DistW.make(1000), FL.Coolant_IC2.make(1000), ZL_IS);
    RM.Injector.addRecipe1(T, 16, 16, OM.dust(MT.Lapis, 2 * U), FL.SpDew.make(1000), FL.Coolant_IC2.make(1000), ZL_IS);
    RM.Injector.addRecipe1(T, 16, 16, OM.dust(MT.Lapis, 2 * U), FL.Water.make(1000), FL.Coolant_IC2.make(1000), ZL_IS);
    RM.Injector.addRecipe1(T, 16, 16, OM.dust(MT.Lazurite, 1 * U), FL.DistW.make(1000), FL.Coolant_IC2.make(1000), ZL_IS);
    RM.Injector.addRecipe1(T, 16, 16, OM.dust(MT.Lazurite, 2 * U), FL.SpDew.make(1000), FL.Coolant_IC2.make(1000), ZL_IS);
    RM.Injector.addRecipe1(T, 16, 16, OM.dust(MT.Lazurite, 2 * U), FL.Water.make(1000), FL.Coolant_IC2.make(1000), ZL_IS);
    RM.Injector.addRecipe1(T, 16, 16, OM.dust(MT.Sodalite, 1 * U), FL.DistW.make(1000), FL.Coolant_IC2.make(1000), ZL_IS);
    RM.Injector.addRecipe1(T, 16, 16, OM.dust(MT.Sodalite, 2 * U), FL.SpDew.make(1000), FL.Coolant_IC2.make(1000), ZL_IS);
    RM.Injector.addRecipe1(T, 16, 16, OM.dust(MT.Sodalite, 2 * U), FL.Water.make(1000), FL.Coolant_IC2.make(1000), ZL_IS);
    if (MD.MET.mLoaded) {
        CR.delate(MD.MET, "alloyer");
        CR.delate(OP.dust.mat(MT.Au, 1));
    }
    if (MD.BbLC.mLoaded) {
        CR.delate(MD.BbLC, "item.BiblioClipboard");
        CR.shaped(ST.make(MD.BbLC, "item.BiblioClipboard", 1, 0), DEF_REV_NCC, "I F", "PPP", " W ", 'F', OD.craftingFeather, 'W', OD.pressurePlateWood, 'P', OD.paperEmpty, 'I', DYE_OREDICTS[DYE_INDEX_Black]);
    }
    if (MD.BTRS.mLoaded) {
        CR.delate(IL.BTRS_Backpack.wild(1));
        CR.shaped(IL.BTRS_Backpack.get(1), DEF_REV_NCC, "LqL", "SCS", "LPL", 'L', OD.craftingLeather, 'S', OD.itemString, 'P', OP.plate.dat(MT.Au), 'C', OD.craftingChest);
        RM.packunpack(ST.make(Items.flint, 9, 0), ST.make(MD.BTRS, "flintBlock", 1, 0));
    }
    if (MD.HEX.mLoaded) {
        RM.sawing(32, 576, F, 192, ST.make(MD.HEX, "blockHexoriumMonolithRed", 1, W), OP.plateGem.mat(MT.HexoriumRed, 16));
        RM.sawing(32, 576, F, 192, ST.make(MD.HEX, "blockHexoriumMonolithGreen", 1, W), OP.plateGem.mat(MT.HexoriumGreen, 16));
        RM.sawing(32, 576, F, 192, ST.make(MD.HEX, "blockHexoriumMonolithBlue", 1, W), OP.plateGem.mat(MT.HexoriumBlue, 16));
        RM.sawing(32, 432, F, 144, ST.make(MD.HEX, "blockHexoriumMonolithBlack", 1, W), OP.plateGem.mat(MT.HexoriumBlack, 12));
        RM.sawing(32, 432, F, 144, ST.make(MD.HEX, "blockHexoriumMonolithWhite", 1, W), OP.plateGem.mat(MT.HexoriumWhite, 12));
        RM.sawing(32, 432, F, 144, ST.make(MD.HEX, "blockHexoriumNetherMonolithRed", 1, W), OP.plateGem.mat(MT.HexoriumRed, 12));
        RM.sawing(32, 432, F, 144, ST.make(MD.HEX, "blockHexoriumNetherMonolithGreen", 1, W), OP.plateGem.mat(MT.HexoriumGreen, 12));
        RM.sawing(32, 432, F, 144, ST.make(MD.HEX, "blockHexoriumNetherMonolithBlue", 1, W), OP.plateGem.mat(MT.HexoriumBlue, 12));
        RM.sawing(32, 576, F, 192, ST.make(MD.HEX, "blockHexoriumNetherMonolithBlack", 1, W), OP.plateGem.mat(MT.HexoriumBlack, 16));
        RM.sawing(32, 576, F, 192, ST.make(MD.HEX, "blockHexoriumNetherMonolithWhite", 1, W), OP.plateGem.mat(MT.HexoriumWhite, 16));
        RM.sawing(32, 288, F, 96, ST.make(MD.HEX, "blockEnergizedHexoriumMonolithRed", 1, W), OP.plateGem.mat(MT.HexoriumRed, 8));
        RM.sawing(32, 288, F, 96, ST.make(MD.HEX, "blockEnergizedHexoriumMonolithGreen", 1, W), OP.plateGem.mat(MT.HexoriumGreen, 8));
        RM.sawing(32, 288, F, 96, ST.make(MD.HEX, "blockEnergizedHexoriumMonolithBlue", 1, W), OP.plateGem.mat(MT.HexoriumBlue, 8));
        RM.sawing(32, 288, F, 96, ST.make(MD.HEX, "blockEnergizedHexoriumMonolithBlack", 1, W), OP.plateGem.mat(MT.HexoriumBlack, 8));
        RM.sawing(32, 288, F, 96, ST.make(MD.HEX, "blockEnergizedHexoriumMonolithWhite", 1, W), OP.plateGem.mat(MT.HexoriumWhite, 8));
        RM.sawing(32, 288, F, 96, ST.make(MD.HEX, "blockEnergizedHexoriumRed", 1, W), ST.make(MD.HEX, "blockMiniEnergizedHexoriumRed", 8, 0));
        RM.sawing(32, 288, F, 96, ST.make(MD.HEX, "blockEnergizedHexoriumGreen", 1, W), ST.make(MD.HEX, "blockMiniEnergizedHexoriumGreen", 8, 0));
        RM.sawing(32, 288, F, 96, ST.make(MD.HEX, "blockEnergizedHexoriumBlue", 1, W), ST.make(MD.HEX, "blockMiniEnergizedHexoriumBlue", 8, 0));
        RM.sawing(32, 288, F, 96, ST.make(MD.HEX, "blockEnergizedHexoriumBlack", 1, W), ST.make(MD.HEX, "blockMiniEnergizedHexoriumBlack", 8, 0));
        RM.sawing(32, 288, F, 96, ST.make(MD.HEX, "blockEnergizedHexoriumWhite", 1, W), ST.make(MD.HEX, "blockMiniEnergizedHexoriumWhite", 8, 0));
        RM.sawing(32, 288, F, 96, ST.make(MD.HEX, "blockEnergizedHexoriumDarkGray", 1, W), ST.make(MD.HEX, "blockMiniEnergizedHexoriumDarkGray", 8, 0));
        RM.sawing(32, 288, F, 96, ST.make(MD.HEX, "blockEnergizedHexoriumGray", 1, W), ST.make(MD.HEX, "blockMiniEnergizedHexoriumGray", 8, 0));
        RM.sawing(32, 288, F, 96, ST.make(MD.HEX, "blockEnergizedHexoriumLightGray", 1, W), ST.make(MD.HEX, "blockMiniEnergizedHexoriumLightGray", 8, 0));
        RM.sawing(32, 288, F, 96, ST.make(MD.HEX, "blockEnergizedHexoriumOrange", 1, W), ST.make(MD.HEX, "blockMiniEnergizedHexoriumOrange", 8, 0));
        RM.sawing(32, 288, F, 96, ST.make(MD.HEX, "blockEnergizedHexoriumYellow", 1, W), ST.make(MD.HEX, "blockMiniEnergizedHexoriumYellow", 8, 0));
        RM.sawing(32, 288, F, 96, ST.make(MD.HEX, "blockEnergizedHexoriumLime", 1, W), ST.make(MD.HEX, "blockMiniEnergizedHexoriumLime", 8, 0));
        RM.sawing(32, 288, F, 96, ST.make(MD.HEX, "blockEnergizedHexoriumTurquoise", 1, W), ST.make(MD.HEX, "blockMiniEnergizedHexoriumTurquoise", 8, 0));
        RM.sawing(32, 288, F, 96, ST.make(MD.HEX, "blockEnergizedHexoriumCyan", 1, W), ST.make(MD.HEX, "blockMiniEnergizedHexoriumCyan", 8, 0));
        RM.sawing(32, 288, F, 96, ST.make(MD.HEX, "blockEnergizedHexoriumSkyBlue", 1, W), ST.make(MD.HEX, "blockMiniEnergizedHexoriumSkyBlue", 8, 0));
        RM.sawing(32, 288, F, 96, ST.make(MD.HEX, "blockEnergizedHexoriumPurple", 1, W), ST.make(MD.HEX, "blockMiniEnergizedHexoriumPurple", 8, 0));
        RM.sawing(32, 288, F, 96, ST.make(MD.HEX, "blockEnergizedHexoriumMagenta", 1, W), ST.make(MD.HEX, "blockMiniEnergizedHexoriumMagenta", 8, 0));
        RM.sawing(32, 288, F, 96, ST.make(MD.HEX, "blockEnergizedHexoriumPink", 1, W), ST.make(MD.HEX, "blockMiniEnergizedHexoriumPink", 8, 0));
        RM.sawing(32, 288, F, 96, ST.make(MD.HEX, "blockEnergizedHexoriumRainbow", 1, W), ST.make(MD.HEX, "blockMiniEnergizedHexoriumRainbow", 8, 0));
        RM.compact(ST.make(MD.HEX, "blockMiniEnergizedHexoriumRed", 8, W), ST.make(MD.HEX, "blockEnergizedHexoriumRed", 1, 0));
        RM.compact(ST.make(MD.HEX, "blockMiniEnergizedHexoriumGreen", 8, W), ST.make(MD.HEX, "blockEnergizedHexoriumGreen", 1, 0));
        RM.compact(ST.make(MD.HEX, "blockMiniEnergizedHexoriumBlue", 8, W), ST.make(MD.HEX, "blockEnergizedHexoriumBlue", 1, 0));
        RM.compact(ST.make(MD.HEX, "blockMiniEnergizedHexoriumBlack", 8, W), ST.make(MD.HEX, "blockEnergizedHexoriumBlack", 1, 0));
        RM.compact(ST.make(MD.HEX, "blockMiniEnergizedHexoriumWhite", 8, W), ST.make(MD.HEX, "blockEnergizedHexoriumWhite", 1, 0));
        RM.compact(ST.make(MD.HEX, "blockMiniEnergizedHexoriumDarkGray", 8, W), ST.make(MD.HEX, "blockEnergizedHexoriumDarkGray", 1, 0));
        RM.compact(ST.make(MD.HEX, "blockMiniEnergizedHexoriumGray", 8, W), ST.make(MD.HEX, "blockEnergizedHexoriumGray", 1, 0));
        RM.compact(ST.make(MD.HEX, "blockMiniEnergizedHexoriumLightGray", 8, W), ST.make(MD.HEX, "blockEnergizedHexoriumLightGray", 1, 0));
        RM.compact(ST.make(MD.HEX, "blockMiniEnergizedHexoriumOrange", 8, W), ST.make(MD.HEX, "blockEnergizedHexoriumOrange", 1, 0));
        RM.compact(ST.make(MD.HEX, "blockMiniEnergizedHexoriumYellow", 8, W), ST.make(MD.HEX, "blockEnergizedHexoriumYellow", 1, 0));
        RM.compact(ST.make(MD.HEX, "blockMiniEnergizedHexoriumLime", 8, W), ST.make(MD.HEX, "blockEnergizedHexoriumLime", 1, 0));
        RM.compact(ST.make(MD.HEX, "blockMiniEnergizedHexoriumTurquoise", 8, W), ST.make(MD.HEX, "blockEnergizedHexoriumTurquoise", 1, 0));
        RM.compact(ST.make(MD.HEX, "blockMiniEnergizedHexoriumCyan", 8, W), ST.make(MD.HEX, "blockEnergizedHexoriumCyan", 1, 0));
        RM.compact(ST.make(MD.HEX, "blockMiniEnergizedHexoriumSkyBlue", 8, W), ST.make(MD.HEX, "blockEnergizedHexoriumSkyBlue", 1, 0));
        RM.compact(ST.make(MD.HEX, "blockMiniEnergizedHexoriumPurple", 8, W), ST.make(MD.HEX, "blockEnergizedHexoriumPurple", 1, 0));
        RM.compact(ST.make(MD.HEX, "blockMiniEnergizedHexoriumMagenta", 8, W), ST.make(MD.HEX, "blockEnergizedHexoriumMagenta", 1, 0));
        RM.compact(ST.make(MD.HEX, "blockMiniEnergizedHexoriumPink", 8, W), ST.make(MD.HEX, "blockEnergizedHexoriumPink", 1, 0));
        RM.compact(ST.make(MD.HEX, "blockMiniEnergizedHexoriumRainbow", 8, W), ST.make(MD.HEX, "blockEnergizedHexoriumRainbow", 1, 0));
        new OreDictListenerEvent_Names() {

            @Override
            public void addAllListeners() {
                addListener(DYE_OREDICTS_MIXABLE[DYE_INDEX_Black], new IOreDictListenerEvent() {

                    @Override
                    public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                        if (ST.container(aEvent.mStack, T) == null)
                            RM.Mixer.addRecipe2(T, 16, 16, aEvent.mStack, OP.dust.mat(MT.HexoriumBlack, 1), ST.make(MD.HEX, "itemHexoriumDye", 16, 0));
                    }
                });
                addListener(DYE_OREDICTS_MIXABLE[DYE_INDEX_White], new IOreDictListenerEvent() {

                    @Override
                    public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                        if (ST.container(aEvent.mStack, T) == null)
                            RM.Mixer.addRecipe2(T, 16, 16, aEvent.mStack, OP.dust.mat(MT.HexoriumWhite, 1), ST.make(MD.HEX, "itemHexoriumDyeWhite", 16, 0));
                    }
                });
                addListener(OP.plateGem.dat(MT.HexoriumBlack), new IOreDictListenerEvent() {

                    @Override
                    public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                        RM.add_smelting(aEvent.mStack, ST.make(MD.HEX, "itemBlackHexoriumWafer", 1, 0), F, F, F);
                    }
                });
                addListener(OP.plateGem.dat(MT.HexoriumWhite), new IOreDictListenerEvent() {

                    @Override
                    public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                        RM.add_smelting(aEvent.mStack, ST.make(MD.HEX, "itemWhiteHexoriumWafer", 1, 0), F, F, F);
                    }
                });
            }
        };
    }
    if (MD.HEE.mLoaded) {
        RM.biomass(ST.make(MD.HEE, "crossed_decoration", 8, W));
        RM.biomass(ST.make(MD.HEE, "death_flower", 8, W));
        RM.Squeezer.addRecipe1(T, 16, 16, ST.make(MD.HEE, "death_flower", 1, 0), NF, DYE_FLUIDS_FLOWER[DYE_INDEX_Magenta], ST.make(Items.dye, 2, DYE_INDEX_Magenta));
        RM.Juicer.addRecipe1(T, 16, 16, ST.make(MD.HEE, "death_flower", 1, 0), NF, DYE_FLUIDS_FLOWER[DYE_INDEX_Magenta], ST.make(Items.dye, 2, DYE_INDEX_Magenta));
        RM.ic2_extractor(ST.make(MD.HEE, "death_flower", 1, 0), ST.make(Items.dye, 3, DYE_INDEX_Magenta));
        RM.Squeezer.addRecipe1(T, 16, 16, ST.make(MD.HEE, "death_flower", 1, 15), NF, DYE_FLUIDS_FLOWER[DYE_INDEX_Gray], ST.make(Items.dye, 2, DYE_INDEX_Gray));
        RM.Juicer.addRecipe1(T, 16, 16, ST.make(MD.HEE, "death_flower", 1, 15), NF, DYE_FLUIDS_FLOWER[DYE_INDEX_Gray], ST.make(Items.dye, 2, DYE_INDEX_Gray));
        RM.ic2_extractor(ST.make(MD.HEE, "death_flower", 1, 15), ST.make(Items.dye, 3, DYE_INDEX_Gray));
        RM.Squeezer.addRecipe1(T, 16, 16, ST.make(MD.HEE, "crossed_decoration", 1, 6), NF, DYE_FLUIDS_FLOWER[DYE_INDEX_Orange], ST.make(Items.dye, 2, DYE_INDEX_Orange));
        RM.Juicer.addRecipe1(T, 16, 16, ST.make(MD.HEE, "crossed_decoration", 1, 6), NF, DYE_FLUIDS_FLOWER[DYE_INDEX_Orange], ST.make(Items.dye, 2, DYE_INDEX_Orange));
        RM.ic2_extractor(ST.make(MD.HEE, "crossed_decoration", 1, 6), ST.make(Items.dye, 3, DYE_INDEX_Orange));
        RM.Squeezer.addRecipe1(T, 16, 16, ST.make(MD.HEE, "crossed_decoration", 1, 13), NF, DYE_FLUIDS_FLOWER[DYE_INDEX_Purple], ST.make(Items.dye, 2, DYE_INDEX_Purple));
        RM.Juicer.addRecipe1(T, 16, 16, ST.make(MD.HEE, "crossed_decoration", 1, 13), NF, DYE_FLUIDS_FLOWER[DYE_INDEX_Purple], ST.make(Items.dye, 2, DYE_INDEX_Purple));
        RM.ic2_extractor(ST.make(MD.HEE, "crossed_decoration", 1, 13), ST.make(Items.dye, 3, DYE_INDEX_Purple));
    }
    if (MD.MO.mLoaded) {
        RM.LaserEngraver.addRecipe2(T, 16, 1000, ST.make(MD.MO, "isolinear_circuit", 1, 0), OP.plate.mat(MT.Au, 1), ST.make(MD.MO, "isolinear_circuit", 1, 1));
        for (OreDictMaterial tMat : ANY.Diamond.mToThis) RM.LaserEngraver.addRecipe2(T, 32, 1000, ST.make(MD.MO, "isolinear_circuit", 1, 1), OP.plateGem.mat(tMat, 1), ST.make(MD.MO, "isolinear_circuit", 1, 2));
        for (OreDictMaterial tMat : ANY.Emerald.mToThis) RM.LaserEngraver.addRecipe2(T, 64, 1000, ST.make(MD.MO, "isolinear_circuit", 1, 2), OP.plateGem.mat(tMat, 1), ST.make(MD.MO, "isolinear_circuit", 1, 3));
    }
    if (MD.NeLi.mLoaded) {
        CR.delate(MD.NeLi, "Chain", "ChainEfrine", "ChainGold", "ChainPowered", "ChainPoweredEfrine", "ChainPoweredGold", "EmptyLantern", "EmptyLanternEfrine", "EmptyLanternGold", "Lantern", "LanternEfrine", "LanternGold", "GlowstoneLantern", "GlowstoneLanternEfrine", "GlowstoneLanternGold", "FoxfireLantern", "FoxfireLanternEfrine", "FoxfireLanternGold", "SoulLantern", "SoulLanternEfrine", "SoulLanternGold", "RedstoneLantern", "RedstoneLanternEfrine", "RedstoneLanternGold", "RedstoneLanternOn", "RedstoneLanternEfrineOn", "RedstoneLanternGoldOn");
        CR.remove(IL.NeLi_Reed.get(1));
        CR.remove(IL.NeLi_Reed.get(1), IL.NeLi_Reed.get(1), IL.NeLi_Reed.get(1));
        CR.shaped(ST.make(Items.paper, 1, 0), DEF, "XXX", 'X', IL.NeLi_Reed);
        // HAS TO BE BEFORE REGULAR TORCHES!!!
        CR.shapeless(IL.NeLi_Bonetorch_Soul.get(4), DEF_NCC, new Object[] { OP.dust.dat(MT.SoulSand), IL.NeLi_Bonetorch, IL.NeLi_Bonetorch, IL.NeLi_Bonetorch, IL.NeLi_Bonetorch });
        CR.shapeless(IL.NeLi_Bonetorch_Soul.get(4), DEF_NCC, new Object[] { OD.flowerWither, IL.NeLi_Bonetorch, IL.NeLi_Bonetorch, IL.NeLi_Bonetorch, IL.NeLi_Bonetorch });
        CR.shapeless(IL.NeLi_Bonetorch_Soul.get(3), DEF_NCC, new Object[] { OP.dust.dat(MT.SoulSand), IL.NeLi_Bonetorch, IL.NeLi_Bonetorch, IL.NeLi_Bonetorch });
        CR.shapeless(IL.NeLi_Bonetorch_Soul.get(3), DEF_NCC, new Object[] { OD.flowerWither, IL.NeLi_Bonetorch, IL.NeLi_Bonetorch, IL.NeLi_Bonetorch });
        CR.shapeless(IL.NeLi_Bonetorch_Soul.get(2), DEF_NCC, new Object[] { OP.dust.dat(MT.SoulSand), IL.NeLi_Bonetorch, IL.NeLi_Bonetorch });
        CR.shapeless(IL.NeLi_Bonetorch_Soul.get(2), DEF_NCC, new Object[] { OD.flowerWither, IL.NeLi_Bonetorch, IL.NeLi_Bonetorch });
        CR.shapeless(IL.NeLi_Bonetorch_Soul.get(1), DEF_NCC, new Object[] { OP.dust.dat(MT.SoulSand), IL.NeLi_Bonetorch });
        CR.shapeless(IL.NeLi_Bonetorch_Soul.get(1), DEF_NCC, new Object[] { OD.flowerWither, IL.NeLi_Bonetorch });
        CR.shapeless(IL.NeLi_Bonetorch_Fox.get(4), DEF_NCC, new Object[] { IL.NeLi_Foxfire_Powder, IL.NeLi_Bonetorch, IL.NeLi_Bonetorch, IL.NeLi_Bonetorch, IL.NeLi_Bonetorch });
        CR.shapeless(IL.NeLi_Bonetorch_Fox.get(4), DEF_NCC, new Object[] { IL.NeLi_Foxfire_Lily, IL.NeLi_Bonetorch, IL.NeLi_Bonetorch, IL.NeLi_Bonetorch, IL.NeLi_Bonetorch });
        CR.shapeless(IL.NeLi_Bonetorch_Fox.get(3), DEF_NCC, new Object[] { IL.NeLi_Foxfire_Powder, IL.NeLi_Bonetorch, IL.NeLi_Bonetorch, IL.NeLi_Bonetorch });
        CR.shapeless(IL.NeLi_Bonetorch_Fox.get(3), DEF_NCC, new Object[] { IL.NeLi_Foxfire_Lily, IL.NeLi_Bonetorch, IL.NeLi_Bonetorch, IL.NeLi_Bonetorch });
        CR.shapeless(IL.NeLi_Bonetorch_Fox.get(2), DEF_NCC, new Object[] { IL.NeLi_Foxfire_Powder, IL.NeLi_Bonetorch, IL.NeLi_Bonetorch });
        CR.shapeless(IL.NeLi_Bonetorch_Fox.get(2), DEF_NCC, new Object[] { IL.NeLi_Foxfire_Lily, IL.NeLi_Bonetorch, IL.NeLi_Bonetorch });
        CR.shapeless(IL.NeLi_Bonetorch_Fox.get(1), DEF_NCC, new Object[] { IL.NeLi_Foxfire_Powder, IL.NeLi_Bonetorch });
        CR.shapeless(IL.NeLi_Bonetorch_Fox.get(1), DEF_NCC, new Object[] { IL.NeLi_Foxfire_Lily, IL.NeLi_Bonetorch });
        CR.shapeless(IL.NeLi_Bonetorch_Shadow.get(4), DEF_NCC, new Object[] { IL.NeLi_Blackstone_Crying, IL.NeLi_Bonetorch, IL.NeLi_Bonetorch, IL.NeLi_Bonetorch, IL.NeLi_Bonetorch });
        CR.shapeless(IL.NeLi_Bonetorch_Shadow.get(3), DEF_NCC, new Object[] { IL.NeLi_Blackstone_Crying, IL.NeLi_Bonetorch, IL.NeLi_Bonetorch, IL.NeLi_Bonetorch });
        CR.shapeless(IL.NeLi_Bonetorch_Shadow.get(2), DEF_NCC, new Object[] { IL.NeLi_Blackstone_Crying, IL.NeLi_Bonetorch, IL.NeLi_Bonetorch });
        CR.shapeless(IL.NeLi_Bonetorch_Shadow.get(1), DEF_NCC, new Object[] { IL.NeLi_Blackstone_Crying, IL.NeLi_Bonetorch });
        // HAS TO BE BEFORE SPECIAL TORCHES!!!
        CR.shapeless(IL.NeLi_Torch_Soul.get(4), DEF_NCC, new Object[] { OP.dust.dat(MT.SoulSand), OD.blockTorch, OD.blockTorch, OD.blockTorch, OD.blockTorch });
        CR.shapeless(IL.NeLi_Torch_Soul.get(4), DEF_NCC, new Object[] { OD.flowerWither, OD.blockTorch, OD.blockTorch, OD.blockTorch, OD.blockTorch });
        CR.shapeless(IL.NeLi_Torch_Soul.get(3), DEF_NCC, new Object[] { OP.dust.dat(MT.SoulSand), OD.blockTorch, OD.blockTorch, OD.blockTorch });
        CR.shapeless(IL.NeLi_Torch_Soul.get(3), DEF_NCC, new Object[] { OD.flowerWither, OD.blockTorch, OD.blockTorch, OD.blockTorch });
        CR.shapeless(IL.NeLi_Torch_Soul.get(2), DEF_NCC, new Object[] { OP.dust.dat(MT.SoulSand), OD.blockTorch, OD.blockTorch });
        CR.shapeless(IL.NeLi_Torch_Soul.get(2), DEF_NCC, new Object[] { OD.flowerWither, OD.blockTorch, OD.blockTorch });
        CR.shapeless(IL.NeLi_Torch_Soul.get(1), DEF_NCC, new Object[] { OP.dust.dat(MT.SoulSand), OD.blockTorch });
        CR.shapeless(IL.NeLi_Torch_Soul.get(1), DEF_NCC, new Object[] { OD.flowerWither, OD.blockTorch });
        CR.shapeless(IL.NeLi_Torch_Fox.get(4), DEF_NCC, new Object[] { IL.NeLi_Foxfire_Powder, OD.blockTorch, OD.blockTorch, OD.blockTorch, OD.blockTorch });
        CR.shapeless(IL.NeLi_Torch_Fox.get(4), DEF_NCC, new Object[] { IL.NeLi_Foxfire_Lily, OD.blockTorch, OD.blockTorch, OD.blockTorch, OD.blockTorch });
        CR.shapeless(IL.NeLi_Torch_Fox.get(3), DEF_NCC, new Object[] { IL.NeLi_Foxfire_Powder, OD.blockTorch, OD.blockTorch, OD.blockTorch });
        CR.shapeless(IL.NeLi_Torch_Fox.get(3), DEF_NCC, new Object[] { IL.NeLi_Foxfire_Lily, OD.blockTorch, OD.blockTorch, OD.blockTorch });
        CR.shapeless(IL.NeLi_Torch_Fox.get(2), DEF_NCC, new Object[] { IL.NeLi_Foxfire_Powder, OD.blockTorch, OD.blockTorch });
        CR.shapeless(IL.NeLi_Torch_Fox.get(2), DEF_NCC, new Object[] { IL.NeLi_Foxfire_Lily, OD.blockTorch, OD.blockTorch });
        CR.shapeless(IL.NeLi_Torch_Fox.get(1), DEF_NCC, new Object[] { IL.NeLi_Foxfire_Powder, OD.blockTorch });
        CR.shapeless(IL.NeLi_Torch_Fox.get(1), DEF_NCC, new Object[] { IL.NeLi_Foxfire_Lily, OD.blockTorch });
        CR.shapeless(IL.NeLi_Torch_Shadow.get(4), DEF_NCC, new Object[] { IL.NeLi_Blackstone_Crying, OD.blockTorch, OD.blockTorch, OD.blockTorch, OD.blockTorch });
        CR.shapeless(IL.NeLi_Torch_Shadow.get(3), DEF_NCC, new Object[] { IL.NeLi_Blackstone_Crying, OD.blockTorch, OD.blockTorch, OD.blockTorch });
        CR.shapeless(IL.NeLi_Torch_Shadow.get(2), DEF_NCC, new Object[] { IL.NeLi_Blackstone_Crying, OD.blockTorch, OD.blockTorch });
        CR.shapeless(IL.NeLi_Torch_Shadow.get(1), DEF_NCC, new Object[] { IL.NeLi_Blackstone_Crying, OD.blockTorch });
        CR.shaped(ST.make(MD.NeLi, "EmptyLantern", 1, 0), DEF_REV_NCC, "PTP", "P P", "PPP", 'P', OP.plateTiny.dat(ANY.Iron), 'T', OP.screw.dat(ANY.Iron));
        CR.shaped(ST.make(MD.NeLi, "EmptyLanternGold", 1, 0), DEF_REV_NCC, "PTP", "P P", "PPP", 'P', OP.plateTiny.dat(MT.Au), 'T', OP.screw.dat(MT.Au));
        CR.shaped(ST.make(MD.NeLi, "EmptyLanternEfrine", 1, 0), DEF_REV_NCC, "PTP", "P P", "PPP", 'P', OP.plateTiny.dat(MT.Efrine), 'T', OP.screw.dat(MT.Efrine));
        CR.shaped(ST.make(MD.NeLi, "Lantern", 1, 0), DEF_REV_NCC, "PTP", "PXP", "PPP", 'P', OP.plateTiny.dat(ANY.Iron), 'T', OP.screw.dat(ANY.Iron), 'X', OD.blockTorch);
        CR.shaped(ST.make(MD.NeLi, "LanternGold", 1, 0), DEF_REV_NCC, "PTP", "PXP", "PPP", 'P', OP.plateTiny.dat(MT.Au), 'T', OP.screw.dat(MT.Au), 'X', OD.blockTorch);
        CR.shaped(ST.make(MD.NeLi, "LanternEfrine", 1, 0), DEF_REV_NCC, "PTP", "PXP", "PPP", 'P', OP.plateTiny.dat(MT.Efrine), 'T', OP.screw.dat(MT.Efrine), 'X', OD.blockTorch);
        CR.shaped(ST.make(MD.NeLi, "GlowstoneLantern", 1, 0), DEF_REV_NCC, "PTP", "PXP", "PPP", 'P', OP.plateTiny.dat(ANY.Iron), 'T', OP.screw.dat(ANY.Iron), 'X', OD.glowstone);
        CR.shaped(ST.make(MD.NeLi, "GlowstoneLanternGold", 1, 0), DEF_REV_NCC, "PTP", "PXP", "PPP", 'P', OP.plateTiny.dat(MT.Au), 'T', OP.screw.dat(MT.Au), 'X', OD.glowstone);
        CR.shaped(ST.make(MD.NeLi, "GlowstoneLanternEfrine", 1, 0), DEF_REV_NCC, "PTP", "PXP", "PPP", 'P', OP.plateTiny.dat(MT.Efrine), 'T', OP.screw.dat(MT.Efrine), 'X', OD.glowstone);
        CR.shaped(ST.make(MD.NeLi, "FoxfireLantern", 1, 0), DEF_REV_NCC, "PTP", "PXP", "PPP", 'P', OP.plateTiny.dat(ANY.Iron), 'T', OP.screw.dat(ANY.Iron), 'X', OD.blockFoxfireTorch);
        CR.shaped(ST.make(MD.NeLi, "FoxfireLanternGold", 1, 0), DEF_REV_NCC, "PTP", "PXP", "PPP", 'P', OP.plateTiny.dat(MT.Au), 'T', OP.screw.dat(MT.Au), 'X', OD.blockFoxfireTorch);
        CR.shaped(ST.make(MD.NeLi, "FoxfireLanternEfrine", 1, 0), DEF_REV_NCC, "PTP", "PXP", "PPP", 'P', OP.plateTiny.dat(MT.Efrine), 'T', OP.screw.dat(MT.Efrine), 'X', OD.blockFoxfireTorch);
        CR.shaped(ST.make(MD.NeLi, "SoulLantern", 1, 0), DEF_REV_NCC, "PTP", "PXP", "PPP", 'P', OP.plateTiny.dat(ANY.Iron), 'T', OP.screw.dat(ANY.Iron), 'X', OD.blockSoulTorch);
        CR.shaped(ST.make(MD.NeLi, "SoulLanternGold", 1, 0), DEF_REV_NCC, "PTP", "PXP", "PPP", 'P', OP.plateTiny.dat(MT.Au), 'T', OP.screw.dat(MT.Au), 'X', OD.blockSoulTorch);
        CR.shaped(ST.make(MD.NeLi, "SoulLanternEfrine", 1, 0), DEF_REV_NCC, "PTP", "PXP", "PPP", 'P', OP.plateTiny.dat(MT.Efrine), 'T', OP.screw.dat(MT.Efrine), 'X', OD.blockSoulTorch);
        CR.shaped(ST.make(MD.NeLi, "ShadowLantern", 1, 0), DEF_REV_NCC, "PTP", "PXP", "PPP", 'P', OP.plateTiny.dat(ANY.Iron), 'T', OP.screw.dat(ANY.Iron), 'X', OD.blockShadowTorch);
        CR.shaped(ST.make(MD.NeLi, "ShadowLanternGold", 1, 0), DEF_REV_NCC, "PTP", "PXP", "PPP", 'P', OP.plateTiny.dat(MT.Au), 'T', OP.screw.dat(MT.Au), 'X', OD.blockShadowTorch);
        CR.shaped(ST.make(MD.NeLi, "ShadowLanternEfrine", 1, 0), DEF_REV_NCC, "PTP", "PXP", "PPP", 'P', OP.plateTiny.dat(MT.Efrine), 'T', OP.screw.dat(MT.Efrine), 'X', OD.blockShadowTorch);
        CR.shaped(ST.make(MD.NeLi, "RedstoneLantern", 1, 0), DEF_REV_NCC, "R", "L", 'L', ST.make(MD.NeLi, "GlowstoneLantern", 1, 0), 'R', OD.itemRedstone);
        CR.shaped(ST.make(MD.NeLi, "RedstoneLanternGold", 1, 0), DEF_REV_NCC, "R", "L", 'L', ST.make(MD.NeLi, "GlowstoneLanternGold", 1, 0), 'R', OD.itemRedstone);
        CR.shaped(ST.make(MD.NeLi, "RedstoneLanternEfrine", 1, 0), DEF_REV_NCC, "R", "L", 'L', ST.make(MD.NeLi, "GlowstoneLanternEfrine", 1, 0), 'R', OD.itemRedstone);
        CR.shapeless(ST.make(MD.NeLi, "Lantern", 1, 0), DEF_NCC, new Object[] { ST.make(MD.NeLi, "EmptyLantern", 1, 0), OD.blockTorch });
        CR.shapeless(ST.make(MD.NeLi, "LanternGold", 1, 0), DEF_NCC, new Object[] { ST.make(MD.NeLi, "EmptyLanternGold", 1, 0), OD.blockTorch });
        CR.shapeless(ST.make(MD.NeLi, "LanternEfrine", 1, 0), DEF_NCC, new Object[] { ST.make(MD.NeLi, "EmptyLanternEfrine", 1, 0), OD.blockTorch });
        CR.shapeless(ST.make(MD.NeLi, "GlowstoneLantern", 1, 0), DEF_NCC, new Object[] { ST.make(MD.NeLi, "EmptyLantern", 1, 0), OD.glowstone });
        CR.shapeless(ST.make(MD.NeLi, "GlowstoneLanternGold", 1, 0), DEF_NCC, new Object[] { ST.make(MD.NeLi, "EmptyLanternGold", 1, 0), OD.glowstone });
        CR.shapeless(ST.make(MD.NeLi, "GlowstoneLanternEfrine", 1, 0), DEF_NCC, new Object[] { ST.make(MD.NeLi, "EmptyLanternEfrine", 1, 0), OD.glowstone });
        CR.shapeless(ST.make(MD.NeLi, "FoxfireLantern", 1, 0), DEF_NCC, new Object[] { ST.make(MD.NeLi, "EmptyLantern", 1, 0), OD.blockFoxfireTorch });
        CR.shapeless(ST.make(MD.NeLi, "FoxfireLanternGold", 1, 0), DEF_NCC, new Object[] { ST.make(MD.NeLi, "EmptyLanternGold", 1, 0), OD.blockFoxfireTorch });
        CR.shapeless(ST.make(MD.NeLi, "FoxfireLanternEfrine", 1, 0), DEF_NCC, new Object[] { ST.make(MD.NeLi, "EmptyLanternEfrine", 1, 0), OD.blockFoxfireTorch });
        CR.shapeless(ST.make(MD.NeLi, "SoulLantern", 1, 0), DEF_NCC, new Object[] { ST.make(MD.NeLi, "EmptyLantern", 1, 0), OD.blockSoulTorch });
        CR.shapeless(ST.make(MD.NeLi, "SoulLanternGold", 1, 0), DEF_NCC, new Object[] { ST.make(MD.NeLi, "EmptyLanternGold", 1, 0), OD.blockSoulTorch });
        CR.shapeless(ST.make(MD.NeLi, "SoulLanternEfrine", 1, 0), DEF_NCC, new Object[] { ST.make(MD.NeLi, "EmptyLanternEfrine", 1, 0), OD.blockSoulTorch });
        CR.shapeless(ST.make(MD.NeLi, "ShadowLantern", 1, 0), DEF_NCC, new Object[] { ST.make(MD.NeLi, "EmptyLantern", 1, 0), OD.blockShadowTorch });
        CR.shapeless(ST.make(MD.NeLi, "ShadowLanternGold", 1, 0), DEF_NCC, new Object[] { ST.make(MD.NeLi, "EmptyLanternGold", 1, 0), OD.blockShadowTorch });
        CR.shapeless(ST.make(MD.NeLi, "ShadowLanternEfrine", 1, 0), DEF_NCC, new Object[] { ST.make(MD.NeLi, "EmptyLanternEfrine", 1, 0), OD.blockShadowTorch });
        CR.shaped(ST.make(MD.NeLi, "RespawnAnchor", 1, 0), DEF_REM_REV, "OOO", "GGG", "OOO", 'O', OD.cryingObsidian, 'G', OD.glowstone);
        CR.shaped(IL.NeLi_Lamp_White.get(1), DEF_NCC, " F ", "FGF", " F ", 'F', OP.gem.dat(MT.FluoriteWhite), 'G', OD.glowstone);
        CR.shaped(IL.NeLi_Lamp_Blue.get(1), DEF_NCC, " F ", "FGF", " F ", 'F', OP.gem.dat(MT.FluoriteBlue), 'G', OD.glowstone);
        CR.shaped(IL.NeLi_Lamp_Green.get(1), DEF_NCC, " F ", "FGF", " F ", 'F', OP.gem.dat(MT.FluoriteGreen), 'G', OD.glowstone);
        CR.shaped(IL.NeLi_Lamp_Yellow.get(1), DEF_NCC, " F ", "FGF", " F ", 'F', OP.gem.dat(MT.FluoriteYellow), 'G', OD.glowstone);
        CR.shaped(IL.NeLi_Lamp_Magenta.get(1), DEF_NCC, " F ", "FGF", " F ", 'F', OP.gem.dat(MT.FluoriteMagenta), 'G', OD.glowstone);
        CR.shaped(IL.NeLi_Redstone_Lamp_White.get(1), DEF_NCC, " F ", "FGF", " F ", 'F', OP.gem.dat(MT.FluoriteWhite), 'G', Blocks.redstone_lamp);
        CR.shaped(IL.NeLi_Redstone_Lamp_Blue.get(1), DEF_NCC, " F ", "FGF", " F ", 'F', OP.gem.dat(MT.FluoriteBlue), 'G', Blocks.redstone_lamp);
        CR.shaped(IL.NeLi_Redstone_Lamp_Green.get(1), DEF_NCC, " F ", "FGF", " F ", 'F', OP.gem.dat(MT.FluoriteGreen), 'G', Blocks.redstone_lamp);
        CR.shaped(IL.NeLi_Redstone_Lamp_Yellow.get(1), DEF_NCC, " F ", "FGF", " F ", 'F', OP.gem.dat(MT.FluoriteYellow), 'G', Blocks.redstone_lamp);
        CR.shaped(IL.NeLi_Redstone_Lamp_Magenta.get(1), DEF_NCC, " F ", "FGF", " F ", 'F', OP.gem.dat(MT.FluoriteMagenta), 'G', Blocks.redstone_lamp);
        CR.shaped(IL.NeLi_Redstone_Lamp_White.get(1), DEF_NCC, " R ", "RGR", " R ", 'R', OD.itemRedstone, 'G', IL.NeLi_Lamp_White);
        CR.shaped(IL.NeLi_Redstone_Lamp_Blue.get(1), DEF_NCC, " R ", "RGR", " R ", 'R', OD.itemRedstone, 'G', IL.NeLi_Lamp_Blue);
        CR.shaped(IL.NeLi_Redstone_Lamp_Green.get(1), DEF_NCC, " R ", "RGR", " R ", 'R', OD.itemRedstone, 'G', IL.NeLi_Lamp_Green);
        CR.shaped(IL.NeLi_Redstone_Lamp_Yellow.get(1), DEF_NCC, " R ", "RGR", " R ", 'R', OD.itemRedstone, 'G', IL.NeLi_Lamp_Yellow);
        CR.shaped(IL.NeLi_Redstone_Lamp_Magenta.get(1), DEF_NCC, " R ", "RGR", " R ", 'R', OD.itemRedstone, 'G', IL.NeLi_Lamp_Magenta);
        CR.shaped(IL.NeLi_Glass_White.get(1), DEF_NCC, " F ", "FGF", " F ", 'F', OP.gem.dat(MT.FluoriteWhite), 'G', OD.blockGlassColorless);
        CR.shaped(IL.NeLi_Glass_Blue.get(1), DEF_NCC, " F ", "FGF", " F ", 'F', OP.gem.dat(MT.FluoriteBlue), 'G', OD.blockGlassColorless);
        CR.shaped(IL.NeLi_Glass_Green.get(1), DEF_NCC, " F ", "FGF", " F ", 'F', OP.gem.dat(MT.FluoriteGreen), 'G', OD.blockGlassColorless);
        CR.shaped(IL.NeLi_Glass_Yellow.get(1), DEF_NCC, " F ", "FGF", " F ", 'F', OP.gem.dat(MT.FluoriteYellow), 'G', OD.blockGlassColorless);
        CR.shaped(IL.NeLi_Glass_Magenta.get(1), DEF_NCC, " F ", "FGF", " F ", 'F', OP.gem.dat(MT.FluoriteMagenta), 'G', OD.blockGlassColorless);
        for (FluidStack tWater : FL.waters(125, 100)) RM.Bath.addRecipe1(T, 0, 16, IL.NeLi_Reed.get(1), tWater, NF, ST.make(Items.paper, 1, 0));
        RM.Loom.addRecipe2(T, 16, 16, ST.tag(0), IL.NeLi_Reed.get(1), ST.make(Items.paper, 1, 0));
        RM.Squeezer.addRecipe1(T, 16, 16, 4000, IL.NeLi_Reed.get(1), NF, FL.Juice_Reed.make(10), IL.Remains_Plant.get(1));
        RM.Juicer.addRecipe1(T, 16, 16, 5000, IL.NeLi_Reed.get(1), NF, FL.Juice_Reed.make(5), IL.Remains_Plant.get(1));
        RM.Shredder.addRecipe1(T, 16, 16, IL.NeLi_Reed.get(1), IL.Remains_Plant.get(1));
        RM.pulverizing(IL.NeLi_Reed.get(1), IL.Remains_Plant.get(1), T);
        RM.Mixer.addRecipe2(T, 16, 16, IL.NeLi_Foxfire_Lily.get(1), OP.dustTiny.mat(MT.Blaze, 1), IL.NeLi_Foxfire_Powder.get(1));
        RM.Mixer.addRecipe2(T, 16, 144, IL.NeLi_Foxfire_Lily.get(9), OP.dust.mat(MT.Blaze, 1), IL.NeLi_Foxfire_Powder.get(9));
        RM.Distillery.addRecipe1(T, 16, 32, IL.NeLi_Wart_Crimson.get(1), FL.DistW.make(500), FL.Potion_Awkward.make(500), ZL_IS);
        RM.Distillery.addRecipe1(T, 16, 32, IL.NeLi_Wart_Warped.get(1), FL.DistW.make(500), FL.Potion_Thick.make(500), ZL_IS);
        RM.Distillery.addRecipe1(T, 16, 32, IL.NeLi_Wart_Warped.get(1), FL.Potion_Awkward.make(500), FL.Potion_NightVision_1.make(500), ZL_IS);
        RM.Distillery.addRecipe1(T, 16, 32, IL.NeLi_Wart_Soggy.get(1), FL.DistW.make(500), FL.Potion_Mundane.make(500), ZL_IS);
        RM.Distillery.addRecipe1(T, 16, 32, IL.NeLi_Wart_Soggy.get(1), FL.Potion_Awkward.make(500), FL.Potion_FireResistance_1.make(500), ZL_IS);
        RM.Distillery.addRecipe1(T, 16, 48, IL.NeLi_Wither_Rose.get(1), FL.Potion_Thick.make(750), FL.Potion_Harm_2.make(750), ZL_IS);
        RM.Distillery.addRecipe1(T, 16, 48, IL.NeLi_Bone_Rose.get(1), FL.Potion_Mundane.make(750), FL.Potion_Jump_1.make(750), ZL_IS);
        RM.Distillery.addRecipe1(T, 16, 48, IL.NeLi_Soul_Rose.get(1), FL.Potion_Awkward.make(250), FL.Potion_Invisibility_1.make(250), ZL_IS);
        RM.Distillery.addRecipe1(T, 16, 48, IL.NeLi_Foxfire_Powder.get(1), FL.Potion_Mundane.make(750), FL.Potion_Strength_2.make(750), ZL_IS);
        RM.Squeezer.addRecipe1(T, 16, 16, IL.NeLi_Foxfire_Lily.get(1), NF, DYE_FLUIDS_FLOWER[DYE_INDEX_Purple], ST.make(Items.dye, 1, DYE_INDEX_Purple));
        RM.Juicer.addRecipe1(T, 16, 16, IL.NeLi_Foxfire_Lily.get(1), NF, DYE_FLUIDS_FLOWER[DYE_INDEX_Purple], ST.make(Items.dye, 1, DYE_INDEX_Purple));
        RM.ic2_extractor(IL.NeLi_Foxfire_Lily.get(1), ST.make(Items.dye, 2, DYE_INDEX_Purple));
        RM.Squeezer.addRecipe1(T, 16, 16, IL.NeLi_Wither_Rose.get(1), NF, DYE_FLUIDS_FLOWER[DYE_INDEX_Black], ST.make(MD.NeLi, "dye", 1, 0));
        RM.Juicer.addRecipe1(T, 16, 16, IL.NeLi_Wither_Rose.get(1), NF, DYE_FLUIDS_FLOWER[DYE_INDEX_Black], ST.make(MD.NeLi, "dye", 1, 0));
        RM.ic2_extractor(IL.NeLi_Wither_Rose.get(1), ST.make(MD.NeLi, "dye", 2, 0));
        RM.Squeezer.addRecipe1(T, 16, 16, IL.NeLi_Gloom_Hibiscus.get(1), NF, DYE_FLUIDS_FLOWER[DYE_INDEX_Blue], ST.make(MD.NeLi, "dye", 1, 1));
        RM.Juicer.addRecipe1(T, 16, 16, IL.NeLi_Gloom_Hibiscus.get(1), NF, DYE_FLUIDS_FLOWER[DYE_INDEX_Blue], ST.make(MD.NeLi, "dye", 1, 1));
        RM.ic2_extractor(IL.NeLi_Gloom_Hibiscus.get(1), ST.make(MD.NeLi, "dye", 2, 1));
        RM.Squeezer.addRecipe1(T, 16, 16, IL.NeLi_Bone_Rose.get(1), NF, DYE_FLUIDS_FLOWER[DYE_INDEX_White], ST.make(MD.NeLi, "dye", 1, 2));
        RM.Juicer.addRecipe1(T, 16, 16, IL.NeLi_Bone_Rose.get(1), NF, DYE_FLUIDS_FLOWER[DYE_INDEX_White], ST.make(MD.NeLi, "dye", 1, 2));
        RM.ic2_extractor(IL.NeLi_Bone_Rose.get(1), ST.make(MD.NeLi, "dye", 2, 2));
        RM.Squeezer.addRecipe1(T, 16, 16, IL.NeLi_Soul_Rose.get(1), NF, DYE_FLUIDS_FLOWER[DYE_INDEX_LightBlue], ST.make(Items.dye, 1, DYE_INDEX_LightBlue));
        RM.Juicer.addRecipe1(T, 16, 16, IL.NeLi_Soul_Rose.get(1), NF, DYE_FLUIDS_FLOWER[DYE_INDEX_LightBlue], ST.make(Items.dye, 1, DYE_INDEX_LightBlue));
        RM.ic2_extractor(IL.NeLi_Soul_Rose.get(1), ST.make(Items.dye, 2, DYE_INDEX_LightBlue));
        RM.glowstone(IL.NeLi_Gloomstone.get(1), MT.Gloomstone);
        RM.compactsmash(OP.gem.mat(MT.FluoriteWhite, 1), 4, IL.NeLi_Crystal_White.get(1));
        RM.compactsmash(OP.gem.mat(MT.FluoriteBlue, 1), 4, IL.NeLi_Crystal_Blue.get(1));
        RM.compactsmash(OP.gem.mat(MT.FluoriteGreen, 1), 4, IL.NeLi_Crystal_Green.get(1));
        RM.compactsmash(OP.gem.mat(MT.FluoriteYellow, 1), 4, IL.NeLi_Crystal_Yellow.get(1));
        RM.compactsmash(OP.gem.mat(MT.FluoriteMagenta, 1), 4, IL.NeLi_Crystal_Magenta.get(1));
        RM.sawing(16, 64, F, 25, IL.NeLi_Crystal_White.get(1), OP.plateGem.mat(MT.FluoriteWhite, 4));
        RM.sawing(16, 64, F, 25, IL.NeLi_Crystal_Blue.get(1), OP.plateGem.mat(MT.FluoriteBlue, 4));
        RM.sawing(16, 64, F, 25, IL.NeLi_Crystal_Green.get(1), OP.plateGem.mat(MT.FluoriteGreen, 4));
        RM.sawing(16, 64, F, 25, IL.NeLi_Crystal_Yellow.get(1), OP.plateGem.mat(MT.FluoriteYellow, 4));
        RM.sawing(16, 64, F, 25, IL.NeLi_Crystal_Magenta.get(1), OP.plateGem.mat(MT.FluoriteMagenta, 4));
        RM.lathing(16, 64, IL.NeLi_Crystal_White.get(1), OP.stickLong.mat(MT.FluoriteWhite, 2), OM.dust(MT.FluoriteWhite, 2 * U));
        RM.lathing(16, 64, IL.NeLi_Crystal_Blue.get(1), OP.stickLong.mat(MT.FluoriteBlue, 2), OM.dust(MT.FluoriteBlue, 2 * U));
        RM.lathing(16, 64, IL.NeLi_Crystal_Green.get(1), OP.stickLong.mat(MT.FluoriteGreen, 2), OM.dust(MT.FluoriteGreen, 2 * U));
        RM.lathing(16, 64, IL.NeLi_Crystal_Yellow.get(1), OP.stickLong.mat(MT.FluoriteYellow, 2), OM.dust(MT.FluoriteYellow, 2 * U));
        RM.lathing(16, 64, IL.NeLi_Crystal_Magenta.get(1), OP.stickLong.mat(MT.FluoriteMagenta, 2), OM.dust(MT.FluoriteMagenta, 2 * U));
        RM.biomass(ST.make(MD.NeLi, "Fungus", 8, W));
        RM.biomass(ST.make(MD.NeLi, "Wartblock", 1, W));
        RM.biomass(ST.make(MD.NeLi, "Roots", 8, W));
        RM.biomass(ST.make(MD.NeLi, "NetherGrass", 8, W));
        RM.biomass(ST.make(MD.NeLi, "NetherFlowerShrub", 8, W));
        RM.biomass(ST.make(MD.NeLi, "DoublePlants", 8, W));
        RM.biomass(ST.make(MD.NeLi, "GroundCover", 8, W));
        RM.biomass(ST.make(MD.NeLi, "PotPlants", 8, W));
        RM.biomass(ST.make(MD.NeLi, "Plants", 8, W));
        RM.biomass(ST.make(MD.NeLi, "Plants2", 8, W));
        RM.biomass(ST.make(MD.NeLi, "TwistingVines", 8, W));
        RM.biomass(ST.make(MD.NeLi, "WeepingVines", 8, W));
        RM.biomass(ST.make(MD.NeLi, "Sprouts", 8, W));
        RM.biomass(ST.make(MD.NeLi, "RoastedWart", 8, W));
        RM.biomass(IL.NeLi_Wart_Crimson.wild(8));
        RM.biomass(IL.NeLi_Reed.wild(8));
        RM.biomass(IL.NeLi_Wither_Rose.wild(8));
        RM.biomass(IL.NeLi_Foxfire_Lily.wild(8));
        if (!IL.EtFu_Wart_Block_Nether.exists())
            RM.compact(ST.make(Items.nether_wart, 1, 0), 9, IL.NeLi_Wart_Block_Nether.get(1));
        RM.compact(IL.NeLi_Wart_Crimson.get(1), 9, IL.NeLi_Wart_Block_Crimson.get(1));
        RM.compact(IL.NeLi_Wart_Warped.get(1), 9, IL.NeLi_Wart_Block_Warped.get(1));
        RM.compact(IL.NeLi_Wart_Soggy.get(1), 9, IL.NeLi_Wart_Block_Soggy.get(1));
        RM.box(ST.make(Items.bowl, 1, W), IL.NeLi_Bowl_CrimsonStew.get(1), ST.make(MD.NeLi, "Fungus", 2, 0));
        RM.box(ST.make(Items.bowl, 1, W), IL.NeLi_Bowl_WarpedStew.get(1), ST.make(MD.NeLi, "Fungus", 2, 1));
        RM.box(ST.make(Items.bowl, 1, W), IL.NeLi_Bowl_FoxfireStew.get(1), ST.make(MD.NeLi, "Fungus", 2, 2));
        RM.box(ST.make(Items.bowl, 1, W), IL.NeLi_Bowl_DevilishMaize.get(1), ST.make(MD.NeLi, "DevilishMaizeSeeds", 2, 0));
        RM.add_smelting(ST.make(Items.nether_wart, 1, 0), ST.make(MD.NeLi, "RoastedWart", 1, 0), 0.05F, F, T, F);
        RM.smash(IL.NeLi_Quartz_Bricks.get(1), OP.gem.mat(MT.NetherQuartz, 4));
        RM.smash(IL.NeLi_Quartz_Smooth.get(1), OP.gem.mat(MT.NetherQuartz, 4));
        RM.smash(IL.NeLi_Quartz_Chiseled_Pillar.get(1), OP.gem.mat(MT.NetherQuartz, 4));
        RM.smash(IL.NeLi_Void_Block.get(1), OP.gem.mat(MT.VoidQuartz, 4));
        RM.smash(IL.NeLi_Void_Bricks.get(1), OP.gem.mat(MT.VoidQuartz, 4));
        RM.smash(IL.NeLi_Void_Smooth.get(1), OP.gem.mat(MT.VoidQuartz, 4));
        RM.smash(IL.NeLi_Void_Chiseled.get(1), OP.gem.mat(MT.VoidQuartz, 4));
        RM.smash(IL.NeLi_Void_Pillar.get(1), OP.gem.mat(MT.VoidQuartz, 4));
        RM.smash(IL.NeLi_Void_Chiseled_Pillar.get(1), OP.gem.mat(MT.VoidQuartz, 4));
        RM.smash(ST.make(MD.NeLi, "QuartzWall", 1, 0), OP.gem.mat(MT.NetherQuartz, 4));
        RM.smash(ST.make(MD.NeLi, "QuartzWall", 1, 1), OP.gem.mat(MT.NetherQuartz, 4));
        RM.smash(ST.make(MD.NeLi, "QuartzWall", 1, 2), OP.gem.mat(MT.NetherQuartz, 4));
        RM.smash(ST.make(MD.NeLi, "QuartzWall", 1, 3), OP.gem.mat(MT.VoidQuartz, 4));
        RM.smash(ST.make(MD.NeLi, "QuartzWall", 1, 4), OP.gem.mat(MT.VoidQuartz, 4));
        RM.smash(ST.make(MD.NeLi, "QuartzWall", 1, 5), OP.gem.mat(MT.VoidQuartz, 4));
        RM.smash(ST.make(MD.NeLi, "QuartzSingleSlab", 1, 0), OP.gem.mat(MT.NetherQuartz, 2));
        RM.smash(ST.make(MD.NeLi, "QuartzSingleSlab", 1, 1), OP.gem.mat(MT.NetherQuartz, 2));
        RM.smash(ST.make(MD.NeLi, "QuartzSingleSlab", 1, 2), OP.gem.mat(MT.VoidQuartz, 2));
        RM.smash(ST.make(MD.NeLi, "QuartzSingleSlab", 1, 3), OP.gem.mat(MT.VoidQuartz, 2));
        RM.smash(ST.make(MD.NeLi, "QuartzSingleSlab", 1, 4), OP.gem.mat(MT.VoidQuartz, 2));
        RM.smash(ST.make(MD.NeLi, "QuartzDoubleSlab", 1, 0), OP.gem.mat(MT.NetherQuartz, 4));
        RM.smash(ST.make(MD.NeLi, "QuartzDoubleSlab", 1, 1), OP.gem.mat(MT.NetherQuartz, 4));
        RM.smash(ST.make(MD.NeLi, "QuartzDoubleSlab", 1, 2), OP.gem.mat(MT.VoidQuartz, 4));
        RM.smash(ST.make(MD.NeLi, "QuartzDoubleSlab", 1, 3), OP.gem.mat(MT.VoidQuartz, 4));
        RM.smash(ST.make(MD.NeLi, "QuartzDoubleSlab", 1, 4), OP.gem.mat(MT.VoidQuartz, 4));
        RM.smash(ST.make(MD.NeLi, "QuartzSmoothStairs", 1, W), OP.gem.mat(MT.NetherQuartz, 6));
        RM.smash(ST.make(MD.NeLi, "QuartzBrickStairs", 1, W), OP.gem.mat(MT.NetherQuartz, 6));
        RM.smash(ST.make(MD.NeLi, "QuartzVoidSmoothStairs", 1, W), OP.gem.mat(MT.VoidQuartz, 6));
        RM.smash(ST.make(MD.NeLi, "QuartzVoidBrickStairs", 1, W), OP.gem.mat(MT.VoidQuartz, 6));
        RM.smash(ST.make(MD.NeLi, "QuartzVoidStairs", 1, W), OP.gem.mat(MT.VoidQuartz, 6));
        RM.Boxinator.addRecipe2(T, 16, 16, ST.make(Items.netherbrick, 2, 0), ST.make(Items.nether_wart, 2, 0), ST.make(MD.NeLi, "Netherbricks", 1, 2));
        RM.Boxinator.addRecipe2(T, 16, 16, ST.make(Items.netherbrick, 2, 0), IL.NeLi_Wart_Crimson.get(2), ST.make(MD.NeLi, "Netherbricks", 1, 2));
        RM.Boxinator.addRecipe2(T, 16, 16, ST.make(Items.netherbrick, 2, 0), IL.NeLi_Wart_Warped.get(2), ST.make(MD.NeLi, "Netherbricks", 1, 5));
        RM.Boxinator.addRecipe2(T, 16, 16, ST.make(Items.netherbrick, 2, 0), ST.make(MD.NeLi, "Roots", 2, 1), ST.make(MD.NeLi, "Netherbricks", 1, 5));
        RM.Boxinator.addRecipe2(T, 16, 16, ST.make(Items.netherbrick, 2, 0), IL.NeLi_Wart_Soggy.get(2), ST.make(MD.NeLi, "Netherbricks", 1, 8));
        RM.Boxinator.addRecipe2(T, 16, 16, ST.make(Items.netherbrick, 2, 0), ST.make(MD.NeLi, "Plants", 2, 1), ST.make(MD.NeLi, "Netherbricks", 1, 8));
        RM.pack(rockGt.mat(MT.STONES.Basalt, 4), IL.NeLi_Basalt.get(1));
        RM.pack(rockGt.mat(MT.STONES.Blackstone, 4), IL.NeLi_Blackstone.get(1));
        CR.shaped(IL.NeLi_Basalt.get(1), DEF, "XX", "XX", 'X', rockGt.dat(MT.STONES.Basalt));
        CR.shaped(IL.NeLi_Blackstone.get(1), DEF, "XX", "XX", 'X', rockGt.dat(MT.STONES.Blackstone));
    }
    if (MD.NePl.mLoaded) {
        CR.delate(MD.NePl, "SoulTorch", "NetheriteIngot", "ItemNetheriteSword", "NetheritePickaxe", "ItemNetheriteShovel", "ItemNetheriteAxe", "ItemNetheriteHoe", "NetheriteHelm", "NetheriteChest", "NetheriteLegg", "NetheriteBoots");
        if (ST.invalid(ST.make(MD.EtFu, "netherite_sword", 1, 0))) {
            RM.Bath.addRecipe1(T, 0, 128, ST.make(Items.diamond_sword, 1, 0), MT.Netherite.liquid(2 * U4, T), NF, ST.make(MD.NePl, "ItemNetheriteSword", 1, 0));
            RM.Bath.addRecipe1(T, 0, 128, ST.make(Items.diamond_pickaxe, 1, 0), MT.Netherite.liquid(3 * U4, T), NF, ST.make(MD.NePl, "NetheritePickaxe", 1, 0));
            RM.Bath.addRecipe1(T, 0, 128, ST.make(Items.diamond_shovel, 1, 0), MT.Netherite.liquid(1 * U4, T), NF, ST.make(MD.NePl, "ItemNetheriteShovel", 1, 0));
            RM.Bath.addRecipe1(T, 0, 128, ST.make(Items.diamond_axe, 1, 0), MT.Netherite.liquid(3 * U4, T), NF, ST.make(MD.NePl, "ItemNetheriteAxe", 1, 0));
            RM.Bath.addRecipe1(T, 0, 128, ST.make(Items.diamond_hoe, 1, 0), MT.Netherite.liquid(2 * U4, T), NF, ST.make(MD.NePl, "ItemNetheriteHoe", 1, 0));
            RM.Bath.addRecipe1(T, 0, 128, ST.make(Items.diamond_helmet, 1, 0), MT.Netherite.liquid(5 * U4, T), NF, ST.make(MD.NePl, "NetheriteHelm", 1, 0));
            RM.Bath.addRecipe1(T, 0, 128, ST.make(Items.diamond_chestplate, 1, 0), MT.Netherite.liquid(8 * U4, T), NF, ST.make(MD.NePl, "NetheriteChest", 1, 0));
            RM.Bath.addRecipe1(T, 0, 128, ST.make(Items.diamond_leggings, 1, 0), MT.Netherite.liquid(7 * U4, T), NF, ST.make(MD.NePl, "NetheriteLegg", 1, 0));
            RM.Bath.addRecipe1(T, 0, 128, ST.make(Items.diamond_boots, 1, 0), MT.Netherite.liquid(4 * U4, T), NF, ST.make(MD.NePl, "NetheriteBoots", 1, 0));
        }
        RM.biomass(ST.make(MD.NePl, "WarpedFungus", 8, W));
        RM.biomass(ST.make(MD.NePl, "CrimsonFungus", 8, W));
        RM.biomass(ST.make(MD.NePl, "CrimsonRoots", 8, W));
        RM.biomass(ST.make(MD.NePl, "WarpedRoots", 8, W));
        RM.biomass(ST.make(MD.NePl, "TwistingVines", 8, W));
        RM.smash(IL.NePl_Quartz_Bricks.get(1), OP.gem.mat(MT.NetherQuartz, 4), 4);
        if (MD.NeLi.mLoaded) {
            BlocksGT.blockToDrop.put(IL.NePl_Blackstone, IL.NeLi_Blackstone.get(1));
            BlocksGT.blockToDrop.put(IL.NePl_Blackstone_Polished, IL.NeLi_Blackstone_Polished.get(1));
            BlocksGT.blockToDrop.put(IL.NePl_Blackstone_Chiseled, IL.NeLi_Blackstone_Chiseled.get(1));
            BlocksGT.blockToDrop.put(IL.NePl_Blackstone_Bricks, IL.NeLi_Blackstone_Bricks.get(1));
            BlocksGT.blockToDrop.put(IL.NePl_Blackstone_Cracked, IL.NeLi_Blackstone_Cracked.get(1));
            BlocksGT.blockToDrop.put(IL.NePl_Basalt, IL.NeLi_Basalt.get(1));
            BlocksGT.blockToDrop.put(IL.NePl_Basalt_Polished, IL.NeLi_Basalt_Polished.get(1));
            BlocksGT.blockToDrop.put(IL.NePl_Ancient_Debris, IL.Ancient_Debris.get(1));
            BlocksGT.blockToSilk.put(IL.NePl_Blackstone, IL.NeLi_Blackstone.get(1));
            BlocksGT.blockToSilk.put(IL.NePl_Blackstone_Polished, IL.NeLi_Blackstone_Polished.get(1));
            BlocksGT.blockToSilk.put(IL.NePl_Blackstone_Chiseled, IL.NeLi_Blackstone_Chiseled.get(1));
            BlocksGT.blockToSilk.put(IL.NePl_Blackstone_Bricks, IL.NeLi_Blackstone_Bricks.get(1));
            BlocksGT.blockToSilk.put(IL.NePl_Blackstone_Cracked, IL.NeLi_Blackstone_Cracked.get(1));
            BlocksGT.blockToSilk.put(IL.NePl_Basalt, IL.NeLi_Basalt.get(1));
            BlocksGT.blockToSilk.put(IL.NePl_Basalt_Polished, IL.NeLi_Basalt_Polished.get(1));
            BlocksGT.blockToSilk.put(IL.NePl_Ancient_Debris, IL.Ancient_Debris.get(1));
        } else {
            CR.shapeless(IL.NePl_Torch.get(4), DEF_NCC, new Object[] { OP.dust.dat(MT.SoulSand), OD.blockTorch, OD.blockTorch, OD.blockTorch, OD.blockTorch });
            CR.shapeless(IL.NePl_Torch.get(4), DEF_NCC, new Object[] { OD.flowerWither, OD.blockTorch, OD.blockTorch, OD.blockTorch, OD.blockTorch });
            CR.shapeless(IL.NePl_Torch.get(3), DEF_NCC, new Object[] { OP.dust.dat(MT.SoulSand), OD.blockTorch, OD.blockTorch, OD.blockTorch });
            CR.shapeless(IL.NePl_Torch.get(3), DEF_NCC, new Object[] { OD.flowerWither, OD.blockTorch, OD.blockTorch, OD.blockTorch });
            CR.shapeless(IL.NePl_Torch.get(2), DEF_NCC, new Object[] { OP.dust.dat(MT.SoulSand), OD.blockTorch, OD.blockTorch });
            CR.shapeless(IL.NePl_Torch.get(2), DEF_NCC, new Object[] { OD.flowerWither, OD.blockTorch, OD.blockTorch });
            CR.shapeless(IL.NePl_Torch.get(1), DEF_NCC, new Object[] { OP.dust.dat(MT.SoulSand), OD.blockTorch });
            CR.shapeless(IL.NePl_Torch.get(1), DEF_NCC, new Object[] { OD.flowerWither, OD.blockTorch });
            RM.Boxinator.addRecipe2(T, 16, 16, ST.make(Items.netherbrick, 2, 0), ST.make(Items.nether_wart, 2, 0), ST.make(MD.NePl, "RedBricks", 1, 0));
            RM.pack(rockGt.mat(MT.STONES.Basalt, 4), IL.NePl_Basalt.get(1));
            RM.pack(rockGt.mat(MT.STONES.Blackstone, 4), IL.NePl_Blackstone.get(1));
            CR.shaped(IL.NePl_Basalt.get(1), DEF, "XX", "XX", 'X', rockGt.dat(MT.STONES.Basalt));
            CR.shaped(IL.NePl_Blackstone.get(1), DEF, "XX", "XX", 'X', rockGt.dat(MT.STONES.Blackstone));
        }
    }
    if (MD.PFAA.mLoaded) {
        RM.generify(ST.make(MD.PFAA, "earthyClump", 1, 45), ST.make(Items.clay_ball, 1, 0));
        RM.generify(ST.make(MD.PFAA, "earthyClump", 1, 47), ST.make(Items.clay_ball, 1, 0));
        RM.generify(ST.make(MD.PFAA, "earthyClump", 1, 48), ST.make(Items.clay_ball, 1, 0));
        RM.generify(ST.make(MD.PFAA, "earthyClump", 1, 49), ST.make(Items.clay_ball, 1, 0));
        RM.add_smelting(ST.make(MD.PFAA, "earthyClump", 1, 45), ST.make(Items.brick, 1, 0), F, F, T);
        RM.add_smelting(ST.make(MD.PFAA, "earthyClump", 1, 47), ST.make(Items.brick, 1, 0), F, F, T);
        RM.add_smelting(ST.make(MD.PFAA, "earthyClump", 1, 48), ST.make(Items.brick, 1, 0), F, F, T);
        RM.add_smelting(ST.make(MD.PFAA, "earthyClump", 1, 49), ST.make(Items.brick, 1, 0), F, F, T);
        CR.shaped(OP.plate.mat(MT.ClayBrown, 1), CR.DEF_NCC, "R", "C", 'R', OreDictToolNames.rollingpin, 'C', ST.make(MD.PFAA, "earthyClump", 4, 45));
        CR.shaped(OP.plate.mat(MT.Bentonite, 1), CR.DEF_NCC, "R", "C", 'R', OreDictToolNames.rollingpin, 'C', ST.make(MD.PFAA, "earthyClump", 4, 47));
        CR.shaped(OP.plate.mat(MT.Palygorskite, 1), CR.DEF_NCC, "R", "C", 'R', OreDictToolNames.rollingpin, 'C', ST.make(MD.PFAA, "earthyClump", 4, 48));
        CR.shaped(OP.plate.mat(MT.Kaolinite, 1), CR.DEF_NCC, "R", "C", 'R', OreDictToolNames.rollingpin, 'C', ST.make(MD.PFAA, "earthyClump", 4, 49));
        CR.shapeless(ST.make(MD.PFAA, "earthyClump", 4, 45), CR.DEF_NCC, new Object[] { ST.make(MD.PFAA, "weakClay", 1, 0) });
        CR.shapeless(ST.make(MD.PFAA, "earthyClump", 4, 47), CR.DEF_NCC, new Object[] { ST.make(MD.PFAA, "weakOreClay", 1, 1) });
        CR.shapeless(ST.make(MD.PFAA, "earthyClump", 4, 48), CR.DEF_NCC, new Object[] { ST.make(MD.PFAA, "weakOreClay", 1, 2) });
        CR.shapeless(ST.make(MD.PFAA, "earthyClump", 4, 49), CR.DEF_NCC, new Object[] { ST.make(MD.PFAA, "weakOreClay", 1, 3) });
        RM.packunpack(ST.make(MD.PFAA, "earthyClump", 4, 45), ST.make(MD.PFAA, "weakClay", 1, 0));
        RM.packunpack(ST.make(MD.PFAA, "earthyClump", 4, 47), ST.make(MD.PFAA, "weakOreClay", 1, 1));
        RM.packunpack(ST.make(MD.PFAA, "earthyClump", 4, 48), ST.make(MD.PFAA, "weakOreClay", 1, 2));
        RM.packunpack(ST.make(MD.PFAA, "earthyClump", 4, 49), ST.make(MD.PFAA, "weakOreClay", 1, 3));
        RM.RollingMill.addRecipe1(T, 16, 32, ST.make(MD.PFAA, "earthyClump", 1, 45), OP.plate.mat(MT.ClayBrown, 1));
        RM.RollingMill.addRecipe1(T, 16, 32, ST.make(MD.PFAA, "earthyClump", 1, 47), OP.plate.mat(MT.Bentonite, 1));
        RM.RollingMill.addRecipe1(T, 16, 32, ST.make(MD.PFAA, "earthyClump", 1, 48), OP.plate.mat(MT.Palygorskite, 1));
        RM.RollingMill.addRecipe1(T, 16, 32, ST.make(MD.PFAA, "earthyClump", 1, 49), OP.plate.mat(MT.Kaolinite, 1));
        RM.Compressor.addRecipe1(T, 16, 32, ST.make(MD.PFAA, "earthyClump", 4, 45), ST.make(MD.PFAA, "weakClay", 1, 0));
        RM.Compressor.addRecipe1(T, 16, 32, ST.make(MD.PFAA, "earthyClump", 4, 47), ST.make(MD.PFAA, "weakOreClay", 1, 1));
        RM.Compressor.addRecipe1(T, 16, 32, ST.make(MD.PFAA, "earthyClump", 4, 48), ST.make(MD.PFAA, "weakOreClay", 1, 2));
        RM.Compressor.addRecipe1(T, 16, 32, ST.make(MD.PFAA, "earthyClump", 4, 49), ST.make(MD.PFAA, "weakOreClay", 1, 3));
        RM.Mortar.addRecipe1(T, 16, 16, ST.make(MD.PFAA, "earthyClump", 1, 45), OM.dust(MT.ClayBrown));
        RM.Mortar.addRecipe1(T, 16, 16, ST.make(MD.PFAA, "earthyClump", 1, 47), OM.dust(MT.Bentonite));
        RM.Mortar.addRecipe1(T, 16, 16, ST.make(MD.PFAA, "earthyClump", 1, 48), OM.dust(MT.Palygorskite));
        RM.Mortar.addRecipe1(T, 16, 16, ST.make(MD.PFAA, "earthyClump", 1, 49), OM.dust(MT.Kaolinite));
        RM.Mortar.addRecipe1(T, 16, 64, ST.make(MD.PFAA, "weakClay", 1, 0), OM.dust(MT.ClayBrown, U * 4));
        RM.Mortar.addRecipe1(T, 16, 64, ST.make(MD.PFAA, "weakOreClay", 1, 1), OM.dust(MT.Bentonite, U * 4));
        RM.Mortar.addRecipe1(T, 16, 64, ST.make(MD.PFAA, "weakOreClay", 1, 2), OM.dust(MT.Palygorskite, U * 4));
        RM.Mortar.addRecipe1(T, 16, 64, ST.make(MD.PFAA, "weakOreClay", 1, 3), OM.dust(MT.Kaolinite, U * 4));
        RM.Sifting.addRecipe1(T, 16, 128, new long[] { 10000, 10, 40, 150, 200, 400, 500 }, IL.PFAA_Sands.getWithMeta(1, 1), crushedCentrifuged.mat(MT.OREMATS.Cassiterite, 2), gemExquisite.mat(MT.Zircon, 2), gemFlawless.mat(MT.Zircon, 2), gem.mat(MT.Zircon, 2), gemFlawed.mat(MT.Zircon, 2), gemChipped.mat(MT.Zircon, 2), dust.mat(MT.Zircon, 2));
        RM.Sifting.addRecipe1(T, 16, 128, new long[] { 10000, 10, 40, 150, 200, 400, 500 }, IL.PFAA_Sands.getWithMeta(1, 5), dust.mat(MT.VolcanicAsh, 1), gemExquisite.mat(MT.Olivine, 1), gemFlawless.mat(MT.Olivine, 1), gem.mat(MT.Olivine, 1), gemFlawed.mat(MT.Olivine, 1), gemChipped.mat(MT.Olivine, 1), dust.mat(MT.Olivine, 1));
        RM.Sifting.addRecipe1(T, 16, 128, new long[] { 3000, 3000, 3000, 3000, 3000, 3000 }, IL.PFAA_Sands.getWithMeta(1, 2), crushedPurifiedTiny.mat(MT.Almandine, 8), crushedPurifiedTiny.mat(MT.Andradite, 8), crushedPurifiedTiny.mat(MT.Grossular, 8), crushedPurifiedTiny.mat(MT.Pyrope, 8), crushedPurifiedTiny.mat(MT.Spessartine, 8), crushedPurifiedTiny.mat(MT.Uvarovite, 8));
        RM.Sifting.addRecipe1(T, 16, 128, new long[] { 8000, 8000, 8000, 3000, 3000, 3000 }, IL.PFAA_Sands.getWithMeta(1, 4), dust.mat(MT.MilkyQuartz, 1), dust.mat(MT.CertusQuartz, 1), dust.mat(MT.BlackQuartz, 1), gem.mat(MT.MilkyQuartz, 1), gem.mat(MT.CertusQuartz, 1), gem.mat(MT.BlackQuartz, 1));
        RM.Sifting.addRecipe1(T, 16, 128, IL.PFAA_Sands.getWithMeta(1, 6), crushedPurified.mat(MT.OREMATS.Glauconite, 2));
    }
    if (MD.RH.mLoaded) {
        RM.Sifting.addRecipe1(T, 16, 200, new long[] { 5000, 5000 }, IL.RH_Sand_Olivine.get(1), OP.gem.mat(MT.Olivine, 1), OP.dust.mat(MT.Olivine, 1));
        RM.Sifting.addRecipe1(T, 16, 200, new long[] { 9000, 1000 }, IL.RH_Sand_Gypsum.get(1), OP.dust.mat(MT.Gypsum, 1), OP.dust.mat(MT.S, 1));
        RM.Sifting.addRecipe1(T, 16, 200, new long[] { 9900, 500, 500 }, IL.RH_Sand_Magnetite.get(1), dust.mat(MT.OREMATS.GraniticMineralSand, 1), rockGt.mat(MT.STONES.GraniteBlack, 1), nugget.mat(MT.Au, 1));
        RM.MagneticSeparator.addRecipe1(T, 16, 144, new long[] { 9900, 500, 500, 500 }, IL.RH_Sand_Magnetite.get(1), dust.mat(MT.OREMATS.GraniticMineralSand, 1), rockGt.mat(MT.STONES.GraniteBlack, 1), nugget.mat(MT.Au, 1), dustTiny.mat(MT.Au, 2));
        RM.Centrifuge.addRecipe1(T, 16, 256, new long[] { 9000, 1000 }, IL.RH_Sand_Magnetite.get(1), dust.mat(MT.OREMATS.GraniticMineralSand, 1), dust.mat(MT.V2O5, 1));
        if (MD.TROPIC.mLoaded) {
            RM.Sifting.addRecipe1(T, 16, 200, new long[] { 9900, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 200, 100, 50 }, IL.RH_Sand_Coral.get(1), IL.TROPIC_Sand_Pure.get(1), ST.make(MD.TROPIC, "shell", 1, 0), ST.make(MD.TROPIC, "shell", 1, 1), ST.make(MD.TROPIC, "shell", 1, 2), ST.make(MD.TROPIC, "shell", 1, 3), ST.make(MD.TROPIC, "shell", 1, 4), ST.make(MD.TROPIC, "shell", 1, 5), ST.make(MD.TROPIC, "pearl", 1, 0), ST.make(MD.TROPIC, "pearl", 1, 1), OP.gem.mat(MT.Azurite, 1), OP.gem.mat(MT.Eudialyte, 1), OP.gem.mat(MT.Zr, 1));
        } else {
            RM.Sifting.addRecipe1(T, 16, 200, new long[] { 9900, 200, 100, 50 }, IL.RH_Sand_Coral.get(1), ST.make(Blocks.sand, 1, 0), OP.gem.mat(MT.Azurite, 1), OP.gem.mat(MT.Eudialyte, 1), OP.gem.mat(MT.Zr, 1));
        }
    }
    // Some of these aren't Temporary, but I like having all Generifier Recipes for Fluids in on place.
    RM.generify(FL.make("molten.meteoriciron", 1), FL.make("molten.iron", 1));
    RM.generify(FL.make("molten.wroughtiron", 1), FL.make("molten.iron", 1));
    RM.generify(FL.make("molten.osmiumelemental", 1), FL.make("molten.osmium", 1));
    RM.generify(FL.make("deuterium", 5), FL.make("rc deuterium", 1));
    RM.generify(FL.make("tritium", 5), FL.make("rc tritium", 1));
    RM.generify(FL.make("carbondioxide", 5), FL.make("rc co2", 1));
    RM.generify(FL.make("chlorine", 5), FL.make("rc chlorine", 1));
    RM.generify(FL.make("heavywater", 1), FL.Heavy_Reiker.make(1));
    RM.genericycle(FL.XP.make(3), FL.Mob.make(10));
    RM.genericycle(FL.Redstone_TE.make(25), FL.Redstone.make(36));
    RM.genericycle(FL.Lubricant.make(1), FL.LubRoCant.make(1));
    RM.generify(FL.Oil_Canola.make(2), FL.lube(1));
    RM.generify(FL.make("ethanol", 1), FL.BioEthanol.make(1));
    RM.genericycle(FL.BioEthanol.make(1), FL.Reikanol.make(1));
    RM.genericycle(FL.Oxygen.make(1), FL.Reikygen.make(1));
    RM.genericycle(FL.Liquid_Oxygen.make(1), FL.Liquid_Reikygen.make(1));
    RM.genericycle(FL.make("molten.latex", 1), FL.Latex.make(1));
    RM.generify(FL.Slime_Pink.make(1), FL.Slime_Green.make(1));
    RM.generify(FL.RoyalJelly.make(1), FL.Honey.make(10));
    RM.genericycle(FL.Honey.make(1), FL.HoneyGrC.make(1), FL.HoneyBoP.make(1));
    RM.genericycle(FL.Milk.make(1), FL.MilkGrC.make(1));
    RM.genericycle(FL.make("for.honeydew", 1), FL.Honeydew.make(1));
    RM.genericycle(FL.Resin_Spruce.make(1), FL.Resin.make(1));
    RM.genericycle(FL.make("sulfuricacid", 1), FL.make("acid", 1));
    RM.genericycle(FL.Oil_Plant.make(2), FL.Oil_Seed.make(1));
    RM.genericycle(FL.Biomass.make(1), FL.BiomassIC2.make(1));
    RM.genericycle(FL.Methane.make(1), FL.make("ic2biogas", 4));
    RM.generify(FL.make("gas_natural_gas", 1), FL.Methane.make(1));
    RM.generify(FL.make("naturalgas", 1), FL.Methane.make(1));
    RM.generify(FL.make("gas.natural", 1), FL.Methane.make(1));
    RM.generify(FL.Liquid_Methane.make(1), FL.Methane.make(643));
    RM.genericycle(FL.make("kerosine", 1), FL.make("kerosene", 1));
    RM.genericycle(FL.make("petrol", 1), FL.make("gasoline", 1));
    RM.genericycle(FL.make("fuel", 1), FL.make("fueloil", 1));
    RM.generify(FL.Steam_IC2_Superheated.make(1), FL.Steam.make(3));
    RM.generify(FL.Steam_IC2.make(1), FL.Steam.make(1));
    RM.generify(FL.Lava_Volcanic.make(1), FL.Lava.make(1));
    RM.generify(FL.DistW.make(1), FL.Water.make(1));
    RM.generify(FL.SpDew.make(1), FL.Water.make(1));
    RM.generify(FL.River_Water.make(1), FL.Water.make(1));
    RM.generify(FL.Water_Geothermal.make(1), FL.Water.make(1));
    RM.generify(FL.Water_Boiling.make(1), FL.Water.make(1));
    RM.generify(FL.Water_Hot.make(1), FL.Water.make(1));
    RM.generify(FL.Soda.make(1), FL.Water.make(1));
    RM.generify(FL.Mineralsoda.make(1), FL.Water.make(1));
    RM.generify(FL.Mineralwater.make(1), FL.Water.make(1));
    RM.generify(FL.Oil_Lin.make(1), FL.Oil_Seed.make(1));
    RM.generify(FL.Oil_Hemp.make(1), FL.Oil_Seed.make(1));
    RM.generify(FL.Oil_Olive.make(1), FL.Oil_Seed.make(1));
    RM.generify(FL.Oil_Sunflower.make(1), FL.Oil_Seed.make(1));
    RM.generify(FL.Oil_Nut.make(1), FL.Oil_Seed.make(1));
    for (String tFluid : FluidsGT.JUICE) if (FL.exists(tFluid))
        RM.generify(FL.make(tFluid, 1), FL.Juice.make(1));
    for (Entry<String, String> tEntry : FluidsGT.FLUID_RENAMINGS.entrySet()) RM.generify(FL.make(tEntry.getKey(), 1), FL.make(tEntry.getValue(), 1));
}
Also used : OreDictMaterial(gregapi.oredict.OreDictMaterial) OreDictListenerEvent_Names(gregapi.oredict.event.OreDictListenerEvent_Names) IOreDictListenerEvent(gregapi.oredict.event.IOreDictListenerEvent) OreDictItemData(gregapi.oredict.OreDictItemData) FluidStack(net.minecraftforge.fluids.FluidStack) ItemStack(net.minecraft.item.ItemStack)

Example 2 with IOreDictListenerEvent

use of gregapi.oredict.event.IOreDictListenerEvent in project gregtech6 by GregTech6.

the class Loader_Recipes_OreDict method addAllListeners.

@Override
public void addAllListeners() {
    addListener(OP.dust.dat(MT.Glass), OP.dust.dat(MT.Sand), OP.dust.dat(MT.RedSand), OP.dust.dat(MT.EndSand), new IOreDictListenerEvent() {

        @Override
        public void onOreRegistration(OreDictRegistrationContainer aEvent) {
            RM.add_smelting(aEvent.mStack, ST.make(Blocks.glass_pane, 1, 0), F, F, F);
        }
    });
    addListener(OP.blockDust.dat(MT.Glass), OP.blockDust.dat(MT.Sand), OP.blockDust.dat(MT.RedSand), OP.blockDust.dat(MT.EndSand), new IOreDictListenerEvent() {

        @Override
        public void onOreRegistration(OreDictRegistrationContainer aEvent) {
            RM.add_smelting(aEvent.mStack, ST.make(Blocks.glass, 1, 0), F, F, F);
        }
    });
    addListener(OP.dust.dat(MT.Stone), new IOreDictListenerEvent() {

        @Override
        public void onOreRegistration(OreDictRegistrationContainer aEvent) {
            RM.add_smelting(aEvent.mStack, OP.plate.mat(MT.Stone, 1), T, F, F);
        }
    });
    addListener(OP.blockDust.dat(MT.Stone), new IOreDictListenerEvent() {

        @Override
        public void onOreRegistration(OreDictRegistrationContainer aEvent) {
            RM.add_smelting(aEvent.mStack, ST.make(Blocks.stone, 1, 0), T, F, F);
        }
    });
    addListener(OP.blockDust.dat(MT.Concrete), new IOreDictListenerEvent() {

        @Override
        public void onOreRegistration(OreDictRegistrationContainer aEvent) {
            RM.add_smelting(aEvent.mStack, ST.make(MD.CHSL, "concrete", 1, 0, ST.make(Blocks.stone, 1, 0)), F, F, F);
        }
    });
    addListener(OP.dustDiv72.dat(MT.ArcaneCompound), new IOreDictListenerEvent() {

        @Override
        public void onOreRegistration(OreDictRegistrationContainer aEvent) {
            RM.add_smelting(aEvent.mStack, OP.dustDiv72.mat(MT.ArcaneAsh, 2), F, F, F);
        }
    });
    addListener(OP.dustTiny.dat(MT.ArcaneCompound), new IOreDictListenerEvent() {

        @Override
        public void onOreRegistration(OreDictRegistrationContainer aEvent) {
            RM.add_smelting(aEvent.mStack, OP.dustTiny.mat(MT.ArcaneAsh, 2), F, F, F);
        }
    });
    addListener(OP.dustSmall.dat(MT.ArcaneCompound), new IOreDictListenerEvent() {

        @Override
        public void onOreRegistration(OreDictRegistrationContainer aEvent) {
            RM.add_smelting(aEvent.mStack, OP.dustSmall.mat(MT.ArcaneAsh, 2), F, F, F);
        }
    });
    addListener(OP.dust.dat(MT.ArcaneCompound), new IOreDictListenerEvent() {

        @Override
        public void onOreRegistration(OreDictRegistrationContainer aEvent) {
            RM.add_smelting(aEvent.mStack, OP.dust.mat(MT.ArcaneAsh, 2), F, F, F);
        }
    });
    addListener(OP.blockDust.dat(MT.ArcaneCompound), new IOreDictListenerEvent() {

        @Override
        public void onOreRegistration(OreDictRegistrationContainer aEvent) {
            RM.add_smelting(aEvent.mStack, OP.blockDust.mat(MT.ArcaneAsh, 2), F, F, F);
        }
    });
    addListener(DYE_OREDICTS_LENS[DYE_INDEX_White], new IOreDictListenerEvent() {

        @Override
        public void onOreRegistration(OreDictRegistrationContainer aEvent) {
            RM.LaserEngraver.addRecipe2(T, 16, 64, ST.make(Blocks.stone, 1, W), ST.amount(0, aEvent.mStack), ST.make(Blocks.stonebrick, 1, 3));
            RM.LaserEngraver.addRecipe2(T, 16, 128, IL.Module_Stone_Generator.get(0), ST.amount(0, aEvent.mStack), ST.make(Blocks.stonebrick, 1, 3));
            RM.LaserEngraver.addRecipe2(T, 16, 128, IL.Module_Basalt_Generator.get(0), ST.amount(0, aEvent.mStack), IL.NeLi_Basalt_Polished.get(1, IL.NePl_Basalt_Polished.get(1, ST.make(BlocksGT.Basalt, 1, BlockStones.BRICK))));
            RM.LaserEngraver.addRecipe2(T, 16, 128, IL.Module_Blackstone_Generator.get(0), ST.amount(0, aEvent.mStack), IL.NeLi_Blackstone_Bricks.get(1, IL.NePl_Blackstone_Bricks.get(1, ST.make(BlocksGT.Basalt, 1, BlockStones.BRICK))));
        }
    });
    addListener(OP.blockSolid.dat(MT.Obsidian), new IOreDictListenerEvent() {

        @Override
        public void onOreRegistration(OreDictRegistrationContainer aEvent) {
            RM.Hammer.addRecipe1(T, 16, 64, aEvent.mStack, IL.RC_Crushed_Obsidian.get(1, OP.dust.mat(MT.Obsidian, 8)));
            RM.Crusher.addRecipe1(T, 16, 600, new long[] { 10000, 2500 }, aEvent.mStack, IL.RC_Crushed_Obsidian.get(1, OP.dust.mat(MT.Obsidian, 8)), OP.dust.mat(MT.Obsidian, 1));
            RM.pulverizing(aEvent.mStack, IL.RC_Crushed_Obsidian.get(1, OP.dust.mat(MT.Obsidian, 8)), OP.dust.mat(MT.Obsidian, 1), 25, T);
        }
    });
    addListener("stoneNetherBrick", new IOreDictListenerEvent() {

        @Override
        public void onOreRegistration(OreDictRegistrationContainer aEvent) {
            RM.Hammer.addRecipe1(T, 16, 16, aEvent.mStack, ST.make(Items.netherbrick, 3, 0));
            RM.Crusher.addRecipe1(T, 16, 16, new long[] { 10000, 9000, 8000, 7000 }, aEvent.mStack, ST.make(Items.netherbrick, 1, 0), ST.make(Items.netherbrick, 1, 0), ST.make(Items.netherbrick, 1, 0), ST.make(Items.netherbrick, 1, 0));
        }
    });
    addListener("stoneNetherrack", new IOreDictListenerEvent() {

        @Override
        public void onOreRegistration(OreDictRegistrationContainer aEvent) {
            RM.Hammer.addRecipe1(T, 16, 16, aEvent.mStack, OP.rockGt.mat(MT.Netherrack, 4));
            RM.Crusher.addRecipe1(T, 16, 16, aEvent.mStack, OP.rockGt.mat(MT.Netherrack, 4));
        }
    });
    addListener("stoneEndstone", new IOreDictListenerEvent() {

        @Override
        public void onOreRegistration(OreDictRegistrationContainer aEvent) {
            RM.Hammer.addRecipe1(T, 16, 16, aEvent.mStack, OP.rockGt.mat(MT.Endstone, 4));
            RM.Crusher.addRecipe1(T, 16, 16, aEvent.mStack, OP.rockGt.mat(MT.Endstone, 4));
        }
    });
    addListener(OD.itemTar, new IOreDictListenerEvent() {

        @Override
        public void onOreRegistration(OreDictRegistrationContainer aEvent) {
            RM.Laminator.addRecipe2(T, 16, 16, aEvent.mStack, ST.make(Blocks.piston, 1, W), ST.make(Blocks.sticky_piston, 1, 0));
            for (FluidStack tWater : FL.waters(250, 200)) RM.Mixer.addRecipe1(T, 16, 16, aEvent.mStack, tWater, FL.Glue.make(250), ZL_IS);
            RM.Loom.addRecipeX(T, 16, 16, ST.array(ST.tag(3), aEvent.mStack, ST.make((Item) OP.plantGtFiber.mRegisteredPrefixItems.get(0), 4, W)), ST.make(Items.lead, 2, 0));
            RM.Loom.addRecipeX(T, 16, 16, ST.array(ST.tag(3), aEvent.mStack, ST.make(Items.string, 4, W)), ST.make(Items.lead, 2, 0));
        }
    });
    addListener(OD.slimeball, new IOreDictListenerEvent() {

        @Override
        public void onOreRegistration(OreDictRegistrationContainer aEvent) {
            if (OD.itemTar.is_(aEvent.mStack))
                return;
            if (ST.item_(aEvent.mStack) != Items.slime_ball)
                RM.generify(aEvent.mStack, ST.make(Items.slime_ball, 1, 0));
            RM.Mixer.addRecipe2(T, 16, 16, aEvent.mStack, OM.dust(MT.Blaze, U9), ST.make(Items.magma_cream, 1, 0));
            RM.Mixer.addRecipe2(T, 16, 16, ST.amount(9, aEvent.mStack), OM.dust(MT.Blaze), ST.make(Items.magma_cream, 9, 0));
            if (!OD.slimeballSwet.is_(aEvent.mStack) && !OD.slimeballPink.is_(aEvent.mStack) && !OD.slimeballRice.is_(aEvent.mStack) && !OD.slimeballBorax.is_(aEvent.mStack)) {
                RM.Squeezer.addRecipe1(T, 16, 64, aEvent.mStack, NF, FL.Slime_Green.make(250), ZL_IS);
                RM.Juicer.addRecipe1(T, 16, 64, aEvent.mStack, NF, FL.Slime_Green.make(125), ZL_IS);
                RM.Centrifuge.addRecipe1(T, 16, 64, aEvent.mStack, NF, FL.Latex.make(L / 2), FL.Glue.make(250));
                RM.Drying.addRecipe1(T, 16, 128, aEvent.mStack, NF, FL.DistW.make(50), ST.make(MD.SC2, "ItemSlimeRubber", 1, 0));
            }
            RM.Laminator.addRecipe2(T, 16, 16, aEvent.mStack, ST.make(Blocks.piston, 1, W), ST.make(Blocks.sticky_piston, 1, 0));
            for (FluidStack tWater : FL.waters(250, 200)) RM.Mixer.addRecipe1(T, 16, 16, aEvent.mStack, tWater, FL.Glue.make(250), ZL_IS);
            RM.Loom.addRecipeX(T, 16, 16, ST.array(ST.tag(3), aEvent.mStack, ST.make((Item) OP.plantGtFiber.mRegisteredPrefixItems.get(0), 4, W)), ST.make(Items.lead, 2, 0));
            RM.Loom.addRecipeX(T, 16, 16, ST.array(ST.tag(3), aEvent.mStack, ST.make(Items.string, 4, W)), ST.make(Items.lead, 2, 0));
        }
    });
    addListener(OD.slimeballPink, new IOreDictListenerEvent() {

        @Override
        public void onOreRegistration(OreDictRegistrationContainer aEvent) {
            RM.Squeezer.addRecipe1(T, 16, 64, aEvent.mStack, NF, FL.Slime_Pink.make(250, FL.Slime_Green), ZL_IS);
            RM.Juicer.addRecipe1(T, 16, 64, aEvent.mStack, NF, FL.Slime_Pink.make(125, FL.Slime_Green), ZL_IS);
            RM.Centrifuge.addRecipe1(T, 16, 64, aEvent.mStack, NF, FL.Latex.make(L / 2), FL.Glue.make(250));
            RM.Drying.addRecipe1(T, 16, 128, aEvent.mStack, NF, FL.DistW.make(50), ST.make(MD.SC2, "ItemSlimeRubber", 1, 0));
            RM.generify(aEvent.mStack, ST.make(Items.slime_ball, 1, 0));
        }
    });
    addListener(OD.slimeballSwet, new IOreDictListenerEvent() {

        @Override
        public void onOreRegistration(OreDictRegistrationContainer aEvent) {
            RM.Squeezer.addRecipe1(T, 16, 64, aEvent.mStack, NF, FL.Slime_Green.make(250), ZL_IS);
            RM.Juicer.addRecipe1(T, 16, 64, aEvent.mStack, NF, FL.Slime_Green.make(125), ZL_IS);
            RM.Centrifuge.addRecipe1(T, 16, 64, aEvent.mStack, NF, FL.Latex.make(L / 2), FL.Glue.make(250));
            RM.Drying.addRecipe1(T, 16, 128, aEvent.mStack, NF, FL.DistW.make(50), ST.make(MD.SC2, "ItemSlimeRubber", 1, 0));
            RM.generify(aEvent.mStack, ST.make(Items.slime_ball, 1, 0));
        }
    });
    addListener("foodJellyfishraw", new IOreDictListenerEvent() {

        @Override
        public void onOreRegistration(OreDictRegistrationContainer aEvent) {
            RM.Squeezer.addRecipe1(T, 16, 16, 9000, aEvent.mStack, NF, NF, ST.make(Items.slime_ball, 1, 0));
            RM.Juicer.addRecipe1(T, 16, 16, 7000, aEvent.mStack, NF, NF, ST.make(Items.slime_ball, 1, 0));
            RM.Centrifuge.addRecipe1(T, 16, 16, aEvent.mStack, NF, FL.Glue.make(500), ZL_IS);
        }
    });
    addListener(OD.record, new IOreDictListenerEvent() {

        @Override
        public void onOreRegistration(OreDictRegistrationContainer aEvent) {
            if (!BooksGT.BOOK_REGISTER.containsKey(aEvent.mStack, T))
                BooksGT.BOOK_REGISTER.put(new ItemStackContainer(aEvent.mStack), (byte) 30);
        }
    });
    addListener(OP.treeSapling, new IOreDictListenerEvent() {

        @Override
        public void onOreRegistration(OreDictRegistrationContainer aEvent) {
            RM.sawing(16, 16, F, 1, aEvent.mStack, OP.stick.mat(MT.Wood, 1));
        }
    });
    addListener(OD.logRubber, new IOreDictListenerEvent() {

        @Override
        public void onOreRegistration(OreDictRegistrationContainer aEvent) {
            RM.ic2_extractor(aEvent.mStack, dustSmall.mat(MT.Rubber, 2));
            RM.pulverizing(aEvent.mStack, dust.mat(MT.WoodRubber, 6), IL.IC2_Resin.get(1, IL.Resin.get(1)), 33, F);
            if (FL.Resin_Rubber.exists())
                RM.Squeezer.addRecipe1(T, 16, 64, 5000, aEvent.mStack, NF, FL.Resin_Rubber.make(200), IL.IC2_Resin.get(1, IL.Resin.get(1)));
        }
    });
    addListener(OD.logWood, OD.logRubber, new IOreDictListenerEvent() {

        @Override
        public void onOreRegistration(OreDictRegistrationContainer aEvent) {
            if (ConfigsGT.RECIPES.get(ConfigCategories.Recipes.disabledrecipes, "wood2charcoalsmelting", T))
                RM.rem_smelting(aEvent.mStack, ST.make(Items.coal, 1, 1));
            if (ST.block(aEvent.mStack) == BlocksGT.Log1)
                return;
            if (IL.MaCu_Polished_Logs.exists()) {
                RM.Bath.addRecipe1(T, 0, 144, aEvent.mStack, FL.Oil_Fish.make(3000), NF, IL.MaCu_Polished_Logs.get(1));
                RM.Bath.addRecipe1(T, 0, 144, aEvent.mStack, FL.Oil_Whale.make(1500), NF, IL.MaCu_Polished_Logs.get(1));
            }
            for (FluidStack tWater : FL.waters(1000)) RM.Freezer.addRecipe1(T, 16, 16, aEvent.mStack, tWater, NF, ST.make(BlocksGT.Log1, 1, 3));
            RM.Drying.addRecipe1(T, 16, 128, aEvent.mStack, NF, FL.DistW.make(64), ST.make(BlocksGT.Log1, 1, 0));
            RM.Fermenter.addRecipe1(T, 16, 128, aEvent.mStack, ST.make(BlocksGT.Log1, 1, 1));
            if (WoodDictionary.IGNORED_OREDICT_REGISTRATIONS.contains(ST.item_(aEvent.mStack)))
                return;
            OreDictMaterial tWood = MT.Wood;
            if (aEvent.mOreDictName.equals(OD.logRubber.toString())) {
                tWood = MT.WoodRubber;
                RM.debarking(aEvent.mStack, ST.make(BlocksGT.Beam2, 1, 2), OM.dust(MT.Bark));
            } else {
                RM.debarking(aEvent.mStack, ST.make(BlocksGT.Beam2, 1, 3), OM.dust(MT.Bark));
            }
            RM.Lathe.addRecipe1(T, 16, 80, aEvent.mStack, stickLong.mat(tWood, 4), dust.mat(tWood, 2));
            RM.CokeOven.addRecipe1(T, 0, 3600, aEvent.mStack, NF, FL.Oil_Creosote.make(200), OP.gem.mat(MT.Charcoal, 1));
            if (ST.meta_(aEvent.mStack) == W) {
                ItemStack tPlank;
                for (int i = 0; i < W; i++) {
                    tPlank = CR.get(ST.make(ST.item_(aEvent.mStack), 1, i));
                    if (tPlank == null) {
                        if (i < 16)
                            continue;
                        break;
                    }
                    ItemStack tPlanks = ST.amount((tPlank.stackSize * 3) / 2, tPlank);
                    tPlanks.stackSize = (tPlanks.stackSize * 3) / 2;
                    RM.sawing(16, 128, F, 5, ST.make(ST.item_(aEvent.mStack), 1, i), ST.copy(tPlanks), dust.mat(tWood, 1), OM.dust(MT.Bark, U2));
                    CR.remove(ST.make(ST.item_(aEvent.mStack), 1, i));
                    CR.shaped(ST.amount(NERFED_WOOD ? tPlank.stackSize : (tPlank.stackSize * 5) / 4, tPlank), CR.DEF_NCC | CR.ONLY_IF_HAS_RESULT, "s", "L", 'L', ST.make(ST.item_(aEvent.mStack), 1, i));
                    CR.shapeless(ST.amount(tPlank.stackSize / (NERFED_WOOD ? 2 : 1), tPlank), CR.DEF_NCC | CR.ONLY_IF_HAS_RESULT, new Object[] { ST.make(ST.item_(aEvent.mStack), 1, i) });
                }
            } else {
                ItemStack tPlank = CR.get(ST.array(aEvent.mStack));
                if (tPlank != null) {
                    ItemStack tPlanks = ST.copy(tPlank);
                    tPlanks.stackSize = (tPlanks.stackSize * 3) / 2;
                    RM.sawing(16, 128, F, 5, aEvent.mStack, ST.copy(tPlanks), dust.mat(tWood, 1), OM.dust(MT.Bark, U2));
                    CR.remove(aEvent.mStack);
                    CR.shaped(ST.amount(NERFED_WOOD ? tPlank.stackSize : (tPlank.stackSize * 5) / 4, tPlank), CR.DEF_NCC | CR.ONLY_IF_HAS_RESULT, "s", "L", 'L', aEvent.mStack);
                    CR.shapeless(ST.amount(tPlank.stackSize / (NERFED_WOOD ? 2 : 1), tPlank), CR.DEF_NCC | CR.ONLY_IF_HAS_RESULT, new Object[] { aEvent.mStack });
                }
            }
        }
    });
    addListener(OD.slabWood, new IOreDictListenerEvent() {

        @Override
        public void onOreRegistration(OreDictRegistrationContainer aEvent) {
            RM.generify(aEvent.mStack, IL.Plank_Slab.get(1));
        }
    });
    addListener(OD.plankSkyroot, OD.plankWeedwood, OD.plankWood, new IOreDictListenerEvent() {

        @Override
        public void onOreRegistration(OreDictRegistrationContainer aEvent) {
            RM.generify(aEvent.mStack, IL.Plank.get(1));
            RM.Assembler.addRecipe2(T, 16, 32, ST.amount(8, aEvent.mStack), dust.mat(MT.Redstone, 1), ST.make(Blocks.noteblock, 1, 0));
            RM.Assembler.addRecipe2(T, 16, 64, ST.amount(8, aEvent.mStack), gem.mat(MT.Diamond, 1), ST.make(Blocks.jukebox, 1, 0));
            // RM.Assembler.addRecipe2(T, 16,  32, aEvent.mStack, screw.mat(MT.Fe, 1), IL.Crate_Empty.get(1));
            // RM.Assembler.addRecipe2(T, 16,  32, aEvent.mStack, screw.mat(MT.WroughtIron, 1), IL.Crate_Empty.get(1));
            // RM.Assembler.addRecipe2(T, 16,  32, aEvent.mStack, screw.mat(MT.Steel, 1), IL.Crate_Empty.get(1));
            RM.Assembler.addRecipe2(T, 16, 16, aEvent.mStack, ST.tag(1), ST.make(Blocks.wooden_button, 1, 0));
            RM.Assembler.addRecipe2(T, 16, 32, ST.amount(2, aEvent.mStack), ST.tag(2), ST.make(Blocks.wooden_pressure_plate, 1, 0));
            RM.Assembler.addRecipe2(T, 16, 48, ST.amount(3, aEvent.mStack), ST.tag(3), ST.make(Blocks.trapdoor, 1, 0));
            RM.Assembler.addRecipe2(T, 16, 64, ST.amount(4, aEvent.mStack), ST.tag(4), ST.make(Blocks.crafting_table, 1, 0));
            RM.Assembler.addRecipe2(T, 16, 96, ST.amount(2, aEvent.mStack), ST.tag(6), ST.make(Items.wooden_door, 1, 0));
            RM.Assembler.addRecipe2(T, 16, 128, ST.amount(8, aEvent.mStack), ST.tag(8), ST.make(Blocks.chest, 1, 0));
            RM.Assembler.addRecipe2(T, 16, 64, ST.amount(6, aEvent.mStack), ST.make(Items.book, 3, 0), ST.make(Blocks.bookshelf, 1, 0));
            if (WoodDictionary.IGNORED_OREDICT_REGISTRATIONS.contains(ST.item_(aEvent.mStack)))
                return;
            if (IL.MaCu_Polished_Planks.exists()) {
                RM.Bath.addRecipe1(T, 0, 144, aEvent.mStack, FL.Oil_Fish.make(1000), NF, IL.MaCu_Polished_Planks.get(1));
                RM.Bath.addRecipe1(T, 0, 144, aEvent.mStack, FL.Oil_Whale.make(500), NF, IL.MaCu_Polished_Planks.get(1));
            }
            ItemStack tTreated = IL.IE_Treated_Planks.get(1, IL.Treated_Planks.get(1));
            RM.Bath.addRecipe1(T, 0, 144, aEvent.mStack, FL.Oil_Seed.make(100), NF, tTreated);
            RM.Bath.addRecipe1(T, 0, 144, aEvent.mStack, FL.Oil_Lin.make(100), NF, tTreated);
            RM.Bath.addRecipe1(T, 0, 144, aEvent.mStack, FL.Oil_Hemp.make(100), NF, tTreated);
            RM.Bath.addRecipe1(T, 0, 144, aEvent.mStack, FL.Oil_Nut.make(100), NF, tTreated);
            RM.Bath.addRecipe1(T, 0, 144, aEvent.mStack, FL.Oil_Olive.make(100), NF, tTreated);
            RM.Bath.addRecipe1(T, 0, 144, aEvent.mStack, FL.Oil_Sunflower.make(100), NF, tTreated);
            RM.Bath.addRecipe1(T, 0, 144, aEvent.mStack, FL.Oil_Creosote.make(100), NF, tTreated);
        }
    });
}
Also used : OreDictMaterial(gregapi.oredict.OreDictMaterial) Item(net.minecraft.item.Item) ItemStackContainer(gregapi.code.ItemStackContainer) IOreDictListenerEvent(gregapi.oredict.event.IOreDictListenerEvent) FluidStack(net.minecraftforge.fluids.FluidStack) ItemStack(net.minecraft.item.ItemStack)

Example 3 with IOreDictListenerEvent

use of gregapi.oredict.event.IOreDictListenerEvent in project gregtech6 by GregTech6.

the class Compat_Recipes_Forestry method onPostLoad.

@Override
public void onPostLoad(FMLPostInitializationEvent aInitEvent) {
    OUT.println("GT_Mod: Doing Forestry Recipes.");
    CR.remove(OM.ingot(MT.Sn), OM.ingot(MT.Cu), NI, OM.ingot(MT.Cu), OM.ingot(MT.Cu));
    CR.delate(MD.FR, "honeyedSlice", "letters");
    RM.generify(IL.FR_Royal_Jelly.get(1), IL.HaC_Royal_Jelly.get(1));
    RM.generify(IL.HaC_Royal_Jelly.get(1), IL.FR_Royal_Jelly.get(1));
    OM.data(CR.get(null, OP.ingot.mat(MT.Sn, 1), null, OP.ingot.mat(MT.Sn, 1), null, OP.ingot.mat(MT.Sn, 1), null, null, null), new OreDictItemData(MT.Sn, U * 3));
    long tBits = DEF | DEL_OTHER_SHAPED_RECIPES | DEL_OTHER_NATIVE_RECIPES | ONLY_IF_HAS_OTHER_RECIPES;
    CR.shaped(ST.make(MD.FR, "gearTin", 1, 0), tBits, " X ", "XGX", " X ", 'X', OP.ingot.dat(MT.Sn), 'G', OP.gear.dat(ANY.Stone));
    CR.shaped(ST.make(MD.FR, "gearCopper", 1, 0), tBits, " X ", "XGX", " X ", 'X', OP.ingot.dat(ANY.Cu), 'G', OP.gear.dat(ANY.Stone));
    CR.shaped(ST.make(MD.FR, "gearBronze", 1, 0), tBits, " X ", "XGX", " X ", 'X', OP.ingot.dat(MT.Bronze), 'G', OP.gear.dat(ANY.Stone));
    CR.shapeless(ST.make(MD.FR, "gearTin", 1, 0), new Object[] { OP.gearGt.dat(MT.Sn) });
    CR.shapeless(ST.make(MD.FR, "gearCopper", 1, 0), new Object[] { OP.gearGt.dat(ANY.Cu) });
    CR.shapeless(ST.make(MD.FR, "gearBronze", 1, 0), new Object[] { OP.gearGt.dat(MT.Bronze) });
    CR.shapeless(IL.FR_Mulch.get(1), CR.DEF_NCC, new Object[] { OD.itemPlantRemains, OD.itemPlantRemains, OD.itemPlantRemains, OD.itemPlantRemains });
    CR.shapeless(IL.FR_Mulch.get(1), CR.DEF_NCC, new Object[] { OD.itemGrassMoldy, OD.itemGrassMoldy });
    CR.shapeless(IL.FR_Mulch.get(1), CR.DEF_NCC, new Object[] { OD.itemGrassRotten });
    CR.shapeless(ST.make(MD.FR, "honeyedSlice", 1, 0), CR.DEF_NCC, new Object[] { IL.Food_Bread_Sliced, OD.container250honey });
    CR.shaped(ST.make(MD.FR, "letters", 1, 0), CR.DEF_NCC, "G", "P", 'P', OD.paperEmpty, 'G', OD.itemGlue);
    CR.shaped(ST.make(MD.FR, "letters", 1, 0), CR.DEF_NCC, "G", "P", 'P', OD.paperEmpty, 'G', "listAllpropolis");
    RM.Printer.addRecipe2(F, 16, 128, ST.make(Items.paper, 1, W), ST.tag(0), FL.Glue.make(200), NF, ST.make(MD.FR, "letters", 1, 0));
    if (CR.has(ST.make(MD.FR, "stamps", 1, 0))) {
        RM.Printer.addRecipe2(F, 16, 16, OP.plateTiny.mat(MT.Paper, 1), OM.dust(MT.Apatite, U9), FL.Glue.make(25), NF, ST.make(MD.FR, "stamps", 1, 0));
        RM.Printer.addRecipe2(F, 16, 128, OP.plateTiny.mat(MT.Paper, 9), OM.dust(MT.Apatite, U), FL.Glue.make(225), NF, ST.make(MD.FR, "stamps", 9, 0));
        RM.Printer.addRecipe2(F, 16, 16, OP.plateTiny.mat(MT.Paper, 1), OP.plateTiny.mat(MT.Zn, 1), FL.Glue.make(25), NF, ST.make(MD.FR, "stamps", 1, 0));
    }
    if (CR.has(ST.make(MD.FR, "stamps", 1, 1))) {
        RM.Printer.addRecipe2(F, 16, 16, OP.plateTiny.mat(MT.Paper, 1), OP.plateTiny.mat(MT.Pb, 1), FL.Glue.make(25), NF, ST.make(MD.FR, "stamps", 1, 1));
        for (OreDictMaterial tMat : ANY.Cu.mToThis) RM.Printer.addRecipe2(F, 16, 16, OP.plateTiny.mat(MT.Paper, 1), OP.plateTiny.mat(tMat, 1), FL.Glue.make(25), NF, ST.make(MD.FR, "stamps", 1, 1));
    }
    if (CR.has(ST.make(MD.FR, "stamps", 1, 2))) {
        RM.Printer.addRecipe2(F, 16, 16, OP.plateTiny.mat(MT.Paper, 1), OP.plateTiny.mat(MT.Sn, 1), FL.Glue.make(25), NF, ST.make(MD.FR, "stamps", 1, 2));
        RM.Printer.addRecipe2(F, 16, 16, OP.plateTiny.mat(MT.Paper, 1), OP.plateTiny.mat(MT.Bi, 1), FL.Glue.make(25), NF, ST.make(MD.FR, "stamps", 1, 2));
        RM.Printer.addRecipe2(F, 16, 16, OP.plateTiny.mat(MT.Paper, 1), OP.plateTiny.mat(MT.Bronze, 1), FL.Glue.make(25), NF, ST.make(MD.FR, "stamps", 1, 2));
    }
    if (CR.has(ST.make(MD.FR, "stamps", 1, 3))) {
        RM.Printer.addRecipe2(F, 16, 16, OP.plateTiny.mat(MT.Paper, 1), OP.plateTiny.mat(MT.Au, 1), FL.Glue.make(25), NF, ST.make(MD.FR, "stamps", 1, 3));
        RM.Printer.addRecipe2(F, 16, 16, OP.plateTiny.mat(MT.Paper, 1), OP.plateTiny.mat(MT.Ag, 1), FL.Glue.make(25), NF, ST.make(MD.FR, "stamps", 1, 3));
        RM.Printer.addRecipe2(F, 16, 16, OP.plateTiny.mat(MT.Paper, 1), OP.plateTiny.mat(MT.Electrum, 1), FL.Glue.make(25), NF, ST.make(MD.FR, "stamps", 1, 3));
    }
    if (CR.has(ST.make(MD.FR, "stamps", 1, 4))) {
        RM.Printer.addRecipe2(F, 16, 16, OP.plateTiny.mat(MT.Paper, 1), OP.plateTiny.mat(MT.Pt, 1), FL.Glue.make(25), NF, ST.make(MD.FR, "stamps", 1, 4));
        for (OreDictMaterial tMat : ANY.W.mToThis) RM.Printer.addRecipe2(F, 16, 16, OP.plateTiny.mat(MT.Paper, 1), OP.plateTiny.mat(tMat, 1), FL.Glue.make(25), NF, ST.make(MD.FR, "stamps", 1, 4));
        for (OreDictMaterial tMat : ANY.Diamond.mToThis) RM.Printer.addRecipe2(F, 16, 16, OP.plateTiny.mat(MT.Paper, 1), OP.plateGemTiny.mat(tMat, 1), FL.Glue.make(25), NF, ST.make(MD.FR, "stamps", 1, 4));
    }
    if (CR.has(ST.make(MD.FR, "stamps", 1, 5))) {
        RM.Printer.addRecipe2(F, 16, 16, OP.plateTiny.mat(MT.Paper, 1), OP.plateTiny.mat(MT.Os, 1), FL.Glue.make(25), NF, ST.make(MD.FR, "stamps", 1, 5));
        RM.Printer.addRecipe2(F, 16, 16, OP.plateTiny.mat(MT.Paper, 1), OP.plateTiny.mat(MT.Ir, 1), FL.Glue.make(25), NF, ST.make(MD.FR, "stamps", 1, 5));
        for (OreDictMaterial tMat : ANY.Emerald.mToThis) RM.Printer.addRecipe2(F, 16, 16, OP.plateTiny.mat(MT.Paper, 1), OP.plateGemTiny.mat(tMat, 1), FL.Glue.make(25), NF, ST.make(MD.FR, "stamps", 1, 5));
    }
    if (CR.has(ST.make(MD.FR, "stamps", 1, 6))) {
        RM.Printer.addRecipe2(F, 16, 16, OP.plateTiny.mat(MT.Paper, 1), OP.plateTiny.mat(MT.Nq, 1), FL.Glue.make(25), NF, ST.make(MD.FR, "stamps", 1, 6));
        RM.Printer.addRecipe2(F, 16, 16, OP.plateTiny.mat(MT.Paper, 1), OP.plateTiny.mat(MT.Ke, 1), FL.Glue.make(25), NF, ST.make(MD.FR, "stamps", 1, 6));
        RM.Printer.addRecipe2(F, 16, 16, OP.plateTiny.mat(MT.Paper, 1), OP.plateGemTiny.mat(MT.NetherStar, 1), FL.Glue.make(25), NF, ST.make(MD.FR, "stamps", 1, 6));
    }
    for (int i = 0; i < 29; i++) {
        ItemStack tLogA = ST.make(MD.FR, "logs", 1, i), tLogB = ST.make(MD.FR, "logsFireproof", 1, i), tPlankA = ST.make(MD.FR, "planks", 1, i), tPlankB = ST.make(MD.FR, "planksFireproof", 1, i), tStairA = ST.make(MD.FR, "stairs", 1, i), tStairB = ST.make(MD.FR, "stairsFireproof", 1, i), tSlabA = ST.make(MD.FR, "slabs", 1, i), tSlabB = ST.make(MD.FR, "slabsFireproof", 1, i), tFenceA = ST.make(MD.FR, "fences", 1, i), tFenceB = ST.make(MD.FR, "fencesFireproof", 1, i);
        RM.Laminator.addRecipe2(T, 16, 192, OP.plate.mat(MT.WaxRefractory, 6), tLogA, tLogB);
        RM.Laminator.addRecipe2(T, 16, 32, OP.plate.mat(MT.WaxRefractory, 1), tPlankA, tPlankB);
        RM.Laminator.addRecipe2(T, 16, 32, OP.plate.mat(MT.WaxRefractory, 1), ST.amount(2, tSlabA), ST.amount(2, tSlabB));
        RM.Laminator.addRecipe2(T, 16, 96, OP.plate.mat(MT.WaxRefractory, 3), ST.amount(2, tStairA), ST.amount(2, tStairB));
        RM.Laminator.addRecipe2(T, 16, 64, OP.plate.mat(MT.WaxRefractory, 2), tFenceA, tFenceB);
        RM.Laminator.addRecipe2(T, 16, 192, OP.foil.mat(MT.WaxRefractory, 24), tLogA, tLogB);
        RM.Laminator.addRecipe2(T, 16, 32, OP.foil.mat(MT.WaxRefractory, 4), tPlankA, tPlankB);
        RM.Laminator.addRecipe2(T, 16, 16, OP.foil.mat(MT.WaxRefractory, 2), tSlabA, tSlabB);
        RM.Laminator.addRecipe2(T, 16, 48, OP.foil.mat(MT.WaxRefractory, 6), tStairA, tStairB);
        RM.Laminator.addRecipe2(T, 16, 64, OP.foil.mat(MT.WaxRefractory, 8), tFenceA, tFenceB);
    }
    RM.Squeezer.addRecipe1(T, 16, 64, ST.make(MD.FR, "logs", 1, 22), NF, FL.make("maplesap", 25), OM.dust(MT.WOODS.Maple));
    RM.Squeezer.addRecipe1(T, 16, 64, ST.make(MD.FR, "logsFireproof", 1, 22), NF, FL.make("maplesap", 25), OM.dust(MT.WOODS.Maple));
    RM.Press.addRecipe2(T, 16, 64, OP.plate.mat(MT.Sn, 1), OM.dust(MT.Redstone, U * 6), IL.FR_Chipset_Tin.get(1));
    RM.Press.addRecipe2(T, 16, 64, OP.plate.mat(MT.Bronze, 3), OM.dust(MT.Redstone, U * 6), IL.FR_Chipset_Bronze.get(1));
    for (OreDictMaterial tMat : ANY.Iron.mToThis) RM.Press.addRecipe2(T, 16, 64, (tMat == MT.Enori ? OP.plateGem : OP.plate).mat(tMat, 3), OM.dust(MT.Redstone, U * 6), IL.FR_Chipset_Iron.get(1));
    RM.Press.addRecipe2(T, 16, 64, OP.plate.mat(MT.Au, 3), OM.dust(MT.Redstone, U * 6), IL.FR_Chipset_Gold.get(1));
    RM.Laminator.addRecipe2(T, 16, 128, OP.plateGem.mat(MT.Glass, 1), IL.Electrode_FR_Copper.get(8), IL.FR_ElectronTube_Copper.get(8));
    RM.Laminator.addRecipe2(T, 16, 64, OP.casingSmall.mat(MT.Glass, 1), IL.Electrode_FR_Copper.get(4), IL.FR_ElectronTube_Copper.get(4));
    RM.Laminator.addRecipe2(T, 16, 48, ST.make(Blocks.glass_pane, 1, W), IL.Electrode_FR_Copper.get(1), IL.FR_ElectronTube_Copper.get(1));
    RM.Laminator.addRecipe2(T, 16, 128, OP.plateGem.mat(MT.Glass, 1), IL.Electrode_FR_Tin.get(8), IL.FR_ElectronTube_Tin.get(8));
    RM.Laminator.addRecipe2(T, 16, 64, OP.casingSmall.mat(MT.Glass, 1), IL.Electrode_FR_Tin.get(4), IL.FR_ElectronTube_Tin.get(4));
    RM.Laminator.addRecipe2(T, 16, 48, ST.make(Blocks.glass_pane, 1, W), IL.Electrode_FR_Tin.get(1), IL.FR_ElectronTube_Tin.get(1));
    RM.Laminator.addRecipe2(T, 16, 128, OP.plateGem.mat(MT.Glass, 1), IL.Electrode_FR_Bronze.get(8), IL.FR_ElectronTube_Bronze.get(8));
    RM.Laminator.addRecipe2(T, 16, 64, OP.casingSmall.mat(MT.Glass, 1), IL.Electrode_FR_Bronze.get(4), IL.FR_ElectronTube_Bronze.get(4));
    RM.Laminator.addRecipe2(T, 16, 48, ST.make(Blocks.glass_pane, 1, W), IL.Electrode_FR_Bronze.get(1), IL.FR_ElectronTube_Bronze.get(1));
    RM.Laminator.addRecipe2(T, 16, 128, OP.plateGem.mat(MT.Glass, 1), IL.Electrode_FR_Iron.get(8), IL.FR_ElectronTube_Iron.get(8));
    RM.Laminator.addRecipe2(T, 16, 64, OP.casingSmall.mat(MT.Glass, 1), IL.Electrode_FR_Iron.get(4), IL.FR_ElectronTube_Iron.get(4));
    RM.Laminator.addRecipe2(T, 16, 48, ST.make(Blocks.glass_pane, 1, W), IL.Electrode_FR_Iron.get(1), IL.FR_ElectronTube_Iron.get(1));
    RM.Laminator.addRecipe2(T, 16, 128, OP.plateGem.mat(MT.Glass, 1), IL.Electrode_FR_Gold.get(8), IL.FR_ElectronTube_Gold.get(8));
    RM.Laminator.addRecipe2(T, 16, 64, OP.casingSmall.mat(MT.Glass, 1), IL.Electrode_FR_Gold.get(4), IL.FR_ElectronTube_Gold.get(4));
    RM.Laminator.addRecipe2(T, 16, 48, ST.make(Blocks.glass_pane, 1, W), IL.Electrode_FR_Gold.get(1), IL.FR_ElectronTube_Gold.get(1));
    RM.Laminator.addRecipe2(T, 16, 128, OP.plateGem.mat(MT.Glass, 1), IL.Electrode_FR_Diamond.get(8), IL.FR_ElectronTube_Diamond.get(8));
    RM.Laminator.addRecipe2(T, 16, 64, OP.casingSmall.mat(MT.Glass, 1), IL.Electrode_FR_Diamond.get(4), IL.FR_ElectronTube_Diamond.get(4));
    RM.Laminator.addRecipe2(T, 16, 48, ST.make(Blocks.glass_pane, 1, W), IL.Electrode_FR_Diamond.get(1), IL.FR_ElectronTube_Diamond.get(1));
    RM.Laminator.addRecipe2(T, 16, 128, OP.plateGem.mat(MT.Glass, 1), IL.Electrode_FR_Obsidian.get(8), IL.FR_ElectronTube_Obsidian.get(8));
    RM.Laminator.addRecipe2(T, 16, 64, OP.casingSmall.mat(MT.Glass, 1), IL.Electrode_FR_Obsidian.get(4), IL.FR_ElectronTube_Obsidian.get(4));
    RM.Laminator.addRecipe2(T, 16, 48, ST.make(Blocks.glass_pane, 1, W), IL.Electrode_FR_Obsidian.get(1), IL.FR_ElectronTube_Obsidian.get(1));
    RM.Laminator.addRecipe2(T, 16, 128, OP.plateGem.mat(MT.Glass, 1), IL.Electrode_FR_Blaze.get(8), IL.FR_ElectronTube_Blaze.get(8));
    RM.Laminator.addRecipe2(T, 16, 64, OP.casingSmall.mat(MT.Glass, 1), IL.Electrode_FR_Blaze.get(4), IL.FR_ElectronTube_Blaze.get(4));
    RM.Laminator.addRecipe2(T, 16, 48, ST.make(Blocks.glass_pane, 1, W), IL.Electrode_FR_Blaze.get(1), IL.FR_ElectronTube_Blaze.get(1));
    RM.Laminator.addRecipe2(T, 16, 128, OP.plateGem.mat(MT.Glass, 1), IL.Electrode_FR_Rubber.get(8), IL.FR_ElectronTube_Rubber.get(8));
    RM.Laminator.addRecipe2(T, 16, 64, OP.casingSmall.mat(MT.Glass, 1), IL.Electrode_FR_Rubber.get(4), IL.FR_ElectronTube_Rubber.get(4));
    RM.Laminator.addRecipe2(T, 16, 48, ST.make(Blocks.glass_pane, 1, W), IL.Electrode_FR_Rubber.get(1), IL.FR_ElectronTube_Rubber.get(1));
    RM.Laminator.addRecipe2(T, 16, 128, OP.plateGem.mat(MT.Glass, 1), IL.Electrode_FR_Emerald.get(8), IL.FR_ElectronTube_Emerald.get(8));
    RM.Laminator.addRecipe2(T, 16, 64, OP.casingSmall.mat(MT.Glass, 1), IL.Electrode_FR_Emerald.get(4), IL.FR_ElectronTube_Emerald.get(4));
    RM.Laminator.addRecipe2(T, 16, 48, ST.make(Blocks.glass_pane, 1, W), IL.Electrode_FR_Emerald.get(1), IL.FR_ElectronTube_Emerald.get(1));
    RM.Laminator.addRecipe2(T, 16, 128, OP.plateGem.mat(MT.Glass, 1), IL.Electrode_FR_Apatite.get(8), IL.FR_ElectronTube_Apatite.get(8));
    RM.Laminator.addRecipe2(T, 16, 64, OP.casingSmall.mat(MT.Glass, 1), IL.Electrode_FR_Apatite.get(4), IL.FR_ElectronTube_Apatite.get(4));
    RM.Laminator.addRecipe2(T, 16, 48, ST.make(Blocks.glass_pane, 1, W), IL.Electrode_FR_Apatite.get(1), IL.FR_ElectronTube_Apatite.get(1));
    RM.Laminator.addRecipe2(T, 16, 128, OP.plateGem.mat(MT.Glass, 1), IL.Electrode_FR_Lapis.get(8), IL.FR_ElectronTube_Lapis.get(8));
    RM.Laminator.addRecipe2(T, 16, 64, OP.casingSmall.mat(MT.Glass, 1), IL.Electrode_FR_Lapis.get(4), IL.FR_ElectronTube_Lapis.get(4));
    RM.Laminator.addRecipe2(T, 16, 48, ST.make(Blocks.glass_pane, 1, W), IL.Electrode_FR_Lapis.get(1), IL.FR_ElectronTube_Lapis.get(1));
    RM.Laminator.addRecipe2(T, 16, 128, OP.plateGem.mat(MT.Glass, 1), IL.Electrode_FR_Ender.get(8), IL.FR_ElectronTube_Ender.get(8));
    RM.Laminator.addRecipe2(T, 16, 64, OP.casingSmall.mat(MT.Glass, 1), IL.Electrode_FR_Ender.get(4), IL.FR_ElectronTube_Ender.get(4));
    RM.Laminator.addRecipe2(T, 16, 48, ST.make(Blocks.glass_pane, 1, W), IL.Electrode_FR_Ender.get(1), IL.FR_ElectronTube_Ender.get(1));
    ItemStack tEmptyCrate = ST.make(MD.FR, "crate", 1);
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedTin", 1), OP.ingot.mat(MT.Sn, 9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedCopper", 1), OP.ingot.mat(MT.Cu, 9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedSilver", 1), OP.ingot.mat(MT.Ag, 9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedBrass", 1), OP.ingot.mat(MT.Bronze, 9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedBronze", 1), OP.ingot.mat(MT.Bronze, 9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedPeat", 1), OP.ingot.mat(MT.Peat, 9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedRubber", 1), OP.ingot.mat(MT.Rubber, 9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedPhosphor", 1), OP.dust.mat(MT.PhosphorusBlue, 9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedAsh", 1), OP.dust.mat(MT.Ash, 9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedBeeswax", 1), OP.dust.mat(MT.WaxBee, 9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedRefractoryWax", 1), OP.dust.mat(MT.WaxRefractory, 9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedRedstone", 1), OP.dust.mat(MT.Redstone, 9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedGlowstone", 1), OP.dust.mat(MT.Glowstone, 9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedApatite", 1), OP.gem.mat(MT.Apatite, 9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedLapis", 1), OP.gem.mat(MT.Lapis, 9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedCoal", 1), OP.gem.mat(MT.Coal, 9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedCharcoal", 1), OP.gem.mat(MT.Charcoal, 9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedCarrots", 1), IL.Food_Carrot.get(9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedPotatoes", 1), IL.Food_Potato.get(9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedNetherwart", 1), ST.make(Items.nether_wart, 9, 0));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedCookies", 1), ST.make(Items.cookie, 9, 0));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedWheat", 1), IL.Crop_Wheat.get(9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedSeeds", 1), ST.make(Items.wheat_seeds, 9, 0));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedReeds", 1), ST.make(Items.reeds, 9, 0));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedApples", 1), IL.Food_Apple_Red.get(9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedClay", 1), ST.make(Items.clay_ball, 9, 0));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedCrystallinePollen", 1), IL.FR_Pollen_Cluster_Crystalline.get(9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedPollen", 1), IL.FR_Pollen_Cluster.get(9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedPropolis", 1), IL.FR_Propolis.get(9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedRoyalJelly", 1), IL.FR_Royal_Jelly.get(9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedHoneydew", 1), ST.make(MD.FR, "honeydew", 9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedSaplings", 1), ST.make(Blocks.sapling, 9, 0));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedSpruceSapling", 1), ST.make(Blocks.sapling, 9, 1));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedBirchSapling", 1), ST.make(Blocks.sapling, 9, 2));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedJungleSapling", 1), ST.make(Blocks.sapling, 9, 3));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedAcaciaSapling", 1), ST.make(Blocks.sapling, 9, 4));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedDarkOakSapling", 1), ST.make(Blocks.sapling, 9, 5));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedCacti", 1), ST.make(Blocks.cactus, 9, 0));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedScrap", 1), IL.IC2_Scrap.get(9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedResin", 1), IL.IC2_Resin.get(9, IL.Resin.get(9)));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedFertilizer", 1), IL.FR_Fertilizer.get(9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedMulch", 1), IL.FR_Mulch.get(9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedHoneycombs", 1), IL.FR_Comb_Honey.get(9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedStringyCombs", 1), IL.FR_Comb_Stringy.get(9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedSimmeringCombs", 1), IL.FR_Comb_Simmering.get(9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedCocoaComb", 1), IL.FR_Comb_Cocoa.get(9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedPowderyCombs", 1), IL.FR_Comb_Powdery.get(9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedMossyCombs", 1), IL.FR_Comb_Mossy.get(9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedMellowCombs", 1), IL.FR_Comb_Mellow.get(9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedWheatenCombs", 1), IL.FR_Comb_Wheaten.get(9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedFrozenCombs", 1), IL.FR_Comb_Frozen.get(9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedDrippingCombs", 1), IL.FR_Comb_Dripping.get(9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedSilkyCombs", 1), IL.FR_Comb_Silky.get(9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedParchedCombs", 1), IL.FR_Comb_Parched.get(9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedMysteriousCombs", 1), IL.FR_Comb_Mysterious.get(9));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedDirt", 1), ST.make(Blocks.dirt, 9, 0));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedPodzol", 1), ST.make(Blocks.dirt, 9, 2));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedMycelium", 1), ST.make(Blocks.mycelium, 9, 0));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedStone", 1), ST.make(Blocks.stone, 9, 0));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedCobblestone", 1), ST.make(Blocks.cobblestone, 9, 0));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedGravel", 1), ST.make(Blocks.gravel, 9, 0));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedSoulsand", 1), ST.make(Blocks.soul_sand, 9, 0));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedNetherrack", 1), ST.make(Blocks.netherrack, 9, 0));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedNetherbrick", 1), ST.make(Blocks.nether_brick, 9, 0));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedObsidian", 1), ST.make(Blocks.obsidian, 9, 0));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedSand", 1), ST.make(Blocks.sand, 9, 0));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedRedSand", 1), ST.make(Blocks.sand, 9, 1));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedSandstone", 1), ST.make(Blocks.sandstone, 9, 0));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedBrick", 1), ST.make(Blocks.brick_block, 9, 0));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedWood", 1), ST.make(Blocks.log, 9, 0));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedSpruceWood", 1), ST.make(Blocks.log, 9, 1));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedBirchWood", 1), ST.make(Blocks.log, 9, 2));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedJungleWood", 1), ST.make(Blocks.log, 9, 3));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedAcaciaWood", 1), ST.make(Blocks.log2, 9, 0));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedDarkOakWood", 1), ST.make(Blocks.log2, 9, 1));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedHumus", 1), ST.make(MD.FR, "soil", 9, 0));
    RM.boxunbox(tEmptyCrate, ST.make(MD.FR, "cratedBogearth", 1), ST.make(MD.FR, "soil", 9, 1));
    RM.Juicer.addRecipe1(T, 16, 64, IL.FR_Ice_Shard.get(1), NF, FL.Ice.make(1000), ZL_IS);
    RM.Squeezer.addRecipe1(T, 16, 64, IL.FR_Ice_Shard.get(1), NF, FL.Ice.make(1000), ZL_IS);
    RM.Squeezer.addRecipe1(T, 16, 64, OP.dust.mat(MT.PhosphorusBlue, 1), NF, FL.Lava.make(1000), ZL_IS);
    RM.Centrifuge.addRecipe1(T, 16, 64, IL.FR_Propolis.get(1), ZL_FS, FL.array(FL.Latex.make(L), FL.Glue.make(250)), ZL_IS);
    RM.Centrifuge.addRecipe1(T, 16, 64, IL.FR_Propolis_Sticky.get(1), ZL_FS, FL.array(FL.Latex.make(L / 4), FL.Glue.make(1000)), ZL_IS);
    RM.Centrifuge.addRecipe1(T, 16, 64, 800, IL.FR_Propolis_Pulsating.get(1), ZL_FS, FL.array(FL.Latex.make(L / 4), FL.Glue.make(125)), OM.dust(MT.EnderPearl, U72));
    RM.Centrifuge.addRecipe1(T, 16, 64, 6000, IL.FR_Propolis_Silky.get(1), ZL_FS, FL.array(FL.Latex.make(L / 4), FL.Glue.make(125)), IL.FR_Silk.get(1));
    // RM.Centrifuge   .addRecipe1(T, 16,   64                                     , IL.FR_Comb_Honey          .get(1), NF, FL.Honey   .make( 90), OM.dust(MT.WaxBee));
    RM.Centrifuge.addRecipe1(T, 16, 64, IL.FR_Comb_Cocoa.get(1), OM.dust(MT.WaxBee), OM.dust(MT.Cocoa, U2));
    RM.Centrifuge.addRecipe1(T, 16, 64, new long[] { 10000, 7000 }, IL.FR_Comb_Simmering.get(1), OM.dust(MT.WaxRefractory), OP.dust.mat(MT.PhosphorusBlue, 2));
    RM.Centrifuge.addRecipe1(T, 16, 64, IL.FR_Comb_Stringy.get(1), NF, FL.Honey.make(40), IL.FR_Propolis.get(1));
    RM.Centrifuge.addRecipe1(T, 16, 64, new long[] { 10000, 10000, 2000 }, IL.FR_Comb_Frozen.get(1), NF, FL.Honey.make(70), OM.dust(MT.WaxBee, 3 * U4), OM.dust(MT.Snow, U9), IL.FR_Pollen_Cluster_Crystalline.get(1));
    RM.Centrifuge.addRecipe1(T, 16, 64, IL.FR_Comb_Dripping.get(1), NF, FL.Honeydew.make(100), IL.FR_Propolis_Sticky.get(1));
    RM.Centrifuge.addRecipe1(T, 16, 64, 8000, IL.FR_Comb_Silky.get(1), NF, FL.Honey.make(100), IL.FR_Propolis_Silky.get(1));
    RM.Centrifuge.addRecipe1(T, 16, 64, IL.FR_Comb_Parched.get(1), NF, FL.Honey.make(60), OM.dust(MT.WaxBee, U2), ST.make(Blocks.sand, 1, 0));
    RM.Centrifuge.addRecipe1(T, 16, 64, IL.FR_Comb_Mysterious.get(1), NF, FL.Honey.make(40), OM.dust(MT.WaxMagic, U9), IL.FR_Propolis_Pulsating.get(1));
    RM.Centrifuge.addRecipe1(T, 16, 64, new long[] { 10000, 9 }, IL.FR_Comb_Irradiated.get(1), NF, FL.Honey.make(60), OM.dust(MT.WaxBee, U2), OM.dust(MT.Ir, U9));
    RM.Centrifuge.addRecipe1(T, 16, 64, IL.FR_Comb_Powdery.get(1), NF, FL.Honey.make(20), OM.dust(MT.WaxBee, U4), OM.dust(MT.Gunpowder, U));
    RM.Centrifuge.addRecipe1(T, 16, 64, IL.FR_Comb_Reddened.get(1), NF, FL.Honey.make(60), OM.dust(MT.WaxAmnesic, 2 * U3));
    RM.Centrifuge.addRecipe1(T, 16, 64, IL.FR_Comb_Darkened.get(1), NF, FL.Honey.make(60), OM.dust(MT.WaxAmnesic, U3));
    RM.Centrifuge.addRecipe1(T, 16, 64, IL.FR_Comb_Omega.get(1), NF, FL.Honey.make(60), OM.dust(MT.WaxAmnesic));
    RM.Centrifuge.addRecipe1(T, 16, 64, IL.FR_Comb_Wheaten.get(1), NF, FL.Honey.make(20), OM.dust(MT.WaxBee, U4), OM.dust(MT.Wheat, U));
    RM.Centrifuge.addRecipe1(T, 16, 64, IL.FR_Comb_Mossy.get(1), NF, FL.Honey.make(60), OM.dust(MT.WaxBee, U2), ST.make(Blocks.vine, 2, 0));
    RM.Centrifuge.addRecipe1(T, 16, 64, new long[] { 10000, 10000, 6000 }, IL.FR_Comb_Mellow.get(1), NF, FL.Honeydew.make(100), OM.dust(MT.WaxBee, U4), OM.dust(MT.NetherQuartz, U3));
    RM.Loom.addRecipe2(T, 16, 16, ST.tag(0), IL.FR_Propolis_Pulsating.get(5), IL.FR_Pulsating_Mesh.get(1));
    RM.Loom.addRecipe2(T, 16, 16, ST.tag(0), IL.FR_Pulsating_Mesh.get(5), OP.gem.mat(MT.EnderPearl, 1));
    RM.Loom.addRecipe2(T, 16, 16, ST.tag(0), IL.FR_Silk.get(9), IL.FR_Silk_Woven.get(1));
    RM.Loom.addRecipe2(T, 16, 16, ST.tag(1), IL.FR_Silk.get(3), ST.make(Items.string, 1, 0));
    RM.Loom.addRecipe2(T, 16, 128, ST.tag(4), IL.FR_Silk_Woven.get(5), ST.make(MD.FR, "apiaristHelmet", 1, 0));
    RM.Loom.addRecipe2(T, 16, 128, ST.tag(5), IL.FR_Silk_Woven.get(8), ST.make(MD.FR, "apiaristChest", 1, 0));
    RM.Loom.addRecipe2(T, 16, 128, ST.tag(6), IL.FR_Silk_Woven.get(7), ST.make(MD.FR, "apiaristLegs", 1, 0));
    RM.Loom.addRecipe2(T, 16, 128, ST.tag(7), IL.FR_Silk_Woven.get(4), ST.make(MD.FR, "apiaristBoots", 1, 0));
    RM.Loom.addRecipe2(T, 16, 16, IL.FR_Stick.get(8), ST.make((Item) OP.plantGtFiber.mRegisteredPrefixItems.get(0), 1, W), ST.make(MD.FR, "frameImpregnated", 1, 0));
    RM.Loom.addRecipe2(T, 16, 16, IL.FR_Stick.get(8), ST.make(Items.string, 1, W), ST.make(MD.FR, "frameImpregnated", 1, 0));
    RM.Canner.addRecipe2(T, 16, 16, OM.dust(MT.I), IL.FR_TinCapsule.get(1), IL.FR_Iodine_Capsule.get(1));
    RM.Canner.addRecipe1(T, 16, 16, IL.FR_Iodine_Capsule.get(1), IL.FR_TinCapsule.get(1), OM.dust(MT.I));
    RM.Canner.addRecipe2(T, 16, 16, OM.dust(MT.AgI), IL.FR_TinCapsule.get(1), IL.FR_Dissipation_Capsule.get(1));
    RM.Canner.addRecipe1(T, 16, 16, IL.FR_Dissipation_Capsule.get(1), IL.FR_TinCapsule.get(1), OM.dust(MT.AgI));
    new OreDictListenerEvent_Names() {

        @Override
        public void addAllListeners() {
            addListener("dropHoney", new IOreDictListenerEvent() {

                @Override
                public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                    if (FL.getFluid(aEvent.mStack, T) != null || OM.is_("bucketHoney", aEvent.mStack) || OM.is_("bottleHoney", aEvent.mStack))
                        return;
                    RM.Canner.addRecipe2(T, 16, 16, ST.amount(4, aEvent.mStack), IL.FR_WaxCapsule.get(1), IL.FR_HoneyPot.get(1));
                }
            });
            addListener("listAllwheats", new IOreDictListenerEvent() {

                @Override
                public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                    RM.Mixer.addRecipe2(T, 16, 16, ST.amount(4, aEvent.mStack), ST.make(Blocks.dirt, 1, W), IL.FR_Compost.get(4));
                }
            });
            addListener(OD.logWood, new IOreDictListenerEvent() {

                @Override
                public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                    RM.Bath.addRecipe1(T, 0, 128, aEvent.mStack, FL.Oil_Seed.make(100), NF, IL.FR_Stick.get(1));
                    RM.Bath.addRecipe1(T, 0, 128, aEvent.mStack, FL.Oil_Lin.make(100), NF, IL.FR_Stick.get(1));
                    RM.Bath.addRecipe1(T, 0, 128, aEvent.mStack, FL.Oil_Hemp.make(100), NF, IL.FR_Stick.get(1));
                    RM.Bath.addRecipe1(T, 0, 128, aEvent.mStack, FL.Oil_Nut.make(100), NF, IL.FR_Stick.get(1));
                    RM.Bath.addRecipe1(T, 0, 128, aEvent.mStack, FL.Oil_Olive.make(100), NF, IL.FR_Stick.get(1));
                    RM.Bath.addRecipe1(T, 0, 128, aEvent.mStack, FL.Oil_Sunflower.make(100), NF, IL.FR_Stick.get(1));
                    RM.Assembler.addRecipe2(T, 16, 64, ST.amount(8, aEvent.mStack), ST.tag(8), MT.SeedOil.liquid(U4, T), NF, IL.FR_Casing_Impregnated.get(1));
                }
            });
            addListener(OD.itemPlantRemains, new IOreDictListenerEvent() {

                @Override
                public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                    RM.generify(ST.amount(4, aEvent.mStack), IL.FR_Mulch.get(1));
                }
            });
            addListener(OD.itemGrassMoldy, new IOreDictListenerEvent() {

                @Override
                public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                    RM.generify(ST.amount(2, aEvent.mStack), IL.FR_Mulch.get(1));
                }
            });
            addListener(OD.itemGrassRotten, new IOreDictListenerEvent() {

                @Override
                public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                    RM.generify(ST.amount(1, aEvent.mStack), IL.FR_Mulch.get(1));
                }
            });
            addListener("baleGrassMoldy", new IOreDictListenerEvent() {

                @Override
                public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                    RM.generify(ST.amount(1, aEvent.mStack), IL.FR_Mulch.get(4));
                }
            });
            addListener("baleGrassRotten", new IOreDictListenerEvent() {

                @Override
                public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                    RM.generify(ST.amount(1, aEvent.mStack), IL.FR_Mulch.get(9));
                }
            });
            addListener(OP.stick.dat(ANY.WoodNormal), new IOreDictListenerEvent() {

                @Override
                public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                    RM.Loom.addRecipe2(T, 16, 16, ST.amount(8, aEvent.mStack), ST.make((Item) OP.plantGtFiber.mRegisteredPrefixItems.get(0), 1, W), ST.make(MD.FR, "frameUntreated", 1, 0));
                    RM.Loom.addRecipe2(T, 16, 16, ST.amount(8, aEvent.mStack), ST.make(Items.string, 1, W), ST.make(MD.FR, "frameUntreated", 1, 0));
                }
            });
        }
    };
    RM.Bath.addRecipe1(T, 0, 128, ST.make(Items.string, 1, W), MT.Wax.liquid(U * 6, T), NF, IL.FR_Candle.get(4), IL.FR_Candle.get(4), IL.FR_Candle.get(4), IL.FR_Candle.get(4), IL.FR_Candle.get(4), IL.FR_Candle.get(4));
    RM.Bath.addRecipe1(T, 0, 128, ST.make(Items.string, 1, W), MT.WaxBee.liquid(U * 6, T), NF, IL.FR_Candle.get(4), IL.FR_Candle.get(4), IL.FR_Candle.get(4), IL.FR_Candle.get(4), IL.FR_Candle.get(4), IL.FR_Candle.get(4));
    RM.Bath.addRecipe1(T, 0, 128, ST.make(Items.string, 1, W), MT.WaxPlant.liquid(U * 6, T), NF, IL.FR_Candle.get(4), IL.FR_Candle.get(4), IL.FR_Candle.get(4), IL.FR_Candle.get(4), IL.FR_Candle.get(4), IL.FR_Candle.get(4));
    RM.Bath.addRecipe1(T, 0, 128, ST.make(Items.string, 1, W), MT.WaxParaffin.liquid(U * 6, T), NF, IL.FR_Candle.get(4), IL.FR_Candle.get(4), IL.FR_Candle.get(4), IL.FR_Candle.get(4), IL.FR_Candle.get(4), IL.FR_Candle.get(4));
    RM.Bath.addRecipe1(T, 0, 128, IL.FR_Silk.get(1), MT.Wax.liquid(U * 2, T), NF, IL.FR_Candle.get(1), IL.FR_Candle.get(1), IL.FR_Candle.get(1), IL.FR_Candle.get(1), IL.FR_Candle.get(1), IL.FR_Candle.get(1));
    RM.Bath.addRecipe1(T, 0, 128, IL.FR_Silk.get(1), MT.WaxBee.liquid(U * 2, T), NF, IL.FR_Candle.get(1), IL.FR_Candle.get(1), IL.FR_Candle.get(1), IL.FR_Candle.get(1), IL.FR_Candle.get(1), IL.FR_Candle.get(1));
    RM.Bath.addRecipe1(T, 0, 128, IL.FR_Silk.get(1), MT.WaxPlant.liquid(U * 2, T), NF, IL.FR_Candle.get(1), IL.FR_Candle.get(1), IL.FR_Candle.get(1), IL.FR_Candle.get(1), IL.FR_Candle.get(1), IL.FR_Candle.get(1));
    RM.Bath.addRecipe1(T, 0, 128, IL.FR_Silk.get(1), MT.WaxParaffin.liquid(U * 2, T), NF, IL.FR_Candle.get(1), IL.FR_Candle.get(1), IL.FR_Candle.get(1), IL.FR_Candle.get(1), IL.FR_Candle.get(1), IL.FR_Candle.get(1));
    for (FluidStack tWater : FL.waters(1000, 800)) RM.Mixer.addRecipe1(T, 16, 16, OM.dust(MT.Bark, U * 4), tWater, NF, IL.FR_Mulch.get(1));
    for (FluidStack tWater : FL.waters(250, 200)) RM.Mixer.addRecipe1(T, 16, 16, IL.FR_Propolis.get(1), tWater, FL.Glue.make(250), ZL_IS);
    for (FluidStack tWater : FL.waters(1000, 800)) RM.Mixer.addRecipe1(T, 16, 16, IL.FR_Propolis_Sticky.get(1), tWater, FL.Glue.make(1000), ZL_IS);
    RM.Mixer.addRecipe2(T, 16, 16, OM.dust(MT.Ash, 4 * U), ST.make(Blocks.dirt, 1, W), IL.FR_Compost.get(1));
    RM.Mixer.addRecipe2(T, 16, 16, OM.dust(MT.DarkAsh, 3 * U), ST.make(Blocks.dirt, 1, W), IL.FR_Compost.get(1));
    RM.Mixer.addRecipe2(T, 16, 16, OM.dust(MT.VolcanicAsh, 2 * U), ST.make(Blocks.dirt, 1, W), IL.FR_Compost.get(1));
    RM.Mixer.addRecipe1(T, 16, 64, ST.make(Items.melon, 1, W), FL.array(FL.Honey.make(600), FL.Honeydew.make(200), FL.Potion_Awkward.make(750)), FL.array(FL.Potion_Heal_1.make(750)), ZL_IS);
    RM.Mixer.addRecipe1(T, 16, 64, ST.make(Items.melon, 1, W), FL.array(FL.Honey.make(600), FL.Honeydew.make(200), FL.Potion_Thick.make(750)), FL.array(FL.Potion_Heal_2.make(750)), ZL_IS);
    RM.Mixer.addRecipe1(T, 16, 64, ST.make(Items.melon, 1, W), FL.array(FL.HoneyGrC.make(600), FL.Honeydew.make(200), FL.Potion_Awkward.make(750)), FL.array(FL.Potion_Heal_1.make(750)), ZL_IS);
    RM.Mixer.addRecipe1(T, 16, 64, ST.make(Items.melon, 1, W), FL.array(FL.HoneyGrC.make(600), FL.Honeydew.make(200), FL.Potion_Thick.make(750)), FL.array(FL.Potion_Heal_2.make(750)), ZL_IS);
    RM.Mixer.addRecipe1(T, 16, 64, ST.make(Items.melon, 1, W), FL.array(FL.HoneyBoP.make(600), FL.Honeydew.make(200), FL.Potion_Awkward.make(750)), FL.array(FL.Potion_Heal_1.make(750)), ZL_IS);
    RM.Mixer.addRecipe1(T, 16, 64, ST.make(Items.melon, 1, W), FL.array(FL.HoneyBoP.make(600), FL.Honeydew.make(200), FL.Potion_Thick.make(750)), FL.array(FL.Potion_Heal_2.make(750)), ZL_IS);
    RM.Mixer.addRecipe2(T, 16, 64, IL.FR_Pollen_Cluster.get(3), IL.FR_Propolis.get(6), ZL_FS, FL.Slime_Green.make(250), ZL_IS);
    RM.Mixer.addRecipe2(T, 16, 16, OP.gem.mat(MT.Apatite, 1), ST.make(Blocks.sand, 2, W), IL.FR_Fertilizer.get(8));
    RM.Mixer.addRecipe2(T, 16, 16, OP.gem.mat(MT.Apatite, 1), OM.dust(MT.Ash, U * 8), IL.FR_Fertilizer.get(16));
    RM.Mixer.addRecipe2(T, 16, 16, OP.gem.mat(MT.Apatite, 1), OM.dust(MT.DarkAsh, U * 4), IL.FR_Fertilizer.get(16));
    RM.Mixer.addRecipe2(T, 16, 16, OP.gem.mat(MT.Apatite, 1), OM.dust(MT.VolcanicAsh, U * 2), IL.FR_Fertilizer.get(16));
    RM.Mixer.addRecipeX(T, 16, 16, ST.array(OM.dust(MT.NaNO3), OM.dust(MT.SoylentGreen), ST.make(Blocks.sand, 2, W)), IL.FR_Fertilizer.get(2));
    RM.Mixer.addRecipeX(T, 16, 16, ST.array(OM.dust(MT.KNO3), OM.dust(MT.SoylentGreen), ST.make(Blocks.sand, 2, W)), IL.FR_Fertilizer.get(2));
    RM.Mixer.addRecipeX(T, 16, 16, ST.array(OM.dust(MT.Niter), OM.dust(MT.SoylentGreen), ST.make(Blocks.sand, 2, W)), IL.FR_Fertilizer.get(2));
    RM.Mixer.addRecipeX(T, 16, 16, ST.array(OM.dust(MT.NaNO3), OM.dust(MT.MeatRaw), ST.make(Blocks.sand, 2, W)), IL.FR_Fertilizer.get(2));
    RM.Mixer.addRecipeX(T, 16, 16, ST.array(OM.dust(MT.KNO3), OM.dust(MT.MeatRaw), ST.make(Blocks.sand, 2, W)), IL.FR_Fertilizer.get(2));
    RM.Mixer.addRecipeX(T, 16, 16, ST.array(OM.dust(MT.Niter), OM.dust(MT.MeatRaw), ST.make(Blocks.sand, 2, W)), IL.FR_Fertilizer.get(2));
    RM.Mixer.addRecipeX(T, 16, 16, ST.array(OM.dust(MT.NaNO3), OM.dust(MT.FishRaw), ST.make(Blocks.sand, 2, W)), IL.FR_Fertilizer.get(2));
    RM.Mixer.addRecipeX(T, 16, 16, ST.array(OM.dust(MT.KNO3), OM.dust(MT.FishRaw), ST.make(Blocks.sand, 2, W)), IL.FR_Fertilizer.get(2));
    RM.Mixer.addRecipeX(T, 16, 16, ST.array(OM.dust(MT.Niter), OM.dust(MT.FishRaw), ST.make(Blocks.sand, 2, W)), IL.FR_Fertilizer.get(2));
    RM.Mixer.addRecipeX(T, 16, 16, ST.array(OM.dust(MT.NaNO3), OM.dust(MT.MeatCooked), ST.make(Blocks.sand, 2, W)), IL.FR_Fertilizer.get(2));
    RM.Mixer.addRecipeX(T, 16, 16, ST.array(OM.dust(MT.KNO3), OM.dust(MT.MeatCooked), ST.make(Blocks.sand, 2, W)), IL.FR_Fertilizer.get(2));
    RM.Mixer.addRecipeX(T, 16, 16, ST.array(OM.dust(MT.Niter), OM.dust(MT.MeatCooked), ST.make(Blocks.sand, 2, W)), IL.FR_Fertilizer.get(2));
    RM.Mixer.addRecipeX(T, 16, 16, ST.array(OM.dust(MT.NaNO3), OM.dust(MT.FishCooked), ST.make(Blocks.sand, 2, W)), IL.FR_Fertilizer.get(2));
    RM.Mixer.addRecipeX(T, 16, 16, ST.array(OM.dust(MT.KNO3), OM.dust(MT.FishCooked), ST.make(Blocks.sand, 2, W)), IL.FR_Fertilizer.get(2));
    RM.Mixer.addRecipeX(T, 16, 16, ST.array(OM.dust(MT.Niter), OM.dust(MT.FishCooked), ST.make(Blocks.sand, 2, W)), IL.FR_Fertilizer.get(2));
    RM.Mixer.addRecipeX(T, 16, 16, ST.array(OM.dust(MT.NaNO3), OM.dust(MT.MeatRotten), ST.make(Blocks.sand, 2, W)), IL.FR_Fertilizer.get(2));
    RM.Mixer.addRecipeX(T, 16, 16, ST.array(OM.dust(MT.KNO3), OM.dust(MT.MeatRotten), ST.make(Blocks.sand, 2, W)), IL.FR_Fertilizer.get(2));
    RM.Mixer.addRecipeX(T, 16, 16, ST.array(OM.dust(MT.Niter), OM.dust(MT.MeatRotten), ST.make(Blocks.sand, 2, W)), IL.FR_Fertilizer.get(2));
    RM.Mixer.addRecipeX(T, 16, 16, ST.array(OM.dust(MT.NaNO3), OM.dust(MT.FishRotten), ST.make(Blocks.sand, 2, W)), IL.FR_Fertilizer.get(2));
    RM.Mixer.addRecipeX(T, 16, 16, ST.array(OM.dust(MT.KNO3), OM.dust(MT.FishRotten), ST.make(Blocks.sand, 2, W)), IL.FR_Fertilizer.get(2));
    RM.Mixer.addRecipeX(T, 16, 16, ST.array(OM.dust(MT.Niter), OM.dust(MT.FishRotten), ST.make(Blocks.sand, 2, W)), IL.FR_Fertilizer.get(2));
    RM.Mixer.addRecipeX(T, 16, 16, ST.array(OM.dust(MT.NaNO3), ST.make(Blocks.dirt, 2, W), ST.make(Blocks.sand, 2, W)), IL.FR_Fertilizer.get(2));
    RM.Mixer.addRecipeX(T, 16, 16, ST.array(OM.dust(MT.KNO3), ST.make(Blocks.dirt, 2, W), ST.make(Blocks.sand, 2, W)), IL.FR_Fertilizer.get(2));
    RM.Mixer.addRecipeX(T, 16, 16, ST.array(OM.dust(MT.Niter), ST.make(Blocks.dirt, 2, W), ST.make(Blocks.sand, 2, W)), IL.FR_Fertilizer.get(2));
    RM.Mixer.addRecipe2(T, 16, 16, OM.dust(MT.Apatite), ST.make(Blocks.sand, 2, W), IL.FR_Fertilizer.get(8));
    RM.Mixer.addRecipe2(T, 16, 16, OM.dust(MT.Apatite), OM.dust(MT.Ash, U * 8), IL.FR_Fertilizer.get(16));
    RM.Mixer.addRecipe2(T, 16, 16, OM.dust(MT.Apatite), OM.dust(MT.DarkAsh, U * 4), IL.FR_Fertilizer.get(16));
    RM.Mixer.addRecipe2(T, 16, 16, OM.dust(MT.Apatite), OM.dust(MT.VolcanicAsh, U * 2), IL.FR_Fertilizer.get(16));
    RM.Mixer.addRecipeX(T, 16, 64, ST.array(ST.make(Blocks.sand, 4, W), ST.make(Blocks.dirt, 4, W), IL.FR_Mulch.get(1)), ST.make(MD.FR, "soil", 8, 1));
    for (FL tFluid : new FL[] { FL.Water, FL.DistW, FL.SpDew, FL.Ocean, FL.OceanGrC, FL.Tropics_Water }) if (tFluid.exists()) {
        if (IL.IC2_Fertilizer.exists())
            RM.Mixer.addRecipe2(T, 16, 64, IL.IC2_Fertilizer.get(1), ST.make(Blocks.dirt, 8, W), tFluid.make(1000), NF, ST.make(MD.FR, "soil", 8, 0));
        RM.Mixer.addRecipe2(T, 16, 64, IL.FR_Fertilizer.get(1), ST.make(Blocks.dirt, 8, W), tFluid.make(1000), NF, ST.make(MD.FR, "soil", 8, 0));
        RM.Mixer.addRecipe2(T, 16, 64, IL.FR_Compost.get(1), ST.make(Blocks.dirt, 8, W), tFluid.make(1000), NF, ST.make(MD.FR, "soil", 8, 0));
        RM.Mixer.addRecipe2(T, 16, 64, IL.FR_Mulch.get(1), ST.make(Blocks.dirt, 8, W), tFluid.make(1000), NF, ST.make(MD.FR, "soil", 9, 0));
        RM.Mixer.addRecipe2(T, 16, 16, ST.make(Blocks.sand, 1, W), ST.make(Blocks.dirt, 1, W), tFluid.make(250), NF, ST.make(MD.FR, "soil", 2, 1));
    }
    if (IL.IC2_Fertilizer.exists())
        RM.Mixer.addRecipe2(T, 16, 64, IL.IC2_Fertilizer.get(1), ST.make(Blocks.dirt, 8, W), FL.Dirty_Water.make(2000), NF, ST.make(MD.FR, "soil", 9, 0));
    RM.Mixer.addRecipe2(T, 16, 64, IL.FR_Fertilizer.get(1), ST.make(Blocks.dirt, 8, W), FL.Dirty_Water.make(2000), NF, ST.make(MD.FR, "soil", 9, 0));
    RM.Mixer.addRecipe2(T, 16, 64, IL.FR_Compost.get(1), ST.make(Blocks.dirt, 8, W), FL.Dirty_Water.make(2000), NF, ST.make(MD.FR, "soil", 9, 0));
    RM.Mixer.addRecipe2(T, 16, 64, IL.FR_Mulch.get(1), ST.make(Blocks.dirt, 8, W), FL.Dirty_Water.make(2000), NF, ST.make(MD.FR, "soil", 10, 0));
    RM.Mixer.addRecipe2(T, 16, 16, ST.make(Blocks.sand, 4, W), ST.make(Blocks.dirt, 4, W), FL.Dirty_Water.make(2000), NF, ST.make(MD.FR, "soil", 9, 1));
    if (IL.IC2_Fertilizer.exists()) {
        RM.Mixer.addRecipe2(T, 16, 64, IL.IC2_Fertilizer.get(1), ST.make(BlocksGT.Diggables, 8, 0), ST.make(MD.FR, "soil", 8, 0));
        RM.Mixer.addRecipe2(T, 16, 64, IL.IC2_Fertilizer.get(1), IL.Mud_Ball.get(36), ST.make(MD.FR, "soil", 8, 0));
        if (IL.BoP_Mud_Ball.exists())
            RM.Mixer.addRecipe2(T, 16, 64, IL.IC2_Fertilizer.get(1), IL.BoP_Mud_Ball.get(36), ST.make(MD.FR, "soil", 8, 0));
        if (IL.BoP_Mud.exists())
            RM.Mixer.addRecipe2(T, 16, 64, IL.IC2_Fertilizer.get(1), IL.BoP_Mud.get(8), ST.make(MD.FR, "soil", 8, 0));
    }
    if (IL.BoP_Mud_Ball.exists()) {
        RM.Mixer.addRecipe2(T, 16, 64, IL.FR_Fertilizer.get(1), IL.BoP_Mud_Ball.get(36), ST.make(MD.FR, "soil", 8, 0));
        RM.Mixer.addRecipe2(T, 16, 64, IL.FR_Compost.get(1), IL.BoP_Mud_Ball.get(36), ST.make(MD.FR, "soil", 8, 0));
        RM.Mixer.addRecipe2(T, 16, 64, IL.FR_Mulch.get(1), IL.BoP_Mud_Ball.get(36), ST.make(MD.FR, "soil", 9, 0));
        RM.Mixer.addRecipe2(T, 16, 16, ST.make(Blocks.sand, 1, W), IL.BoP_Mud_Ball.get(4), ST.make(MD.FR, "soil", 2, 1));
    }
    if (IL.BoP_Mud.exists()) {
        RM.Mixer.addRecipe2(T, 16, 64, IL.FR_Fertilizer.get(1), IL.BoP_Mud.get(8), ST.make(MD.FR, "soil", 8, 0));
        RM.Mixer.addRecipe2(T, 16, 64, IL.FR_Compost.get(1), IL.BoP_Mud.get(8), ST.make(MD.FR, "soil", 8, 0));
        RM.Mixer.addRecipe2(T, 16, 64, IL.FR_Mulch.get(1), IL.BoP_Mud.get(8), ST.make(MD.FR, "soil", 9, 0));
        RM.Mixer.addRecipe2(T, 16, 16, ST.make(Blocks.sand, 1, W), IL.BoP_Mud.get(1), ST.make(MD.FR, "soil", 2, 1));
    }
    RM.Mixer.addRecipe2(T, 16, 64, IL.FR_Fertilizer.get(1), ST.make(BlocksGT.Diggables, 8, 0), ST.make(MD.FR, "soil", 8, 0));
    RM.Mixer.addRecipe2(T, 16, 64, IL.FR_Fertilizer.get(1), IL.Mud_Ball.get(36), ST.make(MD.FR, "soil", 8, 0));
    RM.Mixer.addRecipe2(T, 16, 64, IL.FR_Compost.get(1), ST.make(BlocksGT.Diggables, 8, 0), ST.make(MD.FR, "soil", 8, 0));
    RM.Mixer.addRecipe2(T, 16, 64, IL.FR_Compost.get(1), IL.Mud_Ball.get(36), ST.make(MD.FR, "soil", 8, 0));
    RM.Mixer.addRecipe2(T, 16, 64, IL.FR_Mulch.get(1), ST.make(BlocksGT.Diggables, 8, 0), ST.make(MD.FR, "soil", 9, 0));
    RM.Mixer.addRecipe2(T, 16, 64, IL.FR_Mulch.get(1), IL.Mud_Ball.get(36), ST.make(MD.FR, "soil", 9, 0));
    RM.Mixer.addRecipe2(T, 16, 16, ST.make(Blocks.sand, 1, W), ST.make(BlocksGT.Diggables, 1, 0), ST.make(MD.FR, "soil", 2, 1));
    RM.Mixer.addRecipe2(T, 16, 16, ST.make(Blocks.sand, 1, W), IL.Mud_Ball.get(4), ST.make(MD.FR, "soil", 2, 1));
}
Also used : OreDictMaterial(gregapi.oredict.OreDictMaterial) Item(net.minecraft.item.Item) OreDictListenerEvent_Names(gregapi.oredict.event.OreDictListenerEvent_Names) IOreDictListenerEvent(gregapi.oredict.event.IOreDictListenerEvent) OreDictItemData(gregapi.oredict.OreDictItemData) FluidStack(net.minecraftforge.fluids.FluidStack) FL(gregapi.data.FL) ItemStack(net.minecraft.item.ItemStack)

Example 4 with IOreDictListenerEvent

use of gregapi.oredict.event.IOreDictListenerEvent in project gregtech6 by GregTech6.

the class Compat_Recipes_HBM method onPostLoad.

@Override
public void onPostLoad(FMLPostInitializationEvent aInitEvent) {
    OUT.println("GT_Mod: Doing HBM Recipes.");
    CR.delate(MD.HBM, "item.apple_lead", "item.apple_schrabidium", "item.apple_euphemium");
    CR.shapeless(IL.HBM_Mercury_Drop.get(8), CR.DEF_NCC, new Object[] { IL.Bottle_Mercury });
    RM.generify(IL.HBM_Mercury_Bottle.get(1), IL.Bottle_Mercury.get(1));
    RM.generify(IL.Bottle_Mercury.get(1), IL.HBM_Mercury_Bottle.get(1));
    RM.packunpack(OP.round.mat(MT.Pb, 6), ST.make(MD.HBM, "item.pellet_buckshot", 1, 0));
    RM.Bath.addRecipe1(T, 0, 128, ST.make(MD.HBM, "item.apple_lead", 1, 0), MT.Pb.liquid(64 * U9, T), NF, ST.make(MD.HBM, "item.apple_lead", 1, 1));
    RM.Bath.addRecipe1(T, 0, 128, ST.make(MD.HBM, "item.apple_lead", 1, 1), MT.Pb.liquid(64 * U, T), NF, ST.make(MD.HBM, "item.apple_lead", 1, 2));
    RM.Bath.addRecipe1(T, 0, 128, ST.make(MD.HBM, "item.apple_schrabidium", 1, 0), MT.UNUSED.Schrabidium.liquid(64 * U9, T), NF, ST.make(MD.HBM, "item.apple_schrabidium", 1, 1));
    RM.Bath.addRecipe1(T, 0, 128, ST.make(MD.HBM, "item.apple_schrabidium", 1, 1), MT.UNUSED.Schrabidium.liquid(64 * U, T), NF, ST.make(MD.HBM, "item.apple_schrabidium", 1, 2));
    RM.Bath.addRecipe1(T, 0, 512, ST.make(MD.HBM, "item.powder_desh_ready", 1, 0), MT.H2O2.fluid(U2, T), NF, OM.dust(MT.DeshAlloy, U * 1));
    RM.Mixer.addRecipe2(T, 16, 32, OP.dust.mat(MT.Desh, 1), OP.dust.mat(MT.C, 1), MT.Hg.fluid(U4, T), NF, ST.make(MD.HBM, "item.powder_desh_ready", 1, 0));
    RM.Mixer.addRecipe2(T, 16, 32, ST.make(MD.HBM, "item.powder_desh_mix", 1, 0), OP.dust.mat(MT.C, 1), MT.Hg.fluid(U4, T), NF, ST.make(MD.HBM, "item.powder_desh_ready", 1, 0));
    RM.Injector.addRecipe1(T, 16, 256, ST.make(MD.HBM, "item.powder_desh_mix", 1, 0), FL.array(MT.Hg.fluid(U, T), FL.Fuel.make(400)), ZL_FS, OM.dust(MT.DeshAlloy));
    for (FluidStack tWater : FL.waters(250)) RM.Mixer.addRecipe1(T, 16, 16, IL.HBM_Poison_Powder.get(1), tWater, FL.Potion_Poison_2.make(250), ZL_IS);
    if (IL.ERE_Herbicide.exists())
        RM.pulverizing(IL.ERE_Herbicide.get(1), IL.HBM_Poison_Powder.get(1));
    RM.pulverizing(IL.Food_Potato_Poisonous.get(1), IL.HBM_Poison_Powder.get(1));
    RM.pulverizing(ST.make(Blocks.red_mushroom, 1, W), IL.HBM_Poison_Powder.get(1));
    RM.pulverizing(ST.make(Items.spider_eye, 1, W), IL.HBM_Poison_Powder.get(2));
    RM.pulverizing(ST.make(Items.fermented_spider_eye, 1, W), IL.HBM_Poison_Powder.get(3));
    if (IL.ERE_Herbicide.exists())
        RM.Shredder.addRecipe1(T, 16, 16, IL.ERE_Herbicide.get(1), IL.HBM_Poison_Powder.get(1));
    RM.Shredder.addRecipe1(T, 16, 16, IL.Food_Potato_Poisonous.get(1), IL.HBM_Poison_Powder.get(1));
    RM.Shredder.addRecipe1(T, 16, 16, ST.make(Blocks.red_mushroom, 1, W), IL.HBM_Poison_Powder.get(1));
    RM.Shredder.addRecipe1(T, 16, 16, ST.make(Items.spider_eye, 1, W), IL.HBM_Poison_Powder.get(2));
    RM.Shredder.addRecipe1(T, 16, 16, ST.make(Items.fermented_spider_eye, 1, W), IL.HBM_Poison_Powder.get(3));
    RM.generify(IL.IC2_Grin_Powder.get(1), IL.HBM_Poison_Powder.get(1));
    RM.generify(IL.HBM_Poison_Powder.get(1), IL.IC2_Grin_Powder.get(1));
    RM.Compressor.addRecipe1(T, 16, 16, IL.HBM_Biomass.get(1), IL.HBM_Biomass_Compressed.get(1));
    RM.Shredder.addRecipe1(T, 16, 16, IL.HBM_Biomass.get(1), ST.make(Blocks.dirt, 1, 0));
    RM.Shredder.addRecipe1(T, 16, 16, IL.HBM_Biomass_Compressed.get(1), ST.make(Blocks.dirt, 1, 0));
    RM.biomass(IL.HBM_Biomass.get(1), 32);
    RM.biomass(IL.HBM_Biomass_Compressed.get(1), 32);
    RM.generify(IL.IC2_Plantball.get(1), IL.HBM_Biomass.get(1));
    RM.generify(IL.HBM_Biomass.get(1), IL.IC2_Plantball.get(1));
    new OreDictListenerEvent_Names() {

        @Override
        public void addAllListeners() {
            addListener("cropApple", new IOreDictListenerEvent() {

                @Override
                public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                    if (OM.is("cropAppleWhite", aEvent.mStack) || OM.is("cropCrabapple", aEvent.mStack))
                        return;
                    RM.Bath.addRecipe1(T, 0, 128, aEvent.mStack, MT.Pb.liquid(8 * U9, T), NF, ST.make(MD.HBM, "item.apple_lead", 1, 0));
                    RM.Bath.addRecipe1(T, 0, 128, aEvent.mStack, MT.UNUSED.Schrabidium.liquid(8 * U9, T), NF, ST.make(MD.HBM, "item.apple_schrabidium", 1, 0));
                    RM.Bath.addRecipe1(T, 0, 128, aEvent.mStack, MT.UNUSED.Euphemium.liquid(8 * U9, T), NF, ST.make(MD.HBM, "item.apple_euphemium", 1, 0));
                }
            });
        }
    };
}
Also used : OreDictListenerEvent_Names(gregapi.oredict.event.OreDictListenerEvent_Names) IOreDictListenerEvent(gregapi.oredict.event.IOreDictListenerEvent) FluidStack(net.minecraftforge.fluids.FluidStack)

Example 5 with IOreDictListenerEvent

use of gregapi.oredict.event.IOreDictListenerEvent in project gregtech6 by GregTech6.

the class Compat_Recipes_HarvestCraft method onPostLoad.

@Override
public void onPostLoad(FMLPostInitializationEvent aInitEvent) {
    OUT.println("GT_Mod: Doing HarvestCraft Recipes.");
    final ItemStack tYogurt = ST.make(MD.HaC, "plainyogurtItem", 1);
    CR.delate(MD.HaC, "mortarandpestleItem", "flourItem", "cornmealItem", "plainyogurtItem", "coconutcreamItem", "heavycreamItem", "mayoItem", "ketchupItem", "vinegarItem", "oliveoilItem", "saladdressingItem", "peanutbutterItem", "nutellaItem", "appleciderItem", "beefjerkyItem", "zombiejerkyItem", "peppermintItem", "doughItem", "marzipanItem", "chocolatemilkshakeItem", "strawberrymilkshakeItem", "bananamilkshakeItem", "gooseberrymilkshakeItem", "saltedsunflowerseedsItem", "cherryjuiceItem", "bananajuiceItem", "strawberryjuiceItem", "persimmonjuiceItem", "lemonaideItem", "applejuiceItem", "grapejuiceItem", "melonjuiceItem", "kiwijuiceItem", "raspberryjuiceItem", "blackberryjuiceItem", "blueberryjuiceItem", "cranberryjuiceItem", "gooseberryjuiceItem", "carrotjuiceItem", "grapefruitjuiceItem", "pearjuiceItem", "apricotjuiceItem", "plumjuiceItem", "peachjuiceItem", "limejuiceItem", "orangejuiceItem", "pomegranatejuiceItem", "mangojuiceItem", "figjuiceItem", "papayajuiceItem", "cactusfruitjuiceItem", "starfruitjuiceItem", "coconutmilkItem", "grapefruitsmoothieItem", "pearsmoothieItem", "apricotsmoothieItem", "plumsmoothieItem", "peachsmoothieItem", "limesmoothieItem", "orangesmoothieItem", "cranberrysmoothieItem", "cherrysmoothieItem", "bananasmoothieItem", "lemonsmoothieItem", "applesmoothieItem", "grapesmoothieItem", "melonsmoothieItem", "kiwismoothieItem", "raspberrysmoothieItem", "blackberrysmoothieItem", "blueberrysmoothieItem", "gooseberrysmoothieItem", "strawberrysmoothieItem", "pomegranatesmoothieItem", "persimmonsmoothieItem", "figsmoothieItem", "starfruitsmoothieItem", "mangosmoothieItem", "papayasmoothieItem", "coconutsmoothieItem", "chocolateyogurtItem", "vanillayogurtItem", "coconutyogurtItem", "papayayogurtItem", "figyogurtItem", "mangoyogurtItem", "starfruityogurtItem", "pomegranateyogurtItem", "grapefruityogurtItem", "persimmonyogurtItem", "pearyogurtItem", "apricotyogurtItem", "plumyogurtItem", "peachyogurtItem", "limeyogurtItem", "orangeyogurtItem", "cranberryyogurtItem", "pineappleyogurtItem", "cherryyogurtItem", "bananayogurtItem", "lemonyogurtItem", "appleyogurtItem", "grapeyogurtItem", "grapeyogurtItem", "melonyogurtItem", "kiwiyogurtItem", "raspberryyogurtItem", "blackberryyogurtItem", "blueberryyogurtItem", "gooseberryyogurtItem", "strawberryyogurtItem", "pumpkinyogurtItem", "icecreamItem", "strawberryicecreamItem", "cherryicecreamItem", "spumoniicecreamItem", "neapolitanicecreamItem", "vanillaicecreamItem", "chocolateicecreamItem", "pistachioicecreamItem", "mochaicecreamItem", "caramelicecreamItem", "mintchocolatechipicemcreamItem", "extremechiliItem", "batterItem", "eggnogItem", "caramelItem", "ricecakeItem", "garammasalaItem", "chocolatestrawberryItem", "chocolatecherryItem", "chocolatebaconItem", "maplecandiedbaconItem", "epicbaconItem", "chocolatedonutItem", "cinnamonsugardonutItem", "powdereddonutItem", "frosteddonutItem", "donutItem", "jellydonutItem");
    CR.remove(ST.make(MD.HaC, "potItem", 1), ST.make(Items.water_bucket, 1, 0));
    for (int i = 0; i < 16; i++) {
        CR.delate(MD.HaC, "pamcandleDeco" + (i + 1));
        CR.shaped(ST.make(MD.HaC, "pamcandleDeco" + (i + 1), 1, 0), CR.DEF_NCC, "S", "W", "D", 'W', OD.materialPressedwax, 'S', OD.itemString, 'D', DYE_OREDICTS[15 - i]);
    }
    ArrayList<ItemStack> tListFoodRice = OreDictionary.getOres("foodRice"), tListCropRice = OreDictionary.getOres("cropRice");
    ArrayList<ItemStack> tListFoodOats = OreDictionary.getOres("dustOat"), tListCropOats = OreDictionary.getOres("cropOats");
    ArrayList<ItemStack> tListFoodBarley = OreDictionary.getOres("dustBarley"), tListCropBarley = OreDictionary.getOres("cropBarley");
    ArrayList<ItemStack> tListFoodVanilla = OreDictionary.getOres("foodVanilla"), tListDustVanilla = OreDictionary.getOres("dustVanilla");
    ArrayList<ItemStack> tListFoodOliveOil = OreDictionary.getOres("foodOliveoil"), tListFoodCookingOil = OreDictionary.getOres("listAllcookingoil");
    for (IRecipe tRecipe : CR.list()) if (tRecipe.getClass() == ShapelessOreRecipe.class) {
        ItemStack tOutput = tRecipe.getRecipeOutput();
        if (ST.valid(tOutput) && tOutput.getItem() instanceof ItemFood) {
            ArrayList<Object> tInputs = ((ShapelessOreRecipe) tRecipe).getInput();
            int tSize = tInputs.size();
            if (tSize > 2)
                for (int i = 0; i < tSize; i++) {
                    if (tListCropRice == tInputs.get(i))
                        tInputs.set(i, tListFoodRice);
                    else if (tListCropOats == tInputs.get(i))
                        tInputs.set(i, tListFoodOats);
                    else if (tListCropBarley == tInputs.get(i))
                        tInputs.set(i, tListFoodBarley);
                    else if (tListFoodVanilla == tInputs.get(i))
                        tInputs.set(i, tListDustVanilla);
                    else if (tListFoodOliveOil == tInputs.get(i))
                        tInputs.set(i, tListFoodCookingOil);
                }
        }
    }
    FoodsGT.put(ST.make(MD.HaC, "fruitsaladItem", 1), 0, 0, 0, 20, 0);
    FoodsGT.put(ST.make(MD.HaC, "citrussaladItem", 1), 0, 0, 0, 10, 0);
    FoodsGT.put(ST.make(MD.HaC, "springsaladItem", 1), 0, 0, 0, 10, 0);
    RM.add_smelting(ST.make(MD.HaC, "turkeyrawItem", 1), ST.make(MD.HaC, "turkeycookedItem", 1), F, T, F);
    RM.add_smelting(ST.make(MD.HaC, "rabbitrawItem", 1), ST.make(MD.HaC, "rabbitcookedItem", 1), F, T, F);
    RM.add_smelting(ST.make(MD.HaC, "venisonrawItem", 1), ST.make(MD.HaC, "venisoncookedItem", 1), F, T, F);
    for (OreDictMaterial tMat : ANY.Iron.mToThis) RM.Loom.addRecipe2(T, 64, 128, ST.make(MD.HaC, "hardenedleatherItem", 6), (tMat == MT.Enori ? OP.plateGem : OP.plate).mat(tMat, 8), ST.make(Items.iron_horse_armor, 1, 0));
    RM.Loom.addRecipe2(T, 64, 128, ST.make(MD.HaC, "hardenedleatherItem", 6), OP.plate.mat(MT.Au, 8), ST.make(Items.golden_horse_armor, 1, 0));
    RM.Loom.addRecipe2(T, 64, 128, ST.make(MD.HaC, "hardenedleatherItem", 6), OP.plateGem.mat(MT.Diamond, 8), ST.make(Items.diamond_horse_armor, 1, 0));
    for (OreDictMaterial tMat : ANY.Steel.mToThis) RM.Loom.addRecipeX(T, 64, 128, ST.array(ST.make(MD.HaC, "hardenedleatherItem", 6), OP.ring.mat(tMat, 2), OP.stick.mat(tMat, 3)), ST.make(Items.saddle, 1, 0));
    RM.Loom.addRecipe2(T, 16, 128, ST.tag(4), ST.make(MD.HaC, "hardenedleatherItem", 5), ST.make(MD.HaC, "hardenedleatherhelmItem", 1));
    RM.Loom.addRecipe2(T, 16, 128, ST.tag(5), ST.make(MD.HaC, "hardenedleatherItem", 8), ST.make(MD.HaC, "hardenedleatherchestItem", 1));
    RM.Loom.addRecipe2(T, 16, 128, ST.tag(6), ST.make(MD.HaC, "hardenedleatherItem", 7), ST.make(MD.HaC, "hardenedleatherleggingsItem", 1));
    RM.Loom.addRecipe2(T, 16, 128, ST.tag(7), ST.make(MD.HaC, "hardenedleatherItem", 4), ST.make(MD.HaC, "hardenedleatherbootsItem", 1));
    RM.Shredder.addRecipe1(T, 16, 16, ST.make(Blocks.double_plant, 1, 0), ST.make(MD.HaC, "sunflowerseedsItem", 1));
    CR.shaped(IL.Food_Toast_Sliced.get(4), CR.DEF_NCC, "kX", 'X', ST.make(MD.HaC, "toastItem", 1));
    RM.Slicer.addRecipe2(T, 16, 16, ST.make(MD.HaC, "toastItem", 1), IL.Shape_Slicer_Flat.get(0), IL.Food_Toast_Sliced.get(4));
    RM.Press.addRecipe2(T, 16, 32, OM.dust(MT.Chili, U4), OP.ingot.mat(MT.Chocolate, 1), ST.make(MD.HaC, "chilichocolateItem", 1));
    RM.Press.addRecipe2(T, 16, 32, OM.dust(MT.Chili, U3), OP.ingot.mat(MT.Chocolate, 1), ST.make(MD.HaC, "chilichocolateItem", 1));
    RM.Press.addRecipe2(T, 16, 128, OM.dust(MT.Chili, U), OP.ingot.mat(MT.Chocolate, 4), ST.make(MD.HaC, "chilichocolateItem", 4));
    RM.Mixer.addRecipe2(T, 16, 16, ST.make(Items.string, 1, W), IL.Remains_Fruit.get(3), ST.make(MD.HaC, "fruitbaitItem", 4));
    RM.Mixer.addRecipe2(T, 16, 16, ST.make(Items.string, 1, W), IL.Remains_Veggie.get(3), ST.make(MD.HaC, "veggiebaitItem", 4));
    RM.Mixer.addRecipe2(T, 16, 16, ST.make(Items.string, 1, W), IL.Remains_Nut.get(3), ST.make(MD.HaC, "grainbaitItem", 4));
    RM.Mixer.addRecipe2(T, 16, 16, ST.make(Items.string, 1, W), OM.dust(MT.FishRaw, U * 3), ST.make(MD.HaC, "fishtrapbaitItem", 4));
    RM.Mixer.addRecipe2(T, 16, 16, ST.make(Items.beef, 1, W), OM.dust(MT.NaCl, U4), ST.make(MD.HaC, "beefjerkyItem", 1));
    RM.Mixer.addRecipe2(T, 16, 16, ST.make(Items.rotten_flesh, 1, W), OM.dust(MT.NaCl, U4), ST.make(MD.HaC, "zombiejerkyItem", 1));
    RM.Mixer.addRecipe2(T, 16, 16, ST.make(Items.beef, 1, W), OM.dust(MT.NaCl, U3), ST.make(MD.HaC, "beefjerkyItem", 1));
    RM.Mixer.addRecipe2(T, 16, 16, ST.make(Items.rotten_flesh, 1, W), OM.dust(MT.NaCl, U3), ST.make(MD.HaC, "zombiejerkyItem", 1));
    RM.Mixer.addRecipe2(T, 16, 64, ST.make(Items.beef, 4, W), OM.dust(MT.NaCl, U), ST.make(MD.HaC, "beefjerkyItem", 4));
    RM.Mixer.addRecipe2(T, 16, 64, ST.make(Items.rotten_flesh, 4, W), OM.dust(MT.NaCl, U), ST.make(MD.HaC, "zombiejerkyItem", 4));
    RM.Mixer.addRecipe1(T, 0, 16, OM.dust(MT.Mint, U9), MT.Sugar.liquid(U4, T), NF, ST.make(MD.HaC, "peppermintItem", 1));
    RM.Mixer.addRecipe1(T, 0, 32, OM.dust(MT.Mint, U4), MT.Sugar.liquid(U2, T), NF, ST.make(MD.HaC, "peppermintItem", 2));
    RM.Mixer.addRecipe1(T, 0, 128, OM.dust(MT.Mint, U), MT.Sugar.liquid(9 * U4, T), NF, ST.make(MD.HaC, "peppermintItem", 9));
    for (FluidStack tWater : FL.waters(1000)) RM.Mixer.addRecipe1(T, 16, 16, ST.make(MD.HaC, "flourItem", 1), tWater, NF, IL.Food_Dough.get(1));
    RM.Mixer.addRecipe1(T, 16, 16, OM.dust(MT.Almond, U4), FL.RoyalJelly.make(10), NF, ST.make(MD.HaC, "marzipanItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, OM.dust(MT.Almond), FL.RoyalJelly.make(40), NF, ST.make(MD.HaC, "marzipanItem", 4));
    RM.Mixer.addRecipe1(T, 16, 16, OM.dust(MT.Almond, U4), FL.Honey.make(100), NF, ST.make(MD.HaC, "marzipanItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, OM.dust(MT.Almond), FL.Honey.make(400), NF, ST.make(MD.HaC, "marzipanItem", 4));
    RM.Mixer.addRecipe1(T, 16, 16, OM.dust(MT.Almond, U4), FL.HoneyGrC.make(100), NF, ST.make(MD.HaC, "marzipanItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, OM.dust(MT.Almond), FL.HoneyGrC.make(400), NF, ST.make(MD.HaC, "marzipanItem", 4));
    RM.Mixer.addRecipe1(T, 16, 16, OM.dust(MT.Almond, U4), FL.HoneyBoP.make(100), NF, ST.make(MD.HaC, "marzipanItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, OM.dust(MT.Almond), FL.HoneyBoP.make(400), NF, ST.make(MD.HaC, "marzipanItem", 4));
    RM.Mixer.addRecipe1(T, 16, 16, ST.make(MD.HaC, "chiliItem", 1), FL.Sauce_Chili.make(100), NF, ST.make(MD.HaC, "extremechiliItem", 1));
    RM.Mixer.addRecipe2(T, 16, 16, ST.make(MD.HaC, "chiliItem", 1), OM.dust(MT.Chili), ST.make(MD.HaC, "extremechiliItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, IL.HaC_Royal_Jelly.get(1), FL.Honeydew.make(40), FL.make("potion.ambrosia", 80), ZL_IS);
    if (IL.GrC_Starter_Culture.exists()) {
        RM.Mixer.addRecipe1(T, 16, 16, IL.GrC_Starter_Culture.get(1), FL.Milk.make(250), NF, tYogurt);
        RM.Mixer.addRecipe1(T, 16, 16, IL.GrC_Starter_Culture.get(1), FL.MilkGrC.make(250), NF, tYogurt);
        RM.Mixer.addRecipe1(T, 16, 16, IL.GrC_Starter_Culture.get(1), FL.MilkSoy.make(250), NF, tYogurt);
    } else {
        RM.Mixer.addRecipe1(T, 16, 16, ST.make(Items.leather, 1, W), FL.Milk.make(250), NF, tYogurt);
        RM.Mixer.addRecipe1(T, 16, 16, ST.make(Items.leather, 1, W), FL.MilkGrC.make(250), NF, tYogurt);
        RM.Mixer.addRecipe1(T, 16, 16, ST.make(Items.leather, 1, W), FL.MilkSoy.make(250), NF, tYogurt);
    }
    RM.Mixer.addRecipe1(F, 16, 16, ST.amount(0, tYogurt), FL.Milk.make(250), NF, tYogurt);
    RM.Mixer.addRecipe1(F, 16, 16, ST.amount(0, tYogurt), FL.MilkGrC.make(250), NF, tYogurt);
    RM.Mixer.addRecipe1(F, 16, 16, ST.amount(0, tYogurt), FL.MilkSoy.make(250), NF, tYogurt);
    RM.Mixer.addRecipe1(T, 16, 16, ST.make(Items.snowball, 1, W), FL.make("chocolatemilk", 250), NF, ST.make(MD.HaC, "chocolatemilkshakeItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, OM.dust(MT.Snow, U4), FL.make("chocolatemilk", 250), NF, ST.make(MD.HaC, "chocolatemilkshakeItem", 1));
    RM.Mixer.addRecipe1(T, 16, 64, ST.make(Blocks.snow, 1, W), FL.make("chocolatemilk", 1000), NF, ST.make(MD.HaC, "chocolatemilkshakeItem", 4));
    RM.Mixer.addRecipe1(T, 16, 64, OM.dust(MT.Snow), FL.make("chocolatemilk", 1000), NF, ST.make(MD.HaC, "chocolatemilkshakeItem", 4));
    RM.Mixer.addRecipe1(T, 16, 16, ST.make(Items.snowball, 1, W), FL.make("potion.darkchocolatemilk", 250), NF, ST.make(MD.HaC, "chocolatemilkshakeItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, OM.dust(MT.Snow, U4), FL.make("potion.darkchocolatemilk", 250), NF, ST.make(MD.HaC, "chocolatemilkshakeItem", 1));
    RM.Mixer.addRecipe1(T, 16, 64, ST.make(Blocks.snow, 1, W), FL.make("potion.darkchocolatemilk", 1000), NF, ST.make(MD.HaC, "chocolatemilkshakeItem", 4));
    RM.Mixer.addRecipe1(T, 16, 64, OM.dust(MT.Snow), FL.make("potion.darkchocolatemilk", 1000), NF, ST.make(MD.HaC, "chocolatemilkshakeItem", 4));
    RM.Mixer.addRecipe0(T, 16, 16, FL.array(FL.Milk.make(250), FL.Smoothie_Strawberry.make(200)), ZL_FS, ST.make(MD.HaC, "strawberrymilkshakeItem", 1));
    RM.Mixer.addRecipe0(T, 16, 16, FL.array(FL.MilkGrC.make(250), FL.Smoothie_Strawberry.make(200)), ZL_FS, ST.make(MD.HaC, "strawberrymilkshakeItem", 1));
    RM.Mixer.addRecipe0(T, 16, 16, FL.array(FL.MilkSoy.make(250), FL.Smoothie_Strawberry.make(200)), ZL_FS, ST.make(MD.HaC, "strawberrymilkshakeItem", 1));
    RM.Mixer.addRecipe0(T, 16, 16, FL.array(FL.Milk.make(250), FL.Smoothie_Banana.make(200)), ZL_FS, ST.make(MD.HaC, "bananamilkshakeItem", 1));
    RM.Mixer.addRecipe0(T, 16, 16, FL.array(FL.MilkGrC.make(250), FL.Smoothie_Banana.make(200)), ZL_FS, ST.make(MD.HaC, "bananamilkshakeItem", 1));
    RM.Mixer.addRecipe0(T, 16, 16, FL.array(FL.MilkSoy.make(250), FL.Smoothie_Banana.make(200)), ZL_FS, ST.make(MD.HaC, "bananamilkshakeItem", 1));
    RM.Mixer.addRecipe0(T, 16, 16, FL.array(FL.Milk.make(250), FL.Smoothie_Gooseberry.make(200)), ZL_FS, ST.make(MD.HaC, "gooseberrymilkshakeItem", 1));
    RM.Mixer.addRecipe0(T, 16, 16, FL.array(FL.MilkGrC.make(250), FL.Smoothie_Gooseberry.make(200)), ZL_FS, ST.make(MD.HaC, "gooseberrymilkshakeItem", 1));
    RM.Mixer.addRecipe0(T, 16, 16, FL.array(FL.MilkSoy.make(250), FL.Smoothie_Gooseberry.make(200)), ZL_FS, ST.make(MD.HaC, "gooseberrymilkshakeItem", 1));
    RM.Mixer.addRecipe2(T, 16, 16, OM.dust(MT.NaCl, U4), ST.make(MD.HaC, "sunflowerseedsItem", 1), ST.make(MD.HaC, "saltedsunflowerseedsItem", 1));
    RM.Mixer.addRecipe2(T, 16, 16, tYogurt, OM.dust(MT.Vanilla), ST.make(MD.HaC, "vanillayogurtItem", 1));
    RM.Mixer.addRecipe2(T, 16, 16, tYogurt, OM.dust(MT.Chocolate), ST.make(MD.HaC, "chocolateyogurtItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, tYogurt, FL.Juice_Grapefruit.make(100), NF, ST.make(MD.HaC, "grapefruityogurtItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, tYogurt, FL.Juice_Pear.make(100), NF, ST.make(MD.HaC, "pearyogurtItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, tYogurt, FL.Juice_Apricot.make(100), NF, ST.make(MD.HaC, "apricotyogurtItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, tYogurt, FL.Juice_Plum.make(100), NF, ST.make(MD.HaC, "plumyogurtItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, tYogurt, FL.Juice_Peach.make(100), NF, ST.make(MD.HaC, "peachyogurtItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, tYogurt, FL.Juice_Lime.make(100), NF, ST.make(MD.HaC, "limeyogurtItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, tYogurt, FL.Juice_Orange.make(100), NF, ST.make(MD.HaC, "orangeyogurtItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, tYogurt, FL.Juice_Persimmon.make(100), NF, ST.make(MD.HaC, "persimmonyogurtItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, tYogurt, FL.Juice_Cranberry.make(100), NF, ST.make(MD.HaC, "cranberryyogurtItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, tYogurt, FL.Juice_Ananas.make(100), NF, ST.make(MD.HaC, "pineappleyogurtItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, tYogurt, FL.Juice_Cherry.make(100), NF, ST.make(MD.HaC, "cherryyogurtItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, tYogurt, FL.Juice_Banana.make(100), NF, ST.make(MD.HaC, "bananayogurtItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, tYogurt, FL.Juice_Lemon.make(100), NF, ST.make(MD.HaC, "lemonyogurtItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, tYogurt, FL.Juice_Apple.make(100), NF, ST.make(MD.HaC, "appleyogurtItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, tYogurt, FL.Juice_AppleGrC.make(100), NF, ST.make(MD.HaC, "appleyogurtItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, tYogurt, FL.Juice_Grape_Red.make(100), NF, ST.make(MD.HaC, "grapeyogurtItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, tYogurt, FL.Juice_Grape_White.make(100), NF, ST.make(MD.HaC, "grapeyogurtItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, tYogurt, FL.Juice_Grape_Green.make(100), NF, ST.make(MD.HaC, "grapeyogurtItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, tYogurt, FL.Juice_Grape_Purple.make(100), NF, ST.make(MD.HaC, "grapeyogurtItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, tYogurt, FL.Juice_Melon.make(100), NF, ST.make(MD.HaC, "melonyogurtItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, tYogurt, FL.Juice_Kiwi.make(100), NF, ST.make(MD.HaC, "kiwiyogurtItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, tYogurt, FL.Juice_Raspberry.make(100), NF, ST.make(MD.HaC, "raspberryyogurtItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, tYogurt, FL.Juice_Blackberry.make(100), NF, ST.make(MD.HaC, "blackberryyogurtItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, tYogurt, FL.Juice_Blueberry.make(100), NF, ST.make(MD.HaC, "blueberryyogurtItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, tYogurt, FL.Juice_Gooseberry.make(100), NF, ST.make(MD.HaC, "gooseberryyogurtItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, tYogurt, FL.Juice_Strawberry.make(100), NF, ST.make(MD.HaC, "strawberryyogurtItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, tYogurt, FL.Juice_Pumpkin.make(100), NF, ST.make(MD.HaC, "pumpkinyogurtItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, tYogurt, FL.Juice_Pomegranate.make(100), NF, ST.make(MD.HaC, "pomegranateyogurtItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, tYogurt, FL.Juice_Fig.make(100), NF, ST.make(MD.HaC, "figyogurtItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, tYogurt, FL.Juice_Starfruit.make(100), NF, ST.make(MD.HaC, "starfruityogurtItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, tYogurt, FL.Juice_Mango.make(100), NF, ST.make(MD.HaC, "mangoyogurtItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, tYogurt, FL.Juice_Papaya.make(100), NF, ST.make(MD.HaC, "papayayogurtItem", 1));
    RM.Mixer.addRecipe1(T, 16, 16, tYogurt, FL.Juice_Coconut.make(100), NF, ST.make(MD.HaC, "coconutyogurtItem", 1));
    new OreDictListenerEvent_Names() {

        @Override
        public void addAllListeners() {
            addListener("cropCoconut", new IOreDictListenerEvent() {

                @Override
                public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                    RM.add_smelting(aEvent.mStack, ST.make(MD.HaC, "toastedcoconutItem", 1), F, T, F);
                }
            });
            addListener("cropStrawberry", new IOreDictListenerEvent() {

                @Override
                public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                    RM.Bath.addRecipe1(T, 0, 16, aEvent.mStack, MT.Chocolate.liquid(U4, T), NF, ST.make(MD.HaC, "chocolatestrawberryItem", 1));
                }
            });
            addListener("cropCherry", new IOreDictListenerEvent() {

                @Override
                public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                    RM.Bath.addRecipe1(T, 0, 16, aEvent.mStack, MT.Chocolate.liquid(U4, T), NF, ST.make(MD.HaC, "chocolatecherryItem", 1));
                }
            });
            addListener("cropCorn", new IOreDictListenerEvent() {

                @Override
                public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                    RM.Mixer.addRecipe1(T, 16, 16, aEvent.mStack, FL.Milk.make(250), NF, ST.make(MD.HaC, "cornflakesItem", 1));
                    RM.Mixer.addRecipe1(T, 16, 16, aEvent.mStack, FL.MilkGrC.make(250), NF, ST.make(MD.HaC, "cornflakesItem", 1));
                    RM.Mixer.addRecipe1(T, 16, 16, aEvent.mStack, FL.MilkSoy.make(250), NF, ST.make(MD.HaC, "cornflakesItem", 1));
                }
            });
            addListener("cropBeet", new IOreDictListenerEvent() {

                @Override
                public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                    RM.Mixer.addRecipeX(T, 16, 16, ST.array(IL.Food_Onion_Sliced.get(3), OM.dust(MT.PepperBlack, U4), aEvent.mStack), FL.Milk.make(250), NF, ST.make(MD.HaC, "beetsoupItem", 1));
                    RM.Mixer.addRecipeX(T, 16, 16, ST.array(IL.Food_Onion_Sliced.get(3), OM.dust(MT.PepperBlack, U4), aEvent.mStack), FL.MilkGrC.make(250), NF, ST.make(MD.HaC, "beetsoupItem", 1));
                    RM.Mixer.addRecipeX(T, 16, 16, ST.array(IL.Food_Onion_Sliced.get(3), OM.dust(MT.PepperBlack, U4), aEvent.mStack), FL.MilkSoy.make(250), NF, ST.make(MD.HaC, "beetsoupItem", 1));
                    RM.Mixer.addRecipeX(T, 16, 64, ST.array(IL.Food_Onion_Sliced.get(12), OM.dust(MT.PepperBlack), ST.amount(3, aEvent.mStack)), FL.Milk.make(1000), NF, ST.make(MD.HaC, "beetsoupItem", 4));
                    RM.Mixer.addRecipeX(T, 16, 64, ST.array(IL.Food_Onion_Sliced.get(12), OM.dust(MT.PepperBlack), ST.amount(3, aEvent.mStack)), FL.MilkGrC.make(1000), NF, ST.make(MD.HaC, "beetsoupItem", 4));
                    RM.Mixer.addRecipeX(T, 16, 64, ST.array(IL.Food_Onion_Sliced.get(12), OM.dust(MT.PepperBlack), ST.amount(3, aEvent.mStack)), FL.MilkSoy.make(1000), NF, ST.make(MD.HaC, "beetsoupItem", 4));
                }
            });
            addListener("cropSpiceleaf", new IOreDictListenerEvent() {

                @Override
                public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                    RM.Mixer.addRecipeX(T, 16, 16, ST.array(aEvent.mStack, OM.dust(MT.PepperBlack), OM.dust(MT.Nutmeg), OM.dust(MT.Cinnamon)), ST.make(MD.HaC, "garammasalaItem", 4));
                }
            });
            addListener("cropRadish", new IOreDictListenerEvent() {

                @Override
                public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                    for (String tFluid : FluidsGT.VINEGAR) if (FL.exists(tFluid)) {
                        RM.Mixer.addRecipeX(T, 16, 16, ST.array(IL.Food_Onion_Sliced.get(3), IL.Food_Cucumber_Sliced.get(3), aEvent.mStack), FL.make(tFluid, 125), NF, ST.make(MD.HaC, "summerradishsaladItem", 1));
                        RM.Mixer.addRecipeX(T, 16, 16, ST.array(IL.Food_Onion_Sliced.get(3), IL.Food_Pickle_Sliced.get(3), aEvent.mStack), FL.make(tFluid, 50), NF, ST.make(MD.HaC, "summerradishsaladItem", 1));
                    }
                }
            });
            addListener("cropCabbage", new IOreDictListenerEvent() {

                @Override
                public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                    RM.Mixer.addRecipeX(T, 16, 16, ST.array(IL.Food_Carrot_Sliced.get(3), OM.dust(MT.PepperBlack, U4), aEvent.mStack), FL.Mayo.make(125), NF, ST.make(MD.HaC, "coleslawItem", 1));
                    RM.Mixer.addRecipeX(T, 16, 16, ST.array(IL.Food_Carrot_Sliced.get(12), OM.dust(MT.PepperBlack), ST.amount(3, aEvent.mStack)), FL.Mayo.make(500), NF, ST.make(MD.HaC, "coleslawItem", 4));
                }
            });
            addListener("cropBean", new IOreDictListenerEvent() {

                @Override
                public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                    RM.Mixer.addRecipeX(T, 16, 16, ST.array(IL.Food_Onion_Sliced.get(3), OM.dust(MT.FishCooked), aEvent.mStack), ST.make(MD.HaC, "chiliItem", 1));
                    RM.Mixer.addRecipeX(T, 16, 16, ST.array(IL.Food_Onion_Sliced.get(3), OM.dust(MT.MeatCooked), aEvent.mStack), ST.make(MD.HaC, "chiliItem", 1));
                    RM.Mixer.addRecipeX(T, 16, 16, ST.array(IL.Food_Onion_Sliced.get(3), OM.dust(MT.SoylentGreen), aEvent.mStack), ST.make(MD.HaC, "chiliItem", 1));
                    RM.Mixer.addRecipeX(T, 16, 16, ST.array(IL.Food_Onion_Sliced.get(3), OM.dust(MT.Tofu), aEvent.mStack), ST.make(MD.HaC, "chiliItem", 1));
                }
            });
            addListener("foodCaramel", new IOreDictListenerEvent() {

                @Override
                public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                    RM.Press.addRecipe2(T, 16, 32, aEvent.mStack, OP.ingot.mat(MT.Chocolate, 1), ST.make(MD.HaC, "chocolatecaramelfudgeItem", 1));
                }
            });
            addListener("foodFlour", new IOreDictListenerEvent() {

                @Override
                public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                    RM.Mixer.addRecipe1(T, 16, 16, aEvent.mStack, FL.Milk.make(250), NF, ST.make(MD.HaC, "batterItem", 1));
                    RM.Mixer.addRecipe1(T, 16, 16, aEvent.mStack, FL.MilkGrC.make(250), NF, ST.make(MD.HaC, "batterItem", 1));
                    RM.Mixer.addRecipe1(T, 16, 16, aEvent.mStack, FL.MilkSoy.make(250), NF, ST.make(MD.HaC, "batterItem", 1));
                }
            });
            addListener("foodDough", new IOreDictListenerEvent() {

                @Override
                public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                    RM.Bath.addRecipe1(T, 0, 16, aEvent.mStack, MT.FryingOilHot.liquid(U100, T), NF, ST.make(MD.HaC, "donutItem", 1));
                }
            });
            addListener(new OreDictListenerEvent_TwoNames("listAlljelly", "foodDonut") {

                @Override
                public void onOreRegistration(ItemStack aStack1, ItemStack aStack2) {
                    RM.Injector.addRecipe2(T, 16, 64, aStack1, ST.amount(4, aStack2), ST.make(MD.HaC, "jellydonutItem", 4));
                }
            });
            addListener("foodDonut", new IOreDictListenerEvent() {

                @Override
                public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                    RM.Bath.addRecipeX(T, 0, 16, ST.array(aEvent.mStack, IL.Dye_Cactus.get(1), ST.make(Items.dye, 1, 1), ST.make(Items.dye, 1, 11)), MT.Sugar.liquid(U4, T), NF, ST.make(MD.HaC, "frosteddonutItem", 1));
                    RM.Bath.addRecipe1(T, 0, 16, aEvent.mStack, MT.Chocolate.liquid(U4, T), NF, ST.make(MD.HaC, "chocolatedonutItem", 1));
                    RM.Mixer.addRecipe2(T, 16, 16, aEvent.mStack, OM.dust(MT.Sugar, U4), ST.make(MD.HaC, "powdereddonutItem", 1));
                    RM.Mixer.addRecipe2(T, 16, 16, aEvent.mStack, OM.dust(MT.Sugar, U3), ST.make(MD.HaC, "powdereddonutItem", 1));
                    RM.Mixer.addRecipe2(T, 16, 64, ST.amount(4, aEvent.mStack), OM.dust(MT.Sugar), ST.make(MD.HaC, "powdereddonutItem", 4));
                }
            });
            addListener("foodPowdereddonut", new IOreDictListenerEvent() {

                @Override
                public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                    RM.Mixer.addRecipe2(T, 16, 16, aEvent.mStack, OM.dust(MT.Cinnamon, U4), ST.make(MD.HaC, "cinnamonsugardonutItem", 1));
                    RM.Mixer.addRecipe2(T, 16, 16, aEvent.mStack, OM.dust(MT.Cinnamon, U3), ST.make(MD.HaC, "cinnamonsugardonutItem", 1));
                    RM.Mixer.addRecipe2(T, 16, 64, ST.amount(4, aEvent.mStack), OM.dust(MT.Cinnamon), ST.make(MD.HaC, "cinnamonsugardonutItem", 4));
                }
            });
            addListener("foodFilledhoneycomb", new IOreDictListenerEvent() {

                @Override
                public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                    RM.Press.addRecipe2(T, 16, 32, aEvent.mStack, OP.ingot.mat(MT.Chocolate, 1), ST.make(MD.HaC, "honeycombchocolatebarItem", 1));
                }
            });
            addListener("listAllgrain", new IOreDictListenerEvent() {

                @Override
                public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                    if (ST.container(aEvent.mStack, T) == null)
                        RM.Mixer.addRecipe2(T, 16, 16, ST.make(Items.string, 1, W), ST.amount(3, aEvent.mStack), ST.make(MD.HaC, "grainbaitItem", 4));
                }
            });
            addListener("listAllveggie", new IOreDictListenerEvent() {

                @Override
                public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                    if (ST.container(aEvent.mStack, T) == null)
                        RM.Mixer.addRecipe2(T, 16, 16, ST.make(Items.string, 1, W), ST.amount(3, aEvent.mStack), ST.make(MD.HaC, "veggiebaitItem", 4));
                }
            });
            addListener("listAllfishraw", new IOreDictListenerEvent() {

                @Override
                public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                    if (ST.container(aEvent.mStack, T) == null && !OD.listAllmeatsubstitute.is_(aEvent.mStack))
                        RM.Mixer.addRecipe2(T, 16, 16, ST.make(Items.string, 1, W), ST.amount(3, aEvent.mStack), ST.make(MD.HaC, "fishtrapbaitItem", 8));
                }
            });
            addListener("listAllfruit", new IOreDictListenerEvent() {

                @Override
                public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                    if (ST.container(aEvent.mStack, T) == null)
                        RM.Mixer.addRecipe2(T, 16, 16, ST.make(Items.string, 1, W), ST.amount(3, aEvent.mStack), ST.make(MD.HaC, "fruitbaitItem", 4));
                }
            });
            addListener("listAllegg", new IOreDictListenerEvent() {

                @Override
                public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                    if (ST.container(aEvent.mStack, T) == null && !OD.listAllmeatsubstitute.is_(aEvent.mStack)) {
                        RM.Mixer.addRecipeX(T, 16, 16, ST.array(OM.dust(MT.Nutmeg), OM.dust(MT.Cinnamon), aEvent.mStack), FL.Milk.make(250), NF, ST.make(MD.HaC, "eggnogItem", 1));
                        RM.Mixer.addRecipeX(T, 16, 16, ST.array(OM.dust(MT.Nutmeg), OM.dust(MT.Cinnamon), aEvent.mStack), FL.MilkGrC.make(250), NF, ST.make(MD.HaC, "eggnogItem", 1));
                        RM.Mixer.addRecipeX(T, 16, 16, ST.array(OM.dust(MT.Nutmeg), OM.dust(MT.Cinnamon), aEvent.mStack), FL.MilkSoy.make(250), NF, ST.make(MD.HaC, "eggnogItem", 1));
                    }
                }
            });
            addListener("foodBaconcooked", new IOreDictListenerEvent() {

                @Override
                public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                    if (ST.container(aEvent.mStack, T) == null && !OD.listAllmeatsubstitute.is_(aEvent.mStack)) {
                        RM.Bath.addRecipe1(T, 0, 16, aEvent.mStack, MT.Chocolate.liquid(U4, T), NF, ST.make(MD.HaC, "chocolatebaconItem", 1));
                        RM.Mixer.addRecipe1(T, 16, 16, aEvent.mStack, FL.Syrup_Maple.make(50), NF, ST.make(MD.HaC, "maplecandiedbaconItem", 1));
                        RM.Mixer.addRecipe1(T, 16, 16, aEvent.mStack, FL.Sap_Rainbow.make(50), NF, ST.make(MD.HaC, "epicbaconItem", 1));
                    }
                }
            });
            addListener("foodScrapmeat", new IOreDictListenerEvent() {

                @Override
                public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                    // TODO: Spice + Salt + Meat
                    RM.Injector.addRecipe2(T, 16, 16, OM.dust(MT.MeatRaw, U), aEvent.mStack, ST.make(MD.HaC, "porksausageItem", 1));
                }
            });
            addListener("foodHoneydrop", "dropHoney", new IOreDictListenerEvent() {

                @Override
                public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                    CR.remove(ST.make(MD.HaC, "potItem", 1), aEvent.mStack);
                }
            });
            addListener("dustSugar", new IOreDictListenerEvent() {

                @Override
                public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                    RM.add_smelting(aEvent.mStack, ST.make(MD.HaC, "caramelItem", 1), F, T, F);
                }
            });
            addListener("dustRice", new IOreDictListenerEvent() {

                @Override
                public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                    RM.add_smelting(aEvent.mStack, ST.make(MD.HaC, "ricecakeItem", 1), F, T, F);
                }
            });
            addListener(OP.stick.dat(ANY.WoodNormal), new IOreDictListenerEvent() {

                @Override
                public void onOreRegistration(OreDictRegistrationContainer aEvent) {
                    RM.Loom.addRecipe2(T, 16, 16, ST.make(MD.HaC, "hardenedleatherItem", 1), ST.amount(8, aEvent.mStack), ST.make(Items.item_frame, 1, 0));
                }
            });
        }
    };
    for (OreDictMaterial tMat : ANY.Wax.mToThis) {
        RM.Laminator.addRecipe2(T, 16, 16, OP.foil.mat(tMat, 1), ST.make(Items.leather, 1, W), ST.make(MD.HaC, "hardenedleatherItem", 1));
    }
}
Also used : OreDictMaterial(gregapi.oredict.OreDictMaterial) OreDictListenerEvent_Names(gregapi.oredict.event.OreDictListenerEvent_Names) IRecipe(net.minecraft.item.crafting.IRecipe) IOreDictListenerEvent(gregapi.oredict.event.IOreDictListenerEvent) FluidStack(net.minecraftforge.fluids.FluidStack) ArrayList(java.util.ArrayList) ItemFood(net.minecraft.item.ItemFood) OreDictListenerEvent_TwoNames(gregapi.oredict.event.OreDictListenerEvent_TwoNames) ShapelessOreRecipe(net.minecraftforge.oredict.ShapelessOreRecipe) ItemStack(net.minecraft.item.ItemStack)

Aggregations

IOreDictListenerEvent (gregapi.oredict.event.IOreDictListenerEvent)24 OreDictListenerEvent_Names (gregapi.oredict.event.OreDictListenerEvent_Names)20 FluidStack (net.minecraftforge.fluids.FluidStack)14 OreDictMaterial (gregapi.oredict.OreDictMaterial)13 ItemStack (net.minecraft.item.ItemStack)12 OreDictListenerEvent_TwoNames (gregapi.oredict.event.OreDictListenerEvent_TwoNames)5 OreDictItemData (gregapi.oredict.OreDictItemData)4 OreDictPrefix (gregapi.oredict.OreDictPrefix)4 Item (net.minecraft.item.Item)3 MultiTileEntityRegistry (gregapi.block.multitileentity.MultiTileEntityRegistry)2 ItemStackContainer (gregapi.code.ItemStackContainer)2 FluidContainerData (net.minecraftforge.fluids.FluidContainerRegistry.FluidContainerData)2 BlockBase (gregapi.block.BlockBase)1 BlockMetaType (gregapi.block.metatype.BlockMetaType)1 BlockStones (gregapi.block.metatype.BlockStones)1 ArrayListNoNulls (gregapi.code.ArrayListNoNulls)1 ICondition (gregapi.code.ICondition)1 And (gregapi.code.ICondition.And)1 CoverTextureMulti (gregapi.cover.covers.CoverTextureMulti)1 CoverTextureSimple (gregapi.cover.covers.CoverTextureSimple)1