123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- unified_inventory API
- =====================
- This file provides information about the API of unified_inventory.
- API revisions within unified_inventory can be checked using:
- (unified_inventory.version or 1)
- **Revision history**
- * Version `1`: Classic formspec layout (no real_coordinates)
- * Version `2`: Force formspec version 4 (includes real_coordinates)
- 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`
- })
- Categories
- ----------
- Register a new category:
- The config table (second argument) is optional, and all its members are optional
- See the unified_inventory.set_category_* functions for more details on the members of the config table
- unified_inventory.register_category("category_name", {
- symbol = "mod_name:item_name" or "texture.png",
- label = "Human Readable Label",
- index = 5,
- items = {
- "mod_name:item_name",
- "another_mod:different_item"
- }
- })
- Add / override the symbol for a category:
- The category does not need to exist first
- The symbol can be an item name or a texture image
- If unset this will default to "default:stick"
- unified_inventory.set_category_symbol("category_name", "mod_name:item_name" or "texture.png")
- Add / override the human readable label for a category:
- If unset this will default to the category name
- unified_inventory.set_category_label("category_name", "Human Readable Label")
- Add / override the sorting index of the category:
- Must be a number, can also be negative (-5) or fractional (2.345)
- This determines the position the category appears in the list of categories
- The "all" meta-category has index -2, the "misc"/"uncategorized" meta-category has index -1, use a negative number smaller than these to make a category appear before these in the list
- By default categories are sorted alphabetically with an index between 0.0101(AA) and 0.2626(ZZ)
- unified_inventory.set_category_index("category_name", 5)
- Add a single item to a category:
- unified_inventory.add_category_item("category_name", "mod_name:item_name")
- Add multiple items to a category:
- unified_inventory.add_category_items("category_name", {
- "mod_name:item_name",
- "another_mod:different_item"
- })
- Remove an item from a category:
- unified_inventory.remove_category_item("category_name", "mod_name:item_name")
- Remove a category entirely:
- unified_inventory.remove_category("category_name")
- Finding existing items in categories:
- This will find the first category an item exists in
- It should be used for checking if an item is catgorised
- Returns "category_name" or nil
- unified_inventory.find_category("mod_name:item_name")
- This will find all the categories an item exists in
- Returns a number indexed table (list) of category names
- unified_inventory.find_categories("mod_name:item_name")
|