Skip to content

Creative inventory#210

Open
Purdze wants to merge 17 commits into
masterfrom
creative-inventory
Open

Creative inventory#210
Purdze wants to merge 17 commits into
masterfrom
creative-inventory

Conversation

@Purdze
Copy link
Copy Markdown
Collaborator

@Purdze Purdze commented May 20, 2026

Summary

  • Creative-mode inventory GUI with all 14 tabs, search, tooltips, drag-place, hotbar binding, and scrollbar.
  • Item icons now render live per-frame as 3D meshes through a unified GUI item pipeline (no offscreen atlas).
  • Block items, flat items, and the chest (baked as a regular BakedModel against the world atlas) all flow through one path.
  • Vanilla two-diffuse-light Lambert applied to all 3D GUI items so block side faces darken to match vanilla.
  • Inventory screen swaps automatically when the server changes the player's gamemode.

Purdze added 17 commits May 17, 2026 22:23
Search and Inventory tabs, mouse-wheel scroll, click-to-place via
ServerboundSetCreativeModeSlot, opens with E when game_mode == 1.
Adds the 12 categorical/utility tabs (Building, Colored, Natural,
Functional, Redstone, Hotbar, Tools, Combat, Food, Ingredients,
Spawn Eggs, Op Blocks) alongside Search and Inventory. Item lists
extracted from CreativeModeTabs.java into a static data module.
Tab positions, sizes, and Y offsets matched to vanilla.

Shared push_slot helper consolidates slot rendering between the
survival and creative screens. CREATIVE_TAB_SPRITES lookup table
deduplicates the (row, state, col) to SpriteId mapping. Atlas
bumped to 1024x1024 to fit the 28 new tab sprites.
Render every item once into an offscreen sRGB atlas using the
item_entity pipeline, with the item's display.gui transform from its
model parent chain. The menu samples atlas tiles for ItemIcon, so
stairs, slabs, fences, and other variants of the same texture are now
visibly distinct.
Match vanilla side-shading (N/S=0.8, E/W=0.6), register flat-item
texture keys so blocks-as-items (poppy, dandelion, shulker_box, glass
panes, beds, rails, torches, saplings, etc.) resolve to their block
atlas regions, and bind a dedicated max_lod=0 nearest sampler on the
GUI item pipeline so foreshortened faces stop blending mip levels.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant