From 09a104314b0f3d264b061cdbcdced014f22593cb Mon Sep 17 00:00:00 2001 From: ctrlaltmilk Date: Wed, 25 Jun 2025 18:17:58 -0700 Subject: [PATCH] Backport WayofTime/BloodMagic@64660d2d282c620e36abf262cc26f49486b7d903 This makes measuring the amount of blood in an altar much easier - previous behavior of measuring the amount of LP in a soul network can be restored by placing a large bloodstone brick below the altar. --- .../common/block/BlockAltar.java | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/block/BlockAltar.java b/src/main/java/WayofTime/alchemicalWizardry/common/block/BlockAltar.java index 29ea6821..92a6286b 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/block/BlockAltar.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/block/BlockAltar.java @@ -71,12 +71,21 @@ public class BlockAltar extends BlockContainer { TileEntity tile = world.getTileEntity(x, y, z); if (tile instanceof TEAltar) { - ItemStack stack = ((TEAltar) tile).getStackInSlot(0); + TEAltar altar = (TEAltar) tile; - if (stack != null && stack.getItem() instanceof EnergyBattery) { - EnergyBattery bloodOrb = (EnergyBattery) stack.getItem(); - int maxEssence = bloodOrb.getMaxEssence(); - int currentEssence = bloodOrb.getCurrentEssence(stack); + if (world.getBlock(x, y - 1, z) instanceof LargeBloodStoneBrick) { + ItemStack stack = altar.getStackInSlot(0); + + if (stack != null && stack.getItem() instanceof EnergyBattery) { + EnergyBattery bloodOrb = (EnergyBattery) stack.getItem(); + int maxEssence = bloodOrb.getMaxEssence(); + int currentEssence = bloodOrb.getCurrentEssence(stack); + int level = currentEssence * 15 / maxEssence; + return Math.min(15, level) % 16; + } + } else { + int maxEssence = altar.getCapacity(); + int currentEssence = altar.getCurrentBlood(); int level = currentEssence * 15 / maxEssence; return Math.min(15, level) % 16; }