/** * Removes all recipes that produce a given item. * @param itemToRemove The item whose recipes are to be removed. */ private static void removeRecipe(Item itemToRemove) { Iterator<IRecipe> iter = CraftingManager.getInstance().getRecipeList().iterator(); while (iter.hasNext()) { IRecipe recipe = iter.next(); ItemStack out = recipe.getRecipeOutput(); if (out != ItemStack.EMPTY && out.getItem() == itemToRemove) { FMLLog.info("Removing recipe for " + out); iter.remove(); } } }
/** * Attempts to mix both parent sheep to come up with a mixed dye color. */ private EnumDyeColor getDyeColorMixFromParents(EntityAnimal father, EntityAnimal mother) { int i = ((EntitySheep)father).getFleeceColor().getDyeDamage(); int j = ((EntitySheep)mother).getFleeceColor().getDyeDamage(); this.inventoryCrafting.getStackInSlot(0).setItemDamage(i); this.inventoryCrafting.getStackInSlot(1).setItemDamage(j); ItemStack itemstack = CraftingManager.getInstance().findMatchingRecipe(this.inventoryCrafting, ((EntitySheep)father).worldObj); int k; if (itemstack != null && itemstack.getItem() == Items.dye) { k = itemstack.getMetadata(); } else { k = this.worldObj.rand.nextBoolean() ? i : j; } return EnumDyeColor.byDyeDamage(k); }
@Override public IGuideElement[] loadElements() { String[] txt = new String[]{"Heyo", "This is just a test of a new algorithm for my little guide :D", "", "Nice to meet ya", "Ya boi", "", "", "Hehehehe", ""}; return new IGuideElement[]{ /*new TextElement(Arrays.asList(txt)), new TextElement(Arrays.asList(txt)), new TextElement(Arrays.asList(txt)),*/ new CraftingElement(CraftingManager.getInstance().getRecipeList().get((int)(Math.random() * CraftingManager.getInstance().getRecipeList().size()))), new CraftingElement(CraftingManager.getInstance().getRecipeList().get((int)(Math.random() * CraftingManager.getInstance().getRecipeList().size()))), new CraftingElement(CraftingManager.getInstance().getRecipeList().get((int)(Math.random() * CraftingManager.getInstance().getRecipeList().size()))), new CraftingElement(CraftingManager.getInstance().getRecipeList().get((int)(Math.random() * CraftingManager.getInstance().getRecipeList().size()))), new CraftingElement(CraftingManager.getInstance().getRecipeList().get((int)(Math.random() * CraftingManager.getInstance().getRecipeList().size()))), new CraftingElement(CraftingManager.getInstance().getRecipeList().get((int)(Math.random() * CraftingManager.getInstance().getRecipeList().size()))), new CraftingElement(CraftingManager.getInstance().getRecipeList().get((int)(Math.random() * CraftingManager.getInstance().getRecipeList().size()))), new CraftingElement(CraftingManager.getInstance().getRecipeList().get((int)(Math.random() * CraftingManager.getInstance().getRecipeList().size()))), new CraftingElement(CraftingManager.getInstance().getRecipeList().get((int)(Math.random() * CraftingManager.getInstance().getRecipeList().size()))), }; }
/** Attempt to find all recipes that result in an item of the requested output. * @param output the desired item, eg from Types.xsd - "diamond_pickaxe" etc - or as a Minecraft name - eg "tile.woolCarpet.blue" * @return a list of IRecipe objects that result in this item. */ public static List<IRecipe> getRecipesForRequestedOutput(String output) { List<IRecipe> matchingRecipes = new ArrayList<IRecipe>(); ItemStack target = MinecraftTypeHelper.getItemStackFromParameterString(output); List<?> recipes = CraftingManager.getInstance().getRecipeList(); for (Object obj : recipes) { if (obj == null) continue; if (obj instanceof IRecipe) { ItemStack is = ((IRecipe)obj).getRecipeOutput(); if (is == null) continue; if (ItemStack.areItemsEqual(is, target)) { matchingRecipes.add((IRecipe)obj); } } } return matchingRecipes; }
@Override public void onCraftingMatrixChanged() { if (currentRecipe == null || !currentRecipe.matches(matrix, DimensionManager.getWorld(controllerDimension))) { currentRecipe = CraftingManager.findMatchingRecipe(matrix, DimensionManager.getWorld(controllerDimension)); } if (currentRecipe == null) { result.setInventorySlotContents(0, ItemStack.EMPTY); } else { result.setInventorySlotContents(0, currentRecipe.getCraftingResult(matrix)); } if (!getStack().hasTagCompound()) { getStack().setTagCompound(new NBTTagCompound()); } StackUtils.writeItems(matrix, 1, getStack().getTagCompound()); }
/** * Attempts to mix both parent sheep to come up with a mixed dye color. */ private EnumDyeColor getDyeColorMixFromParents(EntityAnimal father, EntityAnimal mother) { int i = ((EntitySheep)father).getFleeceColor().getDyeDamage(); int j = ((EntitySheep)mother).getFleeceColor().getDyeDamage(); this.inventoryCrafting.getStackInSlot(0).setItemDamage(i); this.inventoryCrafting.getStackInSlot(1).setItemDamage(j); ItemStack itemstack = CraftingManager.getInstance().findMatchingRecipe(this.inventoryCrafting, ((EntitySheep)father).world); int k; if (itemstack.getItem() == Items.DYE) { k = itemstack.getMetadata(); } else { k = this.world.rand.nextBoolean() ? i : j; } return EnumDyeColor.byDyeDamage(k); }
public ItemStack[] getSmeltingResult(InventoryCrafting inv, World world, Tier tier) { return new ItemStack[] { CraftingManager.getInstance().findMatchingRecipe(inv, world) }; /* @SuppressWarnings("unchecked") List<IRecipe> recipeList = CraftingManager.getInstance().getRecipeList(); Iterator<IRecipe> iterator = recipeList.iterator(); while(iterator.hasNext()) { IRecipe recipe = iterator.next(); if(recipe != null && inv != null) { if(recipe.getCraftingResult(inv) != null) FMLLog.log(Level.INFO, "result: " + recipe.getCraftingResult(inv)); else FMLLog.log(Level.INFO, "result: null"); if(recipe.matches(inv, world)) { return new ItemStack[] { recipe.getCraftingResult(inv) }; } } else { FMLLog.log(Level.INFO, "_null"); } } return null; */ }
public static void sortCraftManager() { bake(); FMLLog.fine("Sorting recipes"); warned.clear(); Collections.sort(CraftingManager.getInstance().getRecipeList(), INSTANCE); }
/** * Attempts to mix both parent sheep to come up with a mixed dye color. */ private EnumDyeColor getDyeColorMixFromParents(EntityAnimal father, EntityAnimal mother) { int i = ((EntitySheep)father).getFleeceColor().getDyeDamage(); int j = ((EntitySheep)mother).getFleeceColor().getDyeDamage(); this.inventoryCrafting.getStackInSlot(0).setItemDamage(i); this.inventoryCrafting.getStackInSlot(1).setItemDamage(j); ItemStack itemstack = CraftingManager.getInstance().findMatchingRecipe(this.inventoryCrafting, ((EntitySheep)father).worldObj); int k; if (itemstack != null && itemstack.getItem() == Items.DYE) { k = itemstack.getMetadata(); } else { k = this.worldObj.rand.nextBoolean() ? i : j; } return EnumDyeColor.byDyeDamage(k); }
@Override public void loadUsageRecipes(ItemStack ingredient) { for (IRecipe irecipe : CraftingManager.getInstance().getRecipeList()) { CachedShapedRecipe recipe = null; if (irecipe instanceof ShapedRecipes) { recipe = new CachedShapedRecipe((ShapedRecipes) irecipe); } else if (irecipe instanceof ShapedOreRecipe) { recipe = forgeShapedRecipe((ShapedOreRecipe) irecipe); } if (recipe == null || !recipe.contains(recipe.ingredients, ingredient.getItem())) { continue; } recipe.computeVisuals(); if (recipe.contains(recipe.ingredients, ingredient)) { recipe.setIngredientPermutation(recipe.ingredients, ingredient); arecipes.add(recipe); } } }
@SuppressWarnings("unchecked") public static void SC2RecipeTweaks() { if(Loader.isModLoaded("steamcraft2")) { if(!ConfigSettings.FleshBlockRecipe) { List<IRecipe> recipes = CraftingManager.getInstance().getRecipeList(); for (int i = 0; i < recipes.size(); i++) { if (recipes.get(i) != null) { ItemStack recipeResult = recipes.get(i).getRecipeOutput(); if (recipeResult != null && recipeResult.getItem() == Item.getItemFromBlock(InitBlocks.blockFlesh)) { recipes.remove(i--); } } } } //OreDictionary.registerOre("itemAxe", new ItemStack(InitItems.axeSteam, 1, OreDictionary.WILDCARD_VALUE)); } }
@Override public void loadCraftingRecipes(String outputId, Object... results) { if (outputId.equals("crafting") && getClass() == ShapelessRecipeHandler.class) { List<IRecipe> allrecipes = CraftingManager.getInstance().getRecipeList(); for (IRecipe irecipe : allrecipes) { CachedShapelessRecipe recipe = null; if (irecipe instanceof ShapelessRecipes) recipe = shapelessRecipe((ShapelessRecipes) irecipe); else if (irecipe instanceof ShapelessOreRecipe) recipe = forgeShapelessRecipe((ShapelessOreRecipe) irecipe); if (recipe == null) continue; arecipes.add(recipe); } } else { super.loadCraftingRecipes(outputId, results); } }
@Override public void loadCraftingRecipes(String outputId, Object... results) { if (outputId.equals("crafting") && getClass() == ShapedRecipeHandler.class) { for (IRecipe irecipe : CraftingManager.getInstance().getRecipeList()) { CachedShapedRecipe recipe = null; if (irecipe instanceof ShapedRecipes) { recipe = new CachedShapedRecipe((ShapedRecipes) irecipe); } else if (irecipe instanceof ShapedOreRecipe) { recipe = forgeShapedRecipe((ShapedOreRecipe) irecipe); } if (recipe == null) { continue; } recipe.computeVisuals(); arecipes.add(recipe); } } else { super.loadCraftingRecipes(outputId, results); } }
@Override public void loadUsageRecipes(ItemStack ingredient) { List<IRecipe> allrecipes = CraftingManager.getInstance().getRecipeList(); for (IRecipe irecipe : allrecipes) { CachedShapelessRecipe recipe = null; if (irecipe instanceof ShapelessRecipes) recipe = shapelessRecipe((ShapelessRecipes) irecipe); else if (irecipe instanceof ShapelessOreRecipe) recipe = forgeShapelessRecipe((ShapelessOreRecipe) irecipe); if (recipe == null) continue; if (recipe.contains(recipe.ingredients, ingredient)) { recipe.setIngredientPermutation(recipe.ingredients, ingredient); arecipes.add(recipe); } } }
@Override public void loadCraftingRecipes(String outputId, Object... results) { if (outputId.equals("crafting") && getClass() == ShapedRecipeHandler.class) { for (IRecipe irecipe : (List<IRecipe>) CraftingManager.getInstance().getRecipeList()) { CachedShapedRecipe recipe = null; if (irecipe instanceof ShapedRecipes) recipe = new CachedShapedRecipe((ShapedRecipes) irecipe); else if (irecipe instanceof ShapedOreRecipe) recipe = forgeShapedRecipe((ShapedOreRecipe) irecipe); if (recipe == null) continue; recipe.computeVisuals(); arecipes.add(recipe); } } else { super.loadCraftingRecipes(outputId, results); } }
@Override public void loadCraftingRecipes(ItemStack result) { for (IRecipe irecipe : (List<IRecipe>) CraftingManager.getInstance().getRecipeList()) { if (NEIServerUtils.areStacksSameTypeCrafting(irecipe.getRecipeOutput(), result)) { CachedShapedRecipe recipe = null; if (irecipe instanceof ShapedRecipes) recipe = new CachedShapedRecipe((ShapedRecipes) irecipe); else if (irecipe instanceof ShapedOreRecipe) recipe = forgeShapedRecipe((ShapedOreRecipe) irecipe); if (recipe == null) continue; recipe.computeVisuals(); arecipes.add(recipe); } } }
@Override public void loadUsageRecipes(ItemStack ingredient) { for (IRecipe irecipe : (List<IRecipe>) CraftingManager.getInstance().getRecipeList()) { CachedShapedRecipe recipe = null; if (irecipe instanceof ShapedRecipes) recipe = new CachedShapedRecipe((ShapedRecipes) irecipe); else if (irecipe instanceof ShapedOreRecipe) recipe = forgeShapedRecipe((ShapedOreRecipe) irecipe); if (recipe == null || !recipe.contains(recipe.ingredients, ingredient.getItem())) continue; recipe.computeVisuals(); if (recipe.contains(recipe.ingredients, ingredient)) { recipe.setIngredientPermutation(recipe.ingredients, ingredient); arecipes.add(recipe); } } }
private static Object[] getFirstRecipeForItem(ItemStack resultingItem) { Object[] recipeItems = new Object[9]; for (IRecipe recipe : CraftingManager.getInstance().getRecipeList()) { if (recipe == null) continue; ItemStack result = recipe.getRecipeOutput(); if (result == null || !ItemUtil.canCombine(result, resultingItem)) continue; Object[] input = getRecipeInput(recipe); if (input == null) continue; for (int i = 0; i < input.length; i++) recipeItems[i] = input[i]; break; } return recipeItems; }
public NonNullList<ItemStack> getOutputs(NonNullList<ItemStack> took) { NonNullList<ItemStack> outputs = NonNullList.create(); InventoryCrafting inv = new InventoryCrafting(new Container() { @Override public boolean canInteractWith(EntityPlayer player) { return false; } }, 3, 3); for (int i = 0; i < 9; ++i) { if(i < took.size()){ ItemStack stack = took.get(i); inv.setInventorySlotContents(i, stack); } } ItemStack output = CraftingManager.getInstance().findMatchingRecipe(inv, crafter.getWorld()); outputs.add(output); return outputs; }
public NonNullList<ItemStack> getByproducts(NonNullList<ItemStack> took) { NonNullList<ItemStack> byproducts = NonNullList.create(); InventoryCrafting inv = new InventoryCrafting(new Container() { @Override public boolean canInteractWith(EntityPlayer player) { return false; } }, 3, 3); for (int i = 0; i < 9; ++i) { if(i < took.size())inv.setInventorySlotContents(i, took.get(i)); } for (ItemStack remaining : CraftingManager.getInstance().getRemainingItems(inv, crafter.getWorld())) { if (ItemStackTools.isValid(remaining)) { byproducts.add(fixItemStack(remaining)); } } return byproducts; }
public static void load() { CraftingManager craftingManager; craftingManager = CraftingManager.getInstance(); craftingManager.addRecipe(new ItemStack(ItemRegister.BLUE_STICK, 4), new Object[] {"#", "#", '#', new ItemStack(BlockRegister.PLANKS, 1, 0)}); craftingManager.addRecipe(new ItemStack(Items.stick, 4), new Object[] {"#", "#", '#', new ItemStack(BlockRegister.PLANKS, 1, 1)}); craftingManager.addRecipe(new ItemStack(BlockRegister.PLANKS, 4, 0), new Object[] {"#", '#', new ItemStack(BlockRegister.LOGS1, 1, 0)}); craftingManager.addRecipe(new ItemStack(BlockRegister.PLANKS, 4, 0), new Object[] {"#", '#', new ItemStack(BlockRegister.LOGS1, 1, 1)}); craftingManager.addRecipe(new ItemStack(BlockRegister.PLANKS, 4, 1), new Object[] {"#", '#', new ItemStack(BlockRegister.LOGS1, 1, 2)}); (new RecipesToolsM()).addRecipes(craftingManager); (new RecipesWeaponsM()).addRecipes(craftingManager); (new RecipesArmorM()).addRecipes(craftingManager); GameRegistry.registerFuelHandler(new FuelHandler()); GameRegistry.addSmelting(BlockRegister.ORE_SILVER, new ItemStack(ItemRegister.INGOT_SILVER, 1), 0.1f); GameRegistry.addSmelting(BlockRegister.ORE_COMBUSTIUM, new ItemStack(ItemRegister.COMBUSTIUM, 1), 0.1f); GameRegistry.addSmelting(BlockRegister.ORE_ETHERNIUM, new ItemStack(ItemRegister.ETHERNIUM, 1), 0.1f); GameRegistry.addSmelting(BlockRegister.ORE_TITANIUM, new ItemStack(ItemRegister.INGOT_TITANIUM, 1), 0.1f); }
/** * Remove all crafting recipes with the specified {@link Item} as their output. * <p> * Adapted from Rohzek's code in this post: * http://www.minecraftforge.net/forum/index.php/topic,33631.0.html * * @param output The output Item */ private static void removeRecipe(Item output) { int recipesRemoved = 0; final List<IRecipe> recipes = CraftingManager.getInstance().getRecipeList(); final Iterator<IRecipe> remover = recipes.iterator(); while (remover.hasNext()) { final ItemStack itemstack = remover.next().getRecipeOutput(); // If the recipe's output Item is the specified Item, if (itemstack != null && itemstack.getItem() == output) { // Remove the recipe remover.remove(); recipesRemoved++; } } Logger.info("Removed %d recipes for %s", recipesRemoved, output.getRegistryName()); }
/** * Remove all crafting recipes that are instances of the specified class. * <p> * Test for this thread: * http://www.minecraftforge.net/forum/index.php/topic,33631.0.html * * @param recipeClass The recipe class */ private static void removeRecipeClass(Class<? extends IRecipe> recipeClass) { int recipesRemoved = 0; final List<IRecipe> recipes = CraftingManager.getInstance().getRecipeList(); final Iterator<IRecipe> remover = recipes.iterator(); while (remover.hasNext()) { // If the recipe is an instance of the specified class, if (recipeClass.isInstance(remover.next())) { // Remove the recipe remover.remove(); recipesRemoved++; } } Logger.info("Removed %d recipes for %s", recipesRemoved, recipeClass); }
@Override public void loadCraftingRecipes(ItemStack result) { List<IRecipe> allrecipes = CraftingManager.getInstance().getRecipeList(); for (IRecipe irecipe : allrecipes) { if (NEIServerUtils.areStacksSameTypeCrafting(irecipe.getRecipeOutput(), result)) { CachedShapelessRecipe recipe = null; if (irecipe instanceof ShapelessRecipes) recipe = shapelessRecipe((ShapelessRecipes) irecipe); else if (irecipe instanceof ShapelessOreRecipe) recipe = forgeShapelessRecipe((ShapelessOreRecipe) irecipe); if (recipe == null) continue; arecipes.add(recipe); } } }
public static void addTeambattleRecipes() { ArrayList<CommonGuiRecipe> stacks = new ArrayList<CommonGuiRecipe>(); List<IRecipe> re = CraftingManager.getInstance().getRecipeList(); for (IRecipe r : re) { if (r.getRecipeOutput() != null && r.getRecipeOutput().getItem() != null && r.getRecipeOutput().getItem().getRegistryName().startsWith(TeambattleReference.modid)) { if (r instanceof ShapedRecipes) { ShapedRecipes rep = (ShapedRecipes) r; stacks.add(new CommonGuiRecipe(RecipeUtil.matches(rep), rep.getRecipeOutput())); } else if (r instanceof ShapelessRecipes) { List<ItemStack> rs = ((ShapelessRecipes) r).recipeItems; ItemStack[] ar = new ItemStack[rs.size()]; for (int i = 0; i < ar.length; i++) { ar[i] = rs.get(i); } stacks.add(new CommonGuiRecipe(ar, r.getRecipeOutput())); } else { continue; } } } guirecipes.addAll(stacks); }
@SuppressWarnings("unchecked") @Override public void loadCraftingRecipes(String outputId, Object... results) { if (outputId.equals("crafting") && getClass() == RoryShapelessRecipeHandler.class) { List<IRecipe> allrecipes = CraftingManager.getInstance().getRecipeList(); for (IRecipe irecipe : allrecipes) { if (irecipe instanceof RoryShapelessRecipe) { RoryShapelessRecipe rorysmodRecipe = (RoryShapelessRecipe) irecipe; CachedRoryShapelessRecipe recipe = new CachedRoryShapelessRecipe(rorysmodRecipe); arecipes.add(recipe); } } } else { super.loadCraftingRecipes(outputId, results); } }
@SuppressWarnings("unchecked") @Override public void loadUsageRecipes(ItemStack ingredient) { List<IRecipe> allrecipes = CraftingManager.getInstance().getRecipeList(); for (IRecipe irecipe : allrecipes) { if (irecipe instanceof RoryShapelessRecipeHandler) { RoryShapelessRecipe rorysmodRecipe = (RoryShapelessRecipe) irecipe; CachedRoryShapelessRecipe recipe = new CachedRoryShapelessRecipe(rorysmodRecipe); if (recipe.contains(recipe.ingredients, ingredient)) { recipe.setIngredientPermutation(recipe.ingredients, ingredient); arecipes.add(recipe); } } } }
@SuppressWarnings("unchecked") @Override public void loadCraftingRecipes(String outputId, Object... results) { if (outputId.equals("crafting") && getClass() == RoryShapedRecipeHandler.class) { List<IRecipe> allrecipes = CraftingManager.getInstance().getRecipeList(); for (IRecipe irecipe : allrecipes) { if (irecipe instanceof RoryShapedRecipe) { RoryShapedRecipe rorysmodRecipe = (RoryShapedRecipe) irecipe; CachedShapedRorysModRecipe recipe = new CachedShapedRorysModRecipe(rorysmodRecipe); recipe.computeVisuals(); arecipes.add(recipe); } } } else { super.loadCraftingRecipes(outputId, results); } }
@SuppressWarnings("unchecked") @Override public void loadUsageRecipes(ItemStack ingredient) { List<IRecipe> allrecipes = CraftingManager.getInstance().getRecipeList(); for (IRecipe irecipe : allrecipes) { if (irecipe instanceof RoryShapedRecipe) { RoryShapedRecipe rorysmodRecipe = (RoryShapedRecipe) irecipe; CachedShapedRorysModRecipe recipe = new CachedShapedRorysModRecipe(rorysmodRecipe); recipe.computeVisuals(); if (recipe.contains(recipe.ingredients, ingredient)) { recipe.setIngredientPermutation(recipe.ingredients, ingredient); arecipes.add(recipe); } } } }
private int func_90014_a(EntityAnimal p_90014_1_, EntityAnimal p_90014_2_) { int i = this.func_90013_b(p_90014_1_); int j = this.func_90013_b(p_90014_2_); this.field_90016_e.getStackInSlot(0).setItemDamage(i); this.field_90016_e.getStackInSlot(1).setItemDamage(j); ItemStack itemstack = CraftingManager.getInstance().findMatchingRecipe(this.field_90016_e, ((EntityPopo)p_90014_1_).worldObj); int k; if (itemstack != null && itemstack.getItem() == Items.dye) { k = itemstack.getItemDamage(); } else { k = this.worldObj.rand.nextBoolean() ? i : j; } return k; }