Own-art backpack gump + inventory rework (invisible grid) #100

Merged
marco merged 8 commits from feat/own-art-ingestion into main 2026-07-20 06:21:15 +02:00
Collaborator

Summary

Ingests our first own-art gump and reworks the client backpack UI around it.

  • Own-art backpack gump (aec4242 + 6aa2706): adds the OwnArt bake step and the source PNG, then bakes the 520×760 RGBA backpack gump into assets.isoa (overriding the UO-extracted entry) and draws it as the inventory panel background (fallback to a filled rect without a pack). Moves the inventory toggle to Ctrl+I so plain I is free. Pack shrinks 9 → 4.3 MB. art/gump/container_backpack.README.md documents the required RGBA/transparent format.
  • Invisible backpack grid (f8d97d0): backpack items lay out in an invisible grid confined to the bag's open interior, not the whole panel. Capacity is not slot-bounded (it is weight-bounded, #99) — items overlap past the visible cells. Grid + hit-test math lives in BackpackLayout (Client.Core, unit-tested). Removes the old Weapon/Armor equip slots — equipment moves to a dedicated paperdoll (follow-up).
  • Design doc (7753892): docs/game-design/systems/backpack-weight.md — the weight-bounded carry system (issue #99).

Verification

  • Whole-solution dotnet build: 0 warnings.
  • dotnet test: 297 passing (incl. 5 new BackpackLayout tests).
  • CSharpier clean.
  • Driven in the running client: the gump composits with transparency, Ctrl+I toggles (Ctrl-gated, plain I is a no-op), and picked-up items render inside the bag interior with no visible grid.

Follow-ups

  • Equipment paperdoll UI (equip/unequip has no UI until it lands).
  • The backpack-weight system itself — weight enforcement, stacking, current/max readout (#99).
## Summary Ingests our first own-art gump and reworks the client backpack UI around it. - **Own-art backpack gump** (`aec4242` + `6aa2706`): adds the `OwnArt` bake step and the source PNG, then bakes the 520×760 RGBA backpack gump into `assets.isoa` (overriding the UO-extracted entry) and draws it as the inventory panel background (fallback to a filled rect without a pack). Moves the inventory toggle to **Ctrl+I** so plain `I` is free. Pack shrinks 9 → 4.3 MB. `art/gump/container_backpack.README.md` documents the required RGBA/transparent format. - **Invisible backpack grid** (`f8d97d0`): backpack items lay out in an *invisible* grid confined to the bag's open interior, not the whole panel. Capacity is **not** slot-bounded (it is weight-bounded, #99) — items overlap past the visible cells. Grid + hit-test math lives in `BackpackLayout` (Client.Core, unit-tested). Removes the old Weapon/Armor equip slots — equipment moves to a dedicated paperdoll (follow-up). - **Design doc** (`7753892`): `docs/game-design/systems/backpack-weight.md` — the weight-bounded carry system (issue #99). ## Verification - Whole-solution `dotnet build`: 0 warnings. - `dotnet test`: 297 passing (incl. 5 new `BackpackLayout` tests). - CSharpier clean. - Driven in the running client: the gump composits with transparency, Ctrl+I toggles (Ctrl-gated, plain `I` is a no-op), and picked-up items render inside the bag interior with no visible grid. ## Follow-ups - Equipment paperdoll UI (equip/unequip has no UI until it lands). - The backpack-weight system itself — weight enforcement, stacking, current/max readout (#99).
Own art lives as committed source under art/<namespace>/<name>.png and wins over
the UO-extracted entry of the same name, so re-packing never clobbers it and
copyright-clean art can replace UO art over time. Adds an `own-art` command that
applies own art onto an existing pack (no UO client needed), and wires the same
override into `pack`. Ships container_backpack as the first own-art gump.
marco force-pushed feat/own-art-ingestion from 77538928cd
All checks were successful
ci / Lint & Test (pull_request) Successful in 1m44s
to 9615ef6556
All checks were successful
ci / Lint & Test (pull_request) Successful in 3m55s
2026-07-19 21:29:51 +02:00
Compare
panda force-pushed feat/own-art-ingestion from 541b141dcd
All checks were successful
ci / Lint & Test (pull_request) Successful in 3m7s
to ed03179233
All checks were successful
ci / Lint & Test (pull_request) Successful in 1m26s
2026-07-20 00:30:15 +02:00
Compare
marco merged commit 72d487ce95 into main 2026-07-20 06:21:15 +02:00
marco deleted branch feat/own-art-ingestion 2026-07-20 06:21:15 +02:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
marco/IsoMmo!100
No description provided.