package mcjty.rftools.crafting;
import cpw.mods.fml.common.registry.GameRegistry;
import mcjty.rftools.blocks.ModBlocks;
import mcjty.rftools.blocks.blockprotector.BlockProtectorSetup;
import mcjty.rftools.blocks.crafter.CrafterSetup;
import mcjty.rftools.blocks.dimletconstruction.DimletConstructionSetup;
import mcjty.rftools.blocks.dimlets.DimletSetup;
import mcjty.rftools.blocks.endergen.EndergenicSetup;
import mcjty.rftools.blocks.environmental.EnvironmentalSetup;
import mcjty.rftools.blocks.infuser.MachineInfuserSetup;
import mcjty.rftools.blocks.itemfilter.ItemFilterSetup;
import mcjty.rftools.blocks.logic.LogicBlockSetup;
import mcjty.rftools.blocks.monitor.MonitorSetup;
import mcjty.rftools.blocks.relay.RelaySetup;
import mcjty.rftools.blocks.screens.ScreenSetup;
import mcjty.rftools.blocks.security.SecuritySetup;
import mcjty.rftools.blocks.shield.ShieldSetup;
import mcjty.rftools.blocks.spaceprojector.SpaceProjectorConfiguration;
import mcjty.rftools.blocks.spaceprojector.SpaceProjectorSetup;
import mcjty.rftools.blocks.spawner.SpawnerSetup;
import mcjty.rftools.blocks.storage.ModularStorageSetup;
import mcjty.rftools.blocks.storagemonitor.StorageScannerSetup;
import mcjty.rftools.blocks.teleporter.TeleporterSetup;
import mcjty.rftools.items.ModItems;
import mcjty.rftools.items.shapecard.ShapeCardItem;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.RecipeSorter;
public final class ModCrafting {
static {
RecipeSorter.register("rftools:shapedpreserving", PreservingShapedRecipe.class, RecipeSorter.Category.SHAPED, "after:minecraft:shaped");
RecipeSorter.register("rftools:containeranditem", ContainerAndItemRecipe.class, RecipeSorter.Category.SHAPED, "after:minecraft:shaped");
RecipeSorter.register("rftools:containertoitem", ContainerToItemRecipe.class, RecipeSorter.Category.SHAPED, "after:minecraft:shaped");
RecipeSorter.register("rftools:shapedknowndimlet", KnownDimletShapedRecipe.class, RecipeSorter.Category.SHAPED, "after:minecraft:shaped");
RecipeSorter.register("rftools:nbtmatchingrecipe", NBTMatchingRecipe.class, RecipeSorter.Category.SHAPED, "after:minecraft:shaped");
}
public static void init() {
intBaseCrafting();
initItemCrafting();
MonitorSetup.setupCrafting();
CrafterSetup.setupCrafting();
MachineInfuserSetup.setupCrafting();
StorageScannerSetup.setupCrafting();
RelaySetup.setupCrafting();
ItemFilterSetup.setupCrafting();
TeleporterSetup.setupCrafting();
LogicBlockSetup.setupCrafting();
EndergenicSetup.setupCrafting();
ShieldSetup.setupCrafting();
DimletSetup.setupCrafting();
EnvironmentalSetup.setupCrafting();
SpawnerSetup.setupCrafting();
ScreenSetup.setupCrafting();
DimletConstructionSetup.setupCrafting();
BlockProtectorSetup.setupCrafting();
ModularStorageSetup.setupCrafting();
SpaceProjectorSetup.setupCrafting();
SecuritySetup.setupCrafting();
}
private static void initItemCrafting() {
Item inkSac = (Item) Item.itemRegistry.getObjectById(351);
ItemStack lapisStack = new ItemStack(Items.dye, 1, 4);
GameRegistry.addRecipe(new ItemStack(ModItems.networkMonitorItem), "rlr", "iri", "rlr", 'r', Items.redstone, 'i', Items.iron_ingot, 'l', inkSac);
GameRegistry.addRecipe(new ItemStack(ModItems.rfToolsManualItem), " r ", "rbr", " r ", 'r', Items.redstone, 'b', Items.book);
GameRegistry.addRecipe(new ItemStack(ModItems.rfToolsManualDimensionItem), "r r", " b ", "r r", 'r', Items.redstone, 'b', Items.book);
GameRegistry.addRecipe(new ItemStack(ModItems.smartWrenchItem), " i", " l ", "l ", 'i', Items.iron_ingot, 'l', lapisStack);
if (SpaceProjectorConfiguration.shapeCardAllowed) {
GameRegistry.addRecipe(new ItemStack(ModItems.shapeCardItem, 1, ShapeCardItem.CARD_SHAPE), "pbp", "rir", "pbp", 'r', Items.redstone, 'i', Items.iron_ingot,
'b', Items.brick, 'p', Items.paper);
if (SpaceProjectorConfiguration.quarryAllowed) {
GameRegistry.addRecipe(new PreservingShapedRecipe(3, 3, new ItemStack[]{
new ItemStack(inkSac), new ItemStack(Blocks.obsidian), new ItemStack(inkSac),
new ItemStack(Blocks.obsidian), new ItemStack(ModItems.shapeCardItem, 1, ShapeCardItem.CARD_SHAPE), new ItemStack(Blocks.obsidian),
new ItemStack(inkSac), new ItemStack(Blocks.obsidian), new ItemStack(inkSac)
}, new ItemStack(ModItems.shapeCardItem, 1, ShapeCardItem.CARD_VOID), 4));
GameRegistry.addRecipe(new PreservingShapedRecipe(3, 3, new ItemStack[]{
new ItemStack(Items.redstone), new ItemStack(Items.diamond_pickaxe), new ItemStack(Items.redstone),
new ItemStack(Items.iron_ingot), new ItemStack(ModItems.shapeCardItem, 1, ShapeCardItem.CARD_SHAPE), new ItemStack(Items.iron_ingot),
new ItemStack(Items.redstone), new ItemStack(Items.diamond_shovel), new ItemStack(Items.redstone)
}, new ItemStack(ModItems.shapeCardItem, 1, ShapeCardItem.CARD_QUARRY), 4));
GameRegistry.addRecipe(new PreservingShapedRecipe(3, 3, new ItemStack[]{
new ItemStack(DimletSetup.dimensionalShard), new ItemStack(Items.nether_star), new ItemStack(DimletSetup.dimensionalShard),
new ItemStack(Items.diamond), new ItemStack(ModItems.shapeCardItem, 1, ShapeCardItem.CARD_QUARRY), new ItemStack(Items.diamond),
new ItemStack(DimletSetup.dimensionalShard), new ItemStack(Items.diamond), new ItemStack(DimletSetup.dimensionalShard)
}, new ItemStack(ModItems.shapeCardItem, 1, ShapeCardItem.CARD_QUARRY_SILK), 4));
GameRegistry.addRecipe(new PreservingShapedRecipe(3, 3, new ItemStack[]{
new ItemStack(DimletSetup.dimensionalShard), new ItemStack(Items.ghast_tear), new ItemStack(DimletSetup.dimensionalShard),
new ItemStack(Items.emerald), new ItemStack(ModItems.shapeCardItem, 1, ShapeCardItem.CARD_QUARRY), new ItemStack(Items.diamond),
new ItemStack(DimletSetup.dimensionalShard), new ItemStack(Items.redstone), new ItemStack(DimletSetup.dimensionalShard)
}, new ItemStack(ModItems.shapeCardItem, 1, ShapeCardItem.CARD_QUARRY_FORTUNE), 4));
if (SpaceProjectorConfiguration.clearingQuarryAllowed) {
GameRegistry.addRecipe(new PreservingShapedRecipe(3, 3, new ItemStack[]{
new ItemStack(Blocks.glass), new ItemStack(Blocks.glass), new ItemStack(Blocks.glass),
new ItemStack(Blocks.glass), new ItemStack(ModItems.shapeCardItem, 1, ShapeCardItem.CARD_QUARRY), new ItemStack(Blocks.glass),
new ItemStack(Blocks.glass), new ItemStack(Blocks.glass), new ItemStack(Blocks.glass)
}, new ItemStack(ModItems.shapeCardItem, 1, ShapeCardItem.CARD_QUARRY_CLEAR), 4));
GameRegistry.addRecipe(new PreservingShapedRecipe(3, 3, new ItemStack[]{
new ItemStack(Blocks.glass), new ItemStack(Blocks.glass), new ItemStack(Blocks.glass),
new ItemStack(Blocks.glass), new ItemStack(ModItems.shapeCardItem, 1, ShapeCardItem.CARD_QUARRY_SILK), new ItemStack(Blocks.glass),
new ItemStack(Blocks.glass), new ItemStack(Blocks.glass), new ItemStack(Blocks.glass)
}, new ItemStack(ModItems.shapeCardItem, 1, ShapeCardItem.CARD_QUARRY_CLEAR_SILK), 4));
GameRegistry.addRecipe(new PreservingShapedRecipe(3, 3, new ItemStack[]{
new ItemStack(Blocks.glass), new ItemStack(Blocks.glass), new ItemStack(Blocks.glass),
new ItemStack(Blocks.glass), new ItemStack(ModItems.shapeCardItem, 1, ShapeCardItem.CARD_QUARRY_FORTUNE), new ItemStack(Blocks.glass),
new ItemStack(Blocks.glass), new ItemStack(Blocks.glass), new ItemStack(Blocks.glass)
}, new ItemStack(ModItems.shapeCardItem, 1, ShapeCardItem.CARD_QUARRY_CLEAR_FORTUNE), 4));
GameRegistry.addRecipe(new PreservingShapedRecipe(3, 3, new ItemStack[]{
new ItemStack(Blocks.dirt), new ItemStack(Blocks.dirt), new ItemStack(Blocks.dirt),
new ItemStack(Blocks.dirt), new ItemStack(ModItems.shapeCardItem, 1, ShapeCardItem.CARD_QUARRY_CLEAR), new ItemStack(Blocks.dirt),
new ItemStack(Blocks.dirt), new ItemStack(Blocks.dirt), new ItemStack(Blocks.dirt)
}, new ItemStack(ModItems.shapeCardItem, 1, ShapeCardItem.CARD_QUARRY), 4));
GameRegistry.addRecipe(new PreservingShapedRecipe(3, 3, new ItemStack[]{
new ItemStack(Blocks.dirt), new ItemStack(Blocks.dirt), new ItemStack(Blocks.dirt),
new ItemStack(Blocks.dirt), new ItemStack(ModItems.shapeCardItem, 1, ShapeCardItem.CARD_QUARRY_CLEAR_SILK), new ItemStack(Blocks.dirt),
new ItemStack(Blocks.dirt), new ItemStack(Blocks.dirt), new ItemStack(Blocks.dirt)
}, new ItemStack(ModItems.shapeCardItem, 1, ShapeCardItem.CARD_QUARRY_SILK), 4));
GameRegistry.addRecipe(new PreservingShapedRecipe(3, 3, new ItemStack[]{
new ItemStack(Blocks.dirt), new ItemStack(Blocks.dirt), new ItemStack(Blocks.dirt),
new ItemStack(Blocks.dirt), new ItemStack(ModItems.shapeCardItem, 1, ShapeCardItem.CARD_QUARRY_CLEAR_FORTUNE), new ItemStack(Blocks.dirt),
new ItemStack(Blocks.dirt), new ItemStack(Blocks.dirt), new ItemStack(Blocks.dirt)
}, new ItemStack(ModItems.shapeCardItem, 1, ShapeCardItem.CARD_QUARRY_FORTUNE), 4));
}
}
}
}
private static void intBaseCrafting() {
ItemStack lapisStack = new ItemStack(Items.dye, 1, 4);
GameRegistry.addRecipe(new ItemStack(ModBlocks.machineFrame), "ili", "g g", "ili", 'i', Items.iron_ingot, 'g', Items.gold_nugget, 'l', lapisStack);
GameRegistry.addRecipe(new ItemStack(ModBlocks.machineBase), " ", "ggg", "sss", 'g', Items.gold_nugget, 's', Blocks.stone);
}
}