diff --git a/_en/items/inventories.md b/_en/items/inventories.md index 198c58e..9c81187 100644 --- a/_en/items/inventories.md +++ b/_en/items/inventories.md @@ -19,6 +19,9 @@ that be a player inventory, a node inventory, or a detached inventory. - [What are ItemStacks and Inventories?](#what-are-itemstacks-and-inventories) - [ItemStacks](#itemstacks) - [Inventory Locations](#inventory-locations) + - [Node Inventories](#node-inventories) + - [Player Inventories](#player-inventories) + - [Detached Inventories](#detached-inventories) - [Lists](#lists) - [Size and Width](#size-and-width) - [Checking Contents](#checking-contents) @@ -33,21 +36,21 @@ that be a player inventory, a node inventory, or a detached inventory. An ItemStack is the data behind a single cell in an inventory. -An *inventory* is a collection of *inventory lists*, each of which -is a 2D grid of ItemStacks. -Inventory lists are simply called *lists* in the context -of inventories. -The point of an inventory is to allow multiple grids when Players -and Nodes only have at most one inventory in them. +An *inventory* is a collection of *inventory lists*, each of which is a 2D grid +of ItemStacks. Inventory lists are referred to as *lists* in the context of +inventories. + +Players and nodes only have a single inventory; lists enable you to have +multiple grids within that inventory. By default, the player has the "main" list +for the bulk of its inventory and a few lists for the crafting system. ## ItemStacks -ItemStacks have four components to them: name, count, wear and metadata. +ItemStacks have four components to them: `name`, `count`, `wear`, and metadata. The item name may be the item name of a registered item, an alias, or an unknown -item name. -Unknown items are common when users uninstall mods, or when mods remove items without -precautions, such as registering aliases. +item name. Unknown items are common when users uninstall mods, or when mods +remove items without precautions, such as registering aliases. ```lua print(stack:get_name()) @@ -58,19 +61,14 @@ if not stack:is_known() then end ``` -The count will always be 0 or greater. -Through normal gameplay, the count should be no more than the maximum stack size -of the item - `stack_max`. -However, admin commands and buggy mods may result in stacks exceeding the maximum -size. +The count will always be 0 or greater. Through normal gameplay, the count should +be no more than the maximum stack size of the item - `stack_max`. However, admin +commands and buggy mods may result in stacks exceeding the maximum size. ```lua print(stack:get_stack_max()) ``` - - - An ItemStack can be empty, in which case the count will be 0. ```lua @@ -78,7 +76,7 @@ print(stack:get_count()) stack:set_count(10) ``` -ItemStacks can be constructed in multiple ways using the ItemStack function. +ItemStacks can be constructed in multiple ways using the ItemStack function: ```lua ItemStack() -- name="", count=0 @@ -87,24 +85,31 @@ ItemStack("default:stone 30") ItemStack({ name = "default:wood", count = 10 }) ``` -Item metadata is an unlimited key-value store for data about the item. -Key-value means that you use a name (called the key) to access the data (called the value). -Some keys have special meaning, such as `description` which is used to have a per-stack -item description. -This will be covered in more detail in the Metadata and Storage chapter. +Item metadata is an unlimited key-value store for data about the item. Key-value +means that you use a name (called the key) to access the data (called the +value). Some keys have special meaning, such as `description` which is used to +have a per-stack item description. This will be covered in more detail in the +[Storage and Metadata](../map/storage.html) chapter. ## Inventory Locations -An Inventory Location is where and how the inventory is stored. -There are three types of inventory location: player, node, and detached. -An inventory is directly tied to one and only one location - updating the inventory -will cause it to update immediately. +An Inventory Location is where and how the inventory is stored. There are three +types of inventory location: player, node, and detached. An inventory is +directly tied to one and only one location - updating the inventory will cause +it to update immediately. -Node inventories are related to the position of a specific node, such as a chest. -The node must be loaded because it is stored in [node metadata](../map/storage.html#metadata). +### Node Inventories + +Node inventories are related to the position of a specific node, such as a +chest. The node must be loaded because it is stored in +[node metadata](../map/storage.html#metadata). ```lua -local inv = minetest.get_inventory({ type="node", pos={x=1, y=2, z=3} }) +-- In a node def +on_punch = function(pos, node) + local inv = minetest.get_inventory({ type="node", pos=pos }) + -- now use the inventory +end, ``` The above obtains an *inventory reference*, commonly referred to as *InvRef*. @@ -118,6 +123,8 @@ The location of an inventory reference can be found like so: local location = inv:get_location() ``` +### Player Inventories + Player inventories can be obtained similarly or using a player reference. The player must be online to access their inventory. @@ -127,8 +134,10 @@ local inv = minetest.get_inventory({ type="player", name="player1" }) local inv = player:get_inventory() ``` -A detached inventory is one which is independent of players or nodes. -Detached inventories also don't save over a restart. +### Detached Inventories + +A detached inventory is one that is independent of players or nodes. Detached +inventories also don't save over a restart. ```lua local inv = minetest.get_inventory({ @@ -177,9 +186,10 @@ On the contrary, action callbacks - starting with `on_` - don't have a return va ## Lists -Inventory Lists are a concept used to allow multiple grids to be stored inside a single location. -This is especially useful for the player as there are a number of common lists -which all games have, such as the *main* inventory and *craft* slots. +Inventory Lists are a concept used to allow multiple grids to be stored inside a +single location. This is especially useful for the player as there are several +common lists that all games have, such as the *main* inventory and *craft* +slots. ### Size and Width