Inventory module

For working with inventories.

Usage

local Inventory = require('stdlib/entity/inventory')

Functions

copy_as_simple_stacks (src, dest[, clear=false]) Copies the contents of source inventory to destination inventory by using Concepts.SimpleItemStack.
each (inventory, func[, ...]) Given a function, apply it to each slot in the given inventory.
each_reverse (inventory, func[, ...]) Given a function, apply it to each slot in the given inventory.

Functions

# copy_as_simple_stacks (src, dest[, clear=false])

Copies the contents of source inventory to destination inventory by using Concepts.SimpleItemStack.

Parameters:
  • src : (LuaInventory) the source inventory
  • dest : (LuaInventory) the destination inventory
  • clear : (boolean) clear the contents of the source inventory (default: false)
Returns:
# each (inventory, func[, ...])

Given a function, apply it to each slot in the given inventory.

Passes the index of a slot as the second argument to the given function.

Iteration is aborted if the applied function returns true for any element during iteration.

Parameters:
  • inventory : (LuaInventory) the inventory to iterate
  • func : (function) the function to apply to values
  • ... : additional arguments passed to the function (optional)
Returns:
  • (nil or LuaItemStack) the slot where the iteration was aborted OR nil if not aborted
# each_reverse (inventory, func[, ...])

Given a function, apply it to each slot in the given inventory.

Passes the index of a slot as the second argument to the given function.

Iteration is aborted if the applied function returns true for any element during iteration.

Iteration is performed from last to first in order to support dynamically sized inventories.

Parameters:
  • inventory : (LuaInventory) the inventory to iterate
  • func : (function) the function to apply to values
  • ... : additional arguments passed to the function (optional)
Returns:
  • (nil or LuaItemStack) the slot where the iteration was aborted OR nil if not aborted