Skip to main content

Module inventory

Module inventory 

Source
Expand description

Inventory framework — real Container/Menu screens (BlockEntity-backed), as opposed to ui’s HUD-drawn overlays. See yog-inventory’s DESIGN.md.

Structs§

InventoryDef
Describes one inventory-backed screen: how many slots a mod block has, where they sit, whether the player’s own inventory is appended below, and which background texture to draw (vanilla default, or a mod’s own).
Machine
A machine in an inventory: it makes recipes of kind from what’s in its places — each a slot of the inventory holding one ingredient of one of the kind’s slots — into its result slot.
MachinePlace
One ingredient’s place: the index-th of the kind’s slot slot, in the inventory’s slot inv.
SlotLayout
Pixel position of a single slot in vanilla GUI coordinate space (the same space vanilla screens use: origin at the panel’s top-left corner, one vanilla slot = 18×18px).
SlotView
One inventory slot’s content, as of the last snapshot.
YogInvSlotRaw
One inventory slot’s raw wire data for YogInvSnapshotRaw.
YogInvSnapshotRaw
Raw per-frame snapshot of the currently-open inventory screen, built and owned by the runtime, valid only for the duration of the render call that hands it over.

Constants§

DEFAULT_PLAYER_INV_OFFSET
Default position of the player’s main inventory (3×9) relative to the panel’s top-left corner — matches vanilla furnace/chest-style screens.
MAX_SNAPSHOT_SLOTS
Capacity of YogInvSnapshotRaw::slots — covers the largest realistic inventory screen (a mod’s own slots + player main inventory + hotbar).
PLAYER_INV_TO_HOTBAR_GAP
Extra vertical gap between the player’s main inventory and their hotbar, on top of the normal per-row SLOT_SIZE spacing (also a vanilla convention).
SLOT_SIZE
Vanilla spacing between adjacent slots in the default grid.

Functions§

current_slot
Slot index’s content right now, or None if out of range.
current_slot_count
Number of slots in the currently-open inventory screen (0 if none is open).
decode_layout
Inverse of encode_layout. Malformed entries are skipped.
encode_layout
Encode an InventoryDef’s slot layout as "x:y,x:y:a|b,..." — the wire format used when handing the layout to the Java host (mirrors how BlockDef::connect_groups is comma-joined for its ABI struct); a slot that takes only some items adds them after a third :, |-joined.