From cff3a3424b43f3701a2ceef39cf08e9a7154cee6 Mon Sep 17 00:00:00 2001 From: VT-14 Date: Tue, 10 Oct 2023 22:31:08 -0400 Subject: [PATCH] Added Error Flag to Hellfire Forge Added an error flag to the Hellfire Forge that tells players when the recipe isn't working due to not having enough Demon Will on hand. * Added flag texture to the Hellfire Forge's GUI. Also saved the texture more efficiently, decreasing file size. * Added translation keys for tooltip text. * added a boolean variable to the Tile, and a method to read it. * added the flag and tooltip to the Screen. I also tweaked the TileSoulForge's operation. The `|| burnTime > 0` check caused a minor bug where a player could start the recipe going, then swap to a gem without enough will and it would look like it would keep going. It seems to work fine without it. I also then could remove two if statements checking for the level being not client side, and having enough Will. the client side check was done earlier so was always true, and by removing the `burnTime > 0` alternative the minimum souls check is also already done and always true. --- .../assets/bloodmagic/lang/en_us.json | 2 ++ .../client/screens/ScreenSoulForge.java | 22 ++++++++++++++++-- .../common/data/GeneratorLanguage.java | 3 +++ .../bloodmagic/common/tile/TileSoulForge.java | 21 ++++++++++------- .../bloodmagic/textures/gui/soulforge.png | Bin 25888 -> 11584 bytes 5 files changed, 37 insertions(+), 11 deletions(-) diff --git a/src/generated/resources/assets/bloodmagic/lang/en_us.json b/src/generated/resources/assets/bloodmagic/lang/en_us.json index f8d39db29..7e6b13100 100644 --- a/src/generated/resources/assets/bloodmagic/lang/en_us.json +++ b/src/generated/resources/assets/bloodmagic/lang/en_us.json @@ -762,6 +762,8 @@ "tooltip.bloodmagic.soulGem.lesser": "A gem used to contain some will.", "tooltip.bloodmagic.soulGem.petty": "A gem used to contain a little will.", "tooltip.bloodmagic.soulSnare.desc": "Throw at a monster and then kill them to obtain their demonic will.", + "tooltip.bloodmagic.soulforge.willerror.text": "Not enough Demon Will for this recipe.", + "tooltip.bloodmagic.soulforge.willerror.title": "Demon Will Error", "tooltip.bloodmagic.specialspawn": "You feel a spatial distortion in this room...", "tooltip.bloodmagic.syntheticpoint.desc": "A synthetic living armour point. It's... wriggling.", "tooltip.bloodmagic.tagfilter.desc": "Filters based off of an item's ItemTags.", diff --git a/src/main/java/wayoftime/bloodmagic/client/screens/ScreenSoulForge.java b/src/main/java/wayoftime/bloodmagic/client/screens/ScreenSoulForge.java index 66ed29eed..5f3d37e21 100644 --- a/src/main/java/wayoftime/bloodmagic/client/screens/ScreenSoulForge.java +++ b/src/main/java/wayoftime/bloodmagic/client/screens/ScreenSoulForge.java @@ -1,7 +1,6 @@ package wayoftime.bloodmagic.client.screens; -import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.PoseStack; +import net.minecraft.ChatFormatting; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; @@ -11,10 +10,15 @@ import wayoftime.bloodmagic.common.container.tile.ContainerSoulForge; import wayoftime.bloodmagic.common.tile.TileSoulForge; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + public class ScreenSoulForge extends ScreenBase { private static final ResourceLocation background = new ResourceLocation(BloodMagic.MODID, "textures/gui/soulforge.png"); public Container tileSoulForge; + private static final List willError = new ArrayList(); public ScreenSoulForge(ContainerSoulForge container, Inventory playerInventory, Component title) { @@ -22,6 +26,11 @@ public ScreenSoulForge(ContainerSoulForge container, Inventory playerInventory, tileSoulForge = container.tileForge; this.imageWidth = 176; this.imageHeight = 205; + + + willError.clear(); + willError.add(Component.translatable("tooltip.bloodmagic.soulforge.willerror.title").withStyle(ChatFormatting.RED)); + willError.add(Component.translatable("tooltip.bloodmagic.soulforge.willerror.text").withStyle(ChatFormatting.GRAY)); } @Override @@ -65,6 +74,13 @@ protected void renderBg(GuiGraphics guiGraphics, float partialTicks, int mouseX, int l = this.getCookProgressScaled(90); guiGraphics.blit(background, i + 115, j + 14 + 90 - l, 176, 90 - l, 18, l); + + if (getWillFlag()) + { + guiGraphics.blit(background, i + 116, j + 51, 194, 0, 16, 16); + if (mouseX >= i + 116 && mouseX < i + 116 + 16 && mouseY >= j + 51 && mouseY < j + 51 + 16) + guiGraphics.renderTooltip(this.font, willError, Optional.empty(), mouseX, mouseY); + } } // @@ -79,4 +95,6 @@ public int getCookProgressScaled(int scale) // System.out.println(this.container.data.get(0)); return (int) (progress * scale); } + + public boolean getWillFlag() { return ((TileSoulForge) tileSoulForge).getWillFlagForGUI(); } } \ No newline at end of file diff --git a/src/main/java/wayoftime/bloodmagic/common/data/GeneratorLanguage.java b/src/main/java/wayoftime/bloodmagic/common/data/GeneratorLanguage.java index bd37526a2..f463262a6 100644 --- a/src/main/java/wayoftime/bloodmagic/common/data/GeneratorLanguage.java +++ b/src/main/java/wayoftime/bloodmagic/common/data/GeneratorLanguage.java @@ -184,6 +184,9 @@ protected void addTranslations() add("tooltip.bloodmagic.alchemytable.lperror.title", "Soul Network Error"); add("tooltip.bloodmagic.alchemytable.lperror.text", "Insufficient LP in Soul Network, or Blood Orb is not Bound."); + add("tooltip.bloodmagic.soulforge.willerror.title", "Demon Will Error"); + add("tooltip.bloodmagic.soulforge.willerror.text", "Not enough Demon Will for this recipe."); + add("tooltip.bloodmagic.incorrectKey", "The key does not fit in this lock..."); add("tooltip.bloodmagic.specialspawn", "You feel a spatial distortion in this room..."); add("tooltip.bloodmagic.blockeddoor", "The lock breaks and fizzles out of existence!"); diff --git a/src/main/java/wayoftime/bloodmagic/common/tile/TileSoulForge.java b/src/main/java/wayoftime/bloodmagic/common/tile/TileSoulForge.java index fd7fc6002..63b5022b3 100644 --- a/src/main/java/wayoftime/bloodmagic/common/tile/TileSoulForge.java +++ b/src/main/java/wayoftime/bloodmagic/common/tile/TileSoulForge.java @@ -42,6 +42,8 @@ public class TileSoulForge extends TileInventory implements MenuProvider, IDemon public int burnTime = 0; + public boolean showWillFlag = false; // show an insufficient will flag in the GUI. + public TileSoulForge(BlockEntityType type, BlockPos pos, BlockState state) { super(type, 6, "soulforge", pos, state); @@ -104,6 +106,7 @@ public void tick() { if (!hasSoulGemOrSoul()) { + showWillFlag = false; // clear flag if there is no Will Holder. burnTime = 0; return; } @@ -148,10 +151,11 @@ public void tick() typeInGem = type; } } - if (soulsInGem >= recipe.getMinimumSouls() || burnTime > 0) + if (soulsInGem >= recipe.getMinimumSouls()) { if (canCraft(recipe)) { + showWillFlag = false; // clear flag if crafting is in progress. burnTime++; if (burnTime == ticksRequired) @@ -161,16 +165,10 @@ public void tick() double requiredSouls = recipe.getSoulDrain(); if (requiredSouls > 0) { - if (!getLevel().isClientSide && soulsInGem >= recipe.getMinimumSouls()) - { - consumeSouls(typeInGem, requiredSouls); - } + consumeSouls(typeInGem, requiredSouls); } - - if (!getLevel().isClientSide && soulsInGem >= recipe.getMinimumSouls()) - craftItem(recipe); + craftItem(recipe); } - burnTime = 0; } else if (burnTime > ticksRequired + 10) { @@ -178,14 +176,17 @@ public void tick() } } else { + showWillFlag = false; // clear flag if something else is blocking the crafting process. burnTime = 0; } } else { + showWillFlag = true; // show flag if not enough souls. burnTime = 0; } } else { + showWillFlag = false; // clear flag if no recipe. burnTime = 0; } } @@ -458,4 +459,6 @@ public double getCurrentWill(EnumDemonWillType type) { return 0; } + + public boolean getWillFlagForGUI() { return this.showWillFlag; } } diff --git a/src/main/resources/assets/bloodmagic/textures/gui/soulforge.png b/src/main/resources/assets/bloodmagic/textures/gui/soulforge.png index 641d2cf6df2c50ae578ab3ddeb2ff5be7ac2e0f0..bcd5fd000f69f81e125bda369939b8b507b457d1 100644 GIT binary patch literal 11584 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 literal 25888 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