diff --git a/gradle.properties b/gradle.properties index f100321..9fd3025 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.6.0 +mod_version=0.6.1 mod_group_id=uk.sijbers.bnstoolkit 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 ade38ea..101da3d 100644 --- a/src/main/java/uk/sijbers/bnstoolkit/client/screens/BountyBoardScreen.java +++ b/src/main/java/uk/sijbers/bnstoolkit/client/screens/BountyBoardScreen.java @@ -34,8 +34,16 @@ public final class BountyBoardScreen extends BaseBnsScreen { @Override public void addWidgets() { - add(new BountyList(this)); - add(new BountyDetail(this)); + BountyList list = new BountyList(this); + list.setPos(8, contentTop()); + list.setSize(170, getHeight() - 30); + add(list); + + BountyDetail detail = new BountyDetail(this); + detail.setPos(186, contentTop()); + detail.setSize(getWidth() - 194, getHeight() - 30); + add(detail); + add(SimpleTextButton.create(this, Component.literal("Refresh"), Icons.REFRESH, @@ -44,10 +52,6 @@ public final class BountyBoardScreen extends BaseBnsScreen { @Override public void alignWidgets() { - getWidgets().get(0).setPos(8, contentTop()); - getWidgets().get(0).setSize(170, getHeight() - 30); - getWidgets().get(1).setPos(186, contentTop()); - getWidgets().get(1).setSize(getWidth() - 194, getHeight() - 30); Widget rf = getWidgets().get(2); rf.setSize(60, 16); rf.setPos(getWidth() - 68, getHeight() - 22); diff --git a/src/main/java/uk/sijbers/bnstoolkit/client/screens/CountingHouseScreen.java b/src/main/java/uk/sijbers/bnstoolkit/client/screens/CountingHouseScreen.java index 24eed9b..6e28373 100644 --- a/src/main/java/uk/sijbers/bnstoolkit/client/screens/CountingHouseScreen.java +++ b/src/main/java/uk/sijbers/bnstoolkit/client/screens/CountingHouseScreen.java @@ -47,8 +47,16 @@ public final class CountingHouseScreen extends BaseBnsScreen { @Override public void addWidgets() { - add(new ItemGrid(this)); - add(new SellDetail(this)); + ItemGrid grid = new ItemGrid(this); + grid.setPos(8, contentTop()); + grid.setSize(170, getHeight() - 30); + add(grid); + + SellDetail detail = new SellDetail(this); + detail.setPos(186, contentTop()); + detail.setSize(getWidth() - 194, getHeight() - 30); + add(detail); + add(SimpleTextButton.create(this, Component.literal("Refresh"), Icons.REFRESH, @@ -57,10 +65,6 @@ public final class CountingHouseScreen extends BaseBnsScreen { @Override public void alignWidgets() { - getWidgets().get(0).setPos(8, contentTop()); - getWidgets().get(0).setSize(170, getHeight() - 30); - getWidgets().get(1).setPos(186, contentTop()); - getWidgets().get(1).setSize(getWidth() - 194, getHeight() - 30); Widget rf = getWidgets().get(2); rf.setSize(60, 16); rf.setPos(getWidth() - 68, getHeight() - 22); 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 a39970e..cfc365a 100644 --- a/src/main/java/uk/sijbers/bnstoolkit/client/screens/HubScreen.java +++ b/src/main/java/uk/sijbers/bnstoolkit/client/screens/HubScreen.java @@ -33,7 +33,16 @@ public final class HubScreen extends BaseBnsScreen { @Override public void addWidgets() { - add(new StatusPanel(this)); + // CRITICAL: size the sub-panel BEFORE adding. FTB Library's + // Panel.refreshWidgets() recurses into sub-panels BEFORE the + // parent's alignWidgets runs, so a sub-panel sized in + // alignWidgets shows up with width=height=0 to its own children + // (every Row gets setSize(0,12) → invisible). + StatusPanel sp = new StatusPanel(this); + sp.setPos(8, contentTop()); + sp.setSize(getWidth() - 16, getHeight() - 50); + add(sp); + add(SimpleTextButton.create(this, Component.literal("Quest Log"), Icons.INFO, btn -> { NetSend.requestSnapshot("ALL"); new QuestLogScreen().openGui(); })); add(SimpleTextButton.create(this, Component.literal("Refresh"), Icons.REFRESH, @@ -44,11 +53,8 @@ public final class HubScreen extends BaseBnsScreen { @Override public void alignWidgets() { - // Status panel fills most of the body - getWidgets().get(0).setPos(8, contentTop()); - getWidgets().get(0).setSize(getWidth() - 16, getHeight() - 50); - - // Bottom action row + // Sub-panel already sized + positioned in addWidgets; only the + // action-row buttons need placement here. int btnY = getHeight() - 22; int btnH = 16; Widget quest = getWidgets().get(1); 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 d788d74..4c80fc9 100644 --- a/src/main/java/uk/sijbers/bnstoolkit/client/screens/PlotPurchaseScreen.java +++ b/src/main/java/uk/sijbers/bnstoolkit/client/screens/PlotPurchaseScreen.java @@ -33,8 +33,16 @@ public final class PlotPurchaseScreen extends BaseBnsScreen { @Override public void addWidgets() { - add(new PlotList(this)); - add(new PlotDetail(this)); + PlotList list = new PlotList(this); + list.setPos(8, contentTop()); + list.setSize(170, getHeight() - 30); + add(list); + + PlotDetail detail = new PlotDetail(this); + detail.setPos(186, contentTop()); + detail.setSize(getWidth() - 194, getHeight() - 30); + add(detail); + add(SimpleTextButton.create(this, Component.literal("Refresh"), Icons.REFRESH, @@ -43,10 +51,6 @@ public final class PlotPurchaseScreen extends BaseBnsScreen { @Override public void alignWidgets() { - getWidgets().get(0).setPos(8, contentTop()); - getWidgets().get(0).setSize(170, getHeight() - 30); - getWidgets().get(1).setPos(186, contentTop()); - getWidgets().get(1).setSize(getWidth() - 194, getHeight() - 30); Widget rf = getWidgets().get(2); rf.setSize(60, 16); rf.setPos(getWidth() - 68, getHeight() - 22); 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 f2045b8..73a1144 100644 --- a/src/main/java/uk/sijbers/bnstoolkit/client/screens/QuestLogScreen.java +++ b/src/main/java/uk/sijbers/bnstoolkit/client/screens/QuestLogScreen.java @@ -32,15 +32,17 @@ public final class QuestLogScreen extends BaseBnsScreen { @Override public void addWidgets() { - add(new SummaryPanel(this)); + SummaryPanel summary = new SummaryPanel(this); + summary.setPos(8, contentTop()); + summary.setSize(getWidth() - 16, getHeight() - 30); + add(summary); + add(SimpleTextButton.create(this, Component.literal("Refresh"), Icons.REFRESH, btn -> NetSend.requestSnapshot("ALL"))); } @Override public void alignWidgets() { - getWidgets().get(0).setPos(8, contentTop()); - getWidgets().get(0).setSize(getWidth() - 16, getHeight() - 30); Widget rf = getWidgets().get(1); rf.setSize(60, 16); rf.setPos(getWidth() - 68, getHeight() - 22); diff --git a/src/main/java/uk/sijbers/bnstoolkit/client/screens/TierUpgradeScreen.java b/src/main/java/uk/sijbers/bnstoolkit/client/screens/TierUpgradeScreen.java index 341c2c1..ecced32 100644 --- a/src/main/java/uk/sijbers/bnstoolkit/client/screens/TierUpgradeScreen.java +++ b/src/main/java/uk/sijbers/bnstoolkit/client/screens/TierUpgradeScreen.java @@ -37,8 +37,19 @@ public final class TierUpgradeScreen extends BaseBnsScreen { @Override public void addWidgets() { - add(new LadderPanel(this)); - add(new DetailPanel(this)); + // Pre-size sub-panels so their addWidgets/alignWidgets (called + // via the recursive Panel.refreshWidgets BEFORE our own + // alignWidgets) see the correct dimensions. + LadderPanel ladder = new LadderPanel(this); + ladder.setPos(8, contentTop()); + ladder.setSize(180, getHeight() - 28); + add(ladder); + + DetailPanel detail = new DetailPanel(this); + detail.setPos(196, contentTop()); + detail.setSize(getWidth() - 204, getHeight() - 50); + add(detail); + add(SimpleTextButton.create(this, Component.literal("Refresh"), Icons.REFRESH, @@ -47,11 +58,7 @@ public final class TierUpgradeScreen extends BaseBnsScreen { @Override public void alignWidgets() { - // FTB Library setPos uses parent-relative coords. - getWidgets().get(0).setPos(8, contentTop()); - getWidgets().get(0).setSize(180, getHeight() - 28); - getWidgets().get(1).setPos(196, contentTop()); - getWidgets().get(1).setSize(getWidth() - 204, getHeight() - 50); + // Sub-panels are sized in addWidgets; only position the refresh button here. Widget rf = getWidgets().get(2); rf.setSize(60, 16); rf.setPos(getWidth() - 68, getHeight() - 22);