From dda1ae8ab14f309b37a3d7e5d634f41670fd2c73 Mon Sep 17 00:00:00 2001 From: Marcel Sondaar Date: Sun, 3 Aug 2025 13:19:53 +0200 Subject: [PATCH 1/3] fix: Make mana fountains actually consume the mana instead of just checking they have enough --- .../tileentity/SimpleAutomationTileEntity.java | 4 +++- .../tileentity/TileAdvancedAlchemyPool.java | 6 ++++-- .../addons/tileentity/TileAdvancedAlfPortal.java | 5 +++++ .../tileentity/TileAdvancedConjurationPool.java | 7 ++++--- .../tileentity/TileAdvancedCraftingPool.java | 7 ++++--- .../addons/tileentity/TileAdvancedManaPool.java | 15 ++++++++++++--- 6 files changed, 32 insertions(+), 12 deletions(-) diff --git a/src/main/java/net/fuzzycraft/botanichorizons/addons/tileentity/SimpleAutomationTileEntity.java b/src/main/java/net/fuzzycraft/botanichorizons/addons/tileentity/SimpleAutomationTileEntity.java index beb8b3c..66c32ad 100644 --- a/src/main/java/net/fuzzycraft/botanichorizons/addons/tileentity/SimpleAutomationTileEntity.java +++ b/src/main/java/net/fuzzycraft/botanichorizons/addons/tileentity/SimpleAutomationTileEntity.java @@ -1,6 +1,5 @@ package net.fuzzycraft.botanichorizons.addons.tileentity; -import cpw.mods.fml.common.FMLLog; import net.fuzzycraft.botanichorizons.util.InventoryHelper; import net.fuzzycraft.botanichorizons.util.multiblock.MultiblockHelper; import net.minecraft.entity.item.EntityItem; @@ -42,6 +41,8 @@ public SimpleAutomationTileEntity(MultiblockHelper structure) { // Business logic + abstract void consumeNonItemResources(R recipe, int parallel); + // process recipes public void handleCrafts() { int parallel = 64; @@ -88,6 +89,7 @@ public void handleCrafts() { // perform recipe in batch ItemStack output = output_instance.copy(); output.stackSize = output.stackSize * parallel; + consumeNonItemResources(recipe, parallel); // commit to inventory inventoryHandler.setInventorySlotContents(INPUT_SIZE + OUTPUT_SIZE - 1, output); diff --git a/src/main/java/net/fuzzycraft/botanichorizons/addons/tileentity/TileAdvancedAlchemyPool.java b/src/main/java/net/fuzzycraft/botanichorizons/addons/tileentity/TileAdvancedAlchemyPool.java index eb4750b..d15e809 100644 --- a/src/main/java/net/fuzzycraft/botanichorizons/addons/tileentity/TileAdvancedAlchemyPool.java +++ b/src/main/java/net/fuzzycraft/botanichorizons/addons/tileentity/TileAdvancedAlchemyPool.java @@ -17,8 +17,10 @@ public class TileAdvancedAlchemyPool extends TileAdvancedManaPool { + public static final int MANA_CAPACITY = 50000; + public TileAdvancedAlchemyPool() { - super(Multiblocks.poolAlchemy); + super(Multiblocks.poolAlchemy, MANA_CAPACITY); } @Override @@ -42,6 +44,6 @@ public ItemStack getWrenchDrop(EntityPlayer entityPlayer) { public void renderHUD(Minecraft mc, ScaledResolution res) { ChargeState state = ChargeState.genState(isOnline, storedMana, ACTIVATE_MANA); String tooltip = state.getLocalisedHudString(BHBlocks.autoPoolAlchemy); - HUDHandler.drawSimpleManaHUD(state.color, storedMana, MANA_CAPACITY, tooltip, res); + HUDHandler.drawSimpleManaHUD(state.color, storedMana, manaCapacity, tooltip, res); } } diff --git a/src/main/java/net/fuzzycraft/botanichorizons/addons/tileentity/TileAdvancedAlfPortal.java b/src/main/java/net/fuzzycraft/botanichorizons/addons/tileentity/TileAdvancedAlfPortal.java index 79a8b3a..98fedf7 100644 --- a/src/main/java/net/fuzzycraft/botanichorizons/addons/tileentity/TileAdvancedAlfPortal.java +++ b/src/main/java/net/fuzzycraft/botanichorizons/addons/tileentity/TileAdvancedAlfPortal.java @@ -113,6 +113,11 @@ public RecipeElvenTrade findMatchingRecipe(@Nonnull ItemStack stack) { return null; } + @Override + void consumeNonItemResources(RecipeElvenTrade recipe, int parallel) { + storedMana = storedMana - parallel * RECIPE_MANA; + } + // Botania has an annoying habit of specifying multiple ingredients as ["oreDict", "oreDict", "oreDict"] // Reduce these cases into a simple number // diff --git a/src/main/java/net/fuzzycraft/botanichorizons/addons/tileentity/TileAdvancedConjurationPool.java b/src/main/java/net/fuzzycraft/botanichorizons/addons/tileentity/TileAdvancedConjurationPool.java index 7ac2533..559c199 100644 --- a/src/main/java/net/fuzzycraft/botanichorizons/addons/tileentity/TileAdvancedConjurationPool.java +++ b/src/main/java/net/fuzzycraft/botanichorizons/addons/tileentity/TileAdvancedConjurationPool.java @@ -10,7 +10,6 @@ import net.minecraft.client.gui.ScaledResolution; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; -import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import vazkii.botania.api.BotaniaAPI; import vazkii.botania.api.recipe.RecipeManaInfusion; @@ -18,8 +17,10 @@ public class TileAdvancedConjurationPool extends TileAdvancedManaPool { + public static final int MANA_CAPACITY = 1000000; + public TileAdvancedConjurationPool() { - super(Multiblocks.poolConjuration); + super(Multiblocks.poolConjuration, MANA_CAPACITY); } @Override @@ -43,6 +44,6 @@ public ItemStack getWrenchDrop(EntityPlayer entityPlayer) { public void renderHUD(Minecraft mc, ScaledResolution res) { ChargeState state = ChargeState.genState(isOnline, storedMana, ACTIVATE_MANA); String tooltip = state.getLocalisedHudString(BHBlocks.autoPoolConjuration); - HUDHandler.drawSimpleManaHUD(state.color, storedMana, MANA_CAPACITY, tooltip, res); + HUDHandler.drawSimpleManaHUD(state.color, storedMana, manaCapacity, tooltip, res); } } diff --git a/src/main/java/net/fuzzycraft/botanichorizons/addons/tileentity/TileAdvancedCraftingPool.java b/src/main/java/net/fuzzycraft/botanichorizons/addons/tileentity/TileAdvancedCraftingPool.java index dc7d0df..13a8a89 100644 --- a/src/main/java/net/fuzzycraft/botanichorizons/addons/tileentity/TileAdvancedCraftingPool.java +++ b/src/main/java/net/fuzzycraft/botanichorizons/addons/tileentity/TileAdvancedCraftingPool.java @@ -1,6 +1,5 @@ package net.fuzzycraft.botanichorizons.addons.tileentity; -import cpw.mods.fml.common.FMLLog; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.fuzzycraft.botanichorizons.addons.BHBlocks; @@ -18,8 +17,10 @@ public class TileAdvancedCraftingPool extends TileAdvancedManaPool { + public static final int MANA_CAPACITY = 50000; + public TileAdvancedCraftingPool() { - super(Multiblocks.poolInfusion); + super(Multiblocks.poolInfusion, MANA_CAPACITY); } @Override @@ -45,6 +46,6 @@ public ItemStack getWrenchDrop(EntityPlayer entityPlayer) { public void renderHUD(Minecraft mc, ScaledResolution res) { ChargeState state = ChargeState.genState(isOnline, storedMana, ACTIVATE_MANA); String tooltip = state.getLocalisedHudString(BHBlocks.autoPoolInfusion); - HUDHandler.drawSimpleManaHUD(state.color, storedMana, MANA_CAPACITY, tooltip, res); + HUDHandler.drawSimpleManaHUD(state.color, storedMana, manaCapacity, tooltip, res); } } diff --git a/src/main/java/net/fuzzycraft/botanichorizons/addons/tileentity/TileAdvancedManaPool.java b/src/main/java/net/fuzzycraft/botanichorizons/addons/tileentity/TileAdvancedManaPool.java index 77aa0d3..a210d9f 100644 --- a/src/main/java/net/fuzzycraft/botanichorizons/addons/tileentity/TileAdvancedManaPool.java +++ b/src/main/java/net/fuzzycraft/botanichorizons/addons/tileentity/TileAdvancedManaPool.java @@ -1,5 +1,6 @@ package net.fuzzycraft.botanichorizons.addons.tileentity; +import cpw.mods.fml.common.FMLLog; import net.fuzzycraft.botanichorizons.util.Facing2D; import net.fuzzycraft.botanichorizons.util.multiblock.MultiblockHelper; import net.minecraft.entity.player.EntityPlayer; @@ -13,7 +14,7 @@ public abstract class TileAdvancedManaPool extends SimpleAutomationTileEntity { // Balance - public static final int MANA_CAPACITY = 50000; + public final int manaCapacity; public static final int CYCLE_TICKS = 20; // time between checks public static final int MAX_PARALLELS = 64; public static final int ACTIVATE_MANA = 1000; @@ -22,8 +23,9 @@ public abstract class TileAdvancedManaPool extends SimpleAutomationTileEntity Date: Sun, 3 Aug 2025 13:25:45 +0200 Subject: [PATCH 2/3] chore: Remove debugging statements --- .../botanichorizons/addons/tileentity/TileAdvancedManaPool.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/net/fuzzycraft/botanichorizons/addons/tileentity/TileAdvancedManaPool.java b/src/main/java/net/fuzzycraft/botanichorizons/addons/tileentity/TileAdvancedManaPool.java index a210d9f..e71549a 100644 --- a/src/main/java/net/fuzzycraft/botanichorizons/addons/tileentity/TileAdvancedManaPool.java +++ b/src/main/java/net/fuzzycraft/botanichorizons/addons/tileentity/TileAdvancedManaPool.java @@ -1,6 +1,5 @@ package net.fuzzycraft.botanichorizons.addons.tileentity; -import cpw.mods.fml.common.FMLLog; import net.fuzzycraft.botanichorizons.util.Facing2D; import net.fuzzycraft.botanichorizons.util.multiblock.MultiblockHelper; import net.minecraft.entity.player.EntityPlayer; @@ -69,7 +68,6 @@ public int getAvailableParallels(@NotNull RecipeManaInfusion recipe) { void consumeNonItemResources(RecipeManaInfusion recipe, int parallel) { int currentMana = storedMana; storedMana = storedMana - parallel * recipe.getManaToConsume(); - FMLLog.info("Mana: %d - %d * %d = %d", currentMana, parallel, recipe.getManaToConsume(), storedMana); } @Override From 5e60295b8012d78bfe56f792729f824f5ca44cdd Mon Sep 17 00:00:00 2001 From: combusterf Date: Mon, 4 Aug 2025 21:54:32 +0200 Subject: [PATCH 3/3] Apply suggestions from code review Co-authored-by: koolkrafter5 --- .../addons/tileentity/TileAdvancedAlfPortal.java | 2 +- .../addons/tileentity/TileAdvancedManaPool.java | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/fuzzycraft/botanichorizons/addons/tileentity/TileAdvancedAlfPortal.java b/src/main/java/net/fuzzycraft/botanichorizons/addons/tileentity/TileAdvancedAlfPortal.java index 98fedf7..a13554e 100644 --- a/src/main/java/net/fuzzycraft/botanichorizons/addons/tileentity/TileAdvancedAlfPortal.java +++ b/src/main/java/net/fuzzycraft/botanichorizons/addons/tileentity/TileAdvancedAlfPortal.java @@ -115,7 +115,7 @@ public RecipeElvenTrade findMatchingRecipe(@Nonnull ItemStack stack) { @Override void consumeNonItemResources(RecipeElvenTrade recipe, int parallel) { - storedMana = storedMana - parallel * RECIPE_MANA; + storedMana -= parallel * RECIPE_MANA; } // Botania has an annoying habit of specifying multiple ingredients as ["oreDict", "oreDict", "oreDict"] diff --git a/src/main/java/net/fuzzycraft/botanichorizons/addons/tileentity/TileAdvancedManaPool.java b/src/main/java/net/fuzzycraft/botanichorizons/addons/tileentity/TileAdvancedManaPool.java index e71549a..39eb31c 100644 --- a/src/main/java/net/fuzzycraft/botanichorizons/addons/tileentity/TileAdvancedManaPool.java +++ b/src/main/java/net/fuzzycraft/botanichorizons/addons/tileentity/TileAdvancedManaPool.java @@ -66,8 +66,7 @@ public int getAvailableParallels(@NotNull RecipeManaInfusion recipe) { @Override void consumeNonItemResources(RecipeManaInfusion recipe, int parallel) { - int currentMana = storedMana; - storedMana = storedMana - parallel * recipe.getManaToConsume(); + storedMana -= parallel * recipe.getManaToConsume(); } @Override