ActuallyAdditions/src/main/java/ellpeck/actuallyadditions/crafting/GrinderCrafting.java

91 lines
4.6 KiB
Java
Raw Normal View History

2015-03-07 12:51:28 +01:00
package ellpeck.actuallyadditions.crafting;
2015-03-07 12:51:28 +01:00
import ellpeck.actuallyadditions.items.InitItems;
import ellpeck.actuallyadditions.items.metalists.TheDusts;
import ellpeck.actuallyadditions.recipe.GrinderRecipes;
2015-03-29 15:29:05 +02:00
import ellpeck.actuallyadditions.util.ModUtil;
2015-03-07 12:51:28 +01:00
import ellpeck.actuallyadditions.util.Util;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.OreDictionary;
import org.apache.logging.log4j.Level;
import java.util.ArrayList;
public class GrinderCrafting{
public static void init(){
Util.logInfo("Initializing Crusher Recipes...");
GrinderRecipes.instance().registerRecipe(new ItemStack(Blocks.iron_ore), new ItemStack(InitItems.itemDust, 2, TheDusts.IRON.ordinal()), new ItemStack(InitItems.itemDust, 1, TheDusts.GOLD.ordinal()), 10);
GrinderRecipes.instance().registerRecipe(new ItemStack(Blocks.redstone_ore), new ItemStack(Items.redstone, 10), null, 0);
2015-03-07 12:51:28 +01:00
GrinderRecipes.instance().registerRecipe(new ItemStack(Blocks.lapis_ore), new ItemStack(InitItems.itemDust, 12, TheDusts.LAPIS.ordinal()), null, 0);
registerFinally();
}
public static void registerFinally(){
String[] names = OreDictionary.getOreNames();
for(String name : names){
2015-03-19 21:27:56 +01:00
int resultAmount = 1;
String nameOfOre = null;
if(name.length() > 3 && name.substring(0, 3).equals("ore")){
nameOfOre = name.substring(3);
resultAmount = 2;
}
if(name.length() > 9 && name.substring(0, 9).equals("oreNether")){
nameOfOre = name.substring(9);
2015-03-29 15:29:05 +02:00
resultAmount = 4;
2015-03-19 21:27:56 +01:00
}
if(name.length() > 8 && name.substring(0, 8).equals("denseore")){
nameOfOre = name.substring(8);
2015-03-29 15:29:05 +02:00
resultAmount = 12;
2015-03-19 21:27:56 +01:00
}
if(name.length() > 3 && name.substring(0, 3).equals("gem")) nameOfOre = name.substring(3);
if(name.length() > 5 && name.substring(0, 5).equals("ingot")) nameOfOre = name.substring(5);
if(nameOfOre != null){
2015-03-08 14:58:26 +01:00
ArrayList<ItemStack> allDusts;
2015-03-19 21:27:56 +01:00
String nameToGetFrom = "dust" + nameOfOre;
2015-03-08 14:58:26 +01:00
2015-03-19 21:27:56 +01:00
allDusts = OreDictionary.getOres(nameToGetFrom);
2015-03-08 14:58:26 +01:00
if(allDusts != null && allDusts.size() > 0){
ArrayList<ItemStack> allOresOfName = OreDictionary.getOres(name);
if(allOresOfName != null && allOresOfName.size() > 0){
2015-03-29 15:29:05 +02:00
for(ItemStack theDust : allDusts){
ItemStack output = theDust.copy();
2015-03-19 21:27:56 +01:00
output.stackSize = resultAmount;
2015-03-29 15:29:05 +02:00
for(ItemStack theInput : allOresOfName){
ItemStack input = theInput.copy();
2015-03-08 14:58:26 +01:00
if(GrinderRecipes.instance().getOutput(input, false) == null){
2015-03-29 15:29:05 +02:00
ArrayList<ItemStack> specialStacks = null;
int specialAmount = 0;
if(name.equals("oreNickel")){
specialStacks = OreDictionary.getOres("dustPlatinum");
specialAmount = 30;
}
2015-03-29 15:29:05 +02:00
if(specialStacks != null && specialStacks.size() > 0){
2015-03-29 15:29:05 +02:00
for(ItemStack theSpecial : specialStacks){
ItemStack special = theSpecial.copy();
GrinderRecipes.instance().registerRecipe(input, output, special, specialAmount);
2015-03-29 15:29:05 +02:00
}
2015-03-19 21:27:56 +01:00
}
2015-03-08 14:58:26 +01:00
else GrinderRecipes.instance().registerRecipe(input, output, null, 0);
}
}
}
}
2015-03-29 15:29:05 +02:00
else ModUtil.AA_LOGGER.log(Level.ERROR, "Couldn't register Crusher Recipe! Didn't find Items registered as '" + name + "'! This shouldn't happen as there is something registered as '" + name + "' that doesn't exist!");
}
2015-03-29 15:29:05 +02:00
else if(!name.equals("ingotBrick") && !name.equals("ingotBrickNether")) ModUtil.AA_LOGGER.log(Level.WARN, "Couldn't register Crusher Recipe! An Item with OreDictionary Registry '" + nameToGetFrom + "' doesn't exist! It should correspond to '" + name + "'! This is not an Error, just a bit sad :(");
}
}
}
}