diff --git a/gradle.properties b/gradle.properties index 45577e5..1ed3a20 100644 --- a/gradle.properties +++ b/gradle.properties @@ -19,5 +19,5 @@ loader_version_range=[1,) mod_id=bnstoolkit mod_name=Brass and Sigil Toolkit mod_license=All Rights Reserved -mod_version=0.8.1 +mod_version=0.8.2 mod_group_id=uk.sijbers.bnstoolkit diff --git a/src/main/java/uk/sijbers/bnstoolkit/client/BnsKeyBindings.java b/src/main/java/uk/sijbers/bnstoolkit/client/BnsKeyBindings.java index b91b0c9..cce3ef9 100644 --- a/src/main/java/uk/sijbers/bnstoolkit/client/BnsKeyBindings.java +++ b/src/main/java/uk/sijbers/bnstoolkit/client/BnsKeyBindings.java @@ -10,7 +10,7 @@ import net.neoforged.neoforge.client.settings.KeyConflictContext; import org.lwjgl.glfw.GLFW; import uk.sijbers.bnstoolkit.BnsToolkit; import uk.sijbers.bnstoolkit.client.screens.BountyBoardScreen; -import uk.sijbers.bnstoolkit.client.screens.CountingHouseScreen; +import uk.sijbers.bnstoolkit.client.screens.ExchangeScreen; import uk.sijbers.bnstoolkit.client.screens.HubScreen; import uk.sijbers.bnstoolkit.client.screens.PlotPurchaseScreen; import uk.sijbers.bnstoolkit.client.screens.QuestLogScreen; @@ -114,7 +114,7 @@ public final class BnsKeyBindings { } if (OPEN_SHOP.consumeClick()) { NetSend.requestSnapshot("SELL"); - new CountingHouseScreen().openGui(); + new ExchangeScreen().openGui(); } if (OPEN_QUESTLOG.consumeClick()) { NetSend.requestSnapshot("ALL"); diff --git a/src/main/java/uk/sijbers/bnstoolkit/client/OpenScreenDispatcher.java b/src/main/java/uk/sijbers/bnstoolkit/client/OpenScreenDispatcher.java index 1f900af..f677211 100644 --- a/src/main/java/uk/sijbers/bnstoolkit/client/OpenScreenDispatcher.java +++ b/src/main/java/uk/sijbers/bnstoolkit/client/OpenScreenDispatcher.java @@ -2,7 +2,7 @@ package uk.sijbers.bnstoolkit.client; import uk.sijbers.bnstoolkit.BnsToolkit; import uk.sijbers.bnstoolkit.client.screens.BountyBoardScreen; -import uk.sijbers.bnstoolkit.client.screens.CountingHouseScreen; +import uk.sijbers.bnstoolkit.client.screens.ExchangeScreen; import uk.sijbers.bnstoolkit.client.screens.HubScreen; import uk.sijbers.bnstoolkit.client.screens.PlotPurchaseScreen; import uk.sijbers.bnstoolkit.client.screens.QuestLogScreen; @@ -25,7 +25,7 @@ public final class OpenScreenDispatcher { case "tier" -> { NetSend.requestSnapshot("TIER"); new TierUpgradeScreen().openGui(); } case "bounty" -> { NetSend.requestSnapshot("BOUNTY"); new BountyBoardScreen().openGui(); } case "plot" -> { NetSend.requestSnapshot("PLOT"); new PlotPurchaseScreen().openGui(); } - case "counthouse" -> { NetSend.requestSnapshot("SELL"); new CountingHouseScreen().openGui(); } + case "exchange" -> { NetSend.requestSnapshot("SELL"); new ExchangeScreen().openGui(); } case "journal" -> { NetSend.requestSnapshot("ALL"); new QuestLogScreen().openGui(); } case "hub" -> { NetSend.requestSnapshot("ALL"); new HubScreen().openGui(); } default -> BnsToolkit.LOG.warn("[bnstoolkit] unknown screen requested: {}", which); diff --git a/src/main/java/uk/sijbers/bnstoolkit/client/screens/BountyBoardScreen.java b/src/main/java/uk/sijbers/bnstoolkit/client/screens/BountyBoardScreen.java index 6f78a80..1a31d92 100644 --- a/src/main/java/uk/sijbers/bnstoolkit/client/screens/BountyBoardScreen.java +++ b/src/main/java/uk/sijbers/bnstoolkit/client/screens/BountyBoardScreen.java @@ -120,6 +120,7 @@ public final class BountyBoardScreen extends BaseBnsScreen { if (isMouseOver) { selected = b.id(); TierUpgradeScreen.playClick(); + getGui().refreshWidgets(); // re-init so detail pane reads new selection return true; } return false; diff --git a/src/main/java/uk/sijbers/bnstoolkit/client/screens/CountingHouseScreen.java b/src/main/java/uk/sijbers/bnstoolkit/client/screens/ExchangeScreen.java similarity index 94% rename from src/main/java/uk/sijbers/bnstoolkit/client/screens/CountingHouseScreen.java rename to src/main/java/uk/sijbers/bnstoolkit/client/screens/ExchangeScreen.java index bb9fe36..0a29221 100644 --- a/src/main/java/uk/sijbers/bnstoolkit/client/screens/CountingHouseScreen.java +++ b/src/main/java/uk/sijbers/bnstoolkit/client/screens/ExchangeScreen.java @@ -20,7 +20,7 @@ import uk.sijbers.bnstoolkit.data.SpurBalance; import uk.sijbers.bnstoolkit.network.NetSend; /** - * The Counting House — wealth exchange screen. + * The Exchange — wealth exchange screen. * * Players bring diamonds / netherite / ancient debris and convert them * to spurs credited directly to their bank. Reached via the Counting @@ -34,9 +34,9 @@ import uk.sijbers.bnstoolkit.network.NetSend; *

Bottom-right: Back (returns to Hub if opened from there) / * Close (NPC-opened path). */ -public final class CountingHouseScreen extends BaseBnsScreen { - public CountingHouseScreen() { - super(Component.translatable("screen.bnstoolkit.counting_house")); +public final class ExchangeScreen extends BaseBnsScreen { + public ExchangeScreen() { + super(Component.translatable("screen.bnstoolkit.exchange")); } private static ResourceLocation selected = ResourceLocation.parse("minecraft:diamond"); @@ -115,6 +115,11 @@ public final class CountingHouseScreen extends BaseBnsScreen { if (isMouseOver) { selected = itemId; TierUpgradeScreen.playClick(); + // Detail pane was built with the old selected value — re-init + // the whole screen so SellDetail.addWidgets reads the new + // selection. FTB Library's refreshWidgets clears + re-adds + // + recurses into sub-panels, which is what we need. + getGui().refreshWidgets(); return true; } return false; diff --git a/src/main/java/uk/sijbers/bnstoolkit/client/screens/HubScreen.java b/src/main/java/uk/sijbers/bnstoolkit/client/screens/HubScreen.java index 2277f0b..d9cbf47 100644 --- a/src/main/java/uk/sijbers/bnstoolkit/client/screens/HubScreen.java +++ b/src/main/java/uk/sijbers/bnstoolkit/client/screens/HubScreen.java @@ -21,7 +21,7 @@ import uk.sijbers.bnstoolkit.network.NetSend; * wealth, current shop fee, slot caps, active bounties count, owned * plots count. The Quest Log button opens the read-only quest overview. * - *

Transactional features (Counting House exchange, Bounty Board, + *

Transactional features (Exchange exchange, Bounty Board, * Tier Upgrade, Plot Office) are not reachable from the hub by design. * Players visit the corresponding NPC at spawn — that's what makes spawn * worth caring about. NPCs invoke {@code /bns open } on the diff --git a/src/main/java/uk/sijbers/bnstoolkit/client/screens/PlotPurchaseScreen.java b/src/main/java/uk/sijbers/bnstoolkit/client/screens/PlotPurchaseScreen.java index 7b9b0de..370ac7d 100644 --- a/src/main/java/uk/sijbers/bnstoolkit/client/screens/PlotPurchaseScreen.java +++ b/src/main/java/uk/sijbers/bnstoolkit/client/screens/PlotPurchaseScreen.java @@ -92,6 +92,7 @@ public final class PlotPurchaseScreen extends BaseBnsScreen { if (isMouseOver) { selected = p.id(); TierUpgradeScreen.playClick(); + getGui().refreshWidgets(); return true; } return false; diff --git a/src/main/java/uk/sijbers/bnstoolkit/client/screens/QuestLogScreen.java b/src/main/java/uk/sijbers/bnstoolkit/client/screens/QuestLogScreen.java index 6efe333..f4efd27 100644 --- a/src/main/java/uk/sijbers/bnstoolkit/client/screens/QuestLogScreen.java +++ b/src/main/java/uk/sijbers/bnstoolkit/client/screens/QuestLogScreen.java @@ -26,10 +26,10 @@ import java.util.Map; *

* @@ -85,8 +85,8 @@ public final class QuestLogScreen extends BaseBnsScreen { add(new Header(this,"")); - // Section 2: Counting House rates - add(new Header(this,"§e=== Counting House Rates ===")); + // Section 2: Exchange rates + add(new Header(this,"§e=== Exchange Rates ===")); int fee = ClientBnsState.effectiveFeePct; add(new Header(this,"§7 Your tier fee: §c" + fee + "%§r")); for (Map.Entry entry : SellCatalogue.PRICES.entrySet()) { diff --git a/src/main/java/uk/sijbers/bnstoolkit/data/SellCatalogue.java b/src/main/java/uk/sijbers/bnstoolkit/data/SellCatalogue.java index 3199df5..f610fe1 100644 --- a/src/main/java/uk/sijbers/bnstoolkit/data/SellCatalogue.java +++ b/src/main/java/uk/sijbers/bnstoolkit/data/SellCatalogue.java @@ -6,11 +6,11 @@ import java.util.LinkedHashMap; import java.util.Map; /** - * Counting House exchange rates. + * Exchange rates — the four wealth-tokens the Exchange will buy. * - *

The Counting House is the realm's wealth exchange — not a general - * shop. It accepts the universal wealth-store items (diamond, netherite, - * ancient debris) and credits the player's bank account in spurs. + *

The Exchange is the realm's wealth exchange — not a general + * shop. It accepts diamond, diamond_block, netherite_ingot, and + * ancient_debris, crediting the player's bank account in spurs. * *

Iron, gold, coal, redstone, mob drops etc. are not here. * Players who want to sell those operate their own shops with diff --git a/src/main/java/uk/sijbers/bnstoolkit/network/s2c/TierStateUpdatePacket.java b/src/main/java/uk/sijbers/bnstoolkit/network/s2c/TierStateUpdatePacket.java index 8805fe4..29409fa 100644 --- a/src/main/java/uk/sijbers/bnstoolkit/network/s2c/TierStateUpdatePacket.java +++ b/src/main/java/uk/sijbers/bnstoolkit/network/s2c/TierStateUpdatePacket.java @@ -11,7 +11,7 @@ import uk.sijbers.bnstoolkit.client.ClientBnsState; /** * S2C: civic tier (1..13), cash on hand (inventory coins), bank balance - * (Numismatics personal account), and the effective Counting House fee%. + * (Numismatics personal account), and the effective Exchange fee%. * * Cash + bank are sent separately so the hub UI can break them out * ("on hand" vs "in bank") while the HUD overlay sums them for the diff --git a/src/main/java/uk/sijbers/bnstoolkit/server/BnsServerCommands.java b/src/main/java/uk/sijbers/bnstoolkit/server/BnsServerCommands.java index fb836c1..404cddd 100644 --- a/src/main/java/uk/sijbers/bnstoolkit/server/BnsServerCommands.java +++ b/src/main/java/uk/sijbers/bnstoolkit/server/BnsServerCommands.java @@ -35,7 +35,7 @@ public final class BnsServerCommands { private BnsServerCommands() {} private static final String[] SCREEN_NAMES = { - "hub", "tier", "bounty", "plot", "counthouse", "journal" + "hub", "tier", "bounty", "plot", "exchange", "journal" }; @SubscribeEvent @@ -74,7 +74,7 @@ public final class BnsServerCommands { for (String s : SCREEN_NAMES) if (s.equals(which)) { ok = true; break; } if (!ok) { src.sendFailure(Component.literal("Unknown screen: " + which - + ". Options: hub, tier, bounty, plot, counthouse, journal")); + + ". Options: hub, tier, bounty, plot, exchange, journal")); return 0; } ServerEconomyBridge.openScreen(sp, which); diff --git a/src/main/java/uk/sijbers/bnstoolkit/server/CountingHouseCommands.java b/src/main/java/uk/sijbers/bnstoolkit/server/CountingHouseCommands.java index 4446f02..c8b96f1 100644 --- a/src/main/java/uk/sijbers/bnstoolkit/server/CountingHouseCommands.java +++ b/src/main/java/uk/sijbers/bnstoolkit/server/CountingHouseCommands.java @@ -22,13 +22,13 @@ import uk.sijbers.bnstoolkit.economy.NumismaticsBridge; import uk.sijbers.bnstoolkit.network.ServerEconomyBridge; /** - * Counting House commands — the wealth-exchange + wallet inspection + * Exchange commands — the wealth-exchange + wallet inspection * verbs that used to live in KubeJS. * *