@EventHandler
  public void init(FMLInitializationEvent event) {
    PacketDispatcher.registerPackets();
    proxy.init(event);

    GameRegistry.addShapelessRecipe(new ItemStack(itemEmptyAtlas), Items.book, Items.compass);

    RecipeSorter.register(
        "antiqueatlas:atlascloning",
        RecipeAtlasCloning.class,
        SHAPELESS,
        "after:minecraft:shapeless");
    GameRegistry.addRecipe(new RecipeAtlasCloning());

    RecipeSorter.register(
        "antiqueatlas:atlascombining",
        RecipeAtlasCombining.class,
        SHAPELESS,
        "after:minecraft:shapeless");
    RecipeAtlasCombining recipeCombining = new RecipeAtlasCombining();
    GameRegistry.addRecipe(recipeCombining);
    FMLCommonHandler.instance().bus().register(recipeCombining);

    MinecraftForge.EVENT_BUS.register(extBiomeData);
    FMLCommonHandler.instance().bus().register(extBiomeData);

    MinecraftForge.EVENT_BUS.register(globalMarkersData);
    FMLCommonHandler.instance().bus().register(globalMarkersData);

    MinecraftForge.EVENT_BUS.register(new DeathWatcher());

    MinecraftForge.EVENT_BUS.register(new VillageWatcher());
    MinecraftForge.EVENT_BUS.register(new NetherFortressWatcher());
    MinecraftForge.EVENT_BUS.register(new NetherPortalWatcher());
  }
 static {
   RecipeSorter.register(
       "minechem:coatingRecipe",
       PotionCoatingRecipe.class,
       RecipeSorter.Category.SHAPELESS,
       "after:minecraft:shapeless");
 }
  /** Add all valid block recipes */
  public static void addRecipes() {

    // Everything Block Recipes
    GameRegistry.addRecipe(new EverythingBlockCraftingRecipes());
    GameRegistry.addRecipe(new EverythingBlockDecraftingRecipes());
    GameRegistry.addRecipe(new EverythingSlabCraftingRecipes());
    GameRegistry.addRecipe(new EverythingStairCraftingRecipes());
    GameRegistry.addRecipe(new EverythingStairDecraftingRecipes());
    GameRegistry.addRecipe(new EverythingWallCraftingRecipes());
    GameRegistry.addRecipe(new EverythingWallDecraftingRecipes());
    RecipeSorter.register(
        RefStrings.MODID + ":EBCrafting",
        EverythingBlockCraftingRecipes.class,
        Category.SHAPED,
        "after:minecraft:shaped");
    RecipeSorter.register(
        RefStrings.MODID + ":EBDecrafting",
        EverythingBlockDecraftingRecipes.class,
        Category.SHAPELESS,
        "after:minecraft:shapeless");
    RecipeSorter.register(
        RefStrings.MODID + ":EBSlabCrafting",
        EverythingSlabCraftingRecipes.class,
        Category.SHAPED,
        "after:minecraft:shaped");
    RecipeSorter.register(
        RefStrings.MODID + ":EBStairCrafting",
        EverythingStairCraftingRecipes.class,
        Category.SHAPED,
        "after:minecraft:shaped");
    RecipeSorter.register(
        RefStrings.MODID + ":EBStairDecrafting",
        EverythingStairDecraftingRecipes.class,
        Category.SHAPELESS,
        "after:minecraft:shapeless");
    RecipeSorter.register(
        RefStrings.MODID + ":EBWallCrafting",
        EverythingWallCraftingRecipes.class,
        Category.SHAPED,
        "after:minecraft:shaped");
    RecipeSorter.register(
        RefStrings.MODID + ":EBWallDecrafting",
        EverythingWallDecraftingRecipes.class,
        Category.SHAPELESS,
        "after:minecraft:shapeless");

    // direct the API to these recipes
    EverythingBlocksAPI.craftingRecipes = new EverythingBlockCraftingRecipes();
    EverythingBlocksAPI.decraftingRecipes = new EverythingBlockDecraftingRecipes();
    EverythingBlocksAPI.craftingRecipesSlabs = new EverythingSlabCraftingRecipes();
    EverythingBlocksAPI.craftingRecipesStairs = new EverythingStairCraftingRecipes();
    EverythingBlocksAPI.decraftingRecipesStairs = new EverythingStairDecraftingRecipes();
    EverythingBlocksAPI.craftingRecipesWalls = new EverythingStairCraftingRecipes();
    EverythingBlocksAPI.decraftingRecipesWalls = new EverythingStairDecraftingRecipes();
  }
Beispiel #4
0
 public ItemPhantomInk() {
   setUnlocalizedName(LibItemNames.PHANTOM_INK);
   GameRegistry.addRecipe(new PhantomInkRecipe());
   RecipeSorter.register("botania:phantomInk", PhantomInkRecipe.class, Category.SHAPELESS, "");
 }
Beispiel #5
0
  public static void addRecipes() {
    ItemStack diamondReplacement = new ItemStack(Items.diamond);
    ItemStack diamondBlockReplacement = new ItemStack(Blocks.diamond_block);

    if (ProjectEConfig.altCraftingMat) {
      diamondReplacement = new ItemStack(Items.nether_star);
      diamondBlockReplacement = new ItemStack(Items.nether_star);
    }

    // Shaped Recipes
    // Philos Stone
    GameRegistry.addRecipe(
        new ItemStack(philosStone),
        "RGR",
        "GDG",
        "RGR",
        'R',
        Items.redstone,
        'G',
        Items.glowstone_dust,
        'D',
        diamondReplacement);

    GameRegistry.addRecipe(
        new ItemStack(philosStone),
        "GRG",
        "RDR",
        "GRG",
        'R',
        Items.redstone,
        'G',
        Items.glowstone_dust,
        'D',
        diamondReplacement);

    // Interdiction torch
    if (ProjectEConfig.enableITorch) {
      GameRegistry.addRecipe(
          new ItemStack(confuseTorch, 2),
          "RDR",
          "DPD",
          "GGG",
          'R',
          Blocks.redstone_torch,
          'G',
          Items.glowstone_dust,
          'D',
          Items.diamond,
          'P',
          philosStone);
    }

    // Repair Talisman
    GameRegistry.addRecipe(
        new ItemStack(repairTalisman),
        "LMH",
        "SPS",
        "HML",
        'P',
        Items.paper,
        'S',
        Items.string,
        'L',
        new ItemStack(covalence, 1, 0),
        'M',
        new ItemStack(covalence, 1, 1),
        'H',
        new ItemStack(covalence, 1, 2));

    // Klein Star Ein
    GameRegistry.addRecipe(
        new ItemStack(kleinStars, 1, 0),
        "MMM",
        "MDM",
        "MMM",
        'M',
        new ItemStack(fuels, 1, 1),
        'D',
        Items.diamond);

    // Matter
    GameRegistry.addRecipe(
        new ItemStack(matter, 1, 0),
        "AAA",
        "ADA",
        "AAA",
        'D',
        Blocks.diamond_block,
        'A',
        new ItemStack(fuels, 1, 2));
    GameRegistry.addRecipe(
        new ItemStack(matter, 1, 1),
        "AAA",
        "DDD",
        "AAA",
        'D',
        matter,
        'A',
        new ItemStack(fuels, 1, 2));
    GameRegistry.addRecipe(
        new ItemStack(matter, 1, 1),
        "ADA",
        "ADA",
        "ADA",
        'D',
        matter,
        'A',
        new ItemStack(fuels, 1, 2));

    // Alchemical Chest
    if (ProjectEConfig.enableAlcChest) {
      GameRegistry.addRecipe(
          new ItemStack(alchChest),
          "LMH",
          "SDS",
          "ICI",
          'D',
          diamondReplacement,
          'L',
          new ItemStack(covalence, 1, 0),
          'M',
          new ItemStack(covalence, 1, 1),
          'H',
          new ItemStack(covalence, 1, 2),
          'S',
          Blocks.stone,
          'I',
          Items.iron_ingot,
          'C',
          Blocks.chest);
    }

    // Alchemical Bags
    for (int i = 0; i < 16; i++) {
      GameRegistry.addRecipe(
          new ItemStack(alchBag, 1, i),
          "CCC",
          "WAW",
          "WWW",
          'C',
          new ItemStack(covalence, 1, 2),
          'A',
          alchChest,
          'W',
          new ItemStack(Blocks.wool, 1, i));
    }

    // Condenser
    if (ProjectEConfig.enableCondenser) {
      GameRegistry.addRecipe(
          new ItemStack(condenser),
          "ODO",
          "DCD",
          "ODO",
          'D',
          Items.diamond,
          'O',
          new ItemStack(Blocks.obsidian),
          'C',
          new ItemStack(alchChest));
    }

    // Condenser MK2
    if (ProjectEConfig.enableCondenser2) {
      GameRegistry.addRecipe(
          new ItemStack(condenserMk2),
          "RDR",
          "DCD",
          "RDR",
          'D',
          new ItemStack(matterBlock, 1, 0),
          'R',
          new ItemStack(matterBlock, 1, 1),
          'C',
          condenser);
    }

    // Transmutation Table
    if (ProjectEConfig.enableTransTable) {
      GameRegistry.addRecipe(
          new ItemStack(transmuteStone),
          "OSO",
          "SPS",
          "OSO",
          'S',
          Blocks.stone,
          'O',
          Blocks.obsidian,
          'P',
          philosStone);
    }

    // Matter Blocks
    GameRegistry.addRecipe(new ItemStack(matterBlock, 4, 0), "DD", "DD", 'D', matter);
    GameRegistry.addRecipe(
        new ItemStack(matterBlock, 4, 1), "DD", "DD", 'D', new ItemStack(matter, 1, 1));

    // Matter Furnaces
    if (ProjectEConfig.enableDarkFurnace) {
      GameRegistry.addRecipe(
          new ItemStack(dmFurnaceOff),
          "DDD",
          "DFD",
          "DDD",
          'D',
          new ItemStack(matterBlock, 1, 0),
          'F',
          Blocks.furnace);
    }
    if (ProjectEConfig.enableRedFurnace) {
      GameRegistry.addRecipe(
          new ItemStack(rmFurnaceOff),
          "XRX",
          "RFR",
          'R',
          new ItemStack(matterBlock, 1, 1),
          'F',
          dmFurnaceOff);
    }

    // DM Pedestal
    if (ProjectEConfig.enableDarkPedestal) {
      GameRegistry.addRecipe(
          new ItemStack(dmPedestal),
          "RDR",
          "RDR",
          "DDD",
          'R',
          new ItemStack(matter, 1, 1),
          'D',
          new ItemStack(matterBlock, 1, 0));
    }

    // Collectors
    if (ProjectEConfig.enableCollector) {
      GameRegistry.addRecipe(
          new ItemStack(energyCollector),
          "GTG",
          "GDG",
          "GFG",
          'G',
          Blocks.glowstone,
          'F',
          Blocks.furnace,
          'D',
          diamondBlockReplacement,
          'T',
          Blocks.glass);
    }
    if (ProjectEConfig.enableCollector2) {
      GameRegistry.addRecipe(
          new ItemStack(collectorMK2),
          "GDG",
          "GCG",
          "GGG",
          'G',
          Blocks.glowstone,
          'C',
          energyCollector,
          'D',
          matter);
    }
    if (ProjectEConfig.enableCollector3) {
      GameRegistry.addRecipe(
          new ItemStack(collectorMK3),
          "GRG",
          "GCG",
          "GGG",
          'G',
          Blocks.glowstone,
          'C',
          collectorMK2,
          'R',
          new ItemStack(matter, 1, 1));
    }

    // AM Relays
    if (ProjectEConfig.enableRelay) {
      GameRegistry.addRecipe(
          new ItemStack(relay),
          "OSO",
          "ODO",
          "OOO",
          'S',
          Blocks.glass,
          'D',
          Blocks.diamond_block,
          'O',
          Blocks.obsidian);
    }
    if (ProjectEConfig.enableRelay2) {
      GameRegistry.addRecipe(
          new ItemStack(relayMK2),
          "ODO",
          "OAO",
          "OOO",
          'A',
          relay,
          'D',
          matter,
          'O',
          Blocks.obsidian);
    }
    if (ProjectEConfig.enableRelay3) {
      GameRegistry.addRecipe(
          new ItemStack(relayMK3),
          "ORO",
          "OAO",
          "OOO",
          'A',
          relayMK2,
          'R',
          new ItemStack(matter, 1, 1),
          'O',
          Blocks.obsidian);
    }

    // DM Tools
    GameRegistry.addRecipe(
        new ItemStack(dmPick), "MMM", "XDX", "XDX", 'D', Items.diamond, 'M', matter);
    GameRegistry.addRecipe(
        new ItemStack(dmAxe), "MMX", "MDX", "XDX", 'D', Items.diamond, 'M', matter);
    GameRegistry.addRecipe(
        new ItemStack(dmShovel), "XMX", "XDX", "XDX", 'D', Items.diamond, 'M', matter);
    GameRegistry.addRecipe(
        new ItemStack(dmSword), "XMX", "XMX", "XDX", 'D', Items.diamond, 'M', matter);
    GameRegistry.addRecipe(
        new ItemStack(dmHoe), "MMX", "XDX", "XDX", 'D', Items.diamond, 'M', matter);
    GameRegistry.addRecipe(new ItemStack(dmShears), "XM", "DX", 'D', Items.diamond, 'M', matter);
    GameRegistry.addRecipe(
        new ItemStack(dmHammer), "MDM", "XDX", "XDX", 'D', Items.diamond, 'M', matter);

    // RM Tools
    GameRegistry.addRecipe(
        new ItemStack(rmPick),
        "RRR",
        "XPX",
        "XMX",
        'R',
        new ItemStack(matter, 1, 1),
        'P',
        dmPick,
        'M',
        matter);
    GameRegistry.addRecipe(
        new ItemStack(rmAxe),
        "RRX",
        "RAX",
        "XMX",
        'R',
        new ItemStack(matter, 1, 1),
        'A',
        dmAxe,
        'M',
        matter);
    GameRegistry.addRecipe(
        new ItemStack(rmShovel),
        "XRX",
        "XSX",
        "XMX",
        'R',
        new ItemStack(matter, 1, 1),
        'S',
        dmShovel,
        'M',
        matter);
    GameRegistry.addRecipe(
        new ItemStack(rmSword),
        "XRX",
        "XRX",
        "XSX",
        'R',
        new ItemStack(matter, 1, 1),
        'S',
        dmSword);
    GameRegistry.addRecipe(
        new ItemStack(rmHoe),
        "RRX",
        "XHX",
        "XMX",
        'R',
        new ItemStack(matter, 1, 1),
        'H',
        dmHoe,
        'M',
        matter);
    GameRegistry.addRecipe(
        new ItemStack(rmShears), "XR", "SX", 'R', new ItemStack(matter, 1, 1), 'S', dmShears);
    GameRegistry.addRecipe(
        new ItemStack(rmHammer),
        "RMR",
        "XHX",
        "XMX",
        'R',
        new ItemStack(matter, 1, 1),
        'H',
        dmHammer,
        'M',
        matter);
    GameRegistry.addRecipe(
        new ItemStack(rmKatar),
        "123",
        "4RR",
        "RRR",
        '1',
        rmShears,
        '2',
        rmAxe,
        '3',
        rmSword,
        '4',
        rmHoe,
        'R',
        new ItemStack(matter, 1, 1));
    GameRegistry.addRecipe(
        new ItemStack(rmStar),
        "123",
        "RRR",
        "RRR",
        '1',
        rmHammer,
        '2',
        rmPick,
        '3',
        rmShovel,
        'R',
        new ItemStack(matter, 1, 1));

    // Armor
    GameRegistry.addRecipe(new ItemStack(dmHelmet), "MMM", "MXM", 'M', matter);
    GameRegistry.addRecipe(new ItemStack(dmChest), "MXM", "MMM", "MMM", 'M', matter);
    GameRegistry.addRecipe(new ItemStack(dmLegs), "MMM", "MXM", "MXM", 'M', matter);
    GameRegistry.addRecipe(new ItemStack(dmFeet), "MXM", "MXM", 'M', matter);

    GameRegistry.addRecipe(
        new ItemStack(rmHelmet), "MMM", "MDM", 'M', new ItemStack(matter, 1, 1), 'D', dmHelmet);
    GameRegistry.addRecipe(
        new ItemStack(rmChest),
        "MDM",
        "MMM",
        "MMM",
        'M',
        new ItemStack(matter, 1, 1),
        'D',
        dmChest);
    GameRegistry.addRecipe(
        new ItemStack(rmLegs), "MMM", "MDM", "MXM", 'M', new ItemStack(matter, 1, 1), 'D', dmLegs);
    GameRegistry.addRecipe(
        new ItemStack(rmFeet), "MDM", "MXM", 'M', new ItemStack(matter, 1, 1), 'D', dmFeet);

    // Rings
    GameRegistry.addRecipe(
        new ItemStack(ironBand),
        "III",
        "ILI",
        "III",
        'I',
        Items.iron_ingot,
        'L',
        Items.lava_bucket);
    GameRegistry.addRecipe(
        new ItemStack(ironBand), "III", "ILI", "III", 'I', Items.iron_ingot, 'L', volcanite);
    GameRegistry.addRecipe(
        new ShapedOreRecipe(
            new ItemStack(harvestGod),
            "SFS",
            "DID",
            "SFS",
            'I',
            ironBand,
            'S',
            "treeSapling",
            'F',
            Blocks.red_flower,
            'F',
            Blocks.red_flower,
            'D',
            matter));
    GameRegistry.addRecipe(
        new ItemStack(swrg), "DFD", "FIF", "DFD", 'I', ironBand, 'F', Items.feather, 'D', matter);
    GameRegistry.addRecipe(
        new ItemStack(ignition),
        "FMF",
        "DID",
        "FMF",
        'I',
        ironBand,
        'F',
        new ItemStack(Items.flint_and_steel, 1, OreDictionary.WILDCARD_VALUE),
        'D',
        matter,
        'M',
        new ItemStack(fuels, 1, 1));
    GameRegistry.addRecipe(
        new ItemStack(bodyStone),
        "SSS",
        "RLR",
        "SSS",
        'R',
        new ItemStack(matter, 1, 1),
        'S',
        Items.sugar,
        'L',
        new ItemStack(Items.dye, 1, 4));
    GameRegistry.addRecipe(
        new ItemStack(soulStone),
        "GGG",
        "RLR",
        "GGG",
        'R',
        new ItemStack(matter, 1, 1),
        'G',
        Items.glowstone_dust,
        'L',
        new ItemStack(Items.dye, 1, 4));
    GameRegistry.addRecipe(
        new ItemStack(mindStone),
        "BBB",
        "RLR",
        "BBB",
        'R',
        new ItemStack(matter, 1, 1),
        'B',
        Items.book,
        'L',
        new ItemStack(Items.dye, 1, 4));
    GameRegistry.addRecipe(
        new ItemStack(blackHole),
        "SSS",
        "DID",
        "SSS",
        'I',
        ironBand,
        'S',
        Items.string,
        'D',
        matter);
    GameRegistry.addRecipe(
        new ItemStack(everTide), "WWW", "DDD", "WWW", 'W', Items.water_bucket, 'D', matter);
    GameRegistry.addRecipe(
        new ItemStack(volcanite), "LLL", "DDD", "LLL", 'L', Items.lava_bucket, 'D', matter);
    GameRegistry.addRecipe(
        new ItemStack(eternalDensity),
        "DOD",
        "MDM",
        "DOD",
        'D',
        Items.diamond,
        'O',
        Blocks.obsidian,
        'M',
        matter);
    GameRegistry.addRecipe(
        new ItemStack(zero),
        "SBS",
        "MIM",
        "SBS",
        'S',
        Blocks.snow,
        'B',
        Items.snowball,
        'M',
        matter,
        'I',
        ironBand);
    GameRegistry.addShapelessRecipe(
        new ItemStack(voidRing),
        blackHole,
        eternalDensity,
        new ItemStack(matter, 1, 1),
        new ItemStack(matter, 1, 1));
    GameRegistry.addRecipe(
        new ItemStack(arcana),
        "ZIH",
        "SMM",
        "MMM",
        'Z',
        zero,
        'I',
        ignition,
        'H',
        harvestGod,
        'S',
        swrg,
        'M',
        new ItemStack(matter, 1, 1));

    // Watch of flowing time
    GameRegistry.addRecipe(
        new ItemStack(timeWatch),
        "DOD",
        "GCG",
        "DOD",
        'D',
        matter,
        'O',
        Blocks.obsidian,
        'G',
        Blocks.glowstone,
        'C',
        Items.clock);
    GameRegistry.addRecipe(
        new ItemStack(timeWatch),
        "DGD",
        "OCO",
        "DGD",
        'D',
        matter,
        'O',
        Blocks.obsidian,
        'G',
        Blocks.glowstone,
        'C',
        Items.clock);

    // Divining rods
    GameRegistry.addRecipe(
        new ItemStack(dRod1), "DDD", "DSD", "DDD", 'D', covalence, 'S', Items.stick);
    GameRegistry.addRecipe(
        new ItemStack(dRod2), "DDD", "DSD", "DDD", 'D', new ItemStack(covalence, 1, 1), 'S', dRod1);
    GameRegistry.addRecipe(
        new ItemStack(dRod3), "DDD", "DSD", "DDD", 'D', new ItemStack(covalence, 1, 2), 'S', dRod2);

    // Explosive items
    GameRegistry.addRecipe(
        new ItemStack(dCatalyst),
        "NMN",
        "MFM",
        "NMN",
        'N',
        novaCatalyst,
        'M',
        new ItemStack(fuels, 1, 1),
        'F',
        new ItemStack(Items.flint_and_steel, 1, OreDictionary.WILDCARD_VALUE));
    GameRegistry.addRecipe(
        new ItemStack(hyperLens),
        "DDD",
        "MNM",
        "DDD",
        'N',
        novaCatalyst,
        'M',
        matter,
        'D',
        Items.diamond);
    GameRegistry.addRecipe(
        new ItemStack(cataliticLens),
        "MMM",
        "HMD",
        "MMM",
        'M',
        matter,
        'H',
        hyperLens,
        'D',
        dCatalyst);
    GameRegistry.addRecipe(
        new ItemStack(cataliticLens),
        "MMM",
        "DMH",
        "MMM",
        'M',
        matter,
        'H',
        hyperLens,
        'D',
        dCatalyst);

    // Fuel Blocks
    GameRegistry.addRecipe(new ItemStack(fuelBlock, 1, 0), "FFF", "FFF", "FFF", 'F', fuels);
    GameRegistry.addRecipe(
        new ItemStack(fuelBlock, 1, 1), "FFF", "FFF", "FFF", 'F', new ItemStack(fuels, 1, 1));
    GameRegistry.addRecipe(
        new ItemStack(fuelBlock, 1, 2), "FFF", "FFF", "FFF", 'F', new ItemStack(fuels, 1, 2));

    // Tome
    if (ProjectEConfig.craftableTome) {
      GameRegistry.addRecipe(
          new ItemStack(tome),
          "HML",
          "KBK",
          "LMH",
          'L',
          new ItemStack(covalence, 1, 0),
          'M',
          new ItemStack(covalence, 1, 1),
          'H',
          new ItemStack(covalence, 1, 2),
          'B',
          Items.book,
          'K',
          new ItemStack(kleinStars, 1, 5));
    }

    // TransmutationTablet
    GameRegistry.addRecipe(
        new ItemStack(transmutationTablet),
        "DSD",
        "STS",
        "DSD",
        'D',
        new ItemStack(matterBlock, 1, 0),
        'S',
        Blocks.stone,
        'T',
        transmuteStone);

    // Mercurial Eye
    GameRegistry.addRecipe(
        new ItemStack(mercEye),
        "OBO",
        "BRB",
        "BDB",
        'O',
        Blocks.obsidian,
        'B',
        Blocks.brick_block,
        'R',
        new ItemStack(matter, 1, 1),
        'D',
        Items.diamond);

    // Shapeless Recipes
    // Philos Stone exchanges
    GameRegistry.addShapelessRecipe(
        new ItemStack(Items.ender_pearl),
        philosStone,
        Items.iron_ingot,
        Items.iron_ingot,
        Items.iron_ingot,
        Items.iron_ingot);
    GameRegistry.addShapelessRecipe(
        new ItemStack(Items.iron_ingot, 8), philosStone, Items.gold_ingot);
    GameRegistry.addShapelessRecipe(
        new ItemStack(Items.gold_ingot),
        philosStone,
        Items.iron_ingot,
        Items.iron_ingot,
        Items.iron_ingot,
        Items.iron_ingot,
        Items.iron_ingot,
        Items.iron_ingot,
        Items.iron_ingot,
        Items.iron_ingot);
    GameRegistry.addShapelessRecipe(
        new ItemStack(Items.diamond),
        philosStone,
        Items.gold_ingot,
        Items.gold_ingot,
        Items.gold_ingot,
        Items.gold_ingot);
    GameRegistry.addShapelessRecipe(new ItemStack(Items.gold_ingot, 4), philosStone, Items.diamond);
    GameRegistry.addShapelessRecipe(
        new ItemStack(Items.emerald), philosStone, Items.diamond, Items.diamond);
    GameRegistry.addShapelessRecipe(new ItemStack(Items.diamond, 2), philosStone, Items.emerald);
    GameRegistry.addShapelessRecipe(
        new ItemStack(fuels, 1, 0), philosStone, Items.coal, Items.coal, Items.coal, Items.coal);
    GameRegistry.addShapelessRecipe(
        new ItemStack(Items.coal, 4), philosStone, new ItemStack(fuels, 1, 0));
    GameRegistry.addShapelessRecipe(
        new ItemStack(fuels, 1, 1),
        philosStone,
        new ItemStack(fuels, 1, 0),
        new ItemStack(fuels, 1, 0),
        new ItemStack(fuels, 1, 0),
        new ItemStack(fuels, 1, 0));
    GameRegistry.addShapelessRecipe(
        new ItemStack(fuels, 4, 0), philosStone, new ItemStack(fuels, 1, 1));
    GameRegistry.addShapelessRecipe(
        new ItemStack(fuels, 1, 2),
        philosStone,
        new ItemStack(fuels, 1, 1),
        new ItemStack(fuels, 1, 1),
        new ItemStack(fuels, 1, 1),
        new ItemStack(fuels, 1, 1));
    GameRegistry.addShapelessRecipe(
        new ItemStack(fuels, 4, 1), philosStone, new ItemStack(fuels, 1, 2));

    // Covalence dust
    GameRegistry.addShapelessRecipe(
        new ItemStack(covalence, 40, 0),
        Blocks.cobblestone,
        Blocks.cobblestone,
        Blocks.cobblestone,
        Blocks.cobblestone,
        Blocks.cobblestone,
        Blocks.cobblestone,
        Blocks.cobblestone,
        Blocks.cobblestone,
        new ItemStack(Items.coal, 1, 1));
    GameRegistry.addShapelessRecipe(
        new ItemStack(covalence, 40, 1), Items.iron_ingot, Items.redstone);
    GameRegistry.addShapelessRecipe(new ItemStack(covalence, 40, 2), Items.diamond, Items.coal);

    // Klein Stars
    for (int i = 1; i < 6; i++) {
      GameRegistry.addShapelessRecipe(
          new ItemStack(kleinStars, 1, i),
          new ItemStack(kleinStars, 1, i - 1),
          new ItemStack(kleinStars, 1, i - 1),
          new ItemStack(kleinStars, 1, i - 1),
          new ItemStack(kleinStars, 1, i - 1));
    }

    // Other items
    GameRegistry.addShapelessRecipe(
        new ItemStack(novaCatalyst, 2), Blocks.tnt, new ItemStack(fuels, 1, 1));
    GameRegistry.addShapelessRecipe(
        new ItemStack(novaCataclysm, 2), novaCatalyst, new ItemStack(fuels, 1, 2));
    GameRegistry.addShapelessRecipe(new ItemStack(lifeStone), bodyStone, soulStone);
    GameRegistry.addShapelessRecipe(
        new ItemStack(Blocks.ice),
        new ItemStack(zero, 1, OreDictionary.WILDCARD_VALUE),
        Items.water_bucket);
    GameRegistry.addShapelessRecipe(
        new ItemStack(Items.lava_bucket), volcanite, Items.bucket, Items.redstone);

    GameRegistry.addShapelessRecipe(
        new ItemStack(gemHelmet), rmHelmet, new ItemStack(kleinStars, 1, 5), everTide, soulStone);
    GameRegistry.addShapelessRecipe(
        new ItemStack(gemChest), rmChest, new ItemStack(kleinStars, 1, 5), volcanite, bodyStone);
    GameRegistry.addShapelessRecipe(
        new ItemStack(gemLegs), rmLegs, new ItemStack(kleinStars, 1, 5), blackHole, timeWatch);
    GameRegistry.addShapelessRecipe(
        new ItemStack(gemFeet), rmFeet, new ItemStack(kleinStars, 1, 5), swrg, swrg);

    GameRegistry.addShapelessRecipe(new ItemStack(matter, 1, 0), matterBlock);
    GameRegistry.addShapelessRecipe(new ItemStack(matter, 1, 1), new ItemStack(matterBlock, 1, 1));

    GameRegistry.addShapelessRecipe(new ItemStack(fuels, 9, 0), new ItemStack(fuelBlock, 1, 0));
    GameRegistry.addShapelessRecipe(new ItemStack(fuels, 9, 1), new ItemStack(fuelBlock, 1, 1));
    GameRegistry.addShapelessRecipe(new ItemStack(fuels, 9, 2), new ItemStack(fuelBlock, 1, 2));

    // need a recipe for each arcana mode, there's probably a better way to do this
    GameRegistry.addShapelessRecipe(
        new ItemStack(Blocks.ice), new ItemStack(arcana, 1, 0), Items.water_bucket);
    GameRegistry.addShapelessRecipe(
        new ItemStack(Blocks.ice), new ItemStack(arcana, 1, 1), Items.water_bucket);
    GameRegistry.addShapelessRecipe(
        new ItemStack(Blocks.ice), new ItemStack(arcana, 1, 2), Items.water_bucket);
    GameRegistry.addShapelessRecipe(
        new ItemStack(Blocks.ice), new ItemStack(arcana, 1, 3), Items.water_bucket);

    GameRegistry.addShapelessRecipe(
        new ItemStack(Blocks.grass), new ItemStack(arcana, 1, 0), Blocks.dirt);
    GameRegistry.addShapelessRecipe(
        new ItemStack(Blocks.grass), new ItemStack(arcana, 1, 1), Blocks.dirt);
    GameRegistry.addShapelessRecipe(
        new ItemStack(Blocks.grass), new ItemStack(arcana, 1, 2), Blocks.dirt);
    GameRegistry.addShapelessRecipe(
        new ItemStack(Blocks.grass), new ItemStack(arcana, 1, 3), Blocks.dirt);

    // Custom Recipe managment
    GameRegistry.addRecipe(new RecipesAlchemyBags());
    GameRegistry.addRecipe(new RecipesCovalenceRepair());
    GameRegistry.addRecipe(new RecipesKleinStars());
    RecipeSorter.register(
        "Alchemical Bags Recipes",
        RecipesAlchemyBags.class,
        Category.SHAPELESS,
        "before:minecraft:shaped");
    RecipeSorter.register(
        "Covalence Repair Recipes",
        RecipesCovalenceRepair.class,
        Category.SHAPELESS,
        "before:minecraft:shaped");
    RecipeSorter.register(
        "Klein Star Recipes",
        RecipesKleinStars.class,
        Category.SHAPELESS,
        "before:minecraft:shaped");

    // Fuel Values
    GameRegistry.registerFuelHandler(new FuelHandler());
  }