Package micdoodle8.mods.galacticraft.core.nei

Source Code of micdoodle8.mods.galacticraft.core.nei.NEIGalacticraftConfig

package micdoodle8.mods.galacticraft.core.nei;

import codechicken.nei.PositionedStack;
import codechicken.nei.api.API;
import codechicken.nei.api.IConfigureNEI;
import micdoodle8.mods.galacticraft.api.recipe.CompressorRecipes;
import micdoodle8.mods.galacticraft.core.Constants;
import micdoodle8.mods.galacticraft.core.GalacticraftCore;
import micdoodle8.mods.galacticraft.core.blocks.GCBlocks;
import micdoodle8.mods.galacticraft.core.items.GCItems;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.item.crafting.ShapedRecipes;
import net.minecraftforge.oredict.ShapelessOreRecipe;

import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Set;

public class NEIGalacticraftConfig implements IConfigureNEI
{
    private static HashMap<HashMap<Integer, PositionedStack>, PositionedStack> rocketBenchRecipes = new HashMap<HashMap<Integer, PositionedStack>, PositionedStack>();
    private static HashMap<HashMap<Integer, PositionedStack>, PositionedStack> buggyBenchRecipes = new HashMap<HashMap<Integer, PositionedStack>, PositionedStack>();
    private static HashMap<PositionedStack, PositionedStack> refineryRecipes = new HashMap<PositionedStack, PositionedStack>();
    private static HashMap<HashMap<Integer, PositionedStack>, PositionedStack> circuitFabricatorRecipes = new HashMap<HashMap<Integer, PositionedStack>, PositionedStack>();
    private static HashMap<HashMap<Integer, PositionedStack>, PositionedStack> ingotCompressorRecipes = new HashMap<HashMap<Integer, PositionedStack>, PositionedStack>();

    @Override
    public void loadConfig()
    {
        this.registerRecipes();

        for (Item item : GCItems.hiddenItems)
        {
            API.hideItem(new ItemStack(item, 1, 0));
        }

        for (Block block : GCBlocks.hiddenBlocks)
        {
            API.hideItem(new ItemStack(block, 1, 0));
            if (block == GCBlocks.slabGCDouble)
            {
              for (int j = 1; j < (GalacticraftCore.isPlanetsLoaded ? 6 : 4); j++)
                API.hideItem(new ItemStack(block, 1, j));
            }
        }

        API.registerRecipeHandler(new RocketT1RecipeHandler());
        API.registerUsageHandler(new RocketT1RecipeHandler());
        API.registerRecipeHandler(new BuggyRecipeHandler());
        API.registerUsageHandler(new BuggyRecipeHandler());
        API.registerRecipeHandler(new RefineryRecipeHandler());
        API.registerUsageHandler(new RefineryRecipeHandler());
        API.registerRecipeHandler(new CircuitFabricatorRecipeHandler());
        API.registerUsageHandler(new CircuitFabricatorRecipeHandler());
        API.registerRecipeHandler(new IngotCompressorRecipeHandler());
        API.registerUsageHandler(new IngotCompressorRecipeHandler());
        API.registerRecipeHandler(new ElectricIngotCompressorRecipeHandler());
        API.registerUsageHandler(new ElectricIngotCompressorRecipeHandler());
        API.registerHighlightIdentifier(GCBlocks.basicBlock, new GCNEIHighlightHandler());
        API.registerHighlightIdentifier(GCBlocks.blockMoon, new GCNEIHighlightHandler());
    }

    @Override
    public String getName()
    {
        return "Galacticraft NEI Plugin";
    }

    @Override
    public String getVersion()
    {
        return Constants.LOCALMAJVERSION + "." + Constants.LOCALMINVERSION + "." + Constants.LOCALBUILDVERSION;
    }

    public void registerIngotCompressorRecipe(HashMap<Integer, PositionedStack> input, PositionedStack output)
    {
        NEIGalacticraftConfig.ingotCompressorRecipes.put(input, output);
    }

    public void registerCircuitFabricatorRecipe(HashMap<Integer, PositionedStack> input, PositionedStack output)
    {
        NEIGalacticraftConfig.circuitFabricatorRecipes.put(input, output);
    }

    public void registerRocketBenchRecipe(HashMap<Integer, PositionedStack> input, PositionedStack output)
    {
        NEIGalacticraftConfig.rocketBenchRecipes.put(input, output);
    }

    public void registerBuggyBenchRecipe(HashMap<Integer, PositionedStack> input, PositionedStack output)
    {
        NEIGalacticraftConfig.buggyBenchRecipes.put(input, output);
    }

