Sophisticated Backpacks - MT Inventory Weight

Quick rating

Community listing page, reviews here may not be monitored by the author.

Sophisticated Backpacks - MT Inventory Weight

By MEGATREX4Owner

No reviews yet

Accurate MT Inventory Weight support for Sophisticated Backpacks (Unofficial Fabric port), reading real backpack contents via the SB wrapper API.

Mod Loaders
Minecraft

About

Description

Sophisticated Backpacks InventoryWeight

Accurate MT Inventory Weight support for Sophisticated Backpacks (Unofficial Fabric port).

MT Inventory Weight ships a generic backpack calculator that reads container NBT, but Sophisticated Backpacks assigns each backpack a UUID and stores its real contents in world BackpackStorage (PersistentState) — not always in the item NBT. Generic NBT reading therefore under- or mis-counts SB backpacks. This add-on fixes that by reading the actual contents through the Sophisticated Backpacks API.

It registers an Inventory Weight item weight provider (via the inventoryweight entrypoint) at priority 8500 — above the built-in generic backpacks provider (8000) — so SB backpacks are handled by this accurate provider while everything else falls through to the defaults.

To read contents it uses the SB wrapper API. This resolves UUID-backed contents from BackpackStorage automatically, so equipped, held, and stored backpacks are all weighed correctly.

Weight model

Matches the built-in backpack model:

effectiveWeight = emptyBackpackWeight + (contentsWeight / 2)
  • contentsWeight is computed by recursing each inner stack through Inventory Weight's own lookup (context.nested()), so datapack weights, nested containers, and other add-ons all apply.
  • The result's base weight carries the full (undivided) contents weight for display.

Notes

  • If Sophisticated Backpacks is not installed, the provider is inactive (a warning is logged) and Inventory Weight uses its default behavior.
  • nested() is used when recursing to avoid runaway depth with nested backpacks.
  • The empty-backpack base weight is a single constant (SophisticatedBackpacksInventoryWeight#EMPTY_BACKPACK_WEIGHT); wire it to fzzy_config if you want it user-configurable.

Sophisticated Backpacks InventoryWeight

Accurate MT Inventory Weight support for Sophisticated Backpacks (Unofficial Fabric port).

MT Inventory Weight ships a generic backpack calculator that reads container NBT, but Sophisticated Backpacks assigns each backpack a UUID and stores its real contents in world BackpackStorage (PersistentState) — not always in the item NBT. Generic NBT reading therefore under- or mis-counts SB backpacks. This add-on fixes that by reading the actual contents through the Sophisticated Backpacks API.

It registers an Inventory Weight item weight provider (via the inventoryweight entrypoint) at priority 8500 — above the built-in generic backpacks provider (8000) — so SB backpacks are handled by this accurate provider while everything else falls through to the defaults.

To read contents it uses the SB wrapper API. This resolves UUID-backed contents from BackpackStorage automatically, so equipped, held, and stored backpacks are all weighed correctly.

Weight model

Matches the built-in backpack model:

effectiveWeight = emptyBackpackWeight + (contentsWeight / 2)
  • contentsWeight is computed by recursing each inner stack through Inventory Weight's own lookup (context.nested()), so datapack weights, nested containers, and other add-ons all apply.
  • The result's base weight carries the full (undivided) contents weight for display.

Notes

  • If Sophisticated Backpacks is not installed, the provider is inactive (a warning is logged) and Inventory Weight uses its default behavior.
  • nested() is used when recursing to avoid runaway depth with nested backpacks.
  • The empty-backpack base weight is a single constant (SophisticatedBackpacksInventoryWeight#EMPTY_BACKPACK_WEIGHT); wire it to fzzy_config if you want it user-configurable.