Entry Stack is a pair of Entry Definition to a value.

Settings can be applied to each stack to give it special tooltips (@Tooltip) or renderers.

Creating Entry Stacks

Empty Entry Stack

EntryStack.empty() returns an empty entry stack of type BuiltinEntryType.EMPTY, this stack is immutable and a singleton built-in into the implementation.

Empty entry stacks are considered as invalid stacks and will not be displayed in the entry list.

Renderer Entry Stack

ClientEntryStacks.of(Renderer) returns an cosmetic entry stack that can be used to render anything.

<aside> 💡 It may be better if you replace the entry renderer for actual entries to retain the same functionality for comparison and equality.

</aside>

Item Entry Stack

Several methods in EntryStacks accepts items, with type VanillaEntryType.ITEM.

You may want to use the util methods in EntryIngredients to create ingredients (list of entries), from vanilla ingredients.

Fluid Entry Stack

Several methods in EntryStacks accepts the architectury FluidStack.

The bucket amount of a fluid stack is 81000 on Fabric and 1000 on Forge.

For converting between modloader specific fluid representations to architectury fluid stacks, you may use FluidStackHooksFabric and FluidStackHooksForge. These methods do not perform copy, and simply wrap and unwrap the underlying representations.

To modify the fluid rendering ratio, read on at Configuring Fluid Rendering Ratio.

Equality of Entry Stacks

The equality of Entry Stacks are determined by the Comparison Contexts.

Use EntryStacks.equals to test the equality of two stacks. This method prioritizes the equality method defined in the type’s EntryDefinition. However, stacks of different types can still be equal with @Entry Type Bridges.