    public void registerRefineryRecipe(PositionedStack input, PositionedStack output)
    {
        NEIGalacticraftConfig.refineryRecipes.put(input, output);
    }

    public static Set<Entry<HashMap<Integer, PositionedStack>, PositionedStack>> getIngotCompressorRecipes()
    {
        return NEIGalacticraftConfig.ingotCompressorRecipes.entrySet();
    }

    public static Set<Entry<HashMap<Integer, PositionedStack>, PositionedStack>> getCircuitFabricatorRecipes()
    {
        return NEIGalacticraftConfig.circuitFabricatorRecipes.entrySet();
    }

    public static Set<Entry<HashMap<Integer, PositionedStack>, PositionedStack>> getRocketBenchRecipes()
    {
        return NEIGalacticraftConfig.rocketBenchRecipes.entrySet();
    }

    public static Set<Entry<HashMap<Integer, PositionedStack>, PositionedStack>> getBuggyBenchRecipes()
    {
        return NEIGalacticraftConfig.buggyBenchRecipes.entrySet();
    }

    public static Set<Entry<PositionedStack, PositionedStack>> getRefineryRecipes()
    {
        return NEIGalacticraftConfig.refineryRecipes.entrySet();
    }

    public void registerRecipes()
    {
        this.registerRefineryRecipe(new PositionedStack(new ItemStack(GCItems.oilCanister, 1, 1), 2, 3), new PositionedStack(new ItemStack(GCItems.fuelCanister, 1, 1), 148, 3));

        this.addRocketRecipes();
        this.addBuggyRecipes();
        this.addCircuitFabricatorRecipes();
        this.addIngotCompressorRecipes();
    }

    private void addBuggyRecipes()
    {
        HashMap<Integer, PositionedStack> input1 = new HashMap<Integer, PositionedStack>();

        input1 = new HashMap<Integer, PositionedStack>();
        input1.put(0, new PositionedStack(new ItemStack(GCItems.partBuggy, 1, 0), 18, 37));
        input1.put(1, new PositionedStack(new ItemStack(GCItems.partBuggy, 1, 0), 18, 91));
        input1.put(2, new PositionedStack(new ItemStack(GCItems.partBuggy, 1, 0), 90, 37));
        input1.put(3, new PositionedStack(new ItemStack(GCItems.partBuggy, 1, 0), 90, 91));
        for (int x = 0; x < 3; x++)
        {
            for (int y = 0; y < 4; y++)
            {
                if (x == 1 && y == 1)
                {
                    input1.put(y * 3 + x + 4, new PositionedStack(new ItemStack(GCItems.partBuggy, 1, 1), 36 + x * 18, 37 + y * 18));
                }
                else
                {
                    input1.put(y * 3 + x + 4, new PositionedStack(new ItemStack(GCItems.heavyPlatingTier1), 36 + x * 18, 37 + y * 18));
                }
            }
        }
        this.registerBuggyBenchRecipe(input1, new PositionedStack(new ItemStack(GCItems.buggy, 1, 0), 139, 101));

        HashMap<Integer, PositionedStack> input2 = new HashMap<Integer, PositionedStack>(input1);
        input2.put(16, new PositionedStack(new ItemStack(GCItems.partBuggy, 1, 2), 90, 8));
        this.registerBuggyBenchRecipe(input2, new PositionedStack(new ItemStack(GCItems.buggy, 1, 1), 139, 101));

        input2 = new HashMap<Integer, PositionedStack>(input1);
        input2.put(17, new PositionedStack(new ItemStack(GCItems.partBuggy, 1, 2), 116, 8));
        this.registerBuggyBenchRecipe(input2, new PositionedStack(new ItemStack(GCItems.buggy, 1, 1), 139, 101));

        input2 = new HashMap<Integer, PositionedStack>(input1);
        input2.put(18, new PositionedStack(new ItemStack(GCItems.partBuggy, 1, 2), 142, 8));
        this.registerBuggyBenchRecipe(input2, new PositionedStack(new ItemStack(GCItems.buggy, 1, 1), 139, 101));

        input2 = new HashMap<Integer, PositionedStack>(input1);
        input2.put(16, new PositionedStack(new ItemStack(GCItems.partBuggy, 1, 2), 90, 8));
        input2.put(17, new PositionedStack(new ItemStack(GCItems.partBuggy, 1, 2), 116, 8));
        this.registerBuggyBenchRecipe(input2, new PositionedStack(new ItemStack(GCItems.buggy, 1, 2), 139, 101));

        input2 = new HashMap<Integer, PositionedStack>(input1);
        input2.put(17, new PositionedStack(new ItemStack(GCItems.partBuggy, 1, 2), 116, 8));
        input2.put(18, new PositionedStack(new ItemStack(GCItems.partBuggy, 1, 2), 142, 8));
        this.registerBuggyBenchRecipe(input2, new PositionedStack(new ItemStack(GCItems.buggy, 1, 2), 139, 101));

        input2 = new HashMap<Integer, PositionedStack>(input1);
        input2.put(16, new PositionedStack(new ItemStack(GCItems.partBuggy, 1, 2), 90, 8));
        input2.put(18, new PositionedStack(new ItemStack(GCItems.partBuggy, 1, 2), 142, 8));
        this.registerBuggyBenchRecipe(input2, new PositionedStack(new ItemStack(GCItems.buggy, 1, 2), 139, 101));

        input2 = new HashMap<Integer, PositionedStack>(input1);
        input2.put(16, new PositionedStack(new ItemStack(GCItems.partBuggy, 1, 2), 90, 8));
        input2.put(17, new PositionedStack(new ItemStack(GCItems.partBuggy, 1, 2), 116, 8));
        input2.put(18, new PositionedStack(new ItemStack(GCItems.partBuggy, 1, 2), 142, 8));
        this.registerBuggyBenchRecipe(input2, new PositionedStack(new ItemStack(GCItems.buggy, 1, 3), 139, 101));
    }

    private void addRocketRecipes()
    {
        HashMap<Integer, PositionedStack> input1 = new HashMap<Integer, PositionedStack>();
        input1.put(0, new PositionedStack(new ItemStack(GCItems.partNoseCone), 45, 15));
        input1.put(1, new PositionedStack(new ItemStack(GCItems.heavyPlatingTier1), 36, 33));
        input1.put(2, new PositionedStack(new ItemStack(GCItems.heavyPlatingTier1), 36, 51));
        input1.put(3, new PositionedStack(new ItemStack(GCItems.heavyPlatingTier1), 36, 69));
        input1.put(4, new PositionedStack(new ItemStack(GCItems.heavyPlatingTier1), 36, 87));
        input1.put(5, new PositionedStack(new ItemStack(GCItems.heavyPlatingTier1), 54, 33));
        input1.put(6, new PositionedStack(new ItemStack(GCItems.heavyPlatingTier1), 54, 51));
        input1.put(7, new PositionedStack(new ItemStack(GCItems.heavyPlatingTier1), 54, 69));
        input1.put(8, new PositionedStack(new ItemStack(GCItems.heavyPlatingTier1), 54, 87));
        input1.put(9, new PositionedStack(new ItemStack(GCItems.rocketEngine), 45, 105));
        input1.put(10, new PositionedStack(new ItemStack(GCItems.partFins), 18, 87));
        input1.put(11, new PositionedStack(new ItemStack(GCItems.partFins), 18, 105));
        input1.put(12, new PositionedStack(new ItemStack(GCItems.partFins), 72, 87));
        input1.put(13, new PositionedStack(new ItemStack(GCItems.partFins), 72, 105));
        this.registerRocketBenchRecipe(input1, new PositionedStack(new ItemStack(GCItems.rocketTier1, 1, 0), 139, 92));

        HashMap<Integer, PositionedStack> input2 = new HashMap<Integer, PositionedStack>(input1);
        input2.put(14, new PositionedStack(new ItemStack(Blocks.chest), 90, 8));
        this.registerRocketBenchRecipe(input2, new PositionedStack(new ItemStack(GCItems.rocketTier1, 1, 1), 139, 92));

        input2 = new HashMap<Integer, PositionedStack>(input1);
        input2.put(15, new PositionedStack(new ItemStack(Blocks.chest), 116, 8));
        this.registerRocketBenchRecipe(input2, new PositionedStack(new ItemStack(GCItems.rocketTier1, 1, 1), 139, 92));

        input2 = new HashMap<Integer, PositionedStack>(input1);
        input2.put(16, new PositionedStack(new ItemStack(Blocks.chest), 142, 8));
        this.registerRocketBenchRecipe(input2, new PositionedStack(new ItemStack(GCItems.rocketTier1, 1, 1), 139, 92));

        input2 = new HashMap<Integer, PositionedStack>(input1);
        input2.put(14, new PositionedStack(new ItemStack(Blocks.chest), 90, 8));
        input2.put(15, new PositionedStack(new ItemStack(Blocks.chest), 116, 8));
        this.registerRocketBenchRecipe(input2, new PositionedStack(new ItemStack(GCItems.rocketTier1, 1, 2), 139, 92));

        input2 = new HashMap<Integer, PositionedStack>(input1);
        input2.put(15, new PositionedStack(new ItemStack(Blocks.chest), 116, 8));
        input2.put(16, new PositionedStack(new ItemStack(Blocks.chest), 142, 8));
        this.registerRocketBenchRecipe(input2, new PositionedStack(new ItemStack(GCItems.rocketTier1, 1, 2), 139, 92));

        input2 = new HashMap<Integer, PositionedStack>(input1);
        input2.put(14, new PositionedStack(new ItemStack(Blocks.chest), 90, 8));
        input2.put(16, new PositionedStack(new ItemStack(Blocks.chest), 142, 8));
        this.registerRocketBenchRecipe(input2, new PositionedStack(new ItemStack(GCItems.rocketTier1, 1, 2), 139, 92));

        input2 = new HashMap<Integer, PositionedStack>(input1);
        input2.put(14, new PositionedStack(new ItemStack(Blocks.chest), 90, 8));
        input2.put(15, new PositionedStack(new ItemStack(Blocks.chest), 116, 8));
        input2.put(16, new PositionedStack(new ItemStack(Blocks.chest), 142, 8));
        this.registerRocketBenchRecipe(input2, new PositionedStack(new ItemStack(GCItems.rocketTier1, 1, 3), 139, 92));
    }

    private void addCircuitFabricatorRecipes()
    {
        HashMap<Integer, PositionedStack> input1 = new HashMap<Integer, PositionedStack>();
        input1.put(0, new PositionedStack(new ItemStack(Items.diamond), 10, 22));
        input1.put(1, new PositionedStack(new ItemStack(GCItems.basicItem, 1, 2), 69, 51));
        input1.put(2, new PositionedStack(new ItemStack(GCItems.basicItem, 1, 2), 69, 69));
        input1.put(3, new PositionedStack(new ItemStack(Items.redstone), 117, 51));
        input1.put(4, new PositionedStack(new ItemStack(Blocks.redstone_torch), 140, 25));
        this.registerCircuitFabricatorRecipe(input1, new PositionedStack(new ItemStack(GCItems.basicItem, 3, 13), 147, 91));

        HashMap<Integer, PositionedStack> input2 = new HashMap<Integer, PositionedStack>(input1);
        input2.put(4, new PositionedStack(new ItemStack(Items.dye, 1, 4), 140, 25));
        this.registerCircuitFabricatorRecipe(input2, new PositionedStack(new ItemStack(GCItems.basicItem, 9, 12), 147, 91));

        input2 = new HashMap<Integer, PositionedStack>(input1);
        input2.put(4, new PositionedStack(new ItemStack(Items.repeater), 140, 25));
        this.registerCircuitFabricatorRecipe(input2, new PositionedStack(new ItemStack(GCItems.basicItem, 1, 14), 147, 91));
    }

    private void addIngotCompressorRecipes()
    {
        for (int i = 0; i < CompressorRecipes.getRecipeList().size(); i++)
        {
            HashMap<Integer, PositionedStack> input1 = new HashMap<Integer, PositionedStack>();
            IRecipe rec = CompressorRecipes.getRecipeList().get(i);

            if (rec instanceof ShapedRecipes)
            {
                ShapedRecipes recipe = (ShapedRecipes) rec;

                for (int j = 0; j < recipe.recipeItems.length; j++)
                {
                    ItemStack stack = recipe.recipeItems[j];

                    input1.put(j, new PositionedStack(stack, 21 + j % 3 * 18, 26 + j / 3 * 18));
                }
            }
            else if (rec instanceof ShapelessOreRecipe)
            {
                ShapelessOreRecipe recipe = (ShapelessOreRecipe) rec;

                for (int j = 0; j < recipe.getInput().size(); j++)
                {
                    Object obj = recipe.getInput().get(j);

                    input1.put(j, new PositionedStack(obj, 21 + j % 3 * 18, 26 + j / 3 * 18));
                }
            }

            this.registerIngotCompressorRecipe(input1, new PositionedStack(rec.getRecipeOutput(), 140, 46));
        }
    }
}
TOP

Related Classes of micdoodle8.mods.galacticraft.core.nei.NEIGalacticraftConfig

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.