๐ฆ Containersยถ
Basicly, a container is an entity at the position of a block. To make a container compatible with IO, you need to specify a format that define what can be in a slot or not.
ItemIO donโt care about the GUI protection by player interaction, itโs up to you to handle it.
Place/destroy function callยถ
Somes function call must be made when placing or destroying a container.
On place :
function #itemio:calls/container/init
On destroy :
function #itemio:calls/container/destroy
Available Entityยถ
Containers as to be configured depending on what entity you use you have to use theses NBT Paths:
For makers :
data.itemio.ioconfig
For item_frames :
Item.components."minecraft:custom_data".itemio.ioconfig
For armor_stands :
ArmorItems[3].components."minecraft:custom_data".itemio.ioconfig
For item_display :
item.components."minecraft:custom_data".itemio.ioconfig
Note
All theses entity must have the itemio.container
tag to be considered as a container.
IOConfig Data Structureยถ
IOConfig are dictionary that define what can be in a slot or not, they are dynamic and can be changed at any time.
[
{
Slot: int, // required
mode: "input" | "output", // any other value is both
allowed_side:{ // required
north: 0b | 1b, south: 0b | 1b, east: 0b | 1b,
west: 0b | 1b, top: 0b | 1b, bottom: 0b | 1b
},
filters: Filters // optional default to []
// See filters section
max_stack_size: int // optional default to 2147483647,
// Used to limit the stack size of a stackable item
},
(...)
]
Full specification
Ignored items
All items matching <item>.components."minecraft:custom_data".itemio.gui: 1b
, will be ignored by ItemIO.