Matt 2888cf1814
Build / build (push) Has been cancelled
0.6.1: pre-size sub-panels in addWidgets to fix blank panel content
FTB Library's Panel.refreshWidgets runs in this order:
  1. clearWidgets
  2. addWidgets    (parent creates sub-panels, default size 0x0)
  3. for each Panel child: refreshWidgets()  ← recurses HERE
  4. alignWidgets  (parent sizes children, but it's too late)

Step 3 means sub-panels' own addWidgets/alignWidgets run with
width=height=0. Children sized via setSize(width, 12) end up 0 wide,
visible content disappears.

Fix is mechanical: every screen now sizes its sub-panels in
addWidgets() BEFORE the add() call. By the time the recursive
refreshWidgets hits the sub-panel, its dimensions are correct.

Caught when HubScreen rendered blank (status panel was set up to fill
the body but its Row children were 0px wide). Same latent issue in
TierUpgrade, CountingHouse, Bounty, Plot, Quest Log — all fixed.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-08 15:51:08 +00:00

bnstoolkit

Companion mod for the Brass and Sigil modpack. NeoForge 1.21.1.

Provides the in-game UI surface for the KubeJS-driven civic tier, bounty, plot, and shop systems. Pure client visuals + a thin C2S/S2C network bridge over the existing server-side state — no server-side gameplay logic lives here, just transport and presentation.

Status

M0 — scaffold only. Loads cleanly on client and dedicated server. No screens are open-able yet (key bindings register but their handlers are TODO). One network round-trip pair is wired as a smoke test.

See docs/bnstoolkit-architecture.md in the brass-and-sigil repo for the full spec.

Building

./gradlew build

The output jar lands in build/libs/bnstoolkit-<version>.jar. Drop it into the modpack's pack/overrides/mods/ directory.

Package layout

uk.sijbers.bnstoolkit
├── BnsToolkit                   # common mod entry
├── BnsToolkitClient             # client mod entry
├── client
│   ├── BnsKeyBindings           # T / B / P defaults
│   ├── hud
│   │   └── SpurHud              # spurs + tier overlay
│   └── screens
│       ├── BaseBnsScreen        # shared parent (will swap to FTB Library)
│       ├── TierUpgradeScreen
│       ├── BountyBoardScreen
│       ├── QuestLogScreen
│       ├── PlotPurchaseScreen
│       └── ShopBrowserScreen
└── network
    ├── BnsNetwork               # payload registrar
    ├── c2s
    │   └── RequestTierStatePacket
    └── s2c
        └── TierStateUpdatePacket

Milestones

Milestone Scope
M0 (now) Scaffold, keybinds, network smoke-test packet pair
M1 Tier upgrade screen + KubeJS bridge for tier/balance
M2 Quest log + shop browser screens
M3 Bounty board + plot purchase screens
M4 HUD overlay, mod settings screen, FTB Library swap
S
Description
Brass and Sigil companion mod — economy UI, FTB Chunks plot integration, tier upgrade screens.
Readme 332 KiB
Languages
Java 100%