BloodMagic/src/main/java/WayofTime/alchemicalWizardry/common/guide/RecipeHolder.java
2015-04-24 16:09:40 -04:00

173 lines
8.7 KiB
Java

package WayofTime.alchemicalWizardry.common.guide;
import java.util.List;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.CraftingManager;
import net.minecraft.item.crafting.IRecipe;
import WayofTime.alchemicalWizardry.ModBlocks;
import WayofTime.alchemicalWizardry.ModItems;
import WayofTime.alchemicalWizardry.api.altarRecipeRegistry.AltarRecipe;
import WayofTime.alchemicalWizardry.api.altarRecipeRegistry.AltarRecipeRegistry;
public class RecipeHolder
{
private static List recipeList;
public static IRecipe bloodAltarRecipe;
public static IRecipe knifeRecipe;
public static IRecipe divinationSigilRecipe;
public static IRecipe waterSigilRecipe;
public static IRecipe lavaCrystalRecipe;
public static IRecipe lavaSigilRecipe;
public static IRecipe blankRuneRecipe;
public static IRecipe speedRuneRecipe;
public static IRecipe voidSigilRecipe;
public static IRecipe airSigilRecipe;
public static IRecipe sightSigilRecipe;
public static IRecipe fastMinerRecipe;
public static IRecipe greenGroveRecipe;
public static IRecipe sacrificeRuneRecipe;
public static IRecipe selfSacrificeRuneRecipe;
public static IRecipe bloodPackRecipe;
public static IRecipe capacityRuneRecipe;
public static IRecipe dislocationRuneRecipe;
public static IRecipe magnetismSigilRecipe;
public static IRecipe phantomBridgeRecipe;
public static IRecipe holdingSigilRecipe;
public static IRecipe affinitySigilRecipe;
public static IRecipe ritualStoneRecipe;
public static IRecipe masterStoneRecipe;
public static IRecipe bloodLampRecipe;
public static IRecipe emptySocketRecipe;
public static IRecipe soulForgeRecipe;
public static IRecipe inhibitorRecipe;
public static IRecipe ritualDiviner1Recipe;
public static IRecipe ritualDiviner2Recipe;
public static IRecipe ritualDiviner3Recipe;
public static IRecipe bloodStoneRecipe;
public static IRecipe whirlwindSigilRecipe;
public static IRecipe compressionSigilRecipe;
public static IRecipe enderSeveranceSigilRecipe;
public static IRecipe teleposerRecipe;
public static IRecipe suppressionSigilRecipe;
public static IRecipe superiorCapacityRecipe;
public static IRecipe orbRuneRecipe;
public static IRecipe keyOfBindingRecipe;
public static IRecipe energyBazookaRecipe;
public static IRecipe accelerationRuneRecipe;
public static IRecipe harvestSigilRecipe;
public static IRecipe crystalCluserRecipe;
public static AltarRecipe weakBloodOrbRecipe;
public static AltarRecipe apprenticeBloodOrbRecipe;
public static AltarRecipe magicianBloodOrbRecipe;
public static AltarRecipe masterBloodOrbRecipe;
public static AltarRecipe archmageBloodOrbRecipe;
public static AltarRecipe transcendentBloodOrbRecipe;
public static AltarRecipe blankSlateRecipe;
public static AltarRecipe reinforcedSlateRecipe;
public static AltarRecipe imbuedSlateRecipe;
public static AltarRecipe demonicSlateRecipe;
public static AltarRecipe etherealSlateRecipe;
public static AltarRecipe daggerRecipe;
public static AltarRecipe weakActivationRecipe;
public static AltarRecipe filledSocketRecipe;
public static void init()
{
recipeList = CraftingManager.getInstance().getRecipeList();
bloodAltarRecipe = getRecipeForItemStack(new ItemStack(ModBlocks.blockAltar));
knifeRecipe = getRecipeForItemStack(new ItemStack(ModItems.sacrificialDagger));
divinationSigilRecipe = getRecipeForItemStack(new ItemStack(ModItems.divinationSigil));
waterSigilRecipe = getRecipeForItemStack(new ItemStack(ModItems.waterSigil));
lavaCrystalRecipe = getRecipeForItemStack(new ItemStack(ModItems.lavaCrystal));
lavaSigilRecipe = getRecipeForItemStack(new ItemStack(ModItems.lavaSigil));
blankRuneRecipe = getRecipeForItemStack(new ItemStack(ModBlocks.bloodRune));
speedRuneRecipe = getRecipeForItemStack(new ItemStack(ModBlocks.speedRune));
voidSigilRecipe = getRecipeForItemStack(new ItemStack(ModItems.voidSigil));
airSigilRecipe = getRecipeForItemStack(new ItemStack(ModItems.airSigil));
sightSigilRecipe = getRecipeForItemStack(new ItemStack(ModItems.itemSeerSigil));
fastMinerRecipe = getRecipeForItemStack(new ItemStack(ModItems.sigilOfTheFastMiner));
greenGroveRecipe = getRecipeForItemStack(new ItemStack(ModItems.growthSigil));
sacrificeRuneRecipe = getRecipeForItemStack(new ItemStack(ModBlocks.runeOfSacrifice));
selfSacrificeRuneRecipe = getRecipeForItemStack(new ItemStack(ModBlocks.runeOfSelfSacrifice));
bloodPackRecipe = getRecipeForItemStack(new ItemStack(ModItems.itemBloodPack));
capacityRuneRecipe = getRecipeForItemStack(new ItemStack(ModBlocks.bloodRune, 1, 1));
dislocationRuneRecipe = getRecipeForItemStack(new ItemStack(ModBlocks.bloodRune, 1, 2));
magnetismSigilRecipe = getRecipeForItemStack(new ItemStack(ModItems.sigilOfMagnetism));
phantomBridgeRecipe = getRecipeForItemStack(new ItemStack(ModItems.sigilOfTheBridge));
holdingSigilRecipe = getRecipeForItemStack(new ItemStack(ModItems.sigilOfHolding));
affinitySigilRecipe = getRecipeForItemStack(new ItemStack(ModItems.sigilOfElementalAffinity));
ritualStoneRecipe = getRecipeForItemStack(new ItemStack(ModBlocks.ritualStone));
masterStoneRecipe = getRecipeForItemStack(new ItemStack(ModBlocks.blockMasterStone));
bloodLampRecipe = getRecipeForItemStack(new ItemStack(ModItems.itemBloodLightSigil));
emptySocketRecipe = getRecipeForItemStack(new ItemStack(ModBlocks.emptySocket));
soulForgeRecipe = getRecipeForItemStack(new ItemStack(ModBlocks.armourForge));
inhibitorRecipe = getRecipeForItemStack(new ItemStack(ModItems.armourInhibitor));
ritualDiviner1Recipe = getRecipeForItemStack(new ItemStack(ModItems.itemRitualDiviner));
ritualDiviner2Recipe = getRecipeForItemStack(new ItemStack(ModItems.itemRitualDiviner, 1, 1));
ritualDiviner3Recipe = getRecipeForItemStack(new ItemStack(ModItems.itemRitualDiviner, 1, 2));
bloodStoneRecipe = getRecipeForItemStack(new ItemStack(ModBlocks.largeBloodStoneBrick));
whirlwindSigilRecipe = getRecipeForItemStack(new ItemStack(ModItems.sigilOfWind));
compressionSigilRecipe = getRecipeForItemStack(new ItemStack(ModItems.itemCompressionSigil));
enderSeveranceSigilRecipe = getRecipeForItemStack(new ItemStack(ModItems.itemSigilOfEnderSeverance));
teleposerRecipe = getRecipeForItemStack(new ItemStack(ModBlocks.blockTeleposer));
suppressionSigilRecipe = getRecipeForItemStack(new ItemStack(ModItems.itemSigilOfSupression));
superiorCapacityRecipe = getRecipeForItemStack(new ItemStack(ModBlocks.bloodRune, 1, 4));
orbRuneRecipe = getRecipeForItemStack(new ItemStack(ModBlocks.bloodRune, 1, 3));
keyOfBindingRecipe = getRecipeForItemStack(new ItemStack(ModItems.itemKeyOfDiablo));
energyBazookaRecipe = getRecipeForItemStack(new ItemStack(ModItems.energyBazooka));
accelerationRuneRecipe = getRecipeForItemStack(new ItemStack(ModBlocks.bloodRune, 1, 5));
harvestSigilRecipe = getRecipeForItemStack(new ItemStack(ModItems.itemHarvestSigil));
crystalCluserRecipe = getRecipeForItemStack(new ItemStack(ModBlocks.blockCrystal));
weakBloodOrbRecipe = getAltarRecipeForItemStack(new ItemStack(ModItems.weakBloodOrb));
apprenticeBloodOrbRecipe = getAltarRecipeForItemStack(new ItemStack(ModItems.apprenticeBloodOrb));
magicianBloodOrbRecipe = getAltarRecipeForItemStack(new ItemStack(ModItems.magicianBloodOrb));
masterBloodOrbRecipe = getAltarRecipeForItemStack(new ItemStack(ModItems.masterBloodOrb));
archmageBloodOrbRecipe = getAltarRecipeForItemStack(new ItemStack(ModItems.archmageBloodOrb));
transcendentBloodOrbRecipe = getAltarRecipeForItemStack(new ItemStack(ModItems.transcendentBloodOrb));
blankSlateRecipe = getAltarRecipeForItemStack(new ItemStack(ModItems.blankSlate));
reinforcedSlateRecipe = getAltarRecipeForItemStack(new ItemStack(ModItems.reinforcedSlate));
imbuedSlateRecipe = getAltarRecipeForItemStack(new ItemStack(ModItems.imbuedSlate));
demonicSlateRecipe = getAltarRecipeForItemStack(new ItemStack(ModItems.demonicSlate));
etherealSlateRecipe = getAltarRecipeForItemStack(new ItemStack(ModItems.baseItems, 1, 27));
daggerRecipe = getAltarRecipeForItemStack(new ItemStack(ModItems.daggerOfSacrifice));
weakActivationRecipe = getAltarRecipeForItemStack(new ItemStack(ModItems.activationCrystal, 1, 0));
filledSocketRecipe = getAltarRecipeForItemStack(new ItemStack(ModBlocks.bloodSocket));
}
private static IRecipe getRecipeForItemStack(ItemStack stack)
{
for(Object obj : recipeList)
{
IRecipe recipe = (IRecipe)obj;
if(recipe.getRecipeOutput() != null && stack.isItemEqual(recipe.getRecipeOutput()))
{
return recipe;
}
}
return null;
}
private static AltarRecipe getAltarRecipeForItemStack(ItemStack stack)
{
for(AltarRecipe recipe : AltarRecipeRegistry.altarRecipes)
{
if(recipe.getResult() != null && stack.isItemEqual(recipe.getResult()))
{
return recipe;
}
}
return null;
}
}