Difference between revisions of "ItemStack"
Jump to navigation
Jump to search
Hybrid Dog (talk | contribs) (→Methods: use a wikitable) |
|||
Line 17: | Line 17: | ||
== Methods == | == Methods == | ||
− | + | {| class="wikitable collapsible sortable" | |
− | + | ! Method | |
− | + | ! Description | |
− | + | |- | |
− | + | | <source enclose="none">[ItemStack]add_item(item)</source> | |
− | + | | put some item or stack onto this stack, returns leftover <code>ItemStack</code> | |
− | + | |- | |
− | + | | <source enclose="none">add_wear(amount)</source> | |
− | + | | increases wear by <code>amount</code> if the item is a tool | |
− | + | |- | |
− | + | | <source enclose="none">clear()</source> | |
− | + | | removes all items from the stack, making it empty | |
− | + | |- | |
− | + | | <source enclose="none">get_count()</source> | |
− | + | | returns number of items on the stack | |
− | + | |- | |
− | + | | <source enclose="none">get_definition()</source> | |
− | + | | returns the item definition table | |
− | + | |- | |
+ | | <source enclose="none">get_free_space()</source> | ||
+ | | returns <source enclose="none">get_stack_max() - get_count()</source> | ||
+ | |- | ||
+ | | <source enclose="none">get_metadata()</source> | ||
+ | | returns metadata (a string attached to an item stack) | ||
+ | |- | ||
+ | | <source enclose="none">get_name()</source> | ||
+ | | returns item name (e.g. <source enclose="none">"default:stone"</source>) | ||
+ | |- | ||
+ | | <source enclose="none">get_stack_max()</source> | ||
+ | | returns the maximum size of the stack (depends on the item) | ||
+ | |- | ||
+ | | <source enclose="none">get_tool_capabilities()</source> | ||
+ | | returns the digging properties of the item, or those of the hand if none are defined for this item type | ||
+ | |- | ||
+ | | <source enclose="none">get_wear()</source> | ||
+ | | returns tool wear (<code>0-65535</code>), <code>0</code> for non-tools | ||
+ | |- | ||
+ | | <source enclose="none">[ItemStack]is_empty()</source> | ||
+ | | return <source enclose="none">true</source> if stack is empty | ||
+ | |- | ||
+ | | <source enclose="none">is_known()</source> | ||
+ | | returns <source enclose="none">true</source> if the item name refers to a defined item type | ||
+ | |- | ||
+ | | <source enclose="none">item_fits(item)</source> | ||
+ | | returns true if item or stack can be fully added to this one | ||
+ | |- | ||
+ | | <source enclose="none">peek_item(n)</source> | ||
+ | | copy (don't remove) up to <code>n</code> items from this stack; returns copied <code>ItemStack</code>; if <code>n</code> is omitted, <code>n=1</code> is used | ||
+ | |- | ||
+ | | <source enclose="none">replace(item)</source> | ||
+ | | replace the contents of this stack (<code>item</code> can also be an itemstring or table) | ||
+ | |- | ||
+ | | <source enclose="none">take_item(n)</source> | ||
+ | | take (and remove) up to <code>n</code> items from this stack; returns taken <code>ItemStack</code>; if <code>n</code> is omitted, <code>n=1</code> is used | ||
+ | |- | ||
+ | | <source enclose="none">to_string()</source> | ||
+ | | returns the stack in <code>itemstring</code> form | ||
+ | |- | ||
+ | | <source enclose="none">[ItemStack]to_table()</source> | ||
+ | | returns the stack in Lua table form | ||
+ | |} | ||
== Example == | == Example == |
Revision as of 20:26, 2 May 2014
A stack of items. Can be created via ItemStack(itemstack or itemstring or table or nil)
.
Please note that all functions returning ItemStack
return its copy which modifications won't affect original ItemStack
.
Definitions
Items and item stacks can exist in three formats:
- Serialized; This is called
stackstring
oritemstring
:
'default:dirt 5'
'default:pick_wood 21323'
'default:apple'
- Table format:
{name="default:dirt", count=5, wear=0, metadata=""}
— 5 dirt nodes{name="default:pick_wood", count=1, wear=21323, metadata=""}
— wooden pick about 1/3 weared out{name="default:apple", count=1, wear=0, metadata=""}
— an apple.
- ItemStack. C++ native format with many helper methods. Useful for converting between formats. See this article for details.
Methods
Method | Description |
---|---|
[ItemStack]add_item(item)
|
put some item or stack onto this stack, returns leftover ItemStack
|
add_wear(amount)
|
increases wear by amount if the item is a tool
|
clear()
|
removes all items from the stack, making it empty |
get_count()
|
returns number of items on the stack |
get_definition()
|
returns the item definition table |
get_free_space()
|
returns get_stack_max() - get_count()
|
get_metadata()
|
returns metadata (a string attached to an item stack) |
get_name()
|
returns item name (e.g. "default:stone" )
|
get_stack_max()
|
returns the maximum size of the stack (depends on the item) |
get_tool_capabilities()
|
returns the digging properties of the item, or those of the hand if none are defined for this item type |
get_wear()
|
returns tool wear (0-65535 ), 0 for non-tools
|
[ItemStack]is_empty()
|
return true if stack is empty
|
is_known()
|
returns true if the item name refers to a defined item type
|
item_fits(item)
|
returns true if item or stack can be fully added to this one |
peek_item(n)
|
copy (don't remove) up to n items from this stack; returns copied ItemStack ; if n is omitted, n=1 is used
|
replace(item)
|
replace the contents of this stack (item can also be an itemstring or table)
|
take_item(n)
|
take (and remove) up to n items from this stack; returns taken ItemStack ; if n is omitted, n=1 is used
|
to_string()
|
returns the stack in itemstring form
|
[ItemStack]to_table()
|
returns the stack in Lua table form |
Example
minetest.register_craftitem("modname:tool", {
description = "Example Tool",
inventory_image = "modname_test.png",
on_use = function(itemstack, user, pointed_thing)
-- Takes one item from the stack
itemstack:take_item()
return itemstack
end
})