diff --git a/src/main/java/WayofTime/bloodmagic/altar/BloodAltar.java b/src/main/java/WayofTime/bloodmagic/altar/BloodAltar.java index 471a7869..136f34f5 100644 --- a/src/main/java/WayofTime/bloodmagic/altar/BloodAltar.java +++ b/src/main/java/WayofTime/bloodmagic/altar/BloodAltar.java @@ -307,9 +307,9 @@ public class BloodAltar if (recipe.doesRequiredItemMatch(tileAltar.getStackInSlot(0), altarTier)) { this.isActive = true; - this.result = new ItemStack(recipe.getOutput().getItem(), 1, recipe.getOutput().getMetadata()); + this.result = recipe.getOutput() == null ? null : new ItemStack(recipe.getOutput().getItem(), 1, recipe.getOutput().getMetadata()); this.liquidRequired = recipe.getSyphon(); - this.canBeFilled = recipe.isUseTag(); + this.canBeFilled = recipe.isFillable(); this.consumptionRate = recipe.getConsumeRate(); this.drainRate = recipe.getDrainRate(); return; @@ -402,14 +402,10 @@ public class BloodAltar if (totalCharge > 0) { - System.out.println("Working..."); - System.out.println("Total charge: " + totalCharge); - int chargeDrained = Math.min(liquidRequired * stackSize - progress, totalCharge); totalCharge -= chargeDrained; progress += chargeDrained; - System.out.println("Progress: " + progress); hasOperated = true; } diff --git a/src/main/java/WayofTime/bloodmagic/api/Constants.java b/src/main/java/WayofTime/bloodmagic/api/Constants.java index 40551922..1361bee8 100644 --- a/src/main/java/WayofTime/bloodmagic/api/Constants.java +++ b/src/main/java/WayofTime/bloodmagic/api/Constants.java @@ -33,7 +33,7 @@ public class Constants public static final String ALTAR_TIER = "upgradeLevel"; public static final String ALTAR_ACTIVE = "isActive"; public static final String ALTAR_LIQUID_REQ = "liquidRequired"; - public static final String ALTAR_FILLABLE = "canBeFilled"; + public static final String ALTAR_FILLABLE = "fillable"; public static final String ALTAR_UPGRADED = "isUpgraded"; public static final String ALTAR_CONSUMPTION_RATE = "consumptionRate"; public static final String ALTAR_DRAIN_RATE = "drainRate"; diff --git a/src/main/java/WayofTime/bloodmagic/api/registry/AltarRecipeRegistry.java b/src/main/java/WayofTime/bloodmagic/api/registry/AltarRecipeRegistry.java index dec43c56..9be5f004 100644 --- a/src/main/java/WayofTime/bloodmagic/api/registry/AltarRecipeRegistry.java +++ b/src/main/java/WayofTime/bloodmagic/api/registry/AltarRecipeRegistry.java @@ -24,6 +24,10 @@ public class AltarRecipeRegistry BloodMagicAPI.getLogger().error("Error adding altar recipe for %s. Recipe already exists.", recipe.input.getDisplayName(), recipe.output == null ? "" : " -> "); } + public static void registerFillRecipe(ItemStack orbStack, EnumAltarTier tier, int maxForOrb, int consumeRate, int drainRate) { + registerRecipe(new AltarRecipe(orbStack, orbStack, tier, maxForOrb, consumeRate, drainRate, true)); + } + public static AltarRecipe getRecipeForInput(ItemStack input) { return recipes.get(input); @@ -36,7 +40,7 @@ public class AltarRecipeRegistry { public final int syphon, consumeRate, drainRate; - public final boolean useTag; + public final boolean fillable; public final ItemStack input, output; public final EnumAltarTier minTier; @@ -59,10 +63,10 @@ public class AltarRecipeRegistry * - The rate at which LP is consumed during crafting * @param drainRate * - The rate at which LP is drained during crafting - * @param useTag - * - + * @param fillable + * - Whether the input item can be filled with LP. IE: Orbs */ - public AltarRecipe(ItemStack input, @Nullable ItemStack output, EnumAltarTier minTier, int syphon, int consumeRate, int drainRate, boolean useTag) + public AltarRecipe(ItemStack input, @Nullable ItemStack output, EnumAltarTier minTier, int syphon, int consumeRate, int drainRate, boolean fillable) { this.input = input; this.output = output; @@ -70,7 +74,7 @@ public class AltarRecipeRegistry this.syphon = syphon < 0 ? -syphon : syphon; this.consumeRate = consumeRate < 0 ? -consumeRate : consumeRate; this.drainRate = drainRate < 0 ? -drainRate : drainRate; - this.useTag = useTag; + this.fillable = fillable; } public AltarRecipe(ItemStack input, ItemStack output, EnumAltarTier minTier, int syphon, int consumeRate, int drainRate) @@ -78,18 +82,13 @@ public class AltarRecipeRegistry 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); - } - public boolean doesRequiredItemMatch(ItemStack comparedStack, EnumAltarTier tierCheck) { if (comparedStack == null || this.input == null) return false; return tierCheck.ordinal() >= minTier.ordinal() && this.input.isItemEqual(comparedStack);// && - // (this.useTag this.areRequiredTagsEqual(comparedStack) : true); + // (this.fillable this.areRequiredTagsEqual(comparedStack) : true); } } } diff --git a/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java b/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java index 2a136abb..03223de3 100644 --- a/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java +++ b/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java @@ -76,16 +76,18 @@ public class ModRecipes public static void addAltarRecipes() { // ONE - AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(OrbRegistry.getOrbStack(ModItems.orbWeak), OrbRegistry.getOrbStack(ModItems.orbWeak), EnumAltarTier.ONE, 5000, 2, 1, true)); + AltarRecipeRegistry.registerFillRecipe(OrbRegistry.getOrbStack(ModItems.orbWeak), EnumAltarTier.ONE, ModItems.orbWeak.getCapacity(), 2, 1); AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Items.diamond), OrbRegistry.getOrbStack(ModItems.orbWeak), EnumAltarTier.ONE, 2000, 2, 1)); AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Blocks.stone), new ItemStack(ModItems.slate), EnumAltarTier.ONE, 1000, 5, 5)); // TWO + AltarRecipeRegistry.registerFillRecipe(OrbRegistry.getOrbStack(ModItems.orbApprentice), EnumAltarTier.TWO, ModItems.orbApprentice.getCapacity(), 2, 1); AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Items.emerald), OrbRegistry.getOrbStack(ModItems.orbApprentice), EnumAltarTier.TWO, 5000, 2, 1)); AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(ModItems.slate), new ItemStack(ModItems.slate, 1, 1), EnumAltarTier.TWO, 2000, 5, 5)); AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Items.iron_sword), new ItemStack(ModItems.daggerOfSacrifice), EnumAltarTier.TWO, 3000, 5, 5)); // THREE + AltarRecipeRegistry.registerFillRecipe(OrbRegistry.getOrbStack(ModItems.orbMagician), EnumAltarTier.THREE, ModItems.orbMagician.getCapacity(), 5, 5); AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Blocks.gold_block), OrbRegistry.getOrbStack(ModItems.orbMagician), EnumAltarTier.THREE, 25000, 2, 1)); AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(ModItems.slate, 1, 1), new ItemStack(ModItems.slate, 1, 2), EnumAltarTier.THREE, 5000, 15, 10)); AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Blocks.obsidian), EnumRuneType.EARTH.getScribeStack(), EnumAltarTier.THREE, 1000, 5, 5)); @@ -95,13 +97,16 @@ public class ModRecipes AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(ModItems.lavaCrystal), new ItemStack(ModItems.activationCrystal), EnumAltarTier.THREE, 10000, 20, 10)); // FOUR + AltarRecipeRegistry.registerFillRecipe(OrbRegistry.getOrbStack(ModItems.orbMaster), EnumAltarTier.FOUR, ModItems.orbMaster.getCapacity(), 10, 10); AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(ModItems.slate, 1, 2), new ItemStack(ModItems.slate, 1, 3), EnumAltarTier.FOUR, 15000, 20, 20)); AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Blocks.coal_block), EnumRuneType.DUSK.getScribeStack(), EnumAltarTier.FOUR, 2000, 20, 10)); // FIVE + AltarRecipeRegistry.registerFillRecipe(OrbRegistry.getOrbStack(ModItems.orbArchmage), EnumAltarTier.FIVE, ModItems.orbArchmage.getCapacity(), 20, 20); AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(ModItems.slate, 1, 3), new ItemStack(ModItems.slate, 1, 4), EnumAltarTier.FIVE, 30000, 40, 100)); // SIX + AltarRecipeRegistry.registerFillRecipe(OrbRegistry.getOrbStack(ModItems.orbTranscendent), EnumAltarTier.SIX, ModItems.orbTranscendent.getCapacity(), 50, 50); AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(ModBlocks.crystal), OrbRegistry.getOrbStack(ModItems.orbTranscendent), EnumAltarTier.SIX, 200000, 100, 200)); AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Blocks.glowstone), EnumRuneType.DAWN.getScribeStack(), EnumAltarTier.SIX, 200000, 100, 200)); }