added possibility to blacklist recipes, close #1750

This commit is contained in:
SpaceToad 2014-05-10 22:08:23 +02:00
parent 29d308f4f9
commit 4dcb9af871
4 changed files with 47 additions and 3 deletions

View file

@ -12,6 +12,7 @@ import java.io.File;
import java.nio.ByteBuffer;
import java.nio.FloatBuffer;
import java.nio.IntBuffer;
import java.util.HashSet;
import java.util.TreeMap;
import org.lwjgl.input.Mouse;
@ -56,6 +57,7 @@ import buildcraft.api.blueprints.SchematicRegistry;
import buildcraft.api.core.BCLog;
import buildcraft.api.core.BuildCraftAPI;
import buildcraft.api.core.IIconProvider;
import buildcraft.api.core.JavaTools;
import buildcraft.api.gates.ActionManager;
import buildcraft.api.recipes.BuildcraftRecipes;
import buildcraft.builders.urbanism.EntityRobotUrbanism;
@ -199,6 +201,8 @@ public class BuildCraftCore extends BuildCraftMod {
public static AchievementPage BuildcraftAchievements;
public static HashSet<String> recipesBlacklist = new HashSet<String>();
public static float diffX, diffY, diffZ;
private static FloatBuffer modelviewF;
@ -322,6 +326,15 @@ public class BuildCraftCore extends BuildCraftMod {
MinecraftForge.EVENT_BUS.register(new SpringPopulate());
}
for (String l : BuildCraftCore.mainConfiguration.get(Configuration.CATEGORY_GENERAL,
"recipesBlacklist", new String[0]).getStringList()) {
recipesBlacklist.add(JavaTools.stripSurroundingQuotes(l.trim()));
}
if (mainConfiguration.hasChanged()) {
mainConfiguration.save();
}
if (BuildCraftCore.loadDefaultRecipes) {
loadRecipes();
}

View file

@ -36,6 +36,7 @@ import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraftforge.oredict.ShapedOreRecipe;
import net.minecraftforge.oredict.ShapelessOreRecipe;
import buildcraft.BuildCraftCore;
import buildcraft.api.core.ICoreProxy;
import buildcraft.core.EntityBlock;
import buildcraft.core.ItemBlockBuildCraft;
@ -110,13 +111,23 @@ public class CoreProxy implements ICoreProxy {
@SuppressWarnings("unchecked")
public void addCraftingRecipe(ItemStack result, Object... recipe) {
String name = Item.itemRegistry.getNameForObject(result.getItem());
if (BuildCraftCore.recipesBlacklist.contains(name)) {
return;
}
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(result, recipe));
//GameRegistry.addRecipe(result, recipe);
}
public void addShapelessRecipe(ItemStack result, Object... recipe) {
CraftingManager.getInstance().getRecipeList().add(new ShapelessOreRecipe(result, recipe));
//GameRegistry.addShapelessRecipe(result, recipe);
String name = Item.itemRegistry.getNameForObject(result.getItem());
if (BuildCraftCore.recipesBlacklist.contains(name)) {
return;
}
CraftingManager.getInstance().getRecipeList().add(new ShapelessOreRecipe(result, recipe));
}
public int addCustomTexture(String pathToTexture) {

View file

@ -19,6 +19,7 @@ import net.minecraft.item.ItemStack;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.oredict.OreDictionary;
import buildcraft.BuildCraftCore;
import buildcraft.api.core.IInvSlot;
import buildcraft.api.recipes.IAssemblyRecipeManager;
import buildcraft.core.inventory.ITransactor;
@ -33,6 +34,12 @@ public class AssemblyRecipeManager implements IAssemblyRecipeManager {
@Override
public void addRecipe(double energyCost, ItemStack output, Object... input) {
String name = Item.itemRegistry.getNameForObject(output.getItem());
if (BuildCraftCore.recipesBlacklist.contains(name)) {
return;
}
assemblyRecipes.add(new AssemblyRecipe(output, energyCost, input));
}

View file

@ -16,6 +16,7 @@ import com.google.common.base.Objects;
import net.minecraftforge.fluids.FluidStack;
import buildcraft.BuildCraftCore;
import buildcraft.api.recipes.IRefineryRecipeManager;
public final class RefineryRecipeManager implements IRefineryRecipeManager {
@ -28,11 +29,23 @@ public final class RefineryRecipeManager implements IRefineryRecipeManager {
@Override
public void addRecipe(FluidStack ingredient, FluidStack result, int energy, int delay) {
String name = result.getFluid().getName();
if (BuildCraftCore.recipesBlacklist.contains(name)) {
return;
}
addRecipe(ingredient, null, result, energy, delay);
}
@Override
public void addRecipe(FluidStack ingredient1, FluidStack ingredient2, FluidStack result, int energy, int delay) {
String name = result.getFluid().getName();
if (BuildCraftCore.recipesBlacklist.contains(name)) {
return;
}
RefineryRecipe recipe = new RefineryRecipe(ingredient1, ingredient2, result, energy, delay);
recipes.add(recipe);
}