Difference between revisions of "ItemStack"

From Minetest Developer Wiki
Jump to navigation Jump to search
(→‎Methods: use a wikitable)
Line 12: Line 12:
 
* Table format:
 
* Table format:
 
:* <source enclose="none">{name="default:dirt", count=5, wear=0, metadata=""}</source> — 5 dirt nodes
 
:* <source enclose="none">{name="default:dirt", count=5, wear=0, metadata=""}</source> — 5 dirt nodes
:* <source enclose="none">{name="default:pick_wood", count=1, wear=21323, metadata=""}</source> — wooden pick about 1/3 weared out
+
:* <source enclose="none">{name="default:pick_wood", count=1, wear=21323, metadata=""}</source> — wooden pick about 1/3 worn out
 
:* <source enclose="none">{name="default:apple", count=1, wear=0, metadata=""}</source> — an apple.
 
:* <source enclose="none">{name="default:apple", count=1, wear=0, metadata=""}</source> — an apple.
 
* ItemStack. C++ native format with many helper methods. Useful for converting between formats. See this article for details.
 
* ItemStack. C++ native format with many helper methods. Useful for converting between formats. See this article for details.

Revision as of 00:52, 11 June 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 or itemstring:
  • '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 worn 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
	
})