0.2.0: feature-complete UI — 5 FTB-Library screens + HUD overlay
Build / build (push) Has been cancelled
Build / build (push) Has been cancelled
All five screens implemented with FTB Library widgets (Panel/Widget/
SimpleTextButton). Layout matches FTB Quests/Chunks for visual
consistency with the rest of the pack.
Screens:
- TierUpgradeScreen — 13-row ladder, current tier highlighted,
Upgrade button to next tier with cost/affordability check
- ShopBrowserScreen — 9-cell item grid + detail pane, quick-sell
buttons (1/16/64) with live DR-aware price preview
- BountyBoardScreen — daily pool + active set, accept/cancel/turn-in
per state, slot-cap indicator
- PlotPurchaseScreen — plot list + detail pane, buy/release with
ownership colour-coding and tier-gated buy
- QuestLogScreen — at-a-glance tier+balance summary, active
bounties with progress bars, owned plots
HUD overlay: top-left tier name + spurs balance, registered as a
NeoForge GUI layer above the experience bar. 1Hz server push keeps
the balance current without polling client-side inventory.
Network: replaces single smoke-test packet with 7-packet contract:
- C2S: RequestEconomySnapshot, RunBnsCommand (whitelisted)
- S2C: TierStateUpdate, SellSnapshot, BountySnapshot, PlotSnapshot, Toast
Server-side bridge (ServerEconomyBridge) reads player NBT and
Numismatics-by-item-id-string for balance, routes write verbs
through the existing KubeJS /bns chat commands so KubeJS remains the
source of truth for economy logic.
Key bindings (rebindable in vanilla controls menu):
- K Civic tier ladder
- J Bounty board
- N Plot office
- H Bazaar shop
- M Quest log
FTB Library + Architectury maven repos wired in build.gradle as
compileOnly; the jar stays small since FTB Library is already in pack.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
+13
-11
@@ -19,17 +19,16 @@ sourceSets.main.resources {
|
||||
}
|
||||
|
||||
repositories {
|
||||
// FTB Library / FTB Chunks / FTB Quests live here. Used compileOnly
|
||||
// when we wire screens to the FTB UI framework (M1+).
|
||||
maven {
|
||||
name = 'FTB'
|
||||
url = 'https://maven.ftb.dev/releases'
|
||||
content { includeGroup 'dev.ftb.mods' }
|
||||
}
|
||||
// Numismatics + Create dependencies live on Modrinth's maven mirror.
|
||||
// Architectury (transitive of FTB Library)
|
||||
maven {
|
||||
name = 'ModrinthMaven'
|
||||
url = 'https://api.modrinth.com/maven'
|
||||
name = 'Architectury'
|
||||
url = 'https://maven.architectury.dev/'
|
||||
content { includeGroup 'dev.architectury' }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -82,12 +81,15 @@ configurations {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
// TODO(matt M1): wire FTB Library compileOnly dep when first FTB-UI screen lands.
|
||||
// Candidate coord (verify version pinning against pack):
|
||||
// compileOnly "dev.ftb.mods:ftb-library-neoforge:2101.1.31"
|
||||
//
|
||||
// TODO(matt M2): Numismatics compileOnly dep for the shop block integration.
|
||||
// Modrinth maven path: maven.modrinth/numismatics/<version>
|
||||
// FTB Library: provides the Panel/Widget/Button framework used by every
|
||||
// bnstoolkit screen. compileOnly because it's shipped in the modpack
|
||||
// already — we don't want to ship a second copy in our jar. Version
|
||||
// pinned to the live pack's installed version (2101.1.31).
|
||||
compileOnly "dev.ftb.mods:ftb-library-neoforge:2101.1.31"
|
||||
|
||||
// No Numismatics compileOnly dep — we read coin balances by inventory-
|
||||
// scanning items via their string IDs ("numismatics:spur", etc) which
|
||||
// doesn't need any of Numismatics' Java API on the classpath.
|
||||
}
|
||||
|
||||
var generateModMetadata = tasks.register("generateModMetadata", ProcessResources) {
|
||||
|
||||
Reference in New Issue
Block a user