unified_inventory API
=====================

This file provides information about the API of unified_inventory.


Misc functions
--------------
Grouped by use-case, afterwards sorted alphabetically.

* `unified_inventory.is_creative(name)`
	* Checks whether creative is enabled or the player has `creative`


Pages
-----

Register a new page: The callback inside this function is called on user input.

	unified_inventory.register_page("pagename", {
		get_formspec = function(player)
			-- ^ `player` is an `ObjectRef`
			-- Compute the formspec string here
			return {
				formspec = "button[2,2;2,1;mybutton;Press me]",
				-- ^ Final form of the formspec to display
				draw_inventory = false,   -- default `true`
				-- ^ Optional. Hides the player's `main` inventory list
				draw_item_list = false,   -- default `true`
				-- ^ Optional. Hides the item list on the right side
				formspec_prepend = false, -- default `false`
				-- ^ Optional. When `false`: Disables the formspec prepend
			}
		end,
	})


Buttons
-------

Register a new button for the bottom row:

	unified_inventory.register_button("skins", {
		type = "image",
		image = "skins_skin_button.png",
		tooltip = "Skins",
		hide_lite = true
		-- ^ Button is hidden when following two conditions are met:
		--   Configuration line `unified_inventory_lite = true`
		--   Player does not have the privilege `ui_full`
	})



Crafting
--------

The code blocks below document each possible parameter using exemplary values.

Provide information to display custom craft types:

	unified_inventory.register_craft_type("mytype", {
		-- ^ Unique identifier for `register_craft`
		description = "Sample Craft",
		-- ^ Text shown below the crafting arrow
		icon = "dummy.png",
		-- ^ Image shown above the crafting arrow
		width = 3,
		height = 3,
		-- ^ Maximal input dimensions of the recipes
		dynamic_display_size = function(craft)
			-- ^ `craft` is the definition from `register_craft`
			return {
				width = 2,
				height = 3
			}
		end,
		-- ^ Optional callback to change the displayed recipe size
		uses_crafting_grid = true,
	})

Register a non-standard craft recipe:

	unified_inventory.register_craft({
		output = "default:foobar",
		type = "mytype",
		-- ^ Standard craft type or custom (see `register_craft_type`)
		items = {
			{ "default:foo" },
			{ "default:bar" }
		},
		width = 3,
		-- ^ Same as `minetest.register_recipe`
	})

