diff --git a/build.gradle b/build.gradle index 3cb6760d..a7c9669a 100644 --- a/build.gradle +++ b/build.gradle @@ -40,7 +40,7 @@ repositories { } dependencies { - deobfCompile "mezz.jei:jei_1.8.8:2.1.2.11" + deobfCompile "mezz.jei:jei_1.8.8:${jei_version}" } minecraft { diff --git a/gradle.properties b/gradle.properties index e6721491..88f1f728 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,4 +5,6 @@ mc_version=1.8.8 forge_version=latest curse_id=224791 -mappings_version=snapshot_20151128 \ No newline at end of file +mappings_version=snapshot_20151128 + +jei_version=2.1.3.13 \ No newline at end of file diff --git a/src/main/java/WayofTime/bloodmagic/api/Constants.java b/src/main/java/WayofTime/bloodmagic/api/Constants.java index 17bcd41e..bff1cbc0 100644 --- a/src/main/java/WayofTime/bloodmagic/api/Constants.java +++ b/src/main/java/WayofTime/bloodmagic/api/Constants.java @@ -65,6 +65,7 @@ public class Constants { public static class Compat { public static final String JEI_CATEGORY_ALTAR = Mod.MODID + ":altar"; + public static final String JEI_CATEGORY_BINDING = Mod.MODID + ":binding"; } public static class Misc { diff --git a/src/main/java/WayofTime/bloodmagic/api/altar/AltarRecipe.java b/src/main/java/WayofTime/bloodmagic/api/altar/AltarRecipe.java deleted file mode 100644 index 3cddcc5c..00000000 --- a/src/main/java/WayofTime/bloodmagic/api/altar/AltarRecipe.java +++ /dev/null @@ -1,64 +0,0 @@ -package WayofTime.bloodmagic.api.altar; - -import lombok.Getter; -import lombok.ToString; -import net.minecraft.item.ItemStack; - -import javax.annotation.Nullable; - -@Getter -@ToString -public class AltarRecipe { - - public final int syphon, consumeRate, drainRate; - public final boolean useTag; - public final ItemStack input, output; - public final EnumAltarTier minTier; - - /** - * Allows creation of a recipe for the {@link WayofTime.bloodmagic.block.BlockAltar} / {@link WayofTime.bloodmagic.tile.TileAltar}. - * The output ItemStack is allowed to be null as some recipes do not contain an output. (Blood Orbs) - * - * @param input - The input ItemStack - * @param output - The ItemStack obtained from the recipe - * @param minTier - The minimum tier of Altar required - * @param syphon - The amount of LP to syphon from the Altar - * @param consumeRate - The rate at which LP is consumed during crafting - * @param drainRate - The rate at which LP is drained during crafting - * @param useTag - - */ -// public AltarRecipe(ItemStackWrapper input, @Nullable ItemStackWrapper output, EnumAltarTier minTier, int syphon, int consumeRate, int drainRate, boolean useTag) { -// this.input = input; -// this.output = output; -// this.minTier = minTier; -// this.syphon = syphon; -// this.consumeRate = consumeRate; -// this.drainRate = drainRate; -// this.useTag = useTag; -// } -// -// public AltarRecipe(ItemStackWrapper input, ItemStackWrapper output, EnumAltarTier minTier, int syphon, int consumeRate, int drainRate) { -// this(input, output, minTier, syphon, consumeRate, drainRate, false); -// } -// -// public AltarRecipe(ItemStackWrapper input, EnumAltarTier minTier, int consumeRate, int drainRate) { -// this(input, null, minTier, 0, consumeRate, drainRate); -// } - public AltarRecipe(ItemStack input, @Nullable ItemStack output, EnumAltarTier minTier, int syphon, int consumeRate, int drainRate, boolean useTag) { - this.input = input; - this.output = output; - this.minTier = minTier; - this.syphon = syphon; - this.consumeRate = consumeRate; - this.drainRate = drainRate; - this.useTag = useTag; - } - - public AltarRecipe(ItemStack input, ItemStack output, EnumAltarTier minTier, int syphon, int consumeRate, int drainRate) { - this(input, output, minTier, syphon, consumeRate, drainRate, false); - } - - public AltarRecipe(ItemStack input, EnumAltarTier minTier, int consumeRate, int drainRate) { - this(input, null, minTier, 0, consumeRate, drainRate); - } -} diff --git a/src/main/java/WayofTime/bloodmagic/api/registry/AltarRecipeRegistry.java b/src/main/java/WayofTime/bloodmagic/api/registry/AltarRecipeRegistry.java index e2f88b4b..5678fdbe 100644 --- a/src/main/java/WayofTime/bloodmagic/api/registry/AltarRecipeRegistry.java +++ b/src/main/java/WayofTime/bloodmagic/api/registry/AltarRecipeRegistry.java @@ -1,12 +1,16 @@ package WayofTime.bloodmagic.api.registry; import WayofTime.bloodmagic.api.BloodMagicAPI; -import WayofTime.bloodmagic.api.altar.AltarRecipe; +import WayofTime.bloodmagic.api.altar.EnumAltarTier; import com.google.common.collect.BiMap; import com.google.common.collect.HashBiMap; +import lombok.EqualsAndHashCode; import lombok.Getter; +import lombok.ToString; import net.minecraft.item.ItemStack; +import javax.annotation.Nullable; + public class AltarRecipeRegistry { @Getter @@ -16,10 +20,68 @@ public class AltarRecipeRegistry { if (!recipes.containsValue(recipe)) recipes.put(recipe.input, recipe); else - BloodMagicAPI.getLogger().error("Error adding recipe for " + recipe.input.getDisplayName() + (recipe.output == null ? "" : " -> " + recipe.output.getDisplayName()) + ". Recipe already exists."); + BloodMagicAPI.getLogger().error("Error adding altar recipe for " + recipe.input.getDisplayName() + (recipe.output == null ? "" : " -> " + recipe.output.getDisplayName()) + ". Recipe already exists."); } public static AltarRecipe getRecipeForInput(ItemStack input) { return recipes.get(input); } + + @Getter + @ToString + @EqualsAndHashCode + public static class AltarRecipe { + + public final int syphon, consumeRate, drainRate; + public final boolean useTag; + public final ItemStack input, output; + public final EnumAltarTier minTier; + + /** + * Allows creation of a recipe for the {@link WayofTime.bloodmagic.block.BlockAltar} / {@link WayofTime.bloodmagic.tile.TileAltar}. + * The output ItemStack is allowed to be null as some recipes do not contain an output. (Blood Orbs) + * + * @param input - The input ItemStack + * @param output - The ItemStack obtained from the recipe + * @param minTier - The minimum tier of Altar required + * @param syphon - The amount of LP to syphon from the Altar + * @param consumeRate - The rate at which LP is consumed during crafting + * @param drainRate - The rate at which LP is drained during crafting + * @param useTag - + */ + // public AltarRecipe(ItemStackWrapper input, @Nullable ItemStackWrapper output, EnumAltarTier minTier, int syphon, int consumeRate, int drainRate, boolean useTag) { + // this.input = input; + // this.output = output; + // this.minTier = minTier; + // this.syphon = syphon; + // this.consumeRate = consumeRate; + // this.drainRate = drainRate; + // this.useTag = useTag; + // } + // + // public AltarRecipe(ItemStackWrapper input, ItemStackWrapper output, EnumAltarTier minTier, int syphon, int consumeRate, int drainRate) { + // this(input, output, minTier, syphon, consumeRate, drainRate, false); + // } + // + // public AltarRecipe(ItemStackWrapper input, EnumAltarTier minTier, int consumeRate, int drainRate) { + // this(input, null, minTier, 0, consumeRate, drainRate); + // } + public AltarRecipe(ItemStack input, @Nullable ItemStack output, EnumAltarTier minTier, int syphon, int consumeRate, int drainRate, boolean useTag) { + this.input = input; + this.output = output; + this.minTier = minTier; + this.syphon = syphon; + this.consumeRate = consumeRate; + this.drainRate = drainRate; + this.useTag = useTag; + } + + public AltarRecipe(ItemStack input, ItemStack output, EnumAltarTier minTier, int syphon, int consumeRate, int drainRate) { + this(input, output, minTier, syphon, consumeRate, drainRate, false); + } + + public AltarRecipe(ItemStack input, EnumAltarTier minTier, int consumeRate, int drainRate) { + this(input, null, minTier, 0, consumeRate, drainRate); + } + } } diff --git a/src/main/java/WayofTime/bloodmagic/api/registry/BindingRecipeRegistry.java b/src/main/java/WayofTime/bloodmagic/api/registry/BindingRecipeRegistry.java new file mode 100644 index 00000000..62cc5edf --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/api/registry/BindingRecipeRegistry.java @@ -0,0 +1,37 @@ +package WayofTime.bloodmagic.api.registry; + +import WayofTime.bloodmagic.api.BloodMagicAPI; +import com.google.common.collect.BiMap; +import com.google.common.collect.HashBiMap; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import lombok.ToString; +import net.minecraft.item.ItemStack; + +public class BindingRecipeRegistry { + + @Getter + private static BiMap recipes = HashBiMap.create(); + + public static void registerRecipe(BindingRecipe recipe) { + if (!recipes.containsValue(recipe)) + recipes.put(recipe.getInput(), recipe); + else + BloodMagicAPI.getLogger().error("Error adding binding recipe for " + recipe.input.getDisplayName() + (recipe.output == null ? "" : " -> " + recipe.output.getDisplayName()) + ". Recipe already exists."); + } + + public static BindingRecipe getRecipeForInput(ItemStack input) { + return recipes.get(input); + } + + @Getter + @ToString + @EqualsAndHashCode + @RequiredArgsConstructor + public static class BindingRecipe { + + private final ItemStack input; + private final ItemStack output; + } +} diff --git a/src/main/java/WayofTime/bloodmagic/compat/jei/BloodMagicPlugin.java b/src/main/java/WayofTime/bloodmagic/compat/jei/BloodMagicPlugin.java index ab020351..e5db7008 100644 --- a/src/main/java/WayofTime/bloodmagic/compat/jei/BloodMagicPlugin.java +++ b/src/main/java/WayofTime/bloodmagic/compat/jei/BloodMagicPlugin.java @@ -3,6 +3,9 @@ package WayofTime.bloodmagic.compat.jei; import WayofTime.bloodmagic.compat.jei.altar.AltarRecipeCategory; import WayofTime.bloodmagic.compat.jei.altar.AltarRecipeHandler; import WayofTime.bloodmagic.compat.jei.altar.AltarRecipeMaker; +import WayofTime.bloodmagic.compat.jei.binding.BindingRecipeCategory; +import WayofTime.bloodmagic.compat.jei.binding.BindingRecipeHandler; +import WayofTime.bloodmagic.compat.jei.binding.BindingRecipeMaker; import mezz.jei.api.IModPlugin; import mezz.jei.api.recipe.IRecipeCategory; import mezz.jei.api.recipe.IRecipeHandler; @@ -24,7 +27,8 @@ public class BloodMagicPlugin implements IModPlugin { @Nonnull public Iterable getRecipeCategories() { return Arrays.asList( - new AltarRecipeCategory() + new AltarRecipeCategory(), + new BindingRecipeCategory() ); } @@ -32,7 +36,8 @@ public class BloodMagicPlugin implements IModPlugin { @Nonnull public Iterable getRecipeHandlers() { return Arrays.asList( - new AltarRecipeHandler() + new AltarRecipeHandler(), + new BindingRecipeHandler() ); } @@ -48,7 +53,8 @@ public class BloodMagicPlugin implements IModPlugin { public Iterable getRecipes() { List recipes = new ArrayList(); - recipes.addAll(AltarRecipeMaker.getAltarRecipes()); + recipes.addAll(AltarRecipeMaker.getRecipes()); + recipes.addAll(BindingRecipeMaker.getRecipes()); return recipes; } diff --git a/src/main/java/WayofTime/bloodmagic/compat/jei/altar/AltarRecipeMaker.java b/src/main/java/WayofTime/bloodmagic/compat/jei/altar/AltarRecipeMaker.java index 3f0cea32..5a1a3cad 100644 --- a/src/main/java/WayofTime/bloodmagic/compat/jei/altar/AltarRecipeMaker.java +++ b/src/main/java/WayofTime/bloodmagic/compat/jei/altar/AltarRecipeMaker.java @@ -1,6 +1,5 @@ package WayofTime.bloodmagic.compat.jei.altar; -import WayofTime.bloodmagic.api.altar.AltarRecipe; import WayofTime.bloodmagic.api.registry.AltarRecipeRegistry; import net.minecraft.item.ItemStack; @@ -12,12 +11,12 @@ import java.util.Map; public class AltarRecipeMaker { @Nonnull - public static List getAltarRecipes() { - Map altarMap = AltarRecipeRegistry.getRecipes(); + public static List getRecipes() { + Map altarMap = AltarRecipeRegistry.getRecipes(); ArrayList recipes = new ArrayList(); - for (Map.Entry itemStackAltarRecipeEntry : altarMap.entrySet()) { + for (Map.Entry itemStackAltarRecipeEntry : altarMap.entrySet()) { if (itemStackAltarRecipeEntry.getValue().getOutput() != null) { // Make sure output is not null. If it is, the recipe is for a filling orb, and we don't want that. ItemStack input = itemStackAltarRecipeEntry.getKey(); ItemStack output = itemStackAltarRecipeEntry.getValue().getOutput(); diff --git a/src/main/java/WayofTime/bloodmagic/compat/jei/binding/BindingRecipeCategory.java b/src/main/java/WayofTime/bloodmagic/compat/jei/binding/BindingRecipeCategory.java new file mode 100644 index 00000000..c4f0f68f --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/compat/jei/binding/BindingRecipeCategory.java @@ -0,0 +1,57 @@ +package WayofTime.bloodmagic.compat.jei.binding; + +import WayofTime.bloodmagic.api.Constants; +import WayofTime.bloodmagic.util.helper.TextHelper; +import mezz.jei.api.JEIManager; +import mezz.jei.api.gui.IDrawable; +import mezz.jei.api.gui.IRecipeLayout; +import mezz.jei.api.recipe.IRecipeCategory; +import mezz.jei.api.recipe.IRecipeWrapper; +import net.minecraft.util.ResourceLocation; + +import javax.annotation.Nonnull; + +public class BindingRecipeCategory implements IRecipeCategory { + + private static final int INPUT_SLOT = 0; + private static final int OUTPUT_SLOT = 1; + + @Nonnull + private final IDrawable background = JEIManager.guiHelper.createDrawable(new ResourceLocation(Constants.Mod.DOMAIN + "gui/jei/binding.png"), 0, 0, 100, 30); + @Nonnull + private final String localizedName = TextHelper.localize("jei.BloodMagic.recipe.binding"); + + @Nonnull + @Override + public String getUid() { + return Constants.Compat.JEI_CATEGORY_BINDING; + } + + @Nonnull + @Override + public String getTitle() { + return localizedName; + } + + @Nonnull + @Override + public IDrawable getBackground() { + return background; + } + + @Override + public void init(@Nonnull IRecipeLayout recipeLayout) { + recipeLayout.getItemStacks().init(INPUT_SLOT, true, 0, 5); + recipeLayout.getItemStacks().init(OUTPUT_SLOT, false, 73, 5); + } + + @Override + @SuppressWarnings("unchecked") + public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull IRecipeWrapper recipeWrapper) { + if (recipeWrapper instanceof BindingRecipeJEI) { + BindingRecipeJEI bindingRecipeWrapper = (BindingRecipeJEI) recipeWrapper; + recipeLayout.getItemStacks().set(INPUT_SLOT, bindingRecipeWrapper.getInputs()); + recipeLayout.getItemStacks().set(OUTPUT_SLOT, bindingRecipeWrapper.getOutputs()); + } + } +} diff --git a/src/main/java/WayofTime/bloodmagic/compat/jei/binding/BindingRecipeHandler.java b/src/main/java/WayofTime/bloodmagic/compat/jei/binding/BindingRecipeHandler.java new file mode 100644 index 00000000..70065bda --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/compat/jei/binding/BindingRecipeHandler.java @@ -0,0 +1,33 @@ +package WayofTime.bloodmagic.compat.jei.binding; + +import WayofTime.bloodmagic.api.Constants; +import mezz.jei.api.recipe.IRecipeHandler; +import mezz.jei.api.recipe.IRecipeWrapper; + +import javax.annotation.Nonnull; + +public class BindingRecipeHandler implements IRecipeHandler { + + @Nonnull + @Override + public Class getRecipeClass() { + return BindingRecipeJEI.class; + } + + @Nonnull + @Override + public String getRecipeCategoryUid() { + return Constants.Compat.JEI_CATEGORY_BINDING; + } + + @Nonnull + @Override + public IRecipeWrapper getRecipeWrapper(@Nonnull BindingRecipeJEI recipe) { + return recipe; + } + + @Override + public boolean isRecipeValid(@Nonnull BindingRecipeJEI recipe) { + return recipe.getInputs().size() > 0 && recipe.getOutputs().size() > 0; + } +} diff --git a/src/main/java/WayofTime/bloodmagic/compat/jei/binding/BindingRecipeJEI.java b/src/main/java/WayofTime/bloodmagic/compat/jei/binding/BindingRecipeJEI.java new file mode 100644 index 00000000..41ef0bfa --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/compat/jei/binding/BindingRecipeJEI.java @@ -0,0 +1,43 @@ +package WayofTime.bloodmagic.compat.jei.binding; + +import WayofTime.bloodmagic.compat.jei.BloodMagicRecipeWrapper; +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +import javax.annotation.Nonnull; +import java.util.Collections; +import java.util.List; + +public class BindingRecipeJEI extends BloodMagicRecipeWrapper { + + @Nonnull + private final ItemStack input; + + @Nonnull + private final ItemStack output; + + public BindingRecipeJEI(@Nonnull ItemStack input, @Nonnull ItemStack output) { + this.input = input; + this.output = output; + } + + @Override + public boolean usesOreDictionaryComparison() { + return false; + } + + @Override + public List getInputs() { + return Collections.singletonList(input); + } + + @Override + public List getOutputs() { + return Collections.singletonList(output); + } + + @Override + public void drawInfo(@Nonnull Minecraft minecraft) { + + } +} diff --git a/src/main/java/WayofTime/bloodmagic/compat/jei/binding/BindingRecipeMaker.java b/src/main/java/WayofTime/bloodmagic/compat/jei/binding/BindingRecipeMaker.java new file mode 100644 index 00000000..e6d33e7b --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/compat/jei/binding/BindingRecipeMaker.java @@ -0,0 +1,29 @@ +package WayofTime.bloodmagic.compat.jei.binding; + +import WayofTime.bloodmagic.api.registry.BindingRecipeRegistry; +import net.minecraft.item.ItemStack; + +import javax.annotation.Nonnull; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public class BindingRecipeMaker { + + @Nonnull + public static List getRecipes() { + Map altarMap = BindingRecipeRegistry.getRecipes(); + + ArrayList recipes = new ArrayList(); + + for (Map.Entry itemStackBindingRecipeEntry : altarMap.entrySet()) { + ItemStack input = itemStackBindingRecipeEntry.getKey(); + ItemStack output = itemStackBindingRecipeEntry.getValue().getOutput(); + + BindingRecipeJEI recipe = new BindingRecipeJEI(input, output); + recipes.add(recipe); + } + + return recipes; + } +} diff --git a/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java b/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java index 5e928383..8ed4dcb9 100644 --- a/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java +++ b/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java @@ -1,6 +1,5 @@ package WayofTime.bloodmagic.registry; -import WayofTime.bloodmagic.api.altar.AltarRecipe; import WayofTime.bloodmagic.api.altar.EnumAltarTier; import WayofTime.bloodmagic.api.registry.AltarRecipeRegistry; import WayofTime.bloodmagic.api.registry.OrbRegistry; @@ -10,36 +9,37 @@ import net.minecraft.init.Items; import net.minecraft.item.ItemStack; public class ModRecipes { + public static void init() { addAltarRecipes(); } public static void addAltarRecipes() { // ONE - AltarRecipeRegistry.registerRecipe(new AltarRecipe(new ItemStack(Items.diamond), OrbRegistry.getOrbStack(ModItems.orbWeak), EnumAltarTier.ONE, 2000, 2, 1, false)); - AltarRecipeRegistry.registerRecipe(new AltarRecipe(new ItemStack(Blocks.stone), new ItemStack(ModItems.slate), EnumAltarTier.ONE, 1000, 5, 5, false)); + AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Items.diamond), OrbRegistry.getOrbStack(ModItems.orbWeak), EnumAltarTier.ONE, 2000, 2, 1, false)); + AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Blocks.stone), new ItemStack(ModItems.slate), EnumAltarTier.ONE, 1000, 5, 5, false)); // TWO - AltarRecipeRegistry.registerRecipe(new AltarRecipe(new ItemStack(Items.emerald), OrbRegistry.getOrbStack(ModItems.orbApprentice), EnumAltarTier.TWO, 5000, 2, 1, false)); - AltarRecipeRegistry.registerRecipe(new AltarRecipe(new ItemStack(ModItems.slate), new ItemStack(ModItems.slate, 1, 1), EnumAltarTier.TWO, 2000, 5, 5, false)); + AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Items.emerald), OrbRegistry.getOrbStack(ModItems.orbApprentice), EnumAltarTier.TWO, 5000, 2, 1, false)); + AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(ModItems.slate), new ItemStack(ModItems.slate, 1, 1), EnumAltarTier.TWO, 2000, 5, 5, false)); // THREE - AltarRecipeRegistry.registerRecipe(new AltarRecipe(new ItemStack(Blocks.gold_block), OrbRegistry.getOrbStack(ModItems.orbMagician), EnumAltarTier.THREE, 25000, 2, 1, false)); - AltarRecipeRegistry.registerRecipe(new AltarRecipe(new ItemStack(ModItems.slate, 1, 1), new ItemStack(ModItems.slate, 1, 2), EnumAltarTier.THREE, 5000, 15, 10, false)); - AltarRecipeRegistry.registerRecipe(new AltarRecipe(new ItemStack(Blocks.obsidian), EnumRuneType.EARTH.getScribeStack(), EnumAltarTier.THREE, 1000, 5, 5, false)); - AltarRecipeRegistry.registerRecipe(new AltarRecipe(new ItemStack(Blocks.lapis_block), EnumRuneType.WATER.getScribeStack(), EnumAltarTier.THREE, 1000, 5, 5, false)); - AltarRecipeRegistry.registerRecipe(new AltarRecipe(new ItemStack(Items.magma_cream), EnumRuneType.FIRE.getScribeStack(), EnumAltarTier.THREE, 1000, 5, 5, false)); - AltarRecipeRegistry.registerRecipe(new AltarRecipe(new ItemStack(Items.ghast_tear), EnumRuneType.AIR.getScribeStack(), EnumAltarTier.THREE, 1000, 5, 5, false)); + AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Blocks.gold_block), OrbRegistry.getOrbStack(ModItems.orbMagician), EnumAltarTier.THREE, 25000, 2, 1, false)); + AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(ModItems.slate, 1, 1), new ItemStack(ModItems.slate, 1, 2), EnumAltarTier.THREE, 5000, 15, 10, false)); + AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Blocks.obsidian), EnumRuneType.EARTH.getScribeStack(), EnumAltarTier.THREE, 1000, 5, 5, false)); + AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Blocks.lapis_block), EnumRuneType.WATER.getScribeStack(), EnumAltarTier.THREE, 1000, 5, 5, false)); + AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Items.magma_cream), EnumRuneType.FIRE.getScribeStack(), EnumAltarTier.THREE, 1000, 5, 5, false)); + AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Items.ghast_tear), EnumRuneType.AIR.getScribeStack(), EnumAltarTier.THREE, 1000, 5, 5, false)); // FOUR - AltarRecipeRegistry.registerRecipe(new AltarRecipe(new ItemStack(ModItems.slate, 1, 2), new ItemStack(ModItems.slate, 1, 3), EnumAltarTier.FOUR, 15000, 20, 20, false)); - AltarRecipeRegistry.registerRecipe(new AltarRecipe(new ItemStack(Blocks.coal_block), EnumRuneType.DUSK.getScribeStack(), EnumAltarTier.FOUR, 2000, 20, 10, false)); + AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(ModItems.slate, 1, 2), new ItemStack(ModItems.slate, 1, 3), EnumAltarTier.FOUR, 15000, 20, 20, false)); + AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Blocks.coal_block), EnumRuneType.DUSK.getScribeStack(), EnumAltarTier.FOUR, 2000, 20, 10, false)); // FIVE - AltarRecipeRegistry.registerRecipe(new AltarRecipe(new ItemStack(ModItems.slate, 1, 3), new ItemStack(ModItems.slate, 1, 4), EnumAltarTier.FIVE, 30000, 40, 100, false)); + AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(ModItems.slate, 1, 3), new ItemStack(ModItems.slate, 1, 4), EnumAltarTier.FIVE, 30000, 40, 100, false)); // SIX - AltarRecipeRegistry.registerRecipe(new AltarRecipe(new ItemStack(ModBlocks.crystal), OrbRegistry.getOrbStack(ModItems.orbTranscendent), EnumAltarTier.SIX, 200000, 100, 200, false)); - AltarRecipeRegistry.registerRecipe(new AltarRecipe(new ItemStack(Blocks.glowstone), EnumRuneType.DAWN.getScribeStack(), EnumAltarTier.SIX, 200000, 100, 200, false)); + AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(ModBlocks.crystal), OrbRegistry.getOrbStack(ModItems.orbTranscendent), EnumAltarTier.SIX, 200000, 100, 200, false)); + AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Blocks.glowstone), EnumRuneType.DAWN.getScribeStack(), EnumAltarTier.SIX, 200000, 100, 200, false)); } } diff --git a/src/main/java/WayofTime/bloodmagic/tile/TileAltar.java b/src/main/java/WayofTime/bloodmagic/tile/TileAltar.java index 9cda838c..4ce125d9 100644 --- a/src/main/java/WayofTime/bloodmagic/tile/TileAltar.java +++ b/src/main/java/WayofTime/bloodmagic/tile/TileAltar.java @@ -3,7 +3,6 @@ package WayofTime.bloodmagic.tile; import WayofTime.bloodmagic.altar.BloodAltar; import WayofTime.bloodmagic.api.BloodMagicAPI; import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.api.altar.AltarRecipe; import WayofTime.bloodmagic.api.altar.AltarUpgrade; import WayofTime.bloodmagic.api.altar.EnumAltarTier; import WayofTime.bloodmagic.api.altar.IBloodAltar; @@ -199,7 +198,7 @@ public class TileAltar extends TileInventory implements IBloodAltar, ITickable, // Do recipes for (ItemStack itemStack : AltarRecipeRegistry.getRecipes().keySet()) { if (getStackInSlot(0).getIsItemStackEqual(AltarRecipeRegistry.getRecipes().get(itemStack).getInput())) { - AltarRecipe recipe = AltarRecipeRegistry.getRecipeForInput(itemStack); + AltarRecipeRegistry.AltarRecipe recipe = AltarRecipeRegistry.getRecipeForInput(itemStack); if (altarTier.ordinal() >= recipe.getMinTier().ordinal()) { this.isActive = true; diff --git a/src/main/resources/assets/bloodmagic/lang/en_US.lang b/src/main/resources/assets/bloodmagic/lang/en_US.lang index 95b217f7..f9c9c654 100644 --- a/src/main/resources/assets/bloodmagic/lang/en_US.lang +++ b/src/main/resources/assets/bloodmagic/lang/en_US.lang @@ -138,5 +138,6 @@ chat.BloodMagic.damageSource=%s's soul became too weak # JustEnoughItems jei.BloodMagic.recipe.altar=Blood Altar +jei.BloodMagic.recipe.binding=Binding Ritual jei.BloodMagic.recipe.requiredLP=LP: %d jei.BloodMagic.recipe.requiredTier=Tier: %d