package gregtech.loaders.postload;

import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;

import gregtech.api.enums.ItemList;
import gregtech.api.enums.Materials;
import gregtech.api.enums.OrePrefixes;
import gregtech.api.util.GT_BaseCrop;
import gregtech.api.util.GT_Log;
import gregtech.api.util.GT_OreDictUnificator;

public class GT_CropLoader implements Runnable {

    @Override
    public void run() {
        GT_Log.out.println("GT_Mod: Register Crops to IC2.");
        try {
            /*
             * Tags: Vines = Tendrilly Edible = Food
             */
            ItemStack[] tI = { ItemList.Crop_Drop_Indigo.get(4L), ItemList.Crop_Drop_MilkWart.get(4L),
                new ItemStack(Blocks.brown_mushroom, 4), new ItemStack(Blocks.red_mushroom, 4) };
            new GT_BaseCrop(
                124,
                "Indigo",
                "Eloraam",
                tI[0],
                2,
                4,
                0,
                1,
                4,
                1,
                1,
                0,
                4,
                0,
                new String[] { "Flower", "Blue", "Ingredient" },
                ItemList.Crop_Drop_Indigo.get(1L),
                null);
            new GT_BaseCrop(
                125,
                "Flax",
                "Eloraam",
                null,
                2,
                4,
                0,
                1,
                4,
                1,
                1,
                2,
                0,
                1,
                new String[] { "Silk", "Tendrilly", "Addictive" },
                new ItemStack(Items.string, 1),
                null);
            new GT_BaseCrop(
                126,
                "Oilberries",
                "Spacetoad",
                null,
                9,
                4,
                0,
                1,
                4,
                6,
                1,
                2,
                1,
                12,
                new String[] { "Fire", "Dark", "Reed", "Rotten", "Coal", "Oil" },
                ItemList.Crop_Drop_OilBerry.get(1L),
                null);
            new GT_BaseCrop(
                127,
                "Bobsyeruncleranks",
                "GenerikB",
                null,
                11,
                4,
                0,
                1,
                4,
                4,
                0,
                8,
                2,
                9,
                new String[] { "Shiny", "Tendrilly", "Emerald", "Berylium", "Crystal" },
                Materials.Emerald,
                ItemList.Crop_Drop_BobsYerUncleRanks.get(1L),
                new ItemStack[] { new ItemStack(Items.emerald, 1) });
            new GT_BaseCrop(
                128,
                "Diareed",
                "Direwolf20",
                null,
                12,
                4,
                0,
                1,
                4,
                5,
                0,
                10,
                2,
                10,
                new String[] { "Fire", "Shiny", "Reed", "Coal", "Diamond", "Crystal" },
                Materials.Diamond,
                GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Diamond, 1L),
                new ItemStack[] { new ItemStack(Items.diamond, 1) });
            new GT_BaseCrop(
                129,
                "Withereed",
                "CovertJaguar",
                null,
                8,
                4,
                0,
                1,
                4,
                2,
                0,
                4,
                1,
                3,
                new String[] { "Fire", "Undead", "Reed", "Coal", "Rotten", "Wither" },
                Materials.Coal,
                GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1L),
                new ItemStack[] { new ItemStack(Items.coal, 1), new ItemStack(Items.coal, 1) });
            new GT_BaseCrop(
                130,
                "Blazereed",
                "Mr. Brain",
                null,
                6,
                4,
                0,
                1,
                4,
                0,
                4,
                1,
                0,
                0,
                new String[] { "Fire", "Blaze", "Reed", "Sulfur" },
                new ItemStack(Items.blaze_powder, 1),
                new ItemStack[] { new ItemStack(Items.blaze_rod, 1) });
            new GT_BaseCrop(
                131,
                "Eggplant",
                "Link",
                null,
                6,
                3,
                900,
                2,
                3,
                0,
                4,
                1,
                0,
                0,
                new String[] { "Chicken", "Egg", "Food", "Feather", "Flower", "Addictive" },
                new ItemStack(Items.egg, 1),
                new ItemStack[] { new ItemStack(Items.chicken, 1), new ItemStack(Items.feather, 1),
                    new ItemStack(Items.feather, 1), new ItemStack(Items.feather, 1) });
            new GT_BaseCrop(
                132,
                "Corium",
                "Gregorius Techneticies",
                null,
                6,
                4,
                0,
                1,
                4,
                0,
                2,
                3,
                1,
                0,
                new String[] { "Cow", "Silk", "Tendrilly" },
                new ItemStack(Items.leather, 1),
                null);
            new GT_BaseCrop(
                133,
                "Corpseplant",
                "Mr. Kenny",
                null,
                5,
                4,
                0,
                1,
                4,
                0,
                2,
                1,
                0,
                3,
                new String[] { "Toxic", "Undead", "Tendrilly", "Food", "Rotten" },
                new ItemStack(Items.rotten_flesh, 1),
                new ItemStack[] { ItemList.Dye_Bonemeal.get(1L), ItemList.Dye_Bonemeal.get(1L),
                    new ItemStack(Items.bone, 1) });
            new GT_BaseCrop(
                134,
                "Creeperweed",
                "General Spaz",
                null,
                7,
                4,
                0,
                1,
                4,
                3,
                0,
                5,
                1,
                3,
                new String[] { "Creeper", "Tendrilly", "Explosive", "Fire", "Sulfur", "Saltpeter", "Coal" },
                GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gunpowder, 1L),
                null);
            new GT_BaseCrop(
                135,
                "Enderbloom",
                "RichardG",
                null,
                10,
                4,
                0,
                1,
                4,
                5,
                0,
                2,
                1,
                6,
                new String[] { "Ender", "Flower", "Shiny" },
                GT_OreDictUnificator.get(OrePrefixes.dust, Materials.EnderPearl, 1L),
                new ItemStack[] { new ItemStack(Items.ender_pearl, 1), new ItemStack(Items.ender_pearl, 1),
                    new ItemStack(Items.ender_eye, 1) });
            new GT_BaseCrop(
                136,
                "Meatrose",
                "VintageBeef",
                null,
                7,
                4,
                1500,
                1,
                4,
                0,
                4,
                1,
                3,
                0,
                new String[] { "Food", "Flower", "Cow", "Fish", "Chicken", "Pig" },
                new ItemStack(Items.dye, 1, 9),
                new ItemStack[] { new ItemStack(Items.beef, 1), new ItemStack(Items.porkchop, 1),
                    new ItemStack(Items.chicken, 1), new ItemStack(Items.fish, 1) });
            new GT_BaseCrop(
                137,
                "Milkwart",
                "Mr. Brain",
                tI[1],
                6,
                3,
                900,
                1,
                3,
                0,
                3,
                0,
                1,
                0,
                new String[] { "Food", "Milk", "Cow" },
                ItemList.Crop_Drop_MilkWart.get(1L),
                null);
            new GT_BaseCrop(
                138,
                "Slimeplant",
                "Neowulf",
                null,
                6,
                4,
                0,
                3,
                4,
                3,
                0,
                0,
                0,
                2,
                new String[] { "Slime", "Bouncy", "Sticky", "Bush" },
                new ItemStack(Items.slime_ball, 1),
                null);
            new GT_BaseCrop(
                139,
                "Spidernip",
                "Mr. Kenny",
                null,
                4,
                4,
                600,
                1,
                4,
                2,
                1,
                4,
                1,
                3,
                new String[] { "Toxic", "Silk", "Spider", "Flower", "Ingredient", "Addictive" },
                new ItemStack(Items.string, 1),
                new ItemStack[] { new ItemStack(Items.spider_eye, 1), new ItemStack(Blocks.web, 1) });
            new GT_BaseCrop(
                140,
                "Tearstalks",
                "Neowulf",
                null,
                8,
                4,
                0,
                1,
                4,
                1,
                2,
                0,
                0,
                0,
                new String[] { "Healing", "Nether", "Ingredient", "Reed", "Ghast" },
                new ItemStack(Items.ghast_tear, 1),
                null);
            new GT_BaseCrop(
                141,
                "Tine",
                "Gregorius Techneticies",
                null,
                5,
                3,
                0,
                2,
                3,
                2,
                0,
                3,
                0,
                0,
                new String[] { "Shiny", "Metal", "Pine", "Tin", "Bush" },
                Materials.Tin,
                ItemList.Crop_Drop_Tine.get(1L),
                null);
            new GT_BaseCrop(
                142,
                "Coppon",
                "Mr. Brain",
                null,
                6,
                3,
                0,
                2,
                3,
                2,
                0,
                1,
                1,
                1,
                new String[] { "Shiny", "Metal", "Cotton", "Copper", "Bush" },
                Materials.Copper,
                ItemList.Crop_Drop_Coppon.get(1L),
                null);
            new GT_BaseCrop(
                143,
                "Brown Mushrooms",
                "Mr. Brain",
                tI[2],
                1,
                3,
                0,
                1,
                3,
                0,
                2,
                0,
                0,
                2,
                new String[] { "Food", "Mushroom", "Ingredient" },
                new ItemStack(Blocks.brown_mushroom, 1),
                null);
            new GT_BaseCrop(
                144,
                "Red Mushrooms",
                "Mr. Kenny",
                tI[3],
                1,
                3,
                0,
                1,
                3,
                0,
                1,
                3,
                0,
                2,
                new String[] { "Toxic", "Mushroom", "Ingredient" },
                new ItemStack(Blocks.red_mushroom, 1),
                null);
            new GT_BaseCrop(
                145,
                "Argentia",
                "Eloraam",
                null,
                7,
                4,
                0,
                3,
                4,
                2,
                0,
                1,
                0,
                0,
                new String[] { "Shiny", "Metal", "Silver", "Reed" },
                Materials.Silver,
                ItemList.Crop_Drop_Argentia.get(1L),
                null);
            new GT_BaseCrop(
                146,
                "Plumbilia",
                "KingLemming",
                null,
                6,
                4,
                0,
                3,
                4,
                2,
                0,
                3,
                1,
                1,
                new String[] { "Heavy", "Metal", "Lead", "Reed" },
                Materials.Lead,
                ItemList.Crop_Drop_Plumbilia.get(1L),
                null);
            new GT_BaseCrop(
                147,
                "Steeleafranks",
                "Benimatic",
                null,
                10,
                4,
                0,
                1,
                4,
                3,
                0,
                7,
                2,
                8,
                new String[] { "Metal", "Tendrilly", "Iron" },
                GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Steeleaf, 1L),
                new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Steeleaf, 1L) });
            new GT_BaseCrop(
                148,
                "Liveroots",
                "Benimatic",
                null,
                8,
                4,
                0,
                1,
                4,
                2,
                0,
                5,
                2,
                6,
                new String[] { "Wood", "Tendrilly" },
                GT_OreDictUnificator.get(OrePrefixes.dust, Materials.LiveRoot, 1L),
                new ItemStack[] { ItemList.TF_LiveRoot.get(1L) });
            new GT_BaseCrop(
                149,
                "Trollplant",
                "unknown",
                null,
                6,
                5,
                1000,
                1,
                4,
                0,
                0,
                5,
                2,
                8,
                new String[] { "Troll", "Bad", "Scrap" },
                GT_OreDictUnificator.get(OrePrefixes.gem, Materials.FoolsRuby, 1L),
                new ItemStack[] { ItemList.IC2_Plantball.get(1), ItemList.IC2_Scrap.get(1),
                    GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Plutonium241, 1L) });
            new GT_BaseCrop(
                150,
                "Lazulia",
                "unknown",
                null,
                7,
                4,
                0,
                2,
                4,
                4,
                2,
                5,
                7,
                4,
                new String[] { "Shiny", "Bad", "Crystal", "Lapis" },
                Materials.Lapis,
                GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lapis, 1L),
                null);
            new GT_BaseCrop(
                151,
                "Glowheat",
                "unknown",
                null,
                10,
                7,
                0,
                5,
                7,
                3,
                3,
                3,
                5,
                4,
                new String[] { "Light", "Shiny", "Crystal" },
                GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glowstone, 1L),
                null);
            new GT_BaseCrop(
                153,
                "Fertilia",
                "unknown",
                null,
                3,
                4,
                0,
                1,
                4,
                2,
                3,
                5,
                4,
                8,
                new String[] { "Growth", "Healing", "Flower" },
                GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Calcite, 1L),
                new ItemStack[] { ItemList.IC2_Fertilizer.get(1),
                    GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Apatite, 1L),
                    GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Phosphate, 1L) });
            new GT_BaseCrop(
                154,
                "Bauxia",
                "unknown",
                null,
                6,
                3,
                0,
                2,
                3,
                5,
                0,
                2,
                3,
                3,
                new String[] { "Metal", "Aluminium", "Reed", "Aluminium" },
                Materials.Aluminium,
                ItemList.Crop_Drop_Bauxite.get(1),
                null);
            new GT_BaseCrop(
                155,
                "Titania",
                "unknown",
                null,
                9,
                3,
                0,
                2,
                3,
                5,
                0,
                3,
                3,
                1,
                new String[] { "Metal", "Heavy", "Reed", "Titanium" },
                Materials.Titanium,
                ItemList.Crop_Drop_Ilmenite.get(1),
                null);
            new GT_BaseCrop(
                156,
                "Reactoria",
                "unknown",
                null,
                12,
                4,
                0,
                2,
                4,
                4,
                0,
                1,
                2,
                1,
                new String[] { "Radioactive", "Metal", "Danger", "Uranium" },
                Materials.Uranium,
                ItemList.Crop_Drop_Pitchblende.get(1),
                new ItemStack[] { ItemList.Crop_Drop_Uraninite.get(1) });
            new GT_BaseCrop(
                157,
                "God of Thunder",
                "unknown",
                null,
                9,
                4,
                0,
                2,
                4,
                3,
                0,
                5,
                1,
                2,
                new String[] { "Radioactive", "Metal", "Coal", "Thorium" },
                Materials.Thorium,
                ItemList.Crop_Drop_Thorium.get(1),
                null);
            new GT_BaseCrop(
                158,
                "Transformium",
                "unknown",
                null,
                12,
                4,
                2500,
                1,
                4,
                6,
                2,
                1,
                6,
                1,
                new String[] { "Transform", "Coal", "Reed" },
                ItemList.Crop_Drop_UUABerry.get(1L),
                new ItemStack[] { ItemList.Crop_Drop_UUABerry.get(1L), ItemList.Crop_Drop_UUABerry.get(1L),
                    ItemList.Crop_Drop_UUABerry.get(1L), ItemList.Crop_Drop_UUABerry.get(1L),
                    ItemList.Crop_Drop_UUMBerry.get(1L) });
            new GT_BaseCrop(
                159,
                "Starwart",
                "unknown",
                null,
                12,
                4,
                4000,
                1,
                4,
                2,
                0,
                0,
                1,
                0,
                new String[] { "Wither", "Nether", "Undead", "Netherstar" },
                Materials.NetherStar,
                GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1L),
                new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Coal, 1L),
                    new ItemStack(Items.skull, 1), new ItemStack(Items.skull, 1, 1), new ItemStack(Items.skull, 1, 1),
                    GT_OreDictUnificator.get(OrePrefixes.dust, Materials.NetherStar, 1L) });
            new GT_BaseCrop(
                160,
                "Zomplant",
                "unknown",
                null,
                3,
                4,
                0,
                1,
                4,
                1,
                3,
                4,
                2,
                6,
                new String[] { "Zombie", "Rotten", "Undead" },
                new ItemStack(Items.rotten_flesh),
                null);
            new GT_BaseCrop(
                161,
                "Nickelback",
                "unknown",
                null,
                5,
                3,
                0,
                2,
                3,
                3,
                0,
                1,
                2,
                2,
                new String[] { "Metal", "Fire", "Alloy" },
                Materials.Nickel,
                ItemList.Crop_Drop_Nickel.get(1),
                null);
            new GT_BaseCrop(
                162,
                "Galvania",
                "unknown",
                null,
                6,
                3,
                0,
                2,
                3,
                3,
                0,
                2,
                2,
                3,
                new String[] { "Metal", "Alloy", "Bush" },
                Materials.Zinc,
                ItemList.Crop_Drop_Zinc.get(1),
                null);
            new GT_BaseCrop(
                163,
                "Evil Ore",
                "unknown",
                null,
                8,
                4,
                0,
                3,
                4,
                4,
                0,
                2,
                1,
                3,
                new String[] { "Crystal", "Fire", "Nether" },
                GT_OreDictUnificator.get(OrePrefixes.dust, Materials.NetherQuartz, 1L),
                new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.gem, Materials.NetherQuartz, 1L),
                    GT_OreDictUnificator.get(OrePrefixes.dust, Materials.CertusQuartz, 1L), });
            new GT_BaseCrop(
                164,
                "Olivia",
                "unknown",
                null,
                2,
                4,
                0,
                3,
                4,
                1,
                0,
                1,
                4,
                0,
                new String[] { "Crystal", "Shiny", "Processing", "Olivine" },
                Materials.Olivine,
                GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Olivine, 1L),
                new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Olivine, 1L), });
            new GT_BaseCrop(
                165,
                "Sapphirum",
                "unknown",
                null,
                4,
                4,
                0,
                3,
                4,
                1,
                0,
                1,
                5,
                0,
                new String[] { "Crystal", "Shiny", "Metal", "Sapphire" },
                Materials.Sapphire,
                GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sapphire, 1L),
                new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.gem, Materials.Sapphire, 1L), });
            new GT_BaseCrop(
                166,
                "Pyrolusium",
                "unknown",
                null,
                12,
                3,
                0,
                2,
                3,
                1,
                0,
                1,
                1,
                0,
                new String[] { "Metal", "Clean", "Bush", "Manganese" },
                Materials.Manganese,
                ItemList.Crop_Drop_Manganese.get(1),
                null);
            new GT_BaseCrop(
                167,
                "Scheelinium",
                "unknown",
                null,
                12,
                3,
                0,
                2,
                3,
                3,
                0,
                1,
                1,
                0,
                new String[] { "Metal", "Hard", "Bush", "Tungsten" },
                Materials.Tungsten,
                ItemList.Crop_Drop_Scheelite.get(1),
                null);
            new GT_BaseCrop(
                168,
                "Platina",
                "unknown",
                null,
                11,
                4,
                0,
                1,
                4,
                3,
                0,
                0,
                3,
                0,
                new String[] { "Metal", "Shiny", "Reed", "Platinum" },
                Materials.Platinum,
                ItemList.Crop_Drop_Platinum.get(1),
                null);
            new GT_BaseCrop(
                169,
                "Quantaria",
                "unknown",
                null,
                12,
                4,
                1000,
                1,
                4,
                4,
                0,
                0,
                1,
                0,
                new String[] { "Metal", "Iridium", "Reed" },
                Materials.Iridium,
                ItemList.Crop_Drop_Iridium.get(1),
                new ItemStack[] { ItemList.Crop_Drop_Osmium.get(1) });
            new GT_BaseCrop(
                170,
                "Stargatium",
                "unknown",
                null,
                12,
                4,
                1500,
                1,
                4,
                4,
                0,
                0,
                2,
                0,
                new String[] { "Metal", "Heavy", "Alien", "Naquadah" },
                Materials.Naquadah,
                GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Endstone, 1L),
                new ItemStack[] { ItemList.Crop_Drop_Naquadah.get(1) });
            new GT_BaseCrop(
                171,
                "Lemon",
                "unknown",
                null,
                4,
                4,
                0,
                1,
                4,
                1,
                1,
                0,
                2,
                0,
                new String[] { "Food", "Yellow", "Sour" },
                ItemList.Crop_Drop_Lemon.get(1),
                null);
            new GT_BaseCrop(
                172,
                "Chilly",
                "unknown",
                null,
                4,
                4,
                0,
                1,
                4,
                1,
                1,
                0,
                2,
                0,
                new String[] { "Food", "Red", "Spicy" },
                ItemList.Crop_Drop_Chilly.get(1),
                null);
            new GT_BaseCrop(
                173,
                "Tomato",
                "unknown",
                null,
                4,
                4,
                0,
                1,
                4,
                1,
                1,
                0,
                2,
                0,
                new String[] { "Food", "Red" },
                ItemList.Crop_Drop_Tomato.get(1),
                new ItemStack[] { ItemList.Crop_Drop_MTomato.get(1) });
            new GT_BaseCrop(
                174,
                "Grape",
                "unknown",
                null,
                4,
                4,
                0,
                1,
                4,
                1,
                1,
                0,
                2,
                0,
                new String[] { "Food", "Purple" },
                ItemList.Crop_Drop_Grapes.get(1),
                null);
            new GT_BaseCrop(
                175,
                "Onion",
                "unknown",
                null,
                4,
                4,
                0,
                1,
                4,
                1,
                1,
                0,
                2,
                0,
                new String[] { "Food", "Brown" },
                ItemList.Crop_Drop_Onion.get(1),
                null);
            new GT_BaseCrop(
                176,
                "Cucumber",
                "unknown",
                null,
                4,
                4,
                0,
                1,
                4,
                1,
                1,
                0,
                2,
                0,
                new String[] { "Food", "Green" },
                ItemList.Crop_Drop_Cucumber.get(1),
                null);
            new GT_BaseCrop(
                177,
                "Tea",
                "unknown",
                null,
                4,
                4,
                0,
                1,
                4,
                1,
                1,
                0,
                2,
                0,
                new String[] { "Food", "Green", "Ingredient" },
                ItemList.Crop_Drop_TeaLeaf.get(1),
                null);
            new GT_BaseCrop(
                178,
                "Rape",
                "unknown",
                null,
                4,
                4,
                0,
                1,
                4,
                1,
                1,
                0,
                2,
                0,
                new String[] { "Food", "Yellow", "Oil" },
                ItemList.Crop_Drop_Rape.get(1),
                null);
            new GT_BaseCrop(
                179,
                "Micadia",
                "bartimaeusnek",
                null,
                9,
                3,
                0,
                2,
                3,
                2,
                0,
                3,
                0,
                0,
                new String[] { "Metal", "Pine", "Mica", "Bush" },
                Materials.Mica,
                ItemList.Crop_Drop_Mica.get(1L),
                null);
        } catch (Throwable e) {
            GT_Log.err.println("GT_Mod: Failed to register Crops to IC2.");
            e.printStackTrace(GT_Log.err);
        }
    }
}