Search in sources :

Example 6 with ResearchPage

use of thaumcraft.api.research.ResearchPage in project ArsMagica2 by Mithion.

the class ThaumcraftApi method getCraftingRecipeKey.

public static Object[] getCraftingRecipeKey(EntityPlayer player, ItemStack stack) {
    int[] key = new int[] { Item.getIdFromItem(stack.getItem()), stack.getItemDamage() };
    if (keyCache.containsKey(key)) {
        if (keyCache.get(key) == null)
            return null;
        if (ThaumcraftApiHelper.isResearchComplete(player.getCommandSenderName(), (String) (keyCache.get(key))[0]))
            return keyCache.get(key);
        else
            return null;
    }
    for (ResearchCategoryList rcl : ResearchCategories.researchCategories.values()) {
        for (ResearchItem ri : rcl.research.values()) {
            if (ri.getPages() == null)
                continue;
            for (int a = 0; a < ri.getPages().length; a++) {
                ResearchPage page = ri.getPages()[a];
                if (page.recipeOutput != null && stack != null && page.recipeOutput.isItemEqual(stack)) {
                    keyCache.put(key, new Object[] { ri.key, a });
                    if (ThaumcraftApiHelper.isResearchComplete(player.getCommandSenderName(), ri.key))
                        return new Object[] { ri.key, a };
                    else
                        return null;
                }
            }
        }
    }
    keyCache.put(key, null);
    return null;
}
Also used : ResearchCategoryList(thaumcraft.api.research.ResearchCategoryList) ResearchPage(thaumcraft.api.research.ResearchPage) ResearchItem(thaumcraft.api.research.ResearchItem)

Aggregations

ResearchPage (thaumcraft.api.research.ResearchPage)6 ResearchItem (thaumcraft.api.research.ResearchItem)5 ItemStack (net.minecraft.item.ItemStack)3 ResearchCategoryList (thaumcraft.api.research.ResearchCategoryList)3 CrucibleRecipe (thaumcraft.api.crafting.CrucibleRecipe)2 ArrayList (java.util.ArrayList)1 Item (net.minecraft.item.Item)1 IRecipe (net.minecraft.item.crafting.IRecipe)1 ResourceLocation (net.minecraft.util.ResourceLocation)1 AspectList (thaumcraft.api.aspects.AspectList)1 IArcaneRecipe (thaumcraft.api.crafting.IArcaneRecipe)1 InfusionRecipe (thaumcraft.api.crafting.InfusionRecipe)1