- 1,239
- 2
- 24
Я тут обещал решение выложить:
Код:
/**
* Удаляет форменный рецепт из любого мода.(не способен удалить предметы с метадатой)
*/
@SuppressWarnings("unchecked")
public static void removeRecipe(String toDelete)
{
ItemStack resultItem = new ItemStack((Item)Item.itemRegistry.getObject(toDelete));
List<IRecipe> recipes = CraftingManager.getInstance().getRecipeList();
for (int i = 0; i < recipes.size(); i++)
{
IRecipe tmpRecipe = recipes.get(i);
ItemStack recipeResult = tmpRecipe.getRecipeOutput();
if (resultItem != null && recipeResult != null) resultItem.stackSize = recipeResult.stackSize;
if (ItemStack.areItemStacksEqual(resultItem, recipeResult))
{
recipes.remove(i--);
}
}
}
/**
* Удаляет форменный рецепт из модов.Способен удалять предметы с метадатой
*/
public static void preRegister() {
Iterator<IRecipe> it = CraftingManager.getInstance().getRecipeList().iterator();
while(it.hasNext()) {
IRecipe recipe = it.next();
if(recipe.getRecipeOutput() == null) continue;
if (recipe.getRecipeOutput().isItemEqual(IC2Items.getItem("geothermalGenerator"))) {
it.remove();
} else if (recipe.getRecipeOutput().isItemEqual(IC2Items.getItem("semifluidGenerator"))) {
it.remove();
} else if (recipe.getRecipeOutput().isItemEqual(IC2Items.getItem("copperBlock"))) {
it.remove();
}
else if (recipe.getRecipeOutput().isItemEqual(IC2Items.getItem("tinBlock"))) {
it.remove();
}
else if (recipe.getRecipeOutput().isItemEqual(IC2Items.getItem("bronzeBlock"))) {
it.remove();
}
else if (recipe.getRecipeOutput().isItemEqual(IC2Items.getItem("uraniumBlock"))) {
it.remove();
}
else if (recipe.getRecipeOutput().isItemEqual(IC2Items.getItem("macerator"))) {
it.remove();
}
}
}