228 lines
12 KiB
Java
228 lines
12 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 weakRitualStoneRecipe;
|
|
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 IRecipe arcanePlinthRecipe;
|
|
public static IRecipe arcanePedestalRecipe;
|
|
public static IRecipe spellTableRecipe;
|
|
public static IRecipe alchemySetRecipe;
|
|
public static IRecipe crucibleRecipe;
|
|
|
|
public static IRecipe woodAshRecipe;
|
|
public static IRecipe byrrusRecipe;
|
|
public static IRecipe livensRecipe;
|
|
public static IRecipe virRecipe;
|
|
public static IRecipe purpuraRecipe;
|
|
|
|
public static IRecipe routerRecipe;
|
|
public static IRecipe segmenterRecipe;
|
|
public static IRecipe cleanserRecipe;
|
|
public static IRecipe calcinatorRecipe;
|
|
public static IRecipe belljarRecipe;
|
|
public static IRecipe relayRecipe;
|
|
|
|
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 AltarRecipe teleposerFocusRecipe1;
|
|
public static AltarRecipe blankSpellRecipe;
|
|
public static AltarRecipe waterScribeTool;
|
|
public static AltarRecipe fireScribeTool;
|
|
public static AltarRecipe earthScribeTool;
|
|
public static AltarRecipe airScribeTool;
|
|
public static AltarRecipe duskRecipe;
|
|
public static AltarRecipe dawnRecipe;
|
|
public static AltarRecipe flaskRecipe;
|
|
|
|
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));
|
|
weakRitualStoneRecipe = getRecipeForItemStack(new ItemStack(ModBlocks.imperfectRitualStone));
|
|
|
|
arcanePlinthRecipe = getRecipeForItemStack(new ItemStack(ModBlocks.blockPlinth));
|
|
arcanePedestalRecipe = getRecipeForItemStack(new ItemStack(ModBlocks.blockPedestal));
|
|
spellTableRecipe = getRecipeForItemStack(new ItemStack(ModBlocks.blockHomHeart));
|
|
|
|
alchemySetRecipe = getRecipeForItemStack(new ItemStack(ModBlocks.blockWritingTable));
|
|
crucibleRecipe = getRecipeForItemStack(new ItemStack(ModBlocks.blockCrucible));
|
|
woodAshRecipe = getRecipeForItemStack(new ItemStack(ModItems.itemIncense, 1, 0));
|
|
byrrusRecipe = getRecipeForItemStack(new ItemStack(ModItems.itemIncense, 1, 1));
|
|
livensRecipe = getRecipeForItemStack(new ItemStack(ModItems.itemIncense, 1, 2));
|
|
virRecipe = getRecipeForItemStack(new ItemStack(ModItems.itemIncense, 1, 3));
|
|
purpuraRecipe = getRecipeForItemStack(new ItemStack(ModItems.itemIncense, 1, 4));
|
|
|
|
routerRecipe = getRecipeForItemStack(new ItemStack(ModItems.itemAttunedCrystal));
|
|
segmenterRecipe = getRecipeForItemStack(new ItemStack(ModItems.itemTankSegmenter));
|
|
cleanserRecipe = getRecipeForItemStack(new ItemStack(ModItems.itemDestinationClearer));
|
|
calcinatorRecipe = getRecipeForItemStack(new ItemStack(ModBlocks.blockAlchemicCalcinator));
|
|
belljarRecipe = getRecipeForItemStack(new ItemStack(ModBlocks.blockCrystalBelljar));
|
|
relayRecipe = getRecipeForItemStack(new ItemStack(ModBlocks.blockReagentConduit));
|
|
|
|
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));
|
|
teleposerFocusRecipe1 = getAltarRecipeForItemStack(new ItemStack(ModItems.telepositionFocus));
|
|
blankSpellRecipe = getAltarRecipeForItemStack(new ItemStack(ModItems.blankSpell));
|
|
waterScribeTool = getAltarRecipeForItemStack(new ItemStack(ModItems.waterScribeTool));
|
|
fireScribeTool = getAltarRecipeForItemStack(new ItemStack(ModItems.fireScribeTool));
|
|
earthScribeTool = getAltarRecipeForItemStack(new ItemStack(ModItems.earthScribeTool));
|
|
airScribeTool = getAltarRecipeForItemStack(new ItemStack(ModItems.airScribeTool));
|
|
duskRecipe = getAltarRecipeForItemStack(new ItemStack(ModItems.duskScribeTool));
|
|
dawnRecipe = getAltarRecipeForItemStack(new ItemStack(ModItems.dawnScribeTool));
|
|
flaskRecipe = getAltarRecipeForItemStack(new ItemStack(ModItems.alchemyFlask));
|
|
}
|
|
|
|
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;
|
|
}
|
|
}
|