173 lines
8.7 KiB
Java
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;
|
|
}
|
|
}
|