Compare commits
	
		
			85 Commits
		
	
	
		
			nalc-1.1
			...
			15a84bdbf4
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 15a84bdbf4 | |||
| 
						 | 
					6d123da61c | ||
| 
						 | 
					d39dd78cb5 | ||
| 838c67ae86 | |||
| 
						 | 
					aeb9841e3a | ||
| 132a362f85 | |||
| 
						 | 
					afd38e0c73 | ||
| 
						 | 
					4d4355a741 | ||
| 03b077cd1b | |||
| 
						 | 
					6e6383f082 | ||
| 829b38c6fc | |||
| 
						 | 
					860371ecf8 | ||
| 70fdb8556b | |||
| 
						 | 
					c044f5e3b0 | ||
| 
						 | 
					608cdfb887 | ||
| 
						 | 
					afb295ec22 | ||
| 
						 | 
					a84ce24067 | ||
| 
						 | 
					a7556c5044 | ||
| 
						 | 
					3d58befe03 | ||
| 
						 | 
					d0deba10c8 | ||
| 
						 | 
					97b882ad23 | ||
| 
						 | 
					44e32df00a | ||
| 
						 | 
					40d862298b | ||
| 
						 | 
					0ebc9402ed | ||
| 
						 | 
					2c16805ef9 | ||
| 
						 | 
					dc61d2980a | ||
| 
						 | 
					21f122336f | ||
| 
						 | 
					8ee0eb9fce | ||
| 
						 | 
					1210dbfe22 | ||
| 
						 | 
					b8a568d7eb | ||
| 
						 | 
					9ddea6eced | ||
| 
						 | 
					76c9bb9517 | ||
| 
						 | 
					60d7a6d213 | ||
| 
						 | 
					8e94d86420 | ||
| 
						 | 
					6d892dda5b | ||
| 
						 | 
					37546289bc | ||
| 
						 | 
					3e7f005366 | ||
| 
						 | 
					382219c466 | ||
| 
						 | 
					5ea0208ffe | ||
| 
						 | 
					694553e68b | ||
| 
						 | 
					2d200eb9ae | ||
| 
						 | 
					b3077898a7 | ||
| 
						 | 
					5a8a75f43b | ||
| 
						 | 
					0c05f06fa8 | ||
| 
						 | 
					c3679eaf7b | ||
| 
						 | 
					23a089f174 | ||
| 
						 | 
					82bc2d3f95 | ||
| 
						 | 
					603b5d1d4e | ||
| 
						 | 
					eb4cf5bf47 | ||
| 
						 | 
					97960c552b | ||
| 
						 | 
					81d6a1e796 | ||
| 
						 | 
					de575a6513 | ||
| 
						 | 
					7a0a44037a | ||
| 
						 | 
					cc93288a6b | ||
| 
						 | 
					167dddaa84 | ||
| 
						 | 
					d1a4396fbe | ||
| 
						 | 
					fbbf786caf | ||
| 
						 | 
					ae124b02c2 | ||
| 
						 | 
					ebd1d1f245 | ||
| 497c632b24 | |||
| 
						 | 
					0f756a5d33 | ||
| 46eeb36784 | |||
| 
						 | 
					341a438267 | ||
| 
						 | 
					d86592841e | ||
| 
						 | 
					f25426911d | ||
| 9a31609cfd | |||
| 
						 | 
					04b2edceb4 | ||
| 
						 | 
					5a24e9f6fc | ||
| 
						 | 
					eb96c89b5d | ||
| 
						 | 
					606ba6a1a3 | ||
| 
						 | 
					c0bd9977be | ||
| 
						 | 
					26e0e41593 | ||
| 
						 | 
					a89245c41b | ||
| 
						 | 
					f5c982cc85 | ||
| 8e6a3740ae | |||
| 
						 | 
					05f7430216 | ||
| 
						 | 
					ca6d9a10df | ||
| 
						 | 
					4a1414bacc | ||
| 
						 | 
					8e74a80e91 | ||
| 
						 | 
					5327261718 | ||
| 
						 | 
					04b1cb9e7d | ||
| 
						 | 
					774674d0f5 | ||
| 
						 | 
					4403b696be | ||
| 
						 | 
					a70ffb1509 | ||
| 
						 | 
					86d2a11643 | 
							
								
								
									
										11
									
								
								.github/workflows/check-release.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,11 @@
 | 
			
		||||
on: [push, pull_request]
 | 
			
		||||
name: Check & Release
 | 
			
		||||
jobs:
 | 
			
		||||
  lint:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@master
 | 
			
		||||
      - name: lint
 | 
			
		||||
        uses: Roang-zero1/factorio-mod-luacheck@master
 | 
			
		||||
        with:
 | 
			
		||||
          luacheckrc_url: https://raw.githubusercontent.com/minetest-mods/unified_inventory/master/.luacheckrc
 | 
			
		||||
							
								
								
									
										21
									
								
								.luacheckrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,21 @@
 | 
			
		||||
unused_args = false
 | 
			
		||||
allow_defined_top = true
 | 
			
		||||
max_line_length = 999
 | 
			
		||||
 | 
			
		||||
globals = {
 | 
			
		||||
	"unified_inventory",
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
read_globals = {
 | 
			
		||||
	string = {fields = {"split", "trim"}},
 | 
			
		||||
	table = {fields = {"copy", "getn"}},
 | 
			
		||||
 | 
			
		||||
	"minetest", "vector",
 | 
			
		||||
	"ItemStack", "datastorage",
 | 
			
		||||
 | 
			
		||||
	"hb",
 | 
			
		||||
	"doors",
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
files["callbacks.lua"].ignore = { "player", "draw_lite_mode" }
 | 
			
		||||
files["bags.lua"].ignore = { "player" }
 | 
			
		||||
							
								
								
									
										19
									
								
								LICENSE.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,19 @@
 | 
			
		||||
Unified Inventory for Minetest
 | 
			
		||||
Copyright (C) 2012-2014 Maciej Kasatkin (RealBadAngel)
 | 
			
		||||
 | 
			
		||||
This library is free software; you can redistribute it and/or
 | 
			
		||||
modify it under the terms of the GNU Library General Public
 | 
			
		||||
License as published by the Free Software Foundation; either
 | 
			
		||||
version 2 of the License, or (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
This library is distributed in the hope that it will be useful,
 | 
			
		||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
			
		||||
Library General Public License for more details.
 | 
			
		||||
 | 
			
		||||
You should have received a copy of the GNU Library General Public
 | 
			
		||||
License along with this library; if not, write to the Free Software
 | 
			
		||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 | 
			
		||||
 | 
			
		||||
Contact information:
 | 
			
		||||
	Examine a git patch to get the contributor's email address.
 | 
			
		||||
							
								
								
									
										57
									
								
								README.md
									
									
									
									
									
								
							
							
						
						@@ -1,22 +1,56 @@
 | 
			
		||||
Unified inventory
 | 
			
		||||
=================
 | 
			
		||||
# Unified Inventory
 | 
			
		||||
 | 
			
		||||
[](https://github.com/minetest-mods/unified_inventory/actions)
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
Unified Inventory replaces the default survival and creative inventory.
 | 
			
		||||
It adds a nicer interface and a number of features, such as a crafting guide.
 | 
			
		||||
 | 
			
		||||
License
 | 
			
		||||
=======
 | 
			
		||||
 | 
			
		||||
## Features
 | 
			
		||||
 | 
			
		||||
 * Node, item and tool browser
 | 
			
		||||
 * Crafting guide
 | 
			
		||||
    * Can copy the recipe to the crafting grid
 | 
			
		||||
    * Recipe search function by ingredients
 | 
			
		||||
 * Up to four bags with up to 24 slots each
 | 
			
		||||
 * Home function to teleport
 | 
			
		||||
 * Trash slot and refill slot for creative
 | 
			
		||||
 * Waypoints to keep track of important locations
 | 
			
		||||
 * Lite mode: reduces the item browser width
 | 
			
		||||
    * `minetest.conf` setting `unified_inventory_lite = true`
 | 
			
		||||
 * Mod API for modders: see [mod_api.txt](doc/mod_api.txt)
 | 
			
		||||
 * Setting-determinated features: see [settingtypes.txt](settingtypes.txt)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Requirements
 | 
			
		||||
 | 
			
		||||
 * Minetest 5.4.0+
 | 
			
		||||
 * Mod `default` for category filters (contained in Minetest Game)
 | 
			
		||||
 * Mod `farming` for craftable bags (contained in Minetest Game)
 | 
			
		||||
 * For waypoint migration: `datastorage`
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Licenses
 | 
			
		||||
 | 
			
		||||
Copyright (C) 2012-2014 Maciej Kasatkin (RealBadAngel)
 | 
			
		||||
 | 
			
		||||
Unified inventory code is licensed under the GNU LGPLv2+.
 | 
			
		||||
Copyright (C) 2012-? Various minetest-mods contributors
 | 
			
		||||
 | 
			
		||||
Licenses for textures:
 | 
			
		||||
 | 
			
		||||
## Code
 | 
			
		||||
 | 
			
		||||
GNU LGPLv2+, see [license notice](LICENSE.txt)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Textures
 | 
			
		||||
 | 
			
		||||
VanessaE: (CC-BY-4.0)
 | 
			
		||||
 | 
			
		||||
  * `ui_group.png`
 | 
			
		||||
 | 
			
		||||
Tango Project: (Public Domain, CC-BY-4.0)
 | 
			
		||||
 | 
			
		||||
  * [`ui_reset_icon.png`](https://commons.wikimedia.org/wiki/File:Edit-clear.svg)
 | 
			
		||||
  * [`ui_doubleleft_icon.png`](http://commons.wikimedia.org/wiki/File:Media-seek-backward.svg)
 | 
			
		||||
  * [`ui_doubleright_icon.png`](http://commons.wikimedia.org/wiki/File:Media-seek-forward.svg)
 | 
			
		||||
@@ -25,6 +59,7 @@ Tango Project: (Public Domain, CC-BY-4.0)
 | 
			
		||||
  * [`ui_skip_forward_icon.png`](http://commons.wikimedia.org/wiki/File:Media-skip-forward.svg)
 | 
			
		||||
 | 
			
		||||
From http://www.clker.com (Public Domain, CC-BY-4.0):
 | 
			
		||||
 | 
			
		||||
  * [`bags_small.png`](http://www.clker.com/clipart-moneybag-empty.html)
 | 
			
		||||
  * [`bags_medium.png`](http://www.clker.com/clipart-backpack-1.html)
 | 
			
		||||
  * [`bags_large.png` / `ui_bags_icon.png`](http://www.clker.com/clipart-backpack-green-brown.html)
 | 
			
		||||
@@ -37,25 +72,33 @@ From http://www.clker.com (Public Domain, CC-BY-4.0):
 | 
			
		||||
  * [`ui_waypoint_set_icon.png`](http://www.clker.com/clipart-larger-flag.html)
 | 
			
		||||
 | 
			
		||||
Everaldo Coelho (YellowIcon) (LGPL v2.1+):
 | 
			
		||||
 | 
			
		||||
  * [`ui_craftguide_icon.png` / `ui_craft_icon.png`](http://commons.wikimedia.org/wiki/File:Advancedsettings.png)
 | 
			
		||||
 | 
			
		||||
Gregory H. Revera: (CC-BY-SA 3.0)
 | 
			
		||||
 | 
			
		||||
  * [`ui_moon_icon.png`](http://commons.wikimedia.org/wiki/File:FullMoon2010.jpg)
 | 
			
		||||
 | 
			
		||||
Thomas Bresson: (CC-BY 3.0)
 | 
			
		||||
 | 
			
		||||
  * [`ui_sun_icon.png`](http://commons.wikimedia.org/wiki/File:2012-10-13_15-29-35-sun.jpg)
 | 
			
		||||
 | 
			
		||||
Fibonacci: (Public domain, CC-BY 4.0)
 | 
			
		||||
 | 
			
		||||
  * [`ui_xyz_off_icon.png`](http://commons.wikimedia.org/wiki/File:No_sign.svg)
 | 
			
		||||
 | 
			
		||||
Gregory Maxwell: (Public domain, CC-BY 4.0)
 | 
			
		||||
 | 
			
		||||
  * [`ui_ok_icon.png`](http://commons.wikimedia.org/wiki/File:Yes_check.svg)
 | 
			
		||||
 | 
			
		||||
Adrien Facélina: (LGPL v2.1+)
 | 
			
		||||
 | 
			
		||||
  * [`inventory_plus_worldedit_gui.png`](http://commons.wikimedia.org/wiki/File:Erioll_world_2.svg)
 | 
			
		||||
 | 
			
		||||
Other files from Wikimedia Commons:
 | 
			
		||||
 | 
			
		||||
  * [`ui_gohome_icon.png` / `ui_home_icon.png` / `ui_sethome_icon.png`](http://commons.wikimedia.org/wiki/File:Home_256x256.png) (GPL v2+)
 | 
			
		||||
 | 
			
		||||
RealBadAngel: (CC-BY-4.0)
 | 
			
		||||
 | 
			
		||||
  * Everything else.
 | 
			
		||||
							
								
								
									
										131
									
								
								api.lua
									
									
									
									
									
								
							
							
						
						@@ -1,5 +1,6 @@
 | 
			
		||||
local S = unified_inventory.gettext
 | 
			
		||||
local S = minetest.get_translator("unified_inventory")
 | 
			
		||||
local F = minetest.formspec_escape
 | 
			
		||||
local ui = unified_inventory
 | 
			
		||||
 | 
			
		||||
-- Create detached creative inventory after loading all mods
 | 
			
		||||
minetest.after(0.01, function()
 | 
			
		||||
@@ -8,16 +9,16 @@ minetest.after(0.01, function()
 | 
			
		||||
		if not rev_aliases[target] then rev_aliases[target] = {} end
 | 
			
		||||
		table.insert(rev_aliases[target], source)
 | 
			
		||||
	end
 | 
			
		||||
	unified_inventory.items_list = {}
 | 
			
		||||
	ui.items_list = {}
 | 
			
		||||
	for name, def in pairs(minetest.registered_items) do
 | 
			
		||||
		if (not def.groups.not_in_creative_inventory or
 | 
			
		||||
		   def.groups.not_in_creative_inventory == 0) and
 | 
			
		||||
		   def.description and def.description ~= "" then
 | 
			
		||||
			table.insert(unified_inventory.items_list, name)
 | 
			
		||||
			table.insert(ui.items_list, name)
 | 
			
		||||
			local all_names = rev_aliases[name] or {}
 | 
			
		||||
			table.insert(all_names, name)
 | 
			
		||||
			for _, name in ipairs(all_names) do
 | 
			
		||||
				local recipes = minetest.get_all_craft_recipes(name)
 | 
			
		||||
			for _, player_name in ipairs(all_names) do
 | 
			
		||||
				local recipes = minetest.get_all_craft_recipes(player_name)
 | 
			
		||||
				if recipes then
 | 
			
		||||
					for _, recipe in ipairs(recipes) do
 | 
			
		||||
 | 
			
		||||
@@ -26,30 +27,30 @@ minetest.after(0.01, function()
 | 
			
		||||
						for _,chk in pairs(recipe.items) do
 | 
			
		||||
							local groupchk = string.find(chk, "group:")
 | 
			
		||||
							if (not groupchk and not minetest.registered_items[chk])
 | 
			
		||||
							  or (groupchk and not unified_inventory.get_group_item(string.gsub(chk, "group:", "")).item)
 | 
			
		||||
							  or (groupchk and not ui.get_group_item(string.gsub(chk, "group:", "")).item)
 | 
			
		||||
							  or minetest.get_item_group(chk, "not_in_craft_guide") ~= 0 then
 | 
			
		||||
								unknowns = true
 | 
			
		||||
							end
 | 
			
		||||
						end
 | 
			
		||||
 | 
			
		||||
						if not unknowns then
 | 
			
		||||
							unified_inventory.register_craft(recipe)
 | 
			
		||||
							ui.register_craft(recipe)
 | 
			
		||||
						end
 | 
			
		||||
					end
 | 
			
		||||
				end
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
	table.sort(unified_inventory.items_list)
 | 
			
		||||
	unified_inventory.items_list_size = #unified_inventory.items_list
 | 
			
		||||
	print("Unified Inventory. inventory size: "..unified_inventory.items_list_size)
 | 
			
		||||
	for _, name in ipairs(unified_inventory.items_list) do
 | 
			
		||||
	table.sort(ui.items_list)
 | 
			
		||||
	ui.items_list_size = #ui.items_list
 | 
			
		||||
	print("Unified Inventory. inventory size: "..ui.items_list_size)
 | 
			
		||||
	for _, name in ipairs(ui.items_list) do
 | 
			
		||||
		local def = minetest.registered_items[name]
 | 
			
		||||
		-- Simple drops
 | 
			
		||||
		if type(def.drop) == "string" then
 | 
			
		||||
			local dstack = ItemStack(def.drop)
 | 
			
		||||
			if not dstack:is_empty() and dstack:get_name() ~= name then
 | 
			
		||||
				unified_inventory.register_craft({
 | 
			
		||||
				ui.register_craft({
 | 
			
		||||
					type = "digging",
 | 
			
		||||
					items = {name},
 | 
			
		||||
					output = def.drop,
 | 
			
		||||
@@ -115,7 +116,7 @@ minetest.after(0.01, function()
 | 
			
		||||
				end
 | 
			
		||||
			end
 | 
			
		||||
			for itemstring, count in pairs(drop_guaranteed) do
 | 
			
		||||
				unified_inventory.register_craft({
 | 
			
		||||
				ui.register_craft({
 | 
			
		||||
					type = "digging",
 | 
			
		||||
					items = {name},
 | 
			
		||||
					output = itemstring .. " " .. count,
 | 
			
		||||
@@ -123,7 +124,7 @@ minetest.after(0.01, function()
 | 
			
		||||
				})
 | 
			
		||||
			end
 | 
			
		||||
			for itemstring, count in pairs(drop_maybe) do
 | 
			
		||||
				unified_inventory.register_craft({
 | 
			
		||||
				ui.register_craft({
 | 
			
		||||
					type = "digging_chance",
 | 
			
		||||
					items = {name},
 | 
			
		||||
					output = itemstring .. " " .. count,
 | 
			
		||||
@@ -132,22 +133,22 @@ minetest.after(0.01, function()
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
	for _, recipes in pairs(unified_inventory.crafts_for.recipe) do
 | 
			
		||||
	for _, recipes in pairs(ui.crafts_for.recipe) do
 | 
			
		||||
		for _, recipe in ipairs(recipes) do
 | 
			
		||||
			local ingredient_items = {}
 | 
			
		||||
			for _, spec in pairs(recipe.items) do
 | 
			
		||||
				local matches_spec = unified_inventory.canonical_item_spec_matcher(spec)
 | 
			
		||||
				for _, name in ipairs(unified_inventory.items_list) do
 | 
			
		||||
				local matches_spec = ui.canonical_item_spec_matcher(spec)
 | 
			
		||||
				for _, name in ipairs(ui.items_list) do
 | 
			
		||||
					if matches_spec(name) then
 | 
			
		||||
						ingredient_items[name] = true
 | 
			
		||||
					end
 | 
			
		||||
				end
 | 
			
		||||
			end
 | 
			
		||||
			for name, _ in pairs(ingredient_items) do
 | 
			
		||||
				if unified_inventory.crafts_for.usage[name] == nil then
 | 
			
		||||
					unified_inventory.crafts_for.usage[name] = {}
 | 
			
		||||
				if ui.crafts_for.usage[name] == nil then
 | 
			
		||||
					ui.crafts_for.usage[name] = {}
 | 
			
		||||
				end
 | 
			
		||||
				table.insert(unified_inventory.crafts_for.usage[name], recipe)
 | 
			
		||||
				table.insert(ui.crafts_for.usage[name], recipe)
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
@@ -156,9 +157,9 @@ end)
 | 
			
		||||
 | 
			
		||||
-- load_home
 | 
			
		||||
local function load_home()
 | 
			
		||||
	local input = io.open(unified_inventory.home_filename, "r")
 | 
			
		||||
	local input = io.open(ui.home_filename, "r")
 | 
			
		||||
	if not input then
 | 
			
		||||
		unified_inventory.home_pos = {}
 | 
			
		||||
		ui.home_pos = {}
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
	while true do
 | 
			
		||||
@@ -167,32 +168,40 @@ local function load_home()
 | 
			
		||||
		local y = input:read("*n")
 | 
			
		||||
		local z = input:read("*n")
 | 
			
		||||
		local name = input:read("*l")
 | 
			
		||||
		unified_inventory.home_pos[name:sub(2)] = {x = x, y = y, z = z}
 | 
			
		||||
		ui.home_pos[name:sub(2)] = {x = x, y = y, z = z}
 | 
			
		||||
	end
 | 
			
		||||
	io.close(input)
 | 
			
		||||
end
 | 
			
		||||
load_home()
 | 
			
		||||
 | 
			
		||||
function unified_inventory.set_home(player, pos)
 | 
			
		||||
function ui.set_home(player, pos)
 | 
			
		||||
	local player_name = player:get_player_name()
 | 
			
		||||
	unified_inventory.home_pos[player_name] = vector.round(pos)
 | 
			
		||||
	ui.home_pos[player_name] = vector.round(pos)
 | 
			
		||||
 | 
			
		||||
	-- save the home data from the table to the file
 | 
			
		||||
	local output = io.open(unified_inventory.home_filename, "w")
 | 
			
		||||
	for k, v in pairs(unified_inventory.home_pos) do
 | 
			
		||||
	local output = io.open(ui.home_filename, "w")
 | 
			
		||||
	if not output then
 | 
			
		||||
		minetest.log("warning", "[unified_inventory] Failed to save file: "
 | 
			
		||||
			.. ui.home_filename)
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
	for k, v in pairs(ui.home_pos) do
 | 
			
		||||
		output:write(v.x.." "..v.y.." "..v.z.." "..k.."\n")
 | 
			
		||||
	end
 | 
			
		||||
	io.close(output)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function unified_inventory.go_home(player)
 | 
			
		||||
	local pos = unified_inventory.home_pos[player:get_player_name()]
 | 
			
		||||
function ui.go_home(player)
 | 
			
		||||
	local pos = ui.home_pos[player:get_player_name()]
 | 
			
		||||
	if pos then
 | 
			
		||||
		player:setpos(pos)
 | 
			
		||||
		player:set_pos(pos)
 | 
			
		||||
		return true
 | 
			
		||||
	end
 | 
			
		||||
	return false
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- register_craft
 | 
			
		||||
function unified_inventory.register_craft(options)
 | 
			
		||||
function ui.register_craft(options)
 | 
			
		||||
	if not options.output then
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
@@ -203,10 +212,10 @@ function unified_inventory.register_craft(options)
 | 
			
		||||
	if options.type == "normal" and options.width == 0 then
 | 
			
		||||
		options = { type = "shapeless", items = options.items, output = options.output, width = 0 }
 | 
			
		||||
	end
 | 
			
		||||
	if not unified_inventory.crafts_for.recipe[itemstack:get_name()] then
 | 
			
		||||
		unified_inventory.crafts_for.recipe[itemstack:get_name()] = {}
 | 
			
		||||
	if not ui.crafts_for.recipe[itemstack:get_name()] then
 | 
			
		||||
		ui.crafts_for.recipe[itemstack:get_name()] = {}
 | 
			
		||||
	end
 | 
			
		||||
	table.insert(unified_inventory.crafts_for.recipe[itemstack:get_name()],options)
 | 
			
		||||
	table.insert(ui.crafts_for.recipe[itemstack:get_name()],options)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -217,7 +226,7 @@ local craft_type_defaults = {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function unified_inventory.craft_type_defaults(name, options)
 | 
			
		||||
function ui.craft_type_defaults(name, options)
 | 
			
		||||
	if not options.description then
 | 
			
		||||
		options.description = name
 | 
			
		||||
	end
 | 
			
		||||
@@ -226,13 +235,13 @@ function unified_inventory.craft_type_defaults(name, options)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function unified_inventory.register_craft_type(name, options)
 | 
			
		||||
	unified_inventory.registered_craft_types[name] =
 | 
			
		||||
			unified_inventory.craft_type_defaults(name, options)
 | 
			
		||||
function ui.register_craft_type(name, options)
 | 
			
		||||
	ui.registered_craft_types[name] =
 | 
			
		||||
			ui.craft_type_defaults(name, options)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
unified_inventory.register_craft_type("normal", {
 | 
			
		||||
ui.register_craft_type("normal", {
 | 
			
		||||
	description = F(S("Crafting")),
 | 
			
		||||
	icon = "ui_craftgrid_icon.png",
 | 
			
		||||
	width = 3,
 | 
			
		||||
@@ -248,7 +257,7 @@ unified_inventory.register_craft_type("normal", {
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
unified_inventory.register_craft_type("shapeless", {
 | 
			
		||||
ui.register_craft_type("shapeless", {
 | 
			
		||||
	description = F(S("Mixing")),
 | 
			
		||||
	icon = "ui_craftgrid_icon.png",
 | 
			
		||||
	width = 3,
 | 
			
		||||
@@ -263,7 +272,7 @@ unified_inventory.register_craft_type("shapeless", {
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
unified_inventory.register_craft_type("cooking", {
 | 
			
		||||
ui.register_craft_type("cooking", {
 | 
			
		||||
	description = F(S("Cooking")),
 | 
			
		||||
	icon = "default_furnace_front.png",
 | 
			
		||||
	width = 1,
 | 
			
		||||
@@ -271,38 +280,60 @@ unified_inventory.register_craft_type("cooking", {
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
unified_inventory.register_craft_type("digging", {
 | 
			
		||||
ui.register_craft_type("digging", {
 | 
			
		||||
	description = F(S("Digging")),
 | 
			
		||||
	icon = "default_tool_steelpick.png",
 | 
			
		||||
	width = 1,
 | 
			
		||||
	height = 1,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
unified_inventory.register_craft_type("digging_chance", {
 | 
			
		||||
ui.register_craft_type("digging_chance", {
 | 
			
		||||
	description = "Digging (by chance)",
 | 
			
		||||
	icon = "default_tool_steelpick.png^[transformFY.png",
 | 
			
		||||
	width = 1,
 | 
			
		||||
	height = 1,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
function unified_inventory.register_page(name, def)
 | 
			
		||||
	unified_inventory.pages[name] = def
 | 
			
		||||
function ui.register_page(name, def)
 | 
			
		||||
	ui.pages[name] = def
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function unified_inventory.register_button(name, def)
 | 
			
		||||
function ui.register_button(name, def)
 | 
			
		||||
	if not def.action then
 | 
			
		||||
		def.action = function(player)
 | 
			
		||||
			unified_inventory.set_inventory_formspec(player, name)
 | 
			
		||||
			ui.set_inventory_formspec(player, name)
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
	def.name = name
 | 
			
		||||
	table.insert(unified_inventory.buttons, def)
 | 
			
		||||
	table.insert(ui.buttons, def)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function unified_inventory.is_creative(playername)
 | 
			
		||||
function ui.is_creative(playername)
 | 
			
		||||
	return minetest.check_player_privs(playername, {creative=true})
 | 
			
		||||
		or minetest.settings:get_bool("creative_mode")
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function ui.single_slot(xpos, ypos, bright)
 | 
			
		||||
	return string.format("background9[%f,%f;%f,%f;ui_single_slot%s.png;false;16]",
 | 
			
		||||
	xpos, ypos, ui.imgscale, ui.imgscale, (bright and "_bright" or "") )
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function ui.make_trash_slot(xpos, ypos)
 | 
			
		||||
	return
 | 
			
		||||
		ui.single_slot(xpos, ypos)..
 | 
			
		||||
		"image["..xpos..","..ypos..";1.25,1.25;ui_trash_slot_icon.png]"..
 | 
			
		||||
		"list[detached:trash;main;"..(xpos + ui.list_img_offset)..","..(ypos + ui.list_img_offset)..";1,1;]"
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function ui.make_inv_img_grid(xpos, ypos, width, height, bright)
 | 
			
		||||
	local tiled = {}
 | 
			
		||||
	local n=1
 | 
			
		||||
	for y = 0, (height - 1) do
 | 
			
		||||
		for x = 0, (width -1) do
 | 
			
		||||
			tiled[n] = ui.single_slot(xpos + (ui.imgscale * x), ypos + (ui.imgscale * y), bright)
 | 
			
		||||
			n = n + 1
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
	return table.concat(tiled)
 | 
			
		||||
end
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										108
									
								
								bags.lua
									
									
									
									
									
								
							
							
						
						@@ -1,31 +1,38 @@
 | 
			
		||||
-- Bags for Minetest
 | 
			
		||||
--[[
 | 
			
		||||
Bags for Minetest
 | 
			
		||||
 | 
			
		||||
-- Copyright (c) 2012 cornernote, Brett O'Donnell <cornernote@gmail.com>
 | 
			
		||||
-- License: GPLv3
 | 
			
		||||
Copyright (c) 2012 cornernote, Brett O'Donnell <cornernote@gmail.com>
 | 
			
		||||
License: GPLv3
 | 
			
		||||
--]]
 | 
			
		||||
 | 
			
		||||
local S = unified_inventory.gettext
 | 
			
		||||
local S = minetest.get_translator("unified_inventory")
 | 
			
		||||
local F = minetest.formspec_escape
 | 
			
		||||
local ui = unified_inventory
 | 
			
		||||
 | 
			
		||||
unified_inventory.register_page("bags", {
 | 
			
		||||
ui.register_page("bags", {
 | 
			
		||||
	get_formspec = function(player)
 | 
			
		||||
		local player_name = player:get_player_name()
 | 
			
		||||
		return { formspec = table.concat({
 | 
			
		||||
			"background[0.06,0.99;7.92,7.52;ui_bags_main_form.png]",
 | 
			
		||||
			"label[0,0;" .. F(S("Bags")) .. "]",
 | 
			
		||||
			"button[0,2;2,0.5;bag1;" .. F(S("Bag @1", 1)) .. "]",
 | 
			
		||||
			"button[2,2;2,0.5;bag2;" .. F(S("Bag @1", 2)) .. "]",
 | 
			
		||||
			"button[4,2;2,0.5;bag3;" .. F(S("Bag @1", 3)) .. "]",
 | 
			
		||||
			"button[6,2;2,0.5;bag4;" .. F(S("Bag @1", 4)) .. "]",
 | 
			
		||||
			ui.style_full.standard_inv_bg,
 | 
			
		||||
			ui.single_slot(0.925, 1.5),
 | 
			
		||||
			ui.single_slot(3.425, 1.5),
 | 
			
		||||
			ui.single_slot(5.925, 1.5),
 | 
			
		||||
			ui.single_slot(8.425, 1.5),
 | 
			
		||||
			"label["..ui.style_full.form_header_x..","..ui.style_full.form_header_y..";" .. F(S("Bags")) .. "]",
 | 
			
		||||
			"button[0.6125,2.75;1.875,0.75;bag1;" .. F(S("Bag @1", 1)) .. "]",
 | 
			
		||||
			"button[3.1125,2.75;1.875,0.75;bag2;" .. F(S("Bag @1", 2)) .. "]",
 | 
			
		||||
			"button[5.6125,2.75;1.875,0.75;bag3;" .. F(S("Bag @1", 3)) .. "]",
 | 
			
		||||
			"button[8.1125,2.75;1.875,0.75;bag4;" .. F(S("Bag @1", 4)) .. "]",
 | 
			
		||||
			"listcolors[#00000000;#00000000]",
 | 
			
		||||
			"list[detached:" .. F(player_name) .. "_bags;bag1;0.5,1;1,1;]",
 | 
			
		||||
			"list[detached:" .. F(player_name) .. "_bags;bag2;2.5,1;1,1;]",
 | 
			
		||||
			"list[detached:" .. F(player_name) .. "_bags;bag3;4.5,1;1,1;]",
 | 
			
		||||
			"list[detached:" .. F(player_name) .. "_bags;bag4;6.5,1;1,1;]"
 | 
			
		||||
			"list[detached:" .. F(player_name) .. "_bags;bag1;1.075,1.65;1,1;]",
 | 
			
		||||
			"list[detached:" .. F(player_name) .. "_bags;bag2;3.575,1.65;1,1;]",
 | 
			
		||||
			"list[detached:" .. F(player_name) .. "_bags;bag3;6.075,1.65;1,1;]",
 | 
			
		||||
			"list[detached:" .. F(player_name) .. "_bags;bag4;8.575,1.65;1,1;]"
 | 
			
		||||
		}) }
 | 
			
		||||
	end,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
unified_inventory.register_button("bags", {
 | 
			
		||||
ui.register_button("bags", {
 | 
			
		||||
	type = "image",
 | 
			
		||||
	image = "ui_bags_icon.png",
 | 
			
		||||
	tooltip = S("Bags"),
 | 
			
		||||
@@ -40,32 +47,31 @@ local function get_player_bag_stack(player, i)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
for bag_i = 1, 4 do
 | 
			
		||||
	unified_inventory.register_page("bag" .. bag_i, {
 | 
			
		||||
	ui.register_page("bag" .. bag_i, {
 | 
			
		||||
		get_formspec = function(player)
 | 
			
		||||
			local stack = get_player_bag_stack(player, bag_i)
 | 
			
		||||
			local image = stack:get_definition().inventory_image
 | 
			
		||||
			local fs = {
 | 
			
		||||
				"image[7,0;1,1;" .. image .. "]",
 | 
			
		||||
				"label[0,0;" .. F(S("Bag @1", bag_i)) .. "]",
 | 
			
		||||
				"listcolors[#00000000;#00000000]",
 | 
			
		||||
				"list[current_player;bag" .. bag_i .. "contents;0,1;8,3;]",
 | 
			
		||||
				"listring[current_name;bag" .. bag_i .. "contents]",
 | 
			
		||||
				"listring[current_player;main]"
 | 
			
		||||
			}
 | 
			
		||||
			local slots = stack:get_definition().groups.bagslots
 | 
			
		||||
			if slots == 8 then
 | 
			
		||||
					fs[#fs + 1] = "background[0.06,0.99;7.92,7.52;ui_bags_sm_form.png]"
 | 
			
		||||
			elseif slots == 16 then
 | 
			
		||||
					fs[#fs + 1] = "background[0.06,0.99;7.92,7.52;ui_bags_med_form.png]"
 | 
			
		||||
			elseif slots == 24 then
 | 
			
		||||
					fs[#fs + 1] = "background[0.06,0.99;7.92,7.52;ui_bags_lg_form.png]"
 | 
			
		||||
			end
 | 
			
		||||
 | 
			
		||||
			local formspec = {
 | 
			
		||||
				ui.style_full.standard_inv_bg,
 | 
			
		||||
				ui.make_inv_img_grid(0.3, 1.5, 8, slots/8),
 | 
			
		||||
				"image[9.2,0.4;1,1;" .. image .. "]",
 | 
			
		||||
				"label[0.3,0.65;" .. F(S("Bag @1", bag_i)) .. "]",
 | 
			
		||||
				"listcolors[#00000000;#00000000]",
 | 
			
		||||
				"listring[current_player;main]",
 | 
			
		||||
				string.format("list[current_player;bag%icontents;%f,%f;8,3;]",
 | 
			
		||||
				    bag_i, 0.3 + ui.list_img_offset, 1.5 + ui.list_img_offset),
 | 
			
		||||
				"listring[current_name;bag" .. bag_i .. "contents]",
 | 
			
		||||
			}
 | 
			
		||||
			local n = #formspec + 1
 | 
			
		||||
 | 
			
		||||
			local player_name = player:get_player_name() -- For if statement.
 | 
			
		||||
			if unified_inventory.trash_enabled
 | 
			
		||||
					or unified_inventory.is_creative(player_name)
 | 
			
		||||
					or minetest.get_player_privs(player_name).give then
 | 
			
		||||
				fs[#fs + 1] = "background[6.06,0;0.92,0.92;ui_bags_trash.png]"
 | 
			
		||||
						.. "list[detached:trash;main;6,0.1;1,1;]"
 | 
			
		||||
			if ui.trash_enabled
 | 
			
		||||
				or ui.is_creative(player_name)
 | 
			
		||||
				or minetest.get_player_privs(player_name).give then
 | 
			
		||||
					formspec[n] = ui.make_trash_slot(7.8, 0.25)
 | 
			
		||||
					n = n + 1
 | 
			
		||||
			end
 | 
			
		||||
			local inv = player:get_inventory()
 | 
			
		||||
			for i = 1, 4 do
 | 
			
		||||
@@ -82,11 +88,12 @@ for bag_i = 1, 4 do
 | 
			
		||||
					end
 | 
			
		||||
					local img = def.inventory_image
 | 
			
		||||
					local label = F(S("Bag @1", i)) .. "\n" .. used .. "/" .. size
 | 
			
		||||
					fs[#fs + 1] = string.format("image_button[%i,0;1,1;%s;bag%i;%s]",
 | 
			
		||||
							i + 1, img, i, label)
 | 
			
		||||
					formspec[n] = string.format("image_button[%f,0.4;1,1;%s;bag%i;%s]",
 | 
			
		||||
							(i + 1.35)*1.25, img, i, label)
 | 
			
		||||
					n = n + 1
 | 
			
		||||
				end
 | 
			
		||||
			end
 | 
			
		||||
			return { formspec = table.concat(fs) }
 | 
			
		||||
			return { formspec = table.concat(formspec) }
 | 
			
		||||
		end,
 | 
			
		||||
	})
 | 
			
		||||
end
 | 
			
		||||
@@ -101,7 +108,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
 | 
			
		||||
			if not stack:get_definition().groups.bagslots then
 | 
			
		||||
				return
 | 
			
		||||
			end
 | 
			
		||||
			unified_inventory.set_inventory_formspec(player, "bag" .. i)
 | 
			
		||||
			ui.set_inventory_formspec(player, "bag" .. i)
 | 
			
		||||
			return
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
@@ -118,17 +125,19 @@ local function save_bags_metadata(player, bags_inv)
 | 
			
		||||
			is_empty = false
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
	local meta = player:get_meta()
 | 
			
		||||
	if is_empty then
 | 
			
		||||
		player:set_attribute("unified_inventory:bags", nil)
 | 
			
		||||
		meta:set_string("unified_inventory:bags", nil)
 | 
			
		||||
	else
 | 
			
		||||
		player:set_attribute("unified_inventory:bags",
 | 
			
		||||
		meta:set_string("unified_inventory:bags",
 | 
			
		||||
			minetest.serialize(bags))
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
local function load_bags_metadata(player, bags_inv)
 | 
			
		||||
	local player_inv = player:get_inventory()
 | 
			
		||||
	local bags_meta = player:get_attribute("unified_inventory:bags")
 | 
			
		||||
	local meta = player:get_meta()
 | 
			
		||||
	local bags_meta = meta:get("unified_inventory:bags")
 | 
			
		||||
	local bags = bags_meta and minetest.deserialize(bags_meta) or {}
 | 
			
		||||
	local dirty_meta = false
 | 
			
		||||
	if not bags_meta then
 | 
			
		||||
@@ -162,7 +171,6 @@ local function load_bags_metadata(player, bags_inv)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
minetest.register_on_joinplayer(function(player)
 | 
			
		||||
	local player_inv = player:get_inventory()
 | 
			
		||||
	local player_name = player:get_player_name()
 | 
			
		||||
	local bags_inv = minetest.create_detached_inventory(player_name .. "_bags",{
 | 
			
		||||
		on_put = function(inv, listname, index, stack, player)
 | 
			
		||||
@@ -246,7 +254,7 @@ if minetest.get_modpath("farming") ~= nil then
 | 
			
		||||
	minetest.register_craft({
 | 
			
		||||
		output = "unified_inventory:bag_small",
 | 
			
		||||
		recipe = {
 | 
			
		||||
			{"",           "farming:cotton", ""},
 | 
			
		||||
			{"",           "farming:string", ""},
 | 
			
		||||
			{"group:wool", "group:wool",     "group:wool"},
 | 
			
		||||
			{"group:wool", "group:wool",     "group:wool"},
 | 
			
		||||
		},
 | 
			
		||||
@@ -256,8 +264,8 @@ if minetest.get_modpath("farming") ~= nil then
 | 
			
		||||
		output = "unified_inventory:bag_medium",
 | 
			
		||||
		recipe = {
 | 
			
		||||
			{"",               "",                            ""},
 | 
			
		||||
			{"farming:cotton", "unified_inventory:bag_small", "farming:cotton"},
 | 
			
		||||
			{"farming:cotton", "unified_inventory:bag_small", "farming:cotton"},
 | 
			
		||||
			{"farming:string", "unified_inventory:bag_small", "farming:string"},
 | 
			
		||||
			{"farming:string", "unified_inventory:bag_small", "farming:string"},
 | 
			
		||||
		},
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
@@ -265,8 +273,8 @@ if minetest.get_modpath("farming") ~= nil then
 | 
			
		||||
		output = "unified_inventory:bag_large",
 | 
			
		||||
		recipe = {
 | 
			
		||||
			{"",               "",                             ""},
 | 
			
		||||
			{"farming:cotton", "unified_inventory:bag_medium", "farming:cotton"},
 | 
			
		||||
			{"farming:cotton", "unified_inventory:bag_medium", "farming:cotton"},
 | 
			
		||||
			{"farming:string", "unified_inventory:bag_medium", "farming:string"},
 | 
			
		||||
			{"farming:string", "unified_inventory:bag_medium", "farming:string"},
 | 
			
		||||
	    },
 | 
			
		||||
	})
 | 
			
		||||
end
 | 
			
		||||
 
 | 
			
		||||
@@ -19,6 +19,8 @@ minetest.register_on_joinplayer(function(player)
 | 
			
		||||
	unified_inventory.active_search_direction[player_name] = "nochange"
 | 
			
		||||
	unified_inventory.apply_filter(player, "", "nochange")
 | 
			
		||||
	unified_inventory.current_searchbox[player_name] = ""
 | 
			
		||||
	unified_inventory.current_category[player_name] = "all"
 | 
			
		||||
	unified_inventory.current_category_scroll[player_name] = 0
 | 
			
		||||
	unified_inventory.alternate[player_name] = 1
 | 
			
		||||
	unified_inventory.current_item[player_name] = nil
 | 
			
		||||
	unified_inventory.current_craft_direction[player_name] = "recipe"
 | 
			
		||||
@@ -28,7 +30,6 @@ minetest.register_on_joinplayer(function(player)
 | 
			
		||||
	-- Refill slot
 | 
			
		||||
	local refill = minetest.create_detached_inventory(player_name.."refill", {
 | 
			
		||||
		allow_put = function(inv, listname, index, stack, player)
 | 
			
		||||
			local player_name = player:get_player_name()
 | 
			
		||||
			if unified_inventory.is_creative(player_name) then
 | 
			
		||||
				return stack:get_count()
 | 
			
		||||
			else
 | 
			
		||||
@@ -36,7 +37,6 @@ minetest.register_on_joinplayer(function(player)
 | 
			
		||||
			end
 | 
			
		||||
		end,
 | 
			
		||||
		on_put = function(inv, listname, index, stack, player)
 | 
			
		||||
			local player_name = player:get_player_name()
 | 
			
		||||
			local handle_refill = (minetest.registered_items[stack:get_name()] or {}).on_refill or default_refill
 | 
			
		||||
			stack = handle_refill(stack)
 | 
			
		||||
			inv:set_stack(listname, index, stack)
 | 
			
		||||
@@ -47,6 +47,15 @@ minetest.register_on_joinplayer(function(player)
 | 
			
		||||
	refill:set_size("main", 1)
 | 
			
		||||
end)
 | 
			
		||||
 | 
			
		||||
local function apply_new_filter(player, search_text, new_dir)
 | 
			
		||||
	local player_name = player:get_player_name()
 | 
			
		||||
	minetest.sound_play("click", {to_player=player_name, gain = 0.1})
 | 
			
		||||
	unified_inventory.apply_filter(player, search_text, new_dir)
 | 
			
		||||
	unified_inventory.current_searchbox[player_name] = search_text
 | 
			
		||||
	unified_inventory.set_inventory_formspec(player,
 | 
			
		||||
			unified_inventory.current_page[player_name])
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
minetest.register_on_player_receive_fields(function(player, formname, fields)
 | 
			
		||||
	local player_name = player:get_player_name()
 | 
			
		||||
 | 
			
		||||
@@ -60,7 +69,41 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
 | 
			
		||||
	if fields.searchbox
 | 
			
		||||
	and fields.searchbox ~= unified_inventory.current_searchbox[player_name] then
 | 
			
		||||
		unified_inventory.current_searchbox[player_name] = fields.searchbox
 | 
			
		||||
		unified_inventory.set_inventory_formspec(player, unified_inventory.current_page[player_name])
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	local clicked_category
 | 
			
		||||
	for name, value in pairs(fields) do
 | 
			
		||||
		local category_name = string.match(name, "^category_(.+)$")
 | 
			
		||||
		if category_name then
 | 
			
		||||
			clicked_category = category_name
 | 
			
		||||
			break
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	if clicked_category
 | 
			
		||||
	and clicked_category ~= unified_inventory.current_category[player_name] then
 | 
			
		||||
		unified_inventory.current_category[player_name] = clicked_category
 | 
			
		||||
		unified_inventory.apply_filter(player, unified_inventory.current_searchbox[player_name], "nochange")
 | 
			
		||||
		unified_inventory.set_inventory_formspec(player,
 | 
			
		||||
				unified_inventory.current_page[player_name])
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	if fields.next_category then
 | 
			
		||||
		local scroll = math.min(#unified_inventory.category_list-ui_peruser.pagecols, unified_inventory.current_category_scroll[player_name] + 1)
 | 
			
		||||
		if scroll ~= unified_inventory.current_category_scroll[player_name] then
 | 
			
		||||
			unified_inventory.current_category_scroll[player_name] = scroll
 | 
			
		||||
			unified_inventory.set_inventory_formspec(player,
 | 
			
		||||
					unified_inventory.current_page[player_name])
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
	if fields.prev_category then
 | 
			
		||||
		local scroll = math.max(0, unified_inventory.current_category_scroll[player_name] - 1)
 | 
			
		||||
		if scroll ~= unified_inventory.current_category_scroll[player_name] then
 | 
			
		||||
			unified_inventory.current_category_scroll[player_name] = scroll
 | 
			
		||||
			unified_inventory.set_inventory_formspec(player,
 | 
			
		||||
					unified_inventory.current_page[player_name])
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	for i, def in pairs(unified_inventory.buttons) do
 | 
			
		||||
@@ -112,21 +155,19 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
 | 
			
		||||
				unified_inventory.current_page[player_name])
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	-- Check clicked item image button
 | 
			
		||||
	local clicked_item
 | 
			
		||||
	for name, value in pairs(fields) do
 | 
			
		||||
		if string.sub(name, 1, 12) == "item_button_" then
 | 
			
		||||
			local new_dir, mangled_item = string.match(name, "^item_button_([a-z]+)_(.*)$")
 | 
			
		||||
		local new_dir, mangled_item = string.match(name, "^item_button_([a-z]+)_(.*)$")
 | 
			
		||||
		if new_dir and mangled_item then
 | 
			
		||||
			clicked_item = unified_inventory.demangle_for_formspec(mangled_item)
 | 
			
		||||
			if string.sub(clicked_item, 1, 6) == "group:" then
 | 
			
		||||
				minetest.sound_play("click", {to_player=player_name, gain = 0.1})
 | 
			
		||||
				unified_inventory.apply_filter(player, clicked_item, new_dir)
 | 
			
		||||
				unified_inventory.current_searchbox[player_name] = clicked_item
 | 
			
		||||
				unified_inventory.set_inventory_formspec(player,
 | 
			
		||||
					unified_inventory.current_page[player_name])
 | 
			
		||||
				-- Change search filter to this group
 | 
			
		||||
				unified_inventory.current_category[player_name] = "all"
 | 
			
		||||
				apply_new_filter(player, clicked_item, new_dir)
 | 
			
		||||
				return
 | 
			
		||||
			end
 | 
			
		||||
			if new_dir == "recipe"
 | 
			
		||||
			or new_dir == "usage" then
 | 
			
		||||
			if new_dir == "recipe" or new_dir == "usage" then
 | 
			
		||||
				unified_inventory.current_craft_direction[player_name] = new_dir
 | 
			
		||||
			end
 | 
			
		||||
			break
 | 
			
		||||
@@ -145,6 +186,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
 | 
			
		||||
			unified_inventory.alternate[player_name] = 1
 | 
			
		||||
			unified_inventory.set_inventory_formspec(player, "craftguide")
 | 
			
		||||
		elseif player_creative then
 | 
			
		||||
			-- Creative page: Add entire stack to inventory
 | 
			
		||||
			local inv = player:get_inventory()
 | 
			
		||||
			local stack = ItemStack(clicked_item)
 | 
			
		||||
			stack:set_count(stack:get_stack_max())
 | 
			
		||||
@@ -162,12 +204,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
 | 
			
		||||
		minetest.sound_play("paperflip2",
 | 
			
		||||
				{to_player=player_name, gain = 1.0})
 | 
			
		||||
	elseif fields.searchresetbutton then
 | 
			
		||||
		unified_inventory.apply_filter(player, "", "nochange")
 | 
			
		||||
		unified_inventory.current_searchbox[player_name] = ""
 | 
			
		||||
		unified_inventory.set_inventory_formspec(player,
 | 
			
		||||
				unified_inventory.current_page[player_name])
 | 
			
		||||
		minetest.sound_play("click",
 | 
			
		||||
				{to_player=player_name, gain = 0.1})
 | 
			
		||||
		apply_new_filter(player, "", "nochange")
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	-- alternate buttons
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										150
									
								
								category.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,150 @@
 | 
			
		||||
local S = minetest.get_translator("unified_inventory")
 | 
			
		||||
 | 
			
		||||
unified_inventory.registered_categories = {}
 | 
			
		||||
unified_inventory.registered_category_items = {}
 | 
			
		||||
unified_inventory.category_list = {}
 | 
			
		||||
 | 
			
		||||
local function char_to_sort_index(char_code)
 | 
			
		||||
	if char_code <= 32 then
 | 
			
		||||
		-- Command codes, no thanks
 | 
			
		||||
		return 0
 | 
			
		||||
	end
 | 
			
		||||
	if char_code <= 64 then
 | 
			
		||||
		-- Sorts numbers, and some punctuation, after letters
 | 
			
		||||
		return char_code
 | 
			
		||||
	end
 | 
			
		||||
	if char_code >= 158 then
 | 
			
		||||
		-- Out of sortable range
 | 
			
		||||
		return 0
 | 
			
		||||
	end
 | 
			
		||||
	if char_code > 122 then
 | 
			
		||||
		-- Avoids overlap with {, |, } and ~
 | 
			
		||||
		return char_code - 58
 | 
			
		||||
	end
 | 
			
		||||
	if char_code > 96 then
 | 
			
		||||
		-- Normalises lowercase with uppercase
 | 
			
		||||
		return char_code - 96
 | 
			
		||||
	end
 | 
			
		||||
	return char_code - 64
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
local function string_to_sort_index(str)
 | 
			
		||||
	local max_chars = 5
 | 
			
		||||
	local power = 100
 | 
			
		||||
	local index = 0
 | 
			
		||||
	for i=1,math.min(#str, max_chars) do
 | 
			
		||||
		index = index + (char_to_sort_index(string.byte(str, i))/(power^i))
 | 
			
		||||
	end
 | 
			
		||||
	return index
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function update_category_list()
 | 
			
		||||
	local category_list = {}
 | 
			
		||||
	table.insert(category_list, {
 | 
			
		||||
		name = "all",
 | 
			
		||||
		label = S("All Items"),
 | 
			
		||||
		symbol = "ui_category_all.png",
 | 
			
		||||
		index = -2,
 | 
			
		||||
	})
 | 
			
		||||
	table.insert(category_list, {
 | 
			
		||||
		name = "uncategorized",
 | 
			
		||||
		label = S("Misc. Items"),
 | 
			
		||||
		symbol = "ui_category_none.png",
 | 
			
		||||
		index = -1,
 | 
			
		||||
	})
 | 
			
		||||
	for category, def in pairs(unified_inventory.registered_categories) do
 | 
			
		||||
		table.insert(category_list, {
 | 
			
		||||
			name = category,
 | 
			
		||||
			label = def.label or category,
 | 
			
		||||
			symbol = def.symbol,
 | 
			
		||||
			index = def.index or                    -- sortby defined order
 | 
			
		||||
					string_to_sort_index(category)  -- or do a rudimentary alphabetical sort
 | 
			
		||||
		})
 | 
			
		||||
	end
 | 
			
		||||
	table.sort(category_list, function (a,b)
 | 
			
		||||
		return a.index < b.index
 | 
			
		||||
	end)
 | 
			
		||||
	unified_inventory.category_list = category_list
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
local function ensure_category_exists(category_name)
 | 
			
		||||
	if not unified_inventory.registered_categories[category_name] then
 | 
			
		||||
		unified_inventory.registered_categories[category_name] = {
 | 
			
		||||
			symbol = "unknown_item.png",
 | 
			
		||||
			label = category_name
 | 
			
		||||
		}
 | 
			
		||||
	end
 | 
			
		||||
	if not unified_inventory.registered_category_items[category_name] then
 | 
			
		||||
		unified_inventory.registered_category_items[category_name] = {}
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function unified_inventory.register_category(category_name, config)
 | 
			
		||||
	ensure_category_exists(category_name)
 | 
			
		||||
	config = config or {}
 | 
			
		||||
	if config.symbol then
 | 
			
		||||
		unified_inventory.set_category_symbol(category_name, config.symbol)
 | 
			
		||||
	end
 | 
			
		||||
	if config.label then
 | 
			
		||||
		unified_inventory.set_category_label(category_name, config.label)
 | 
			
		||||
	end
 | 
			
		||||
	if config.index then
 | 
			
		||||
		unified_inventory.set_category_index(category_name, config.index)
 | 
			
		||||
	end
 | 
			
		||||
	if config.items then
 | 
			
		||||
		unified_inventory.add_category_items(category_name, config.items)
 | 
			
		||||
	end
 | 
			
		||||
	update_category_list()
 | 
			
		||||
end
 | 
			
		||||
function unified_inventory.set_category_symbol(category_name, symbol)
 | 
			
		||||
	ensure_category_exists(category_name)
 | 
			
		||||
	unified_inventory.registered_categories[category_name].symbol = symbol
 | 
			
		||||
	update_category_list()
 | 
			
		||||
end
 | 
			
		||||
function unified_inventory.set_category_label(category_name, label)
 | 
			
		||||
	ensure_category_exists(category_name)
 | 
			
		||||
	unified_inventory.registered_categories[category_name].label = label
 | 
			
		||||
	update_category_list()
 | 
			
		||||
end
 | 
			
		||||
function unified_inventory.set_category_index(category_name, index)
 | 
			
		||||
	ensure_category_exists(category_name)
 | 
			
		||||
	unified_inventory.registered_categories[category_name].index = index
 | 
			
		||||
	update_category_list()
 | 
			
		||||
end
 | 
			
		||||
function unified_inventory.add_category_item(category_name, item)
 | 
			
		||||
	ensure_category_exists(category_name)
 | 
			
		||||
	unified_inventory.registered_category_items[category_name][item] = true
 | 
			
		||||
end
 | 
			
		||||
function unified_inventory.add_category_items(category_name, items)
 | 
			
		||||
	for _,item in ipairs(items) do
 | 
			
		||||
		unified_inventory.add_category_item(category_name, item)
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function unified_inventory.remove_category_item(category_name, item)
 | 
			
		||||
	unified_inventory.registered_category_items[category_name][item] = nil
 | 
			
		||||
end
 | 
			
		||||
function unified_inventory.remove_category(category_name)
 | 
			
		||||
	unified_inventory.registered_categories[category_name] = nil
 | 
			
		||||
	unified_inventory.registered_category_items[category_name] = nil
 | 
			
		||||
	update_category_list()
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function unified_inventory.find_category(item)
 | 
			
		||||
	-- Returns the first category the item exists in
 | 
			
		||||
	-- Best for checking if an item has any category at all
 | 
			
		||||
	for category, items in pairs(unified_inventory.registered_category_items) do
 | 
			
		||||
		if items[item] then return category end
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
function unified_inventory.find_categories(item)
 | 
			
		||||
	-- Returns all the categories the item exists in
 | 
			
		||||
	-- Best for listing all categories
 | 
			
		||||
	local categories = {}
 | 
			
		||||
	for category, items in pairs(unified_inventory.registered_category_items) do
 | 
			
		||||
		if items[item] then
 | 
			
		||||
			table.insert(categories, category)
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
	return categories
 | 
			
		||||
end
 | 
			
		||||
							
								
								
									
										704
									
								
								default-categories.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,704 @@
 | 
			
		||||
local S = minetest.get_translator("unified_inventory")
 | 
			
		||||
 | 
			
		||||
unified_inventory.register_category('plants', {
 | 
			
		||||
	symbol = "flowers:tulip",
 | 
			
		||||
	label = S("Plant Life")
 | 
			
		||||
})
 | 
			
		||||
unified_inventory.register_category('building', {
 | 
			
		||||
	symbol = "default:brick",
 | 
			
		||||
	label = S("Building Materials")
 | 
			
		||||
})
 | 
			
		||||
unified_inventory.register_category('tools', {
 | 
			
		||||
	symbol = "default:pick_diamond",
 | 
			
		||||
	label = S("Tools")
 | 
			
		||||
})
 | 
			
		||||
unified_inventory.register_category('minerals', {
 | 
			
		||||
	symbol = "default:iron_lump",
 | 
			
		||||
	label = S("Minerals and Metals")
 | 
			
		||||
})
 | 
			
		||||
unified_inventory.register_category('environment', {
 | 
			
		||||
	symbol = "default:dirt_with_grass",
 | 
			
		||||
	label = S("Environment and Worldgen")
 | 
			
		||||
})
 | 
			
		||||
unified_inventory.register_category('lighting', {
 | 
			
		||||
	symbol = "default:torch",
 | 
			
		||||
	label = S("Lighting")
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if unified_inventory.automatic_categorization then
 | 
			
		||||
	minetest.register_on_mods_loaded(function()
 | 
			
		||||
 | 
			
		||||
		-- Add biome nodes to environment category
 | 
			
		||||
		for _,def in pairs(minetest.registered_biomes) do
 | 
			
		||||
			local env_nodes = {
 | 
			
		||||
				def.node_riverbed, def.node_top, def.node_filler, def.node_dust,
 | 
			
		||||
			}
 | 
			
		||||
			for i,node in pairs(env_nodes) do
 | 
			
		||||
				if node then
 | 
			
		||||
					unified_inventory.add_category_item('environment', node)
 | 
			
		||||
				end
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		-- Add minable ores to minerals and everything else (pockets of stone & sand variations) to environment
 | 
			
		||||
		for _,item in  pairs(minetest.registered_ores) do
 | 
			
		||||
			if item.ore_type == "scatter" then
 | 
			
		||||
				local drop = minetest.registered_nodes[item.ore].drop
 | 
			
		||||
				if drop and drop ~= "" then
 | 
			
		||||
					unified_inventory.add_category_item('minerals', item.ore)
 | 
			
		||||
					unified_inventory.add_category_item('minerals', drop)
 | 
			
		||||
				else
 | 
			
		||||
					unified_inventory.add_category_item('environment', item.ore)
 | 
			
		||||
				end
 | 
			
		||||
			else
 | 
			
		||||
				unified_inventory.add_category_item('environment', item.ore)
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		-- Add items by item definition
 | 
			
		||||
		for name, def in pairs(minetest.registered_items) do
 | 
			
		||||
			local group = def.groups or {}
 | 
			
		||||
			if not group.not_in_creative_inventory then
 | 
			
		||||
				if group.stair or
 | 
			
		||||
				   group.slab or
 | 
			
		||||
				   group.wall or
 | 
			
		||||
				   group.fence then
 | 
			
		||||
					unified_inventory.add_category_item('building', name)
 | 
			
		||||
				elseif group.flora or
 | 
			
		||||
					   group.flower or
 | 
			
		||||
					   group.seed or
 | 
			
		||||
					   group.leaves or
 | 
			
		||||
					   group.sapling or
 | 
			
		||||
					   group.tree then
 | 
			
		||||
					unified_inventory.add_category_item('plants', name)
 | 
			
		||||
				elseif def.type == 'tool' then
 | 
			
		||||
					unified_inventory.add_category_item('tools', name)
 | 
			
		||||
				elseif def.liquidtype == 'source' then
 | 
			
		||||
					unified_inventory.add_category_item('environment', name)
 | 
			
		||||
				elseif def.light_source and def.light_source > 0 then
 | 
			
		||||
					unified_inventory.add_category_item('lighting', name)
 | 
			
		||||
				elseif group.door or
 | 
			
		||||
					   minetest.global_exists("doors") and (
 | 
			
		||||
					     doors.registered_doors and doors.registered_doors[name..'_a'] or
 | 
			
		||||
					     doors.registered_trapdoors and doors.registered_trapdoors[name]
 | 
			
		||||
					   ) then
 | 
			
		||||
					unified_inventory.add_category_item('building', name)
 | 
			
		||||
				end
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
	end)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- [[
 | 
			
		||||
unified_inventory.add_category_items('plants', {
 | 
			
		||||
	"default:dry_grass_5",
 | 
			
		||||
	"default:acacia_sapling",
 | 
			
		||||
	"default:blueberry_bush_sapling",
 | 
			
		||||
	"default:grass_2",
 | 
			
		||||
	"default:pine_bush_stem",
 | 
			
		||||
	"default:leaves",
 | 
			
		||||
	"default:pine_needles",
 | 
			
		||||
	"default:cactus",
 | 
			
		||||
	"default:junglegrass",
 | 
			
		||||
	"default:pine_sapling",
 | 
			
		||||
	"default:sapling",
 | 
			
		||||
	"default:bush_stem",
 | 
			
		||||
	"default:dry_grass_2",
 | 
			
		||||
	"default:fern_1",
 | 
			
		||||
	"default:grass_3",
 | 
			
		||||
	"default:marram_grass_1",
 | 
			
		||||
	"default:pine_tree",
 | 
			
		||||
	"default:dry_grass_3",
 | 
			
		||||
	"default:dry_shrub",
 | 
			
		||||
	"default:grass_4",
 | 
			
		||||
	"default:marram_grass_2",
 | 
			
		||||
	"default:jungleleaves",
 | 
			
		||||
	"default:apple",
 | 
			
		||||
	"default:tree",
 | 
			
		||||
	"default:aspen_tree",
 | 
			
		||||
	"default:bush_sapling",
 | 
			
		||||
	"default:grass_5",
 | 
			
		||||
	"default:blueberry_bush_leaves_with_berries",
 | 
			
		||||
	"default:acacia_bush_sapling",
 | 
			
		||||
	"default:grass_1",
 | 
			
		||||
	"default:aspen_leaves",
 | 
			
		||||
	"default:marram_grass_3",
 | 
			
		||||
	"default:large_cactus_seedling",
 | 
			
		||||
	"default:junglesapling",
 | 
			
		||||
	"default:dry_grass_4",
 | 
			
		||||
	"default:acacia_bush_stem",
 | 
			
		||||
	"default:papyrus",
 | 
			
		||||
	"default:pine_bush_needles",
 | 
			
		||||
	"default:bush_leaves",
 | 
			
		||||
	"default:fern_3",
 | 
			
		||||
	"default:aspen_sapling",
 | 
			
		||||
	"default:acacia_tree",
 | 
			
		||||
	"default:apple_mark",
 | 
			
		||||
	"default:acacia_leaves",
 | 
			
		||||
	"default:jungletree",
 | 
			
		||||
	"default:dry_grass_1",
 | 
			
		||||
	"default:acacia_bush_leaves",
 | 
			
		||||
	"default:emergent_jungle_sapling",
 | 
			
		||||
	"default:fern_2",
 | 
			
		||||
	"default:blueberries",
 | 
			
		||||
	"default:sand_with_kelp",
 | 
			
		||||
	"default:blueberry_bush_leaves",
 | 
			
		||||
	"default:pine_bush_sapling",
 | 
			
		||||
 | 
			
		||||
	"farming:cotton",
 | 
			
		||||
	"farming:cotton_1",
 | 
			
		||||
	"farming:cotton_2",
 | 
			
		||||
	"farming:cotton_3",
 | 
			
		||||
	"farming:cotton_4",
 | 
			
		||||
	"farming:cotton_5",
 | 
			
		||||
	"farming:cotton_6",
 | 
			
		||||
	"farming:cotton_7",
 | 
			
		||||
	"farming:cotton_8",
 | 
			
		||||
	"farming:cotton_wild",
 | 
			
		||||
	"farming:seed_cotton",
 | 
			
		||||
	"farming:seed_wheat",
 | 
			
		||||
	"farming:straw",
 | 
			
		||||
	"farming:wheat",
 | 
			
		||||
	"farming:wheat_1",
 | 
			
		||||
	"farming:wheat_2",
 | 
			
		||||
	"farming:wheat_3",
 | 
			
		||||
	"farming:wheat_4",
 | 
			
		||||
	"farming:wheat_5",
 | 
			
		||||
	"farming:wheat_6",
 | 
			
		||||
	"farming:wheat_7",
 | 
			
		||||
	"farming:wheat_8",
 | 
			
		||||
 | 
			
		||||
	"flowers:chrysanthemum_green",
 | 
			
		||||
	"flowers:dandelion_white",
 | 
			
		||||
	"flowers:dandelion_yellow",
 | 
			
		||||
	"flowers:geranium",
 | 
			
		||||
	"flowers:mushroom_brown",
 | 
			
		||||
	"flowers:mushroom_red",
 | 
			
		||||
	"flowers:rose",
 | 
			
		||||
	"flowers:tulip",
 | 
			
		||||
	"flowers:tulip_black",
 | 
			
		||||
	"flowers:viola",
 | 
			
		||||
	"flowers:waterlily",
 | 
			
		||||
	"flowers:waterlily_waving",
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
unified_inventory.add_category_items('tools', {
 | 
			
		||||
	"default:sword_diamond",
 | 
			
		||||
	"default:axe_diamond",
 | 
			
		||||
	"default:shovel_diamond",
 | 
			
		||||
	"default:axe_steel",
 | 
			
		||||
	"default:shovel_mese",
 | 
			
		||||
	"default:sword_wood",
 | 
			
		||||
	"default:pick_bronze",
 | 
			
		||||
	"default:axe_stone",
 | 
			
		||||
	"default:sword_stone",
 | 
			
		||||
	"default:pick_stone",
 | 
			
		||||
	"default:shovel_stone",
 | 
			
		||||
	"default:sword_mese",
 | 
			
		||||
	"default:shovel_bronze",
 | 
			
		||||
	"default:sword_bronze",
 | 
			
		||||
	"default:axe_bronze",
 | 
			
		||||
	"default:shovel_steel",
 | 
			
		||||
	"default:sword_steel",
 | 
			
		||||
	"default:axe_mese",
 | 
			
		||||
	"default:shovel_wood",
 | 
			
		||||
	"default:pick_mese",
 | 
			
		||||
	"default:axe_wood",
 | 
			
		||||
	"default:pick_diamond",
 | 
			
		||||
	"default:pick_wood",
 | 
			
		||||
	"default:pick_steel",
 | 
			
		||||
 | 
			
		||||
	"farming:hoe_bronze",
 | 
			
		||||
	"farming:hoe_diamond",
 | 
			
		||||
	"farming:hoe_mese",
 | 
			
		||||
	"farming:hoe_steel",
 | 
			
		||||
	"farming:hoe_stone",
 | 
			
		||||
	"farming:hoe_wood",
 | 
			
		||||
 | 
			
		||||
	"fire:flint_and_steel",
 | 
			
		||||
	"map:mapping_kit",
 | 
			
		||||
	"screwdriver:screwdriver",
 | 
			
		||||
 | 
			
		||||
	"fireflies:bug_net",
 | 
			
		||||
	"bucket:bucket_empty",
 | 
			
		||||
 | 
			
		||||
	"binoculars:binoculars",
 | 
			
		||||
	"default:skeleton_key",
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
unified_inventory.add_category_items('minerals', {
 | 
			
		||||
	"default:stone_with_copper",
 | 
			
		||||
	"default:stone_with_gold",
 | 
			
		||||
	"default:stone_with_iron",
 | 
			
		||||
	"default:copper_ingot",
 | 
			
		||||
	"default:copper_lump",
 | 
			
		||||
	"default:gold_lump",
 | 
			
		||||
	"default:diamondblock",
 | 
			
		||||
	"default:stone_with_diamond",
 | 
			
		||||
	"default:stone_with_mese",
 | 
			
		||||
	"default:steel_ingot",
 | 
			
		||||
	"default:gold_ingot",
 | 
			
		||||
	"default:iron_lump",
 | 
			
		||||
	"default:tinblock",
 | 
			
		||||
	"default:tin_lump",
 | 
			
		||||
	"default:stone_with_tin",
 | 
			
		||||
	"default:mese_crystal",
 | 
			
		||||
	"default:diamond",
 | 
			
		||||
	"default:bronze_ingot",
 | 
			
		||||
	"default:mese",
 | 
			
		||||
	"default:mese_crystal_fragment",
 | 
			
		||||
	"default:copperblock",
 | 
			
		||||
	"default:stone_with_coal",
 | 
			
		||||
	"default:steelblock",
 | 
			
		||||
	"default:tin_ingot",
 | 
			
		||||
	"default:coalblock",
 | 
			
		||||
	"default:coal_lump",
 | 
			
		||||
	"default:bronzeblock",
 | 
			
		||||
	"default:goldblock",
 | 
			
		||||
 | 
			
		||||
	"stairs:slab_bronzeblock",
 | 
			
		||||
	"stairs:slab_copperblock",
 | 
			
		||||
	"stairs:slab_steelblock",
 | 
			
		||||
	"stairs:slab_tinblock",
 | 
			
		||||
	"stairs:stair_bronzeblock",
 | 
			
		||||
	"stairs:stair_copperblock",
 | 
			
		||||
	"stairs:stair_inner_bronzeblock",
 | 
			
		||||
	"stairs:stair_inner_copperblock",
 | 
			
		||||
	"stairs:stair_inner_steelblock",
 | 
			
		||||
	"stairs:stair_inner_tinblock",
 | 
			
		||||
	"stairs:stair_outer_bronzeblock",
 | 
			
		||||
	"stairs:stair_outer_copperblock",
 | 
			
		||||
	"stairs:stair_outer_steelblock",
 | 
			
		||||
	"stairs:stair_outer_tinblock",
 | 
			
		||||
	"stairs:stair_steelblock",
 | 
			
		||||
	"stairs:stair_tinblock",
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
unified_inventory.add_category_items('building', {
 | 
			
		||||
	"default:fence_rail_aspen_wood",
 | 
			
		||||
	"default:fence_rail_acacia_wood",
 | 
			
		||||
	"default:fence_junglewood",
 | 
			
		||||
	"default:fence_rail_junglewood",
 | 
			
		||||
	"default:fence_aspen_wood",
 | 
			
		||||
	"default:fence_pine_wood",
 | 
			
		||||
	"default:fence_rail_wood",
 | 
			
		||||
	"default:fence_rail_pine_wood",
 | 
			
		||||
	"default:fence_acacia_wood",
 | 
			
		||||
	"default:junglewood",
 | 
			
		||||
	"default:acacia_wood",
 | 
			
		||||
	"default:aspen_wood",
 | 
			
		||||
	"default:fence_wood",
 | 
			
		||||
	"default:pine_wood",
 | 
			
		||||
	"default:silver_sandstone",
 | 
			
		||||
	"default:desert_sandstone",
 | 
			
		||||
	"default:sandstone_block",
 | 
			
		||||
	"default:desert_sandstone_brick",
 | 
			
		||||
	"default:stone_block",
 | 
			
		||||
	"default:stonebrick",
 | 
			
		||||
	"default:obsidian_glass",
 | 
			
		||||
	"default:desert_sandstone_block",
 | 
			
		||||
	"default:silver_sandstone_brick",
 | 
			
		||||
	"default:brick",
 | 
			
		||||
	"default:obsidianbrick",
 | 
			
		||||
	"default:sandstonebrick",
 | 
			
		||||
	"default:sandstone",
 | 
			
		||||
	"default:desert_stone_block",
 | 
			
		||||
	"default:silver_sandstone_block",
 | 
			
		||||
	"default:wood",
 | 
			
		||||
	"default:obsidian_block",
 | 
			
		||||
	"default:glass",
 | 
			
		||||
	"default:clay_brick",
 | 
			
		||||
	"default:desert_stonebrick",
 | 
			
		||||
	"default:desert_cobble",
 | 
			
		||||
	"default:cobble",
 | 
			
		||||
	"default:mossycobble",
 | 
			
		||||
 | 
			
		||||
	"doors:door_glass",
 | 
			
		||||
	"doors:door_glass_a",
 | 
			
		||||
	"doors:door_glass_b",
 | 
			
		||||
	"doors:door_glass_c",
 | 
			
		||||
	"doors:door_glass_d",
 | 
			
		||||
	"doors:door_obsidian_glass",
 | 
			
		||||
	"doors:door_obsidian_glass_a",
 | 
			
		||||
	"doors:door_obsidian_glass_b",
 | 
			
		||||
	"doors:door_obsidian_glass_c",
 | 
			
		||||
	"doors:door_obsidian_glass_d",
 | 
			
		||||
	"doors:door_steel",
 | 
			
		||||
	"doors:door_steel_a",
 | 
			
		||||
	"doors:door_steel_b",
 | 
			
		||||
	"doors:door_steel_c",
 | 
			
		||||
	"doors:door_steel_d",
 | 
			
		||||
	"doors:door_wood",
 | 
			
		||||
	"doors:door_wood_a",
 | 
			
		||||
	"doors:door_wood_b",
 | 
			
		||||
	"doors:door_wood_c",
 | 
			
		||||
	"doors:door_wood_d",
 | 
			
		||||
	"doors:gate_acacia_wood_closed",
 | 
			
		||||
	"doors:gate_acacia_wood_open",
 | 
			
		||||
	"doors:gate_aspen_wood_closed",
 | 
			
		||||
	"doors:gate_aspen_wood_open",
 | 
			
		||||
	"doors:gate_junglewood_closed",
 | 
			
		||||
	"doors:gate_junglewood_open",
 | 
			
		||||
	"doors:gate_pine_wood_closed",
 | 
			
		||||
	"doors:gate_pine_wood_open",
 | 
			
		||||
	"doors:gate_wood_closed",
 | 
			
		||||
	"doors:gate_wood_open",
 | 
			
		||||
	"doors:hidden",
 | 
			
		||||
	"doors:trapdoor",
 | 
			
		||||
	"doors:trapdoor_open",
 | 
			
		||||
	"doors:trapdoor_steel",
 | 
			
		||||
	"doors:trapdoor_steel_open",
 | 
			
		||||
 | 
			
		||||
	"stairs:slab_bronzeblock",
 | 
			
		||||
	"stairs:slab_copperblock",
 | 
			
		||||
	"stairs:slab_steelblock",
 | 
			
		||||
	"stairs:slab_tinblock",
 | 
			
		||||
	"stairs:stair_bronzeblock",
 | 
			
		||||
	"stairs:stair_copperblock",
 | 
			
		||||
	"stairs:stair_inner_bronzeblock",
 | 
			
		||||
	"stairs:stair_inner_copperblock",
 | 
			
		||||
	"stairs:stair_inner_steelblock",
 | 
			
		||||
	"stairs:stair_inner_tinblock",
 | 
			
		||||
	"stairs:stair_outer_bronzeblock",
 | 
			
		||||
	"stairs:stair_outer_copperblock",
 | 
			
		||||
	"stairs:stair_outer_steelblock",
 | 
			
		||||
	"stairs:stair_outer_tinblock",
 | 
			
		||||
	"stairs:stair_steelblock",
 | 
			
		||||
	"stairs:stair_tinblock",
 | 
			
		||||
 | 
			
		||||
	"stairs:slab_acacia_wood",
 | 
			
		||||
	"stairs:slab_aspen_wood",
 | 
			
		||||
	"stairs:slab_brick",
 | 
			
		||||
	"stairs:slab_cobble",
 | 
			
		||||
	"stairs:slab_desert_cobble",
 | 
			
		||||
	"stairs:slab_desert_sandstone",
 | 
			
		||||
	"stairs:slab_desert_sandstone_block",
 | 
			
		||||
	"stairs:slab_desert_sandstone_brick",
 | 
			
		||||
	"stairs:slab_desert_stone",
 | 
			
		||||
	"stairs:slab_desert_stone_block",
 | 
			
		||||
	"stairs:slab_desert_stonebrick",
 | 
			
		||||
	"stairs:slab_glass",
 | 
			
		||||
	"stairs:slab_goldblock",
 | 
			
		||||
	"stairs:slab_ice",
 | 
			
		||||
	"stairs:slab_junglewood",
 | 
			
		||||
	"stairs:slab_mossycobble",
 | 
			
		||||
	"stairs:slab_obsidian",
 | 
			
		||||
	"stairs:slab_obsidian_block",
 | 
			
		||||
	"stairs:slab_obsidian_glass",
 | 
			
		||||
	"stairs:slab_obsidianbrick",
 | 
			
		||||
	"stairs:slab_pine_wood",
 | 
			
		||||
	"stairs:slab_sandstone",
 | 
			
		||||
	"stairs:slab_sandstone_block",
 | 
			
		||||
	"stairs:slab_sandstonebrick",
 | 
			
		||||
	"stairs:slab_silver_sandstone",
 | 
			
		||||
	"stairs:slab_silver_sandstone_block",
 | 
			
		||||
	"stairs:slab_silver_sandstone_brick",
 | 
			
		||||
	"stairs:slab_snowblock",
 | 
			
		||||
	"stairs:slab_stone",
 | 
			
		||||
	"stairs:slab_stone_block",
 | 
			
		||||
	"stairs:slab_stonebrick",
 | 
			
		||||
	"stairs:slab_straw",
 | 
			
		||||
	"stairs:slab_wood",
 | 
			
		||||
	"stairs:stair_acacia_wood",
 | 
			
		||||
	"stairs:stair_aspen_wood",
 | 
			
		||||
	"stairs:stair_brick",
 | 
			
		||||
	"stairs:stair_cobble",
 | 
			
		||||
	"stairs:stair_desert_cobble",
 | 
			
		||||
	"stairs:stair_desert_sandstone",
 | 
			
		||||
	"stairs:stair_desert_sandstone_block",
 | 
			
		||||
	"stairs:stair_desert_sandstone_brick",
 | 
			
		||||
	"stairs:stair_desert_stone",
 | 
			
		||||
	"stairs:stair_desert_stone_block",
 | 
			
		||||
	"stairs:stair_desert_stonebrick",
 | 
			
		||||
	"stairs:stair_glass",
 | 
			
		||||
	"stairs:stair_goldblock",
 | 
			
		||||
	"stairs:stair_ice",
 | 
			
		||||
	"stairs:stair_inner_acacia_wood",
 | 
			
		||||
	"stairs:stair_inner_aspen_wood",
 | 
			
		||||
	"stairs:stair_inner_brick",
 | 
			
		||||
	"stairs:stair_inner_cobble",
 | 
			
		||||
	"stairs:stair_inner_desert_cobble",
 | 
			
		||||
	"stairs:stair_inner_desert_sandstone",
 | 
			
		||||
	"stairs:stair_inner_desert_sandstone_block",
 | 
			
		||||
	"stairs:stair_inner_desert_sandstone_brick",
 | 
			
		||||
	"stairs:stair_inner_desert_stone",
 | 
			
		||||
	"stairs:stair_inner_desert_stone_block",
 | 
			
		||||
	"stairs:stair_inner_desert_stonebrick",
 | 
			
		||||
	"stairs:stair_inner_glass",
 | 
			
		||||
	"stairs:stair_inner_goldblock",
 | 
			
		||||
	"stairs:stair_inner_ice",
 | 
			
		||||
	"stairs:stair_inner_junglewood",
 | 
			
		||||
	"stairs:stair_inner_mossycobble",
 | 
			
		||||
	"stairs:stair_inner_obsidian",
 | 
			
		||||
	"stairs:stair_inner_obsidian_block",
 | 
			
		||||
	"stairs:stair_inner_obsidian_glass",
 | 
			
		||||
	"stairs:stair_inner_obsidianbrick",
 | 
			
		||||
	"stairs:stair_inner_pine_wood",
 | 
			
		||||
	"stairs:stair_inner_sandstone",
 | 
			
		||||
	"stairs:stair_inner_sandstone_block",
 | 
			
		||||
	"stairs:stair_inner_sandstonebrick",
 | 
			
		||||
	"stairs:stair_inner_silver_sandstone",
 | 
			
		||||
	"stairs:stair_inner_silver_sandstone_block",
 | 
			
		||||
	"stairs:stair_inner_silver_sandstone_brick",
 | 
			
		||||
	"stairs:stair_inner_snowblock",
 | 
			
		||||
	"stairs:stair_inner_stone",
 | 
			
		||||
	"stairs:stair_inner_stone_block",
 | 
			
		||||
	"stairs:stair_inner_stonebrick",
 | 
			
		||||
	"stairs:stair_inner_straw",
 | 
			
		||||
	"stairs:stair_inner_wood",
 | 
			
		||||
	"stairs:stair_junglewood",
 | 
			
		||||
	"stairs:stair_mossycobble",
 | 
			
		||||
	"stairs:stair_obsidian",
 | 
			
		||||
	"stairs:stair_obsidian_block",
 | 
			
		||||
	"stairs:stair_obsidian_glass",
 | 
			
		||||
	"stairs:stair_obsidianbrick",
 | 
			
		||||
	"stairs:stair_outer_acacia_wood",
 | 
			
		||||
	"stairs:stair_outer_aspen_wood",
 | 
			
		||||
	"stairs:stair_outer_brick",
 | 
			
		||||
	"stairs:stair_outer_cobble",
 | 
			
		||||
	"stairs:stair_outer_desert_cobble",
 | 
			
		||||
	"stairs:stair_outer_desert_sandstone",
 | 
			
		||||
	"stairs:stair_outer_desert_sandstone_block",
 | 
			
		||||
	"stairs:stair_outer_desert_sandstone_brick",
 | 
			
		||||
	"stairs:stair_outer_desert_stone",
 | 
			
		||||
	"stairs:stair_outer_desert_stone_block",
 | 
			
		||||
	"stairs:stair_outer_desert_stonebrick",
 | 
			
		||||
	"stairs:stair_outer_glass",
 | 
			
		||||
	"stairs:stair_outer_goldblock",
 | 
			
		||||
	"stairs:stair_outer_ice",
 | 
			
		||||
	"stairs:stair_outer_junglewood",
 | 
			
		||||
	"stairs:stair_outer_mossycobble",
 | 
			
		||||
	"stairs:stair_outer_obsidian",
 | 
			
		||||
	"stairs:stair_outer_obsidian_block",
 | 
			
		||||
	"stairs:stair_outer_obsidian_glass",
 | 
			
		||||
	"stairs:stair_outer_obsidianbrick",
 | 
			
		||||
	"stairs:stair_outer_pine_wood",
 | 
			
		||||
	"stairs:stair_outer_sandstone",
 | 
			
		||||
	"stairs:stair_outer_sandstone_block",
 | 
			
		||||
	"stairs:stair_outer_sandstonebrick",
 | 
			
		||||
	"stairs:stair_outer_silver_sandstone",
 | 
			
		||||
	"stairs:stair_outer_silver_sandstone_block",
 | 
			
		||||
	"stairs:stair_outer_silver_sandstone_brick",
 | 
			
		||||
	"stairs:stair_outer_snowblock",
 | 
			
		||||
	"stairs:stair_outer_stone",
 | 
			
		||||
	"stairs:stair_outer_stone_block",
 | 
			
		||||
	"stairs:stair_outer_stonebrick",
 | 
			
		||||
	"stairs:stair_outer_straw",
 | 
			
		||||
	"stairs:stair_outer_wood",
 | 
			
		||||
	"stairs:stair_pine_wood",
 | 
			
		||||
	"stairs:stair_sandstone",
 | 
			
		||||
	"stairs:stair_sandstone_block",
 | 
			
		||||
	"stairs:stair_sandstonebrick",
 | 
			
		||||
	"stairs:stair_silver_sandstone",
 | 
			
		||||
	"stairs:stair_silver_sandstone_block",
 | 
			
		||||
	"stairs:stair_silver_sandstone_brick",
 | 
			
		||||
	"stairs:stair_snowblock",
 | 
			
		||||
	"stairs:stair_stone",
 | 
			
		||||
	"stairs:stair_stone_block",
 | 
			
		||||
	"stairs:stair_stonebrick",
 | 
			
		||||
	"stairs:stair_straw",
 | 
			
		||||
	"stairs:stair_wood",
 | 
			
		||||
 | 
			
		||||
	"xpanes:bar",
 | 
			
		||||
	"xpanes:bar_flat",
 | 
			
		||||
	"xpanes:door_steel_bar",
 | 
			
		||||
	"xpanes:door_steel_bar_a",
 | 
			
		||||
	"xpanes:door_steel_bar_b",
 | 
			
		||||
	"xpanes:door_steel_bar_c",
 | 
			
		||||
	"xpanes:door_steel_bar_d",
 | 
			
		||||
	"xpanes:obsidian_pane",
 | 
			
		||||
	"xpanes:obsidian_pane_flat",
 | 
			
		||||
	"xpanes:pane",
 | 
			
		||||
	"xpanes:pane_flat",
 | 
			
		||||
	"xpanes:trapdoor_steel_bar",
 | 
			
		||||
	"xpanes:trapdoor_steel_bar_open",
 | 
			
		||||
 | 
			
		||||
	"walls:cobble",
 | 
			
		||||
	"walls:desertcobble",
 | 
			
		||||
	"walls:mossycobble",
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
unified_inventory.add_category_items('environment', {
 | 
			
		||||
	"air",
 | 
			
		||||
	"default:cave_ice",
 | 
			
		||||
	"default:dirt_with_rainforest_litter",
 | 
			
		||||
	"default:gravel",
 | 
			
		||||
	"default:dry_dirt_with_dry_grass",
 | 
			
		||||
	"default:permafrost",
 | 
			
		||||
	"default:desert_stone",
 | 
			
		||||
	"default:ice",
 | 
			
		||||
	"default:dry_dirt",
 | 
			
		||||
	"default:obsidian",
 | 
			
		||||
	"default:sand",
 | 
			
		||||
	"default:river_water_source",
 | 
			
		||||
	"default:dirt_with_snow",
 | 
			
		||||
	"default:dirt_with_grass",
 | 
			
		||||
	"default:water_flowing",
 | 
			
		||||
	"default:dirt",
 | 
			
		||||
	"default:desert_sand",
 | 
			
		||||
	"default:permafrost_with_moss",
 | 
			
		||||
	"default:dirt_with_coniferous_litter",
 | 
			
		||||
	"default:water_source",
 | 
			
		||||
	"default:dirt_with_dry_grass",
 | 
			
		||||
	"default:river_water_flowing",
 | 
			
		||||
	"default:stone",
 | 
			
		||||
	"default:snow",
 | 
			
		||||
	"default:lava_flowing",
 | 
			
		||||
	"default:lava_source",
 | 
			
		||||
	"default:permafrost_with_stones",
 | 
			
		||||
	"default:dirt_with_grass_footsteps",
 | 
			
		||||
	"default:silver_sand",
 | 
			
		||||
	"default:snowblock",
 | 
			
		||||
	"default:clay",
 | 
			
		||||
 | 
			
		||||
	"farming:desert_sand_soil",
 | 
			
		||||
	"farming:desert_sand_soil_wet",
 | 
			
		||||
	"farming:dry_soil",
 | 
			
		||||
	"farming:dry_soil_wet",
 | 
			
		||||
	"farming:soil",
 | 
			
		||||
	"farming:soil_wet",
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
unified_inventory.add_category_items('lighting', {
 | 
			
		||||
	"default:mese_post_light_junglewood",
 | 
			
		||||
	"default:torch_ceiling",
 | 
			
		||||
	"default:meselamp",
 | 
			
		||||
	"default:torch",
 | 
			
		||||
	"default:mese_post_light_acacia_wood",
 | 
			
		||||
	"default:mese_post_light",
 | 
			
		||||
	"default:torch_wall",
 | 
			
		||||
	"default:mese_post_light_pine_wood",
 | 
			
		||||
	"default:mese_post_light_aspen_wood"
 | 
			
		||||
})
 | 
			
		||||
--]]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
--[[ UNCATEGORISED
 | 
			
		||||
 | 
			
		||||
	"farming:string",
 | 
			
		||||
 | 
			
		||||
	"beds:bed_bottom",
 | 
			
		||||
	"beds:bed_top",
 | 
			
		||||
	"beds:fancy_bed_bottom",
 | 
			
		||||
	"beds:fancy_bed_top",
 | 
			
		||||
	"boats:boat",
 | 
			
		||||
	"bones:bones",
 | 
			
		||||
 | 
			
		||||
	"bucket:bucket_lava",
 | 
			
		||||
	"bucket:bucket_river_water",
 | 
			
		||||
	"bucket:bucket_water",
 | 
			
		||||
 | 
			
		||||
	"butterflies:butterfly_red",
 | 
			
		||||
	"butterflies:butterfly_violet",
 | 
			
		||||
	"butterflies:butterfly_white",
 | 
			
		||||
	"butterflies:hidden_butterfly_red",
 | 
			
		||||
	"butterflies:hidden_butterfly_violet",
 | 
			
		||||
	"butterflies:hidden_butterfly_white",
 | 
			
		||||
 | 
			
		||||
	"carts:brakerail",
 | 
			
		||||
	"carts:cart",
 | 
			
		||||
	"carts:powerrail",
 | 
			
		||||
	"carts:rail",
 | 
			
		||||
 | 
			
		||||
	"default:book",
 | 
			
		||||
	"default:book_written",
 | 
			
		||||
	"default:bookshelf",
 | 
			
		||||
	"default:chest",
 | 
			
		||||
	"default:chest_locked",
 | 
			
		||||
	"default:chest_locked_open",
 | 
			
		||||
	"default:chest_open",
 | 
			
		||||
	"default:clay_lump",
 | 
			
		||||
	"default:cloud",
 | 
			
		||||
	"default:coral_brown",
 | 
			
		||||
	"default:coral_cyan",
 | 
			
		||||
	"default:coral_green",
 | 
			
		||||
	"default:coral_orange",
 | 
			
		||||
	"default:coral_pink",
 | 
			
		||||
	"default:coral_skeleton",
 | 
			
		||||
	"default:flint",
 | 
			
		||||
	"default:furnace",
 | 
			
		||||
	"default:furnace_active",
 | 
			
		||||
	"default:key",
 | 
			
		||||
	"default:ladder_steel",
 | 
			
		||||
	"default:ladder_wood",
 | 
			
		||||
	"default:obsidian_shard",
 | 
			
		||||
	"default:paper",
 | 
			
		||||
	"default:sign_wall_steel",
 | 
			
		||||
	"default:sign_wall_wood",
 | 
			
		||||
	"default:stick",
 | 
			
		||||
 | 
			
		||||
	"fire:basic_flame",
 | 
			
		||||
	"fire:permanent_flame",
 | 
			
		||||
	"fireflies:firefly",
 | 
			
		||||
	"fireflies:firefly_bottle",
 | 
			
		||||
	"fireflies:hidden_firefly",
 | 
			
		||||
 | 
			
		||||
	"ignore",
 | 
			
		||||
	"unknown",
 | 
			
		||||
 | 
			
		||||
	"tnt:boom",
 | 
			
		||||
	"tnt:gunpowder",
 | 
			
		||||
	"tnt:gunpowder_burning",
 | 
			
		||||
	"tnt:tnt",
 | 
			
		||||
	"tnt:tnt_burning",
 | 
			
		||||
	"tnt:tnt_stick",
 | 
			
		||||
 | 
			
		||||
	"vessels:drinking_glass",
 | 
			
		||||
	"vessels:glass_bottle",
 | 
			
		||||
	"vessels:glass_fragments",
 | 
			
		||||
	"vessels:shelf",
 | 
			
		||||
	"vessels:steel_bottle",
 | 
			
		||||
 | 
			
		||||
	"dye:black",
 | 
			
		||||
	"dye:blue",
 | 
			
		||||
	"dye:brown",
 | 
			
		||||
	"dye:cyan",
 | 
			
		||||
	"dye:dark_green",
 | 
			
		||||
	"dye:dark_grey",
 | 
			
		||||
	"dye:green",
 | 
			
		||||
	"dye:grey",
 | 
			
		||||
	"dye:magenta",
 | 
			
		||||
	"dye:orange",
 | 
			
		||||
	"dye:pink",
 | 
			
		||||
	"dye:red",
 | 
			
		||||
	"dye:violet",
 | 
			
		||||
	"dye:white",
 | 
			
		||||
	"dye:yellow",
 | 
			
		||||
 | 
			
		||||
	"wool:black",
 | 
			
		||||
	"wool:blue",
 | 
			
		||||
	"wool:brown",
 | 
			
		||||
	"wool:cyan",
 | 
			
		||||
	"wool:dark_green",
 | 
			
		||||
	"wool:dark_grey",
 | 
			
		||||
	"wool:green",
 | 
			
		||||
	"wool:grey",
 | 
			
		||||
	"wool:magenta",
 | 
			
		||||
	"wool:orange",
 | 
			
		||||
	"wool:pink",
 | 
			
		||||
	"wool:red",
 | 
			
		||||
	"wool:violet",
 | 
			
		||||
	"wool:white",
 | 
			
		||||
	"wool:yellow",
 | 
			
		||||
 | 
			
		||||
	"unified_inventory:bag_large",
 | 
			
		||||
	"unified_inventory:bag_medium",
 | 
			
		||||
	"unified_inventory:bag_small",
 | 
			
		||||
--]]
 | 
			
		||||
 | 
			
		||||
--[[ LIST UNCATEGORIZED AFTER LOAD
 | 
			
		||||
minetest.register_on_mods_loaded(function()
 | 
			
		||||
	minetest.after(1, function ( )
 | 
			
		||||
		local l = {}
 | 
			
		||||
		for name,_ in pairs(minetest.registered_items) do
 | 
			
		||||
			if not unified_inventory.find_category(name) then
 | 
			
		||||
				-- minetest.log("error", minetest.serialize(minetest.registered_items[name]))
 | 
			
		||||
				table.insert(l, name)
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
		table.sort(l)
 | 
			
		||||
		minetest.log(table.concat(l, '",'.."\n"..'"'))
 | 
			
		||||
	end)
 | 
			
		||||
end)
 | 
			
		||||
--]]
 | 
			
		||||
@@ -1,6 +0,0 @@
 | 
			
		||||
default
 | 
			
		||||
creative?
 | 
			
		||||
sfinv?
 | 
			
		||||
intllib?
 | 
			
		||||
datastorage?
 | 
			
		||||
farming?
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
Unified Inventory replaces the default survival and creative inventory. It adds a nicer interface and a number of features, such as a crafting guide.
 | 
			
		||||
@@ -3,6 +3,14 @@ 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
 | 
			
		||||
--------------
 | 
			
		||||
@@ -93,3 +101,72 @@ Register a non-standard craft recipe:
 | 
			
		||||
		-- ^ 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")
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
local S = unified_inventory.gettext
 | 
			
		||||
local S = minetest.get_translator("unified_inventory")
 | 
			
		||||
 | 
			
		||||
function unified_inventory.canonical_item_spec_matcher(spec)
 | 
			
		||||
	local specname = ItemStack(spec):get_name()
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										130
									
								
								init.lua
									
									
									
									
									
								
							
							
						
						@@ -1,11 +1,8 @@
 | 
			
		||||
-- Unified Inventory for Minetest >= 0.4.16
 | 
			
		||||
-- Unified Inventory
 | 
			
		||||
 | 
			
		||||
local modpath = minetest.get_modpath(minetest.get_current_modname())
 | 
			
		||||
local worldpath = minetest.get_worldpath()
 | 
			
		||||
 | 
			
		||||
-- Intllib
 | 
			
		||||
local S, NS = dofile(modpath .. "/intllib.lua")
 | 
			
		||||
 | 
			
		||||
-- Data tables definitions
 | 
			
		||||
unified_inventory = {
 | 
			
		||||
	activefilter = {},
 | 
			
		||||
@@ -13,6 +10,8 @@ unified_inventory = {
 | 
			
		||||
	alternate = {},
 | 
			
		||||
	current_page = {},
 | 
			
		||||
	current_searchbox = {},
 | 
			
		||||
	current_category = {},
 | 
			
		||||
	current_category_scroll = {},
 | 
			
		||||
	current_index = {},
 | 
			
		||||
	current_item = {},
 | 
			
		||||
	current_craft_direction = {},
 | 
			
		||||
@@ -33,26 +32,113 @@ unified_inventory = {
 | 
			
		||||
	-- Default inventory page
 | 
			
		||||
	default = "craft",
 | 
			
		||||
 | 
			
		||||
	-- intllib
 | 
			
		||||
	gettext = S,
 | 
			
		||||
 | 
			
		||||
	-- "Lite" mode
 | 
			
		||||
	lite_mode = minetest.settings:get_bool("unified_inventory_lite"),
 | 
			
		||||
 | 
			
		||||
	-- Items automatically added to categories based on item definitions
 | 
			
		||||
	automatic_categorization = (minetest.settings:get_bool("unified_inventory_automatic_categorization") ~= false),
 | 
			
		||||
 | 
			
		||||
	-- Trash enabled
 | 
			
		||||
	trash_enabled = (minetest.settings:get_bool("unified_inventory_trash") ~= false),
 | 
			
		||||
 | 
			
		||||
	pagecols = 8,
 | 
			
		||||
	pagerows = 10,
 | 
			
		||||
	page_y = 0,
 | 
			
		||||
	formspec_y = 1,
 | 
			
		||||
	main_button_x = 0,
 | 
			
		||||
	main_button_y = 9,
 | 
			
		||||
	craft_result_x = 0.3,
 | 
			
		||||
	craft_result_y = 0.5,
 | 
			
		||||
	form_header_y = 0
 | 
			
		||||
	imgscale = 1.25,
 | 
			
		||||
	list_img_offset = 0.13,
 | 
			
		||||
	standard_background = "background9[0,0;1,1;ui_formbg_9_sliced.png;true;16]",
 | 
			
		||||
	version = 2
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
local ui = unified_inventory
 | 
			
		||||
 | 
			
		||||
-- These tables establish position and layout for the two UI styles.
 | 
			
		||||
-- UI doesn't use formspec_[xy] anymore, but other mods may need them.
 | 
			
		||||
 | 
			
		||||
ui.style_full = {
 | 
			
		||||
	formspec_x = 1,
 | 
			
		||||
	formspec_y = 1,
 | 
			
		||||
	formw = 17.75,
 | 
			
		||||
	formh = 12.25,
 | 
			
		||||
	pagecols = 8,
 | 
			
		||||
	pagerows = 9,
 | 
			
		||||
	page_x = 10.75,
 | 
			
		||||
	page_y = 2.30,
 | 
			
		||||
	craft_x = 2.8,
 | 
			
		||||
	craft_y = 1.15,
 | 
			
		||||
	craftresult_x = 7.8,
 | 
			
		||||
	craft_arrow_x = 6.55,
 | 
			
		||||
	craft_guide_x = 3.3,
 | 
			
		||||
	craft_guide_y = 1.15,
 | 
			
		||||
	craft_guide_arrow_x = 7.05,
 | 
			
		||||
	craft_guide_result_x = 8.3,
 | 
			
		||||
	craft_guide_resultstr_x = 0.3,
 | 
			
		||||
	craft_guide_resultstr_y = 0.6,
 | 
			
		||||
	give_btn_x = 0.25,
 | 
			
		||||
	main_button_x = 0.4,
 | 
			
		||||
	main_button_y = 11.0,
 | 
			
		||||
	page_buttons_x = 11.60,
 | 
			
		||||
	page_buttons_y = 10.15,
 | 
			
		||||
	searchwidth = 3.4,
 | 
			
		||||
	form_header_x = 0.4,
 | 
			
		||||
	form_header_y = 0.4,
 | 
			
		||||
	btn_spc = 0.85,
 | 
			
		||||
	btn_size = 0.75,
 | 
			
		||||
	std_inv_x = 0.3,
 | 
			
		||||
	std_inv_y = 5.75,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ui.style_lite = {
 | 
			
		||||
	formspec_x =  0.6,
 | 
			
		||||
	formspec_y =  0.6,
 | 
			
		||||
	formw = 14,
 | 
			
		||||
	formh = 9.75,
 | 
			
		||||
	pagecols = 4,
 | 
			
		||||
	pagerows = 5,
 | 
			
		||||
	page_x = 10.5,
 | 
			
		||||
	page_y = 2.15,
 | 
			
		||||
	craft_x = 2.6,
 | 
			
		||||
	craft_y = 0.75,
 | 
			
		||||
	craftresult_x = 5.75,
 | 
			
		||||
	craft_arrow_x = 6.35,
 | 
			
		||||
	craft_guide_x = 3.1,
 | 
			
		||||
	craft_guide_y = 0.75,
 | 
			
		||||
	craft_guide_arrow_x = 7.05,
 | 
			
		||||
	craft_guide_result_x = 8.3,
 | 
			
		||||
	craft_guide_resultstr_x = 0.15,
 | 
			
		||||
	craft_guide_resultstr_y = 0.35,
 | 
			
		||||
	give_btn_x = 0.15,
 | 
			
		||||
	main_button_x = 10.5,
 | 
			
		||||
	main_button_y = 8.15,
 | 
			
		||||
	page_buttons_x = 10.5,
 | 
			
		||||
	page_buttons_y = 6.15,
 | 
			
		||||
	searchwidth = 1.6,
 | 
			
		||||
	form_header_x =  0.2,
 | 
			
		||||
	form_header_y =  0.2,
 | 
			
		||||
	btn_spc = 0.8,
 | 
			
		||||
	btn_size = 0.7,
 | 
			
		||||
	std_inv_x = 0.1,
 | 
			
		||||
	std_inv_y = 4.6,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
dofile(modpath.."/api.lua")
 | 
			
		||||
 | 
			
		||||
for _, style in ipairs({ui.style_full, ui.style_lite}) do
 | 
			
		||||
	style.items_per_page =  style.pagecols * style.pagerows
 | 
			
		||||
	style.standard_inv = string.format("list[current_player;main;%f,%f;8,4;]",
 | 
			
		||||
							style.std_inv_x + ui.list_img_offset, style.std_inv_y + ui.list_img_offset)
 | 
			
		||||
 | 
			
		||||
	style.standard_inv_bg = ui.make_inv_img_grid(style.std_inv_x, style.std_inv_y, 8, 1, true)..
 | 
			
		||||
							ui.make_inv_img_grid(style.std_inv_x, style.std_inv_y + ui.imgscale, 8, 3)
 | 
			
		||||
 | 
			
		||||
	style.craft_grid =	table.concat({
 | 
			
		||||
							ui.make_inv_img_grid(style.craft_x, style.craft_y, 3, 3),
 | 
			
		||||
							ui.single_slot(style.craft_x + ui.imgscale*4, style.craft_y), -- the craft result slot
 | 
			
		||||
							string.format("image[%f,%f;%f,%f;ui_crafting_arrow.png]",
 | 
			
		||||
							style.craft_arrow_x, style.craft_y, ui.imgscale, ui.imgscale),
 | 
			
		||||
							string.format("list[current_player;craft;%f,%f;3,3;]",
 | 
			
		||||
								style.craft_x + ui.list_img_offset, style.craft_y + ui.list_img_offset),
 | 
			
		||||
							string.format("list[current_player;craftpreview;%f,%f;1,1;]",
 | 
			
		||||
								style.craftresult_x + ui.list_img_offset, style.craft_y + ui.list_img_offset)
 | 
			
		||||
						})
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- Disable default creative inventory
 | 
			
		||||
local creative = rawget(_G, "creative") or rawget(_G, "creative_inventory")
 | 
			
		||||
if creative then
 | 
			
		||||
@@ -68,9 +154,11 @@ if sfinv then
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
dofile(modpath.."/group.lua")
 | 
			
		||||
dofile(modpath.."/api.lua")
 | 
			
		||||
dofile(modpath.."/category.lua")
 | 
			
		||||
dofile(modpath.."/default-categories.lua")
 | 
			
		||||
dofile(modpath.."/internal.lua")
 | 
			
		||||
dofile(modpath.."/callbacks.lua")
 | 
			
		||||
dofile(modpath.."/match_craft.lua")
 | 
			
		||||
dofile(modpath.."/register.lua")
 | 
			
		||||
 | 
			
		||||
if minetest.settings:get_bool("unified_inventory_bags") ~= false then
 | 
			
		||||
@@ -78,9 +166,5 @@ if minetest.settings:get_bool("unified_inventory_bags") ~= false then
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
dofile(modpath.."/item_names.lua")
 | 
			
		||||
 | 
			
		||||
if minetest.get_modpath("datastorage") then
 | 
			
		||||
	dofile(modpath.."/waypoints.lua")
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
dofile(modpath.."/waypoints.lua")
 | 
			
		||||
minetest.log("action", "[unified_inventory] loaded.")
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										356
									
								
								internal.lua
									
									
									
									
									
								
							
							
						
						@@ -1,5 +1,6 @@
 | 
			
		||||
local S = unified_inventory.gettext
 | 
			
		||||
local S = minetest.get_translator("unified_inventory")
 | 
			
		||||
local F = minetest.formspec_escape
 | 
			
		||||
local ui = unified_inventory
 | 
			
		||||
 | 
			
		||||
-- This pair of encoding functions is used where variable text must go in
 | 
			
		||||
-- button names, where the text might contain formspec metacharacters.
 | 
			
		||||
@@ -9,78 +10,63 @@ local F = minetest.formspec_escape
 | 
			
		||||
-- This is a game engine bug, and in the anticipation that it might be
 | 
			
		||||
-- fixed some day we don't want to rely on it.  So for safety we apply
 | 
			
		||||
-- an encoding that avoids all formspec metacharacters.
 | 
			
		||||
function unified_inventory.mangle_for_formspec(str)
 | 
			
		||||
 | 
			
		||||
function ui.mangle_for_formspec(str)
 | 
			
		||||
	return string.gsub(str, "([^A-Za-z0-9])", function (c) return string.format("_%d_", string.byte(c)) end)
 | 
			
		||||
end
 | 
			
		||||
function unified_inventory.demangle_for_formspec(str)
 | 
			
		||||
function ui.demangle_for_formspec(str)
 | 
			
		||||
	return string.gsub(str, "_([0-9]+)_", function (v) return string.char(v) end)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function unified_inventory.get_per_player_formspec(player_name)
 | 
			
		||||
	local lite = unified_inventory.lite_mode and not minetest.check_player_privs(player_name, {ui_full=true})
 | 
			
		||||
 | 
			
		||||
	local ui = {}
 | 
			
		||||
	ui.pagecols = unified_inventory.pagecols
 | 
			
		||||
	ui.pagerows = unified_inventory.pagerows
 | 
			
		||||
	ui.page_y = unified_inventory.page_y
 | 
			
		||||
	ui.formspec_y = unified_inventory.formspec_y
 | 
			
		||||
	ui.main_button_x = unified_inventory.main_button_x
 | 
			
		||||
	ui.main_button_y = unified_inventory.main_button_y
 | 
			
		||||
	ui.craft_result_x = unified_inventory.craft_result_x
 | 
			
		||||
	ui.craft_result_y = unified_inventory.craft_result_y
 | 
			
		||||
	ui.form_header_y = unified_inventory.form_header_y
 | 
			
		||||
function ui.get_per_player_formspec(player_name)
 | 
			
		||||
	local draw_lite_mode = ui.lite_mode and not minetest.check_player_privs(player_name, {ui_full=true})
 | 
			
		||||
 | 
			
		||||
	if lite then
 | 
			
		||||
		ui.pagecols = 4
 | 
			
		||||
		ui.pagerows = 6
 | 
			
		||||
		ui.page_y = 0.25
 | 
			
		||||
		ui.formspec_y = 0.47
 | 
			
		||||
		ui.main_button_x = 8.2
 | 
			
		||||
		ui.main_button_y = 6.5
 | 
			
		||||
		ui.craft_result_x = 2.8
 | 
			
		||||
		ui.craft_result_y = 3.4
 | 
			
		||||
		ui.form_header_y = -0.1
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	ui.items_per_page = ui.pagecols * ui.pagerows
 | 
			
		||||
	return ui, lite
 | 
			
		||||
	return table.copy(draw_lite_mode and ui.style_lite or ui.style_full), draw_lite_mode
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function unified_inventory.get_formspec(player, page)
 | 
			
		||||
local function formspec_button(ui_peruser, name, image, offset, pos, scale, label)
 | 
			
		||||
	local element = 'image_button'
 | 
			
		||||
	if minetest.registered_items[image] then
 | 
			
		||||
		element = 'item_image_button'
 | 
			
		||||
	elseif image:find(":", 1, true) then
 | 
			
		||||
		image = "unknown_item.png"
 | 
			
		||||
	end
 | 
			
		||||
	local spc = (1-scale)*ui_peruser.btn_size/2
 | 
			
		||||
	local size = ui_peruser.btn_size*scale
 | 
			
		||||
	return string.format("%s[%f,%f;%f,%f;%s;%s;]", element,
 | 
			
		||||
		(offset.x or offset[1]) + ( ui_peruser.btn_spc * (pos.x or pos[1]) ) + spc,
 | 
			
		||||
		(offset.y or offset[2]) + ( ui_peruser.btn_spc * (pos.y or pos[2]) ) + spc,
 | 
			
		||||
		size, size, image, name) ..
 | 
			
		||||
		string.format("tooltip[%s;%s]", name, F(label or name))
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function ui.get_formspec(player, page)
 | 
			
		||||
 | 
			
		||||
	if not player then
 | 
			
		||||
		return ""
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	local player_name = player:get_player_name()
 | 
			
		||||
	local ui_peruser,draw_lite_mode = unified_inventory.get_per_player_formspec(player_name)
 | 
			
		||||
	local ui_peruser,draw_lite_mode = ui.get_per_player_formspec(player_name)
 | 
			
		||||
 | 
			
		||||
	unified_inventory.current_page[player_name] = page
 | 
			
		||||
	local pagedef = unified_inventory.pages[page]
 | 
			
		||||
	ui.current_page[player_name] = page
 | 
			
		||||
	local pagedef = ui.pages[page]
 | 
			
		||||
 | 
			
		||||
	if not pagedef then
 | 
			
		||||
		return "" -- Invalid page name
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	local formspec = {
 | 
			
		||||
		"size[14,10]",
 | 
			
		||||
		"formspec_version[4]",
 | 
			
		||||
		"size["..ui_peruser.formw..","..ui_peruser.formh.."]",
 | 
			
		||||
		pagedef.formspec_prepend and "" or "no_prepend[]",
 | 
			
		||||
		"background[-0.19,-0.25;14.4,10.75;ui_form_bg.png]" -- Background
 | 
			
		||||
		ui.standard_background
 | 
			
		||||
	}
 | 
			
		||||
	local n = 4
 | 
			
		||||
 | 
			
		||||
	if draw_lite_mode then
 | 
			
		||||
		formspec[1] = "size[11,7.7]"
 | 
			
		||||
		formspec[3] = "background[-0.19,-0.2;11.4,8.4;ui_form_bg.png]"
 | 
			
		||||
	end
 | 
			
		||||
	local n = 5
 | 
			
		||||
 | 
			
		||||
	if unified_inventory.is_creative(player_name)
 | 
			
		||||
	and page == "craft" then
 | 
			
		||||
		formspec[n] = "background[0,"..(ui_peruser.formspec_y + 2)..";1,1;ui_single_slot.png]"
 | 
			
		||||
		n = n+1
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	local perplayer_formspec = unified_inventory.get_per_player_formspec(player_name)
 | 
			
		||||
	local perplayer_formspec = ui.get_per_player_formspec(player_name)
 | 
			
		||||
	local fsdata = pagedef.get_formspec(player, perplayer_formspec)
 | 
			
		||||
 | 
			
		||||
	formspec[n] = fsdata.formspec
 | 
			
		||||
@@ -93,7 +79,7 @@ function unified_inventory.get_formspec(player, page)
 | 
			
		||||
 | 
			
		||||
	local filtered_inv_buttons = {}
 | 
			
		||||
 | 
			
		||||
	for i, def in pairs(unified_inventory.buttons) do
 | 
			
		||||
	for i, def in pairs(ui.buttons) do
 | 
			
		||||
		if not (draw_lite_mode and def.hide_lite) then
 | 
			
		||||
			table.insert(filtered_inv_buttons, def)
 | 
			
		||||
		end
 | 
			
		||||
@@ -112,21 +98,20 @@ function unified_inventory.get_formspec(player, page)
 | 
			
		||||
 | 
			
		||||
		if def.type == "image" then
 | 
			
		||||
			if (def.condition == nil or def.condition(player) == true) then
 | 
			
		||||
				formspec[n] = "image_button["
 | 
			
		||||
				formspec[n+1] = ( ui_peruser.main_button_x + 0.65 * (j - 1) - button_col * 0.65 * 4) -- Modif NALC
 | 
			
		||||
				formspec[n+2] = ","..(ui_peruser.main_button_y + button_row * 0.7)..";0.8,0.8;"
 | 
			
		||||
				formspec[n+3] = F(def.image)..";"
 | 
			
		||||
				formspec[n+4] = F(def.name)..";]"
 | 
			
		||||
				formspec[n+5] = "tooltip["..F(def.name)
 | 
			
		||||
				formspec[n+6] = ";"..(def.tooltip or "").."]"
 | 
			
		||||
				n = n+7
 | 
			
		||||
				formspec[n] = string.format("image_button[%f,%f;%f,%f;%s;%s;]",
 | 
			
		||||
					ui_peruser.main_button_x + ui_peruser.btn_spc * (j - 1) - button_col * ui_peruser.btn_spc * 4, -- Modif NALC
 | 
			
		||||
					ui_peruser.main_button_y + button_row * ui_peruser.btn_spc,
 | 
			
		||||
					ui_peruser.btn_size,ui_peruser.btn_size,
 | 
			
		||||
					F(def.image),
 | 
			
		||||
					F(def.name))
 | 
			
		||||
				formspec[n+1] = "tooltip["..F(def.name)..";"..(def.tooltip or "").."]"
 | 
			
		||||
				n = n+2
 | 
			
		||||
			else
 | 
			
		||||
				formspec[n] = "image["
 | 
			
		||||
				formspec[n+1] = ( ui_peruser.main_button_x + 0.65 * (j - 1) - button_col * 0.65 * 4) -- Modif NALC
 | 
			
		||||
				formspec[n+2] = ","..(ui_peruser.main_button_y + button_row * 0.7)..";0.8,0.8;"
 | 
			
		||||
				formspec[n+3] = F(def.image).."^[colorize:#808080:alpha]"
 | 
			
		||||
				n = n+4
 | 
			
		||||
 | 
			
		||||
				formspec[n] = string.format("image[%f,%f;%f,%f;%s^[colorize:#808080:alpha]",
 | 
			
		||||
				ui_peruser.main_button_x + ui_peruser.btn_spc * (j - 1) - button_col * ui_peruser.btn_spc * 4, -- Modif NALC
 | 
			
		||||
				ui_peruser.main_button_y + button_row * ui_peruser.btn_spc,
 | 
			
		||||
				ui_peruser.btn_size,ui_peruser.btn_size,def.image)
 | 
			
		||||
				n = n+1
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
		j = j + 1 -- Modif NALC
 | 
			
		||||
@@ -135,7 +120,7 @@ function unified_inventory.get_formspec(player, page)
 | 
			
		||||
	if fsdata.draw_inventory ~= false then
 | 
			
		||||
		-- Player inventory
 | 
			
		||||
		formspec[n] = "listcolors[#00000000;#00000000]"
 | 
			
		||||
		formspec[n+1] = "list[current_player;main;0,"..(ui_peruser.formspec_y + 3.5)..";8,4;]"
 | 
			
		||||
		formspec[n+1] = ui_peruser.standard_inv
 | 
			
		||||
		n = n+2
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
@@ -143,71 +128,94 @@ function unified_inventory.get_formspec(player, page)
 | 
			
		||||
		return table.concat(formspec, "")
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	-- Controls to flip items pages
 | 
			
		||||
	local start_x = 9.2
 | 
			
		||||
	-- Category filters
 | 
			
		||||
 | 
			
		||||
	if not draw_lite_mode then
 | 
			
		||||
		formspec[n] =
 | 
			
		||||
			"image_button[" .. (start_x + 0.6 * 0)
 | 
			
		||||
				.. ",9;.8,.8;ui_skip_backward_icon.png;start_list;]"
 | 
			
		||||
			.. "tooltip[start_list;" .. F(S("First page")) .. "]"
 | 
			
		||||
	local categories_pos = { ui_peruser.page_x, ui_peruser.page_y-ui_peruser.btn_spc-0.5 }
 | 
			
		||||
	local categories_scroll_pos = { ui_peruser.page_x, ui_peruser.form_header_y-(draw_lite_mode and 0 or 0.2) }
 | 
			
		||||
 | 
			
		||||
			.. "image_button[" .. (start_x + 0.6 * 1)
 | 
			
		||||
				.. ",9;.8,.8;ui_doubleleft_icon.png;rewind3;]"
 | 
			
		||||
			.. "tooltip[rewind3;" .. F(S("Back three pages")) .. "]"
 | 
			
		||||
			.. "image_button[" .. (start_x + 0.6 * 2)
 | 
			
		||||
				.. ",9;.8,.8;ui_left_icon.png;rewind1;]"
 | 
			
		||||
			.. "tooltip[rewind1;" .. F(S("Back one page")) .. "]"
 | 
			
		||||
	formspec[n] = string.format("background9[%f,%f;%f,%f;%s;false;3]",
 | 
			
		||||
		ui_peruser.page_x-0.1, categories_scroll_pos[2],
 | 
			
		||||
		(ui_peruser.btn_spc * ui_peruser.pagecols) + 0.13, 1.4+(draw_lite_mode and 0 or 0.2),
 | 
			
		||||
		"ui_smallbg_9_sliced.png")
 | 
			
		||||
	n = n + 1
 | 
			
		||||
 | 
			
		||||
			.. "image_button[" .. (start_x + 0.6 * 3)
 | 
			
		||||
				.. ",9;.8,.8;ui_right_icon.png;forward1;]"
 | 
			
		||||
			.. "tooltip[forward1;" .. F(S("Forward one page")) .. "]"
 | 
			
		||||
			.. "image_button[" .. (start_x + 0.6 * 4)
 | 
			
		||||
				.. ",9;.8,.8;ui_doubleright_icon.png;forward3;]"
 | 
			
		||||
			.. "tooltip[forward3;" .. F(S("Forward three pages")) .. "]"
 | 
			
		||||
	formspec[n] = string.format("label[%f,%f;%s]", ui_peruser.page_x, ui_peruser.form_header_y+(draw_lite_mode and 0.3 or 0.2), "Category:")
 | 
			
		||||
	n = n + 1
 | 
			
		||||
 | 
			
		||||
			.. "image_button[" .. (start_x + 0.6 * 5)
 | 
			
		||||
				.. ",9;.8,.8;ui_skip_forward_icon.png;end_list;]"
 | 
			
		||||
			.. "tooltip[end_list;" .. F(S("Last page")) .. "]"
 | 
			
		||||
	else
 | 
			
		||||
		formspec[n] =
 | 
			
		||||
			"image_button[" .. (8.2 + 0.65 * 0)
 | 
			
		||||
				.. ",5.8;.8,.8;ui_skip_backward_icon.png;start_list;]"
 | 
			
		||||
			.. "tooltip[start_list;" .. F(S("First page")) .. "]"
 | 
			
		||||
			.. "image_button[" .. (8.2 + 0.65 * 1)
 | 
			
		||||
				.. ",5.8;.8,.8;ui_left_icon.png;rewind1;]"
 | 
			
		||||
			.. "tooltip[rewind1;" .. F(S("Back one page")) .. "]"
 | 
			
		||||
			.. "image_button[" .. (8.2 + 0.65 * 2)
 | 
			
		||||
				.. ",5.8;.8,.8;ui_right_icon.png;forward1;]"
 | 
			
		||||
			.. "tooltip[forward1;" .. F(S("Forward one page")) .. "]"
 | 
			
		||||
			.. "image_button[" .. (8.2 + 0.65 * 3)
 | 
			
		||||
				.. ",5.8;.8,.8;ui_skip_forward_icon.png;end_list;]"
 | 
			
		||||
			.. "tooltip[end_list;" .. F(S("Last page")) .. "]"
 | 
			
		||||
	local scroll_offset = 0
 | 
			
		||||
	local category_count = #unified_inventory.category_list
 | 
			
		||||
	if category_count > ui_peruser.pagecols then
 | 
			
		||||
		scroll_offset = unified_inventory.current_category_scroll[player_name]
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	for index, category in ipairs(unified_inventory.category_list) do
 | 
			
		||||
		local column = index - scroll_offset
 | 
			
		||||
		if column > 0 and column <= ui_peruser.pagecols then
 | 
			
		||||
			local scale = 0.8
 | 
			
		||||
			if unified_inventory.current_category[player_name] == category.name then
 | 
			
		||||
				scale = 1
 | 
			
		||||
			end
 | 
			
		||||
			formspec[n] = formspec_button(ui_peruser, "category_"..category.name, category.symbol, categories_pos, {column-1, 0}, scale, category.label)
 | 
			
		||||
			n = n + 1
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
	if category_count > ui_peruser.pagecols and scroll_offset > 0 then
 | 
			
		||||
		-- prev
 | 
			
		||||
		formspec[n] = formspec_button(ui_peruser, "prev_category", "ui_left_icon.png", categories_scroll_pos, {ui_peruser.pagecols - 2, 0}, 0.8, S("Scroll categories left"))
 | 
			
		||||
		n = n + 1
 | 
			
		||||
	end
 | 
			
		||||
	if category_count > ui_peruser.pagecols and category_count - scroll_offset > ui_peruser.pagecols then
 | 
			
		||||
		-- next
 | 
			
		||||
		formspec[n] = formspec_button(ui_peruser, "next_category", "ui_right_icon.png", categories_scroll_pos, {ui_peruser.pagecols - 1, 0}, 0.8, S("Scroll categories right"))
 | 
			
		||||
		n = n + 1
 | 
			
		||||
	end
 | 
			
		||||
	n = n+1
 | 
			
		||||
 | 
			
		||||
	-- Search box
 | 
			
		||||
	formspec[n] = "field_close_on_enter[searchbox;false]"
 | 
			
		||||
	n = n+1
 | 
			
		||||
 | 
			
		||||
	if not draw_lite_mode then
 | 
			
		||||
		formspec[n] = "field[9.5,8.325;3,1;searchbox;;"
 | 
			
		||||
			.. F(unified_inventory.current_searchbox[player_name]) .. "]"
 | 
			
		||||
		formspec[n+1] = "image_button[12.2,8.1;.8,.8;ui_search_icon.png;searchbutton;]"
 | 
			
		||||
			.. "tooltip[searchbutton;" ..F(S("Search")) .. "]"
 | 
			
		||||
		formspec[n+2] = "image_button[12.9,8.1;.8,.8;ui_reset_icon.png;searchresetbutton;]"
 | 
			
		||||
			.. "tooltip[searchbutton;" ..F(S("Search")) .. "]"
 | 
			
		||||
			.. "tooltip[searchresetbutton;" ..F(S("Reset search and display everything")) .. "]"
 | 
			
		||||
	else
 | 
			
		||||
		formspec[n] = "field[8.5,5.225;2.2,1;searchbox;;"
 | 
			
		||||
			.. F(unified_inventory.current_searchbox[player_name]) .. "]"
 | 
			
		||||
		formspec[n+1] = "image_button[10.3,5;.8,.8;ui_search_icon.png;searchbutton;]"
 | 
			
		||||
			.. "tooltip[searchbutton;" ..F(S("Search")) .. "]"
 | 
			
		||||
		formspec[n+2] = "image_button[11,5;.8,.8;ui_reset_icon.png;searchresetbutton;]"
 | 
			
		||||
			.. "tooltip[searchbutton;" ..F(S("Search")) .. "]"
 | 
			
		||||
			.. "tooltip[searchresetbutton;" ..F(S("Reset search and display everything")) .. "]"
 | 
			
		||||
	formspec[n+1] = string.format("field[%f,%f;%f,%f;searchbox;;%s]",
 | 
			
		||||
		ui_peruser.page_buttons_x, ui_peruser.page_buttons_y,
 | 
			
		||||
		ui_peruser.searchwidth - 0.1, ui_peruser.btn_size,
 | 
			
		||||
		F(ui.current_searchbox[player_name]))
 | 
			
		||||
	formspec[n+2] = string.format("image_button[%f,%f;%f,%f;ui_search_icon.png;searchbutton;]",
 | 
			
		||||
		ui_peruser.page_buttons_x + ui_peruser.searchwidth, ui_peruser.page_buttons_y,
 | 
			
		||||
		ui_peruser.btn_size,ui_peruser.btn_size)
 | 
			
		||||
	formspec[n+3] = "tooltip[searchbutton;" ..F(S("Search")) .. "]"
 | 
			
		||||
	formspec[n+4] = string.format("image_button[%f,%f;%f,%f;ui_reset_icon.png;searchresetbutton;]",
 | 
			
		||||
		ui_peruser.page_buttons_x + ui_peruser.searchwidth + ui_peruser.btn_spc,
 | 
			
		||||
		ui_peruser.page_buttons_y,
 | 
			
		||||
		ui_peruser.btn_size, ui_peruser.btn_size)
 | 
			
		||||
	formspec[n+5] = "tooltip[searchresetbutton;"..F(S("Reset search and display everything")).."]"
 | 
			
		||||
 | 
			
		||||
	n = n + 6
 | 
			
		||||
 | 
			
		||||
	-- Controls to flip items pages
 | 
			
		||||
 | 
			
		||||
	local btnlist = {
 | 
			
		||||
		{ "ui_skip_backward_icon.png", "start_list", S("First page") },
 | 
			
		||||
		{ "ui_doubleleft_icon.png",    "rewind3",    S("Back three pages") },
 | 
			
		||||
		{ "ui_left_icon.png",          "rewind1",    S("Back one page") },
 | 
			
		||||
		{ "ui_right_icon.png",         "forward1",   S("Forward one page") },
 | 
			
		||||
		{ "ui_doubleright_icon.png",   "forward3",   S("Forward three pages") },
 | 
			
		||||
		{ "ui_skip_forward_icon.png",  "end_list",   S("Last page") },
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if draw_lite_mode then
 | 
			
		||||
		btnlist[5] = nil
 | 
			
		||||
		btnlist[2] = nil
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	local bn = 0
 | 
			
		||||
	for _, b in pairs(btnlist) do
 | 
			
		||||
		formspec[n] =  string.format("image_button[%f,%f;%f,%f;%s;%s;]",
 | 
			
		||||
			ui_peruser.page_buttons_x + ui_peruser.btn_spc*bn,
 | 
			
		||||
			ui_peruser.page_buttons_y + ui_peruser.btn_spc,
 | 
			
		||||
			ui_peruser.btn_size, ui_peruser.btn_size,
 | 
			
		||||
			b[1],b[2])
 | 
			
		||||
		formspec[n+1] = "tooltip["..b[2]..";"..F(b[3]).."]"
 | 
			
		||||
		bn = bn + 1
 | 
			
		||||
		n = n + 2
 | 
			
		||||
	end
 | 
			
		||||
	n = n+3
 | 
			
		||||
 | 
			
		||||
	local no_matches = S("No matching items")
 | 
			
		||||
	if draw_lite_mode then
 | 
			
		||||
@@ -215,24 +223,23 @@ function unified_inventory.get_formspec(player, page)
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	-- Items list
 | 
			
		||||
	if #unified_inventory.filtered_items_list[player_name] == 0 then
 | 
			
		||||
		formspec[n] = "label[8.2,"..ui_peruser.form_header_y..";" .. F(no_matches) .. "]"
 | 
			
		||||
	if #ui.filtered_items_list[player_name] == 0 then
 | 
			
		||||
		formspec[n] = "label["..ui_peruser.page_x..","..(ui_peruser.page_y+0.15)..";" .. F(no_matches) .. "]"
 | 
			
		||||
	else
 | 
			
		||||
		local dir = unified_inventory.active_search_direction[player_name]
 | 
			
		||||
		local list_index = unified_inventory.current_index[player_name]
 | 
			
		||||
		local page = math.floor(list_index / (ui_peruser.items_per_page) + 1)
 | 
			
		||||
		local dir = ui.active_search_direction[player_name]
 | 
			
		||||
		local list_index = ui.current_index[player_name]
 | 
			
		||||
		local page2 = math.floor(list_index / (ui_peruser.items_per_page) + 1)
 | 
			
		||||
		local pagemax = math.floor(
 | 
			
		||||
			(#unified_inventory.filtered_items_list[player_name] - 1)
 | 
			
		||||
			(#ui.filtered_items_list[player_name] - 1)
 | 
			
		||||
				/ (ui_peruser.items_per_page) + 1)
 | 
			
		||||
		local item = {}
 | 
			
		||||
		for y = 0, ui_peruser.pagerows - 1 do
 | 
			
		||||
			for x = 0, ui_peruser.pagecols - 1 do
 | 
			
		||||
				local name = unified_inventory.filtered_items_list[player_name][list_index]
 | 
			
		||||
				local name = ui.filtered_items_list[player_name][list_index]
 | 
			
		||||
				local item = minetest.registered_items[name]
 | 
			
		||||
				if item then
 | 
			
		||||
					-- Clicked on current item: Flip crafting direction
 | 
			
		||||
					if name == unified_inventory.current_item[player_name] then
 | 
			
		||||
						local cdir = unified_inventory.current_craft_direction[player_name]
 | 
			
		||||
					if name == ui.current_item[player_name] then
 | 
			
		||||
						local cdir = ui.current_craft_direction[player_name]
 | 
			
		||||
						if cdir == "recipe" then
 | 
			
		||||
							dir = "usage"
 | 
			
		||||
						elseif cdir == "usage" then
 | 
			
		||||
@@ -240,13 +247,15 @@ function unified_inventory.get_formspec(player, page)
 | 
			
		||||
						end
 | 
			
		||||
					else
 | 
			
		||||
					-- Default: use active search direction by default
 | 
			
		||||
						dir = unified_inventory.active_search_direction[player_name]
 | 
			
		||||
						dir = ui.active_search_direction[player_name]
 | 
			
		||||
					end
 | 
			
		||||
 | 
			
		||||
					local button_name = "item_button_" .. dir .. "_"
 | 
			
		||||
						.. unified_inventory.mangle_for_formspec(name)
 | 
			
		||||
					formspec[n] = ("item_image_button[%f,%f;.81,.81;%s;%s;]"):format(
 | 
			
		||||
						8.2 + x * 0.7, ui_peruser.formspec_y + ui_peruser.page_y + y * 0.7,
 | 
			
		||||
						.. ui.mangle_for_formspec(name)
 | 
			
		||||
					formspec[n] = ("item_image_button[%f,%f;%f,%f;%s;%s;]"):format(
 | 
			
		||||
						ui_peruser.page_x + x * ui_peruser.btn_spc,
 | 
			
		||||
						ui_peruser.page_y + y * ui_peruser.btn_spc,
 | 
			
		||||
						ui_peruser.btn_size, ui_peruser.btn_size,
 | 
			
		||||
						name, button_name
 | 
			
		||||
					)
 | 
			
		||||
					formspec[n + 1] = ("tooltip[%s;%s \\[%s\\]]"):format(
 | 
			
		||||
@@ -258,26 +267,36 @@ function unified_inventory.get_formspec(player, page)
 | 
			
		||||
				end
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
		formspec[n] = "label[8.2,"..ui_peruser.form_header_y..";"..F(S("Page")) .. ": "
 | 
			
		||||
			.. S("%s of %s"):format(page,pagemax).."]"
 | 
			
		||||
		formspec[n] = string.format("label[%f,%f;%s: %s]",
 | 
			
		||||
			ui_peruser.page_buttons_x + ui_peruser.btn_spc * (draw_lite_mode and 1 or 2),
 | 
			
		||||
			ui_peruser.page_buttons_y + 0.1 + ui_peruser.btn_spc * 2,
 | 
			
		||||
			F(S("Page")), S("@1 of @2",page2,pagemax))
 | 
			
		||||
	end
 | 
			
		||||
	n= n+1
 | 
			
		||||
 | 
			
		||||
	if unified_inventory.activefilter[player_name] ~= "" then
 | 
			
		||||
		formspec[n] = "label[8.2,"..(ui_peruser.form_header_y + 0.4)..";" .. F(S("Filter")) .. ":]"
 | 
			
		||||
		formspec[n+1] = "label[9.1,"..(ui_peruser.form_header_y + 0.4)..";"..F(unified_inventory.activefilter[player_name]).."]"
 | 
			
		||||
	if ui.activefilter[player_name] ~= "" then
 | 
			
		||||
		formspec[n] = string.format("label[%f,%f;%s: %s]",
 | 
			
		||||
			ui_peruser.page_x, ui_peruser.page_y - 0.25,
 | 
			
		||||
			F(S("Filter")), F(ui.activefilter[player_name]))
 | 
			
		||||
	end
 | 
			
		||||
	return table.concat(formspec, "")
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function unified_inventory.set_inventory_formspec(player, page)
 | 
			
		||||
function ui.set_inventory_formspec(player, page)
 | 
			
		||||
	if player then
 | 
			
		||||
		player:set_inventory_formspec(unified_inventory.get_formspec(player, page))
 | 
			
		||||
		player:set_inventory_formspec(ui.get_formspec(player, page))
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
local function valid_def(def)
 | 
			
		||||
	return (not def.groups.not_in_creative_inventory
 | 
			
		||||
			or def.groups.not_in_creative_inventory == 0)
 | 
			
		||||
		and def.description
 | 
			
		||||
		and def.description ~= ""
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
--apply filter to the inventory list (create filtered copy of full one)
 | 
			
		||||
function unified_inventory.apply_filter(player, filter, search_dir)
 | 
			
		||||
function ui.apply_filter(player, filter, search_dir)
 | 
			
		||||
	if not player then
 | 
			
		||||
		return false
 | 
			
		||||
	end
 | 
			
		||||
@@ -296,34 +315,53 @@ function unified_inventory.apply_filter(player, filter, search_dir)
 | 
			
		||||
			return true
 | 
			
		||||
		end
 | 
			
		||||
	else
 | 
			
		||||
		local lang = minetest.get_player_information(player_name).lang_code
 | 
			
		||||
		ffilter = function(name, def)
 | 
			
		||||
			local lname = string.lower(name)
 | 
			
		||||
			local ldesc = string.lower(def.description)
 | 
			
		||||
			local llocaldesc = minetest.get_translated_string
 | 
			
		||||
				and string.lower(minetest.get_translated_string(lang, def.description))
 | 
			
		||||
			return string.find(lname, lfilter, 1, true) or string.find(ldesc, lfilter, 1, true)
 | 
			
		||||
				or llocaldesc and string.find(llocaldesc, lfilter, 1, true)
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
	local is_creative = unified_inventory.is_creative(player_name)
 | 
			
		||||
	unified_inventory.filtered_items_list[player_name]={}
 | 
			
		||||
	for name, def in pairs(minetest.registered_items) do
 | 
			
		||||
		if (not def.groups.not_in_creative_inventory
 | 
			
		||||
			or def.groups.not_in_creative_inventory == 0)
 | 
			
		||||
		and def.description
 | 
			
		||||
		and def.description ~= ""
 | 
			
		||||
		and ffilter(name, def)
 | 
			
		||||
		and (is_creative or unified_inventory.crafts_for.recipe[def.name]) then
 | 
			
		||||
			table.insert(unified_inventory.filtered_items_list[player_name], name)
 | 
			
		||||
	ui.filtered_items_list[player_name]={}
 | 
			
		||||
	local category = ui.current_category[player_name] or 'all'
 | 
			
		||||
	if category == 'all' then
 | 
			
		||||
		for name, def in pairs(minetest.registered_items) do
 | 
			
		||||
			if valid_def(def)
 | 
			
		||||
			and ffilter(name, def) then
 | 
			
		||||
				table.insert(ui.filtered_items_list[player_name], name)
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
	elseif category == 'uncategorized' then
 | 
			
		||||
		for name, def in pairs(minetest.registered_items) do
 | 
			
		||||
			if (not ui.find_category(name))
 | 
			
		||||
			and valid_def(def)
 | 
			
		||||
			and ffilter(name, def) then
 | 
			
		||||
				table.insert(ui.filtered_items_list[player_name], name)
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
	else
 | 
			
		||||
		for name,exists in pairs(ui.registered_category_items[category]) do
 | 
			
		||||
			local def = minetest.registered_items[name]
 | 
			
		||||
			if exists and def
 | 
			
		||||
			and valid_def(def)
 | 
			
		||||
			and ffilter(name, def) then
 | 
			
		||||
				table.insert(ui.filtered_items_list[player_name], name)
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
	table.sort(unified_inventory.filtered_items_list[player_name])
 | 
			
		||||
	unified_inventory.filtered_items_list_size[player_name] = #unified_inventory.filtered_items_list[player_name]
 | 
			
		||||
	unified_inventory.current_index[player_name] = 1
 | 
			
		||||
	unified_inventory.activefilter[player_name] = filter
 | 
			
		||||
	unified_inventory.active_search_direction[player_name] = search_dir
 | 
			
		||||
	unified_inventory.set_inventory_formspec(player,
 | 
			
		||||
	unified_inventory.current_page[player_name])
 | 
			
		||||
	table.sort(ui.filtered_items_list[player_name])
 | 
			
		||||
	ui.filtered_items_list_size[player_name] = #ui.filtered_items_list[player_name]
 | 
			
		||||
	ui.current_index[player_name] = 1
 | 
			
		||||
	ui.activefilter[player_name] = filter
 | 
			
		||||
	ui.active_search_direction[player_name] = search_dir
 | 
			
		||||
	ui.set_inventory_formspec(player,
 | 
			
		||||
	ui.current_page[player_name])
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function unified_inventory.items_in_group(groups)
 | 
			
		||||
function ui.items_in_group(groups)
 | 
			
		||||
	local items = {}
 | 
			
		||||
	for name, item in pairs(minetest.registered_items) do
 | 
			
		||||
		for _, group in pairs(groups:split(',')) do
 | 
			
		||||
@@ -335,7 +373,7 @@ function unified_inventory.items_in_group(groups)
 | 
			
		||||
	return items
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function unified_inventory.sort_inventory(inv)
 | 
			
		||||
function ui.sort_inventory(inv)
 | 
			
		||||
	local inlist = inv:get_list("main")
 | 
			
		||||
	local typecnt = {}
 | 
			
		||||
	local typekeys = {}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										45
									
								
								intllib.lua
									
									
									
									
									
								
							
							
						
						@@ -1,45 +0,0 @@
 | 
			
		||||
 | 
			
		||||
-- Fallback functions for when `intllib` is not installed.
 | 
			
		||||
-- Code released under Unlicense <http://unlicense.org>.
 | 
			
		||||
 | 
			
		||||
-- Get the latest version of this file at:
 | 
			
		||||
--   https://raw.githubusercontent.com/minetest-mods/intllib/master/lib/intllib.lua
 | 
			
		||||
 | 
			
		||||
local function format(str, ...)
 | 
			
		||||
	local args = { ... }
 | 
			
		||||
	local function repl(escape, open, num, close)
 | 
			
		||||
		if escape == "" then
 | 
			
		||||
			local replacement = tostring(args[tonumber(num)])
 | 
			
		||||
			if open == "" then
 | 
			
		||||
				replacement = replacement..close
 | 
			
		||||
			end
 | 
			
		||||
			return replacement
 | 
			
		||||
		else
 | 
			
		||||
			return "@"..open..num..close
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
	return (str:gsub("(@?)@(%(?)(%d+)(%)?)", repl))
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
local gettext, ngettext
 | 
			
		||||
if minetest.get_modpath("intllib") then
 | 
			
		||||
	if intllib.make_gettext_pair then
 | 
			
		||||
		-- New method using gettext.
 | 
			
		||||
		gettext, ngettext = intllib.make_gettext_pair()
 | 
			
		||||
	else
 | 
			
		||||
		-- Old method using text files.
 | 
			
		||||
		gettext = intllib.Getter()
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- Fill in missing functions.
 | 
			
		||||
 | 
			
		||||
gettext = gettext or function(msgid, ...)
 | 
			
		||||
	return format(msgid, ...)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
ngettext = ngettext or function(msgid, msgid_plural, n, ...)
 | 
			
		||||
	return format(n==1 and msgid or msgid_plural, ...)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
return gettext, ngettext
 | 
			
		||||
@@ -2,24 +2,24 @@
 | 
			
		||||
 | 
			
		||||
local item_names = {} -- [player_name] = { hud, dtime, itemname }
 | 
			
		||||
local dlimit = 3  -- HUD element will be hidden after this many seconds
 | 
			
		||||
local air_hud_mod = minetest.get_modpath("4air")
 | 
			
		||||
local hud_mod = minetest.get_modpath("hud")
 | 
			
		||||
local hudbars_mod = minetest.get_modpath("hudbars")
 | 
			
		||||
 | 
			
		||||
local function set_hud(player)
 | 
			
		||||
	local player_name = player:get_player_name()
 | 
			
		||||
	local off = {x=0, y=-70}
 | 
			
		||||
	if air_hud_mod or hud_mod then
 | 
			
		||||
		off.y = off.y - 20
 | 
			
		||||
	elseif hudbars_mod then
 | 
			
		||||
		off.y = off.y + 13
 | 
			
		||||
	local off = {x=0, y=-65}
 | 
			
		||||
	if hudbars_mod then
 | 
			
		||||
		-- Assume no alignment (2 per line)
 | 
			
		||||
		off.y = off.y - math.ceil(hb.hudbars_count / 2) * 25
 | 
			
		||||
	else
 | 
			
		||||
		off.y = off.y - 25
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	item_names[player_name] = {
 | 
			
		||||
		hud = player:hud_add({
 | 
			
		||||
			hud_elem_type = "text",
 | 
			
		||||
			position = {x=0.5, y=1},
 | 
			
		||||
			offset = off,
 | 
			
		||||
			alignment = {x=0, y=0},
 | 
			
		||||
			alignment = {x=0, y=-1},
 | 
			
		||||
			number = 0xFFFFFF,
 | 
			
		||||
			text = "",
 | 
			
		||||
		}),
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										366
									
								
								locale/de.po
									
									
									
									
									
								
							
							
						
						@@ -1,366 +0,0 @@
 | 
			
		||||
# German translation for the unified_inventory mod.
 | 
			
		||||
# Copyright (C) 2018 Maciej Kasatkin (RealBadAngel)
 | 
			
		||||
# This file is distributed under the same license as the unified_inventory package.
 | 
			
		||||
# Xanthin
 | 
			
		||||
# CodeXP <codexp@gmx.net>, 2018.
 | 
			
		||||
#
 | 
			
		||||
#, fuzzy
 | 
			
		||||
msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Project-Id-Version: unified_inventory\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: \n"
 | 
			
		||||
"POT-Creation-Date: 2018-04-02 13:41+0200\n"
 | 
			
		||||
"PO-Revision-Date: \n"
 | 
			
		||||
"Last-Translator: CodeXP <codexp@gmx.net>\n"
 | 
			
		||||
"Language-Team: \n"
 | 
			
		||||
"Language: de\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 | 
			
		||||
#: api.lua register.lua
 | 
			
		||||
msgid "Crafting"
 | 
			
		||||
msgstr "Fertigung"
 | 
			
		||||
 | 
			
		||||
#: api.lua
 | 
			
		||||
msgid "Mixing"
 | 
			
		||||
msgstr "Mischen"
 | 
			
		||||
 | 
			
		||||
#: api.lua
 | 
			
		||||
msgid "Cooking"
 | 
			
		||||
msgstr "Kochen"
 | 
			
		||||
 | 
			
		||||
#: api.lua
 | 
			
		||||
msgid "Digging"
 | 
			
		||||
msgstr "Graben"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Bags"
 | 
			
		||||
msgstr "Taschen"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Bag @1"
 | 
			
		||||
msgstr "Tasche @1"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Small Bag"
 | 
			
		||||
msgstr "Kleine Tasche"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Medium Bag"
 | 
			
		||||
msgstr "Mittelgroße Tasche"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Large Bag"
 | 
			
		||||
msgstr "Große Tasche"
 | 
			
		||||
 | 
			
		||||
#: group.lua
 | 
			
		||||
msgid " and "
 | 
			
		||||
msgstr " und "
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "First page"
 | 
			
		||||
msgstr "Erste Seite"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Back three pages"
 | 
			
		||||
msgstr "3 Seiten zurückblättern"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Back one page"
 | 
			
		||||
msgstr "1 Seite zurückblättern"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Forward one page"
 | 
			
		||||
msgstr "1 Seite vorblättern"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Forward three pages"
 | 
			
		||||
msgstr "3 Seiten vorblättern"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Last page"
 | 
			
		||||
msgstr "Letzte Seite"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Search"
 | 
			
		||||
msgstr "Suchen"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Reset search and display everything"
 | 
			
		||||
msgstr "Suche zurücksetzen und alles anzeigen"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "No matching items"
 | 
			
		||||
msgstr "Keine passenden Gegenstände"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "No matches."
 | 
			
		||||
msgstr "Keine Treffer"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Page"
 | 
			
		||||
msgstr "Seite"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "%s of %s"
 | 
			
		||||
msgstr "%s von %s"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Filter"
 | 
			
		||||
msgstr "Filter"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Can use the creative inventory"
 | 
			
		||||
msgstr "Kann das Kreativinventar nutzen"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid ""
 | 
			
		||||
"Forces Unified Inventory to be displayed in Full mode if Lite mode is "
 | 
			
		||||
"configured globally"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Crafting Grid"
 | 
			
		||||
msgstr "Fertigungsraster"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Crafting Guide"
 | 
			
		||||
msgstr "Fertigungsführer"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Set home position"
 | 
			
		||||
msgstr "Heimatposition setzen"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Home position set to: %s"
 | 
			
		||||
msgstr "Heimatposition nach: %s gesetzt"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "You don't have the \"home\" privilege!"
 | 
			
		||||
msgstr "Du hast das \"home\"-Privileg nicht!"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Go home"
 | 
			
		||||
msgstr "Nach Hause gehen"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Set time to day"
 | 
			
		||||
msgstr "Zur Tageszeit wechseln"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Time of day set to 6am"
 | 
			
		||||
msgstr "Tageszeit auf 6 Uhr gesetzt"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "You don't have the settime privilege!"
 | 
			
		||||
msgstr "Du hast das \"settime\"-Privileg nicht!"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Set time to night"
 | 
			
		||||
msgstr "Zur Nachtzeit wechseln"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Time of day set to 9pm"
 | 
			
		||||
msgstr "Tageszeit auf 21 Uhr gesetzt"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Clear inventory"
 | 
			
		||||
msgstr "Inventar leeren"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, fuzzy
 | 
			
		||||
msgid ""
 | 
			
		||||
"This button has been disabled outside of creative mode to prevent accidental "
 | 
			
		||||
"inventory trashing.\n"
 | 
			
		||||
"Use the trash slot instead."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Diese Funktion ist außerhalb des Kreativmodus deaktiviert, um ein "
 | 
			
		||||
"versehentliches Löschen des ganzen Inventars zu verhindern.\n"
 | 
			
		||||
"Nutze stattdessen das Müllfeld."
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Inventory cleared!"
 | 
			
		||||
msgstr "Inventar geleert!"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Trash:"
 | 
			
		||||
msgstr "Müll:"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Refill:"
 | 
			
		||||
msgstr "Nachfüllen:"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Any item belonging to the %s group"
 | 
			
		||||
msgstr "Irgendein Gegenstand, der zur Gruppe %s gehört"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Any item belonging to the groups %s"
 | 
			
		||||
msgstr "Irgendein Gegenstand, der zu den Gruppen %s gehört"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Recipe %d of %d"
 | 
			
		||||
msgstr "Rezept %d von %d"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Usage %d of %d"
 | 
			
		||||
msgstr "Verwendung %d von %d"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "No recipes"
 | 
			
		||||
msgstr "Keine Rezepte"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "No usages"
 | 
			
		||||
msgstr "Keine Verwendungen"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Result"
 | 
			
		||||
msgstr "Ergebnis"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Ingredient"
 | 
			
		||||
msgstr "Zutat"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Show next recipe"
 | 
			
		||||
msgstr "Nächstes Rezept zeigen"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Show next usage"
 | 
			
		||||
msgstr "Nächste Verwendung zeigen"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Show previous recipe"
 | 
			
		||||
msgstr "Vorheriges Rezept zeigen"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Show previous usage"
 | 
			
		||||
msgstr "Vorherige Verwendung zeigen"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "%s (%s)"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Give me:"
 | 
			
		||||
msgstr "Gib mir:"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid ""
 | 
			
		||||
"This recipe is too\n"
 | 
			
		||||
"large to be displayed."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Dieses Rezept ist zu\n"
 | 
			
		||||
"groß, um angezeigt\n"
 | 
			
		||||
"zu werden."
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "To craft grid:"
 | 
			
		||||
msgstr "Ins Fertigungsraster:"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "All"
 | 
			
		||||
msgstr "Alles"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "White"
 | 
			
		||||
msgstr "Weiß"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Yellow"
 | 
			
		||||
msgstr "Gelb"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Red"
 | 
			
		||||
msgstr "Rot"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Green"
 | 
			
		||||
msgstr "Grün"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Blue"
 | 
			
		||||
msgstr "Blau"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Waypoints"
 | 
			
		||||
msgstr "Wegpunkte"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Select Waypoint #%d"
 | 
			
		||||
msgstr "Wegpunkt Nr. %d auswählen"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Waypoint %d"
 | 
			
		||||
msgstr "Wegpunkt Nr. %d"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Set waypoint to current location"
 | 
			
		||||
msgstr "Setze Wegpunkt zur derzeitigen Position"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "invisible"
 | 
			
		||||
msgstr "unsichtbar"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "visible"
 | 
			
		||||
msgstr "sichtbar"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Make waypoint @1"
 | 
			
		||||
msgstr "Wegpunkt @1 machen"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Disable"
 | 
			
		||||
msgstr "ausschalten"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Enable"
 | 
			
		||||
msgstr "einschalten"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "@1 display of waypoint coordinates"
 | 
			
		||||
msgstr "Anzeige der Wegpunktkoordinaten @1"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Change color of waypoint display"
 | 
			
		||||
msgstr "Farbe der Darstellung der Wegpunkte ändern"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Edit waypoint name"
 | 
			
		||||
msgstr "Name des Wegpunkts ändern"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Waypoint active"
 | 
			
		||||
msgstr "Wegpunkt aktiv"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Waypoint inactive"
 | 
			
		||||
msgstr "Wegpunkt inaktiv"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Finish editing"
 | 
			
		||||
msgstr "Bearbeitung abschließen"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "World position"
 | 
			
		||||
msgstr "Weltposition"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Name"
 | 
			
		||||
msgstr "Name"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "HUD text color"
 | 
			
		||||
msgstr "HUD-Textfarbe"
 | 
			
		||||
							
								
								
									
										366
									
								
								locale/es.po
									
									
									
									
									
								
							
							
						
						@@ -1,366 +0,0 @@
 | 
			
		||||
# Spanish translation for the unified_inventory mod.
 | 
			
		||||
# Copyright (C) 2018 Maciej Kasatkin (RealBadAngel)
 | 
			
		||||
# This file is distributed under the same license as the unified_inventory package.
 | 
			
		||||
# Diego Martínez <kaeza>
 | 
			
		||||
# CodeXP <codexp@gmx.net>, 2018.
 | 
			
		||||
#
 | 
			
		||||
#, fuzzy
 | 
			
		||||
msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Project-Id-Version: unified_inventory\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: \n"
 | 
			
		||||
"POT-Creation-Date: 2018-04-02 16:15+0200\n"
 | 
			
		||||
"PO-Revision-Date: \n"
 | 
			
		||||
"Last-Translator: CodeXP <codexp@gmx.net>\n"
 | 
			
		||||
"Language-Team: \n"
 | 
			
		||||
"Language: es\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 | 
			
		||||
#: api.lua register.lua
 | 
			
		||||
msgid "Crafting"
 | 
			
		||||
msgstr "Elaboración"
 | 
			
		||||
 | 
			
		||||
#: api.lua
 | 
			
		||||
msgid "Mixing"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: api.lua
 | 
			
		||||
#, fuzzy
 | 
			
		||||
msgid "Cooking"
 | 
			
		||||
msgstr "hornear"
 | 
			
		||||
 | 
			
		||||
#: api.lua
 | 
			
		||||
msgid "Digging"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Bags"
 | 
			
		||||
msgstr "Bolsas"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Bag @1"
 | 
			
		||||
msgstr "Bolsa @1"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Small Bag"
 | 
			
		||||
msgstr "Bolsa Pequeña"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Medium Bag"
 | 
			
		||||
msgstr "Bolsa Mediana"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Large Bag"
 | 
			
		||||
msgstr "Bolsa Grande"
 | 
			
		||||
 | 
			
		||||
#: group.lua
 | 
			
		||||
msgid " and "
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "First page"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Back three pages"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Back one page"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Forward one page"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Forward three pages"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Last page"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Search"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Reset search and display everything"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "No matching items"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "No matches."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Page"
 | 
			
		||||
msgstr "Página"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "%s of %s"
 | 
			
		||||
msgstr "%s de %s"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Filter"
 | 
			
		||||
msgstr "Filtro"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Can use the creative inventory"
 | 
			
		||||
msgstr "Puede usar el inventario creativo"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid ""
 | 
			
		||||
"Forces Unified Inventory to be displayed in Full mode if Lite mode is "
 | 
			
		||||
"configured globally"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Crafting Grid"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Crafting Guide"
 | 
			
		||||
msgstr "Guía de Elaboración"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, fuzzy
 | 
			
		||||
msgid "Set home position"
 | 
			
		||||
msgstr "Posición en el mundo"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Home position set to: %s"
 | 
			
		||||
msgstr "Posición de hogar cambiada a: %s"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "You don't have the \"home\" privilege!"
 | 
			
		||||
msgstr "¡No tienes el privilegio \"home\"!"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Go home"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Set time to day"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Time of day set to 6am"
 | 
			
		||||
msgstr "Hora del día cambiada a 6AM"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "You don't have the settime privilege!"
 | 
			
		||||
msgstr "¡No tienes el privilegio \"settime\"!"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Set time to night"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Time of day set to 9pm"
 | 
			
		||||
msgstr "Hora del día cambiada a 9PM"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Clear inventory"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, fuzzy
 | 
			
		||||
msgid ""
 | 
			
		||||
"This button has been disabled outside of creative mode to prevent accidental "
 | 
			
		||||
"inventory trashing.\n"
 | 
			
		||||
"Use the trash slot instead."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Éste botón ha sido deshabilitado para prevenir la destrucción accidental del "
 | 
			
		||||
"inventario.\n"
 | 
			
		||||
"Usa la ranura para basura en su lugar."
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Inventory cleared!"
 | 
			
		||||
msgstr "¡Inventario limpio!"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Trash:"
 | 
			
		||||
msgstr "Basura:"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Refill:"
 | 
			
		||||
msgstr "Rellenar:"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Any item belonging to the %s group"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Any item belonging to the groups %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Recipe %d of %d"
 | 
			
		||||
msgstr "Receta %d de %d"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Usage %d of %d"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "No recipes"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "No usages"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Result"
 | 
			
		||||
msgstr "Resultado"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Ingredient"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Show next recipe"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Show next usage"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Show previous recipe"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Show previous usage"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "%s (%s)"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Give me:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid ""
 | 
			
		||||
"This recipe is too\n"
 | 
			
		||||
"large to be displayed."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, fuzzy
 | 
			
		||||
msgid "To craft grid:"
 | 
			
		||||
msgstr "Copiar al cuadro de elaboración"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "All"
 | 
			
		||||
msgstr "Todos"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "White"
 | 
			
		||||
msgstr "Blanco"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Yellow"
 | 
			
		||||
msgstr "Amarillo"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Red"
 | 
			
		||||
msgstr "Rojo"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Green"
 | 
			
		||||
msgstr "Verde"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Blue"
 | 
			
		||||
msgstr "Azul"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Waypoints"
 | 
			
		||||
msgstr "Puntos de paso"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Select Waypoint #%d"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Waypoint %d"
 | 
			
		||||
msgstr "Puntos de paso %d"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Set waypoint to current location"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "invisible"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "visible"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Make waypoint @1"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Disable"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Enable"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "@1 display of waypoint coordinates"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Change color of waypoint display"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Edit waypoint name"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Waypoint active"
 | 
			
		||||
msgstr "Punto de paso activo"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Waypoint inactive"
 | 
			
		||||
msgstr "Punto de paso inactivo"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Finish editing"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "World position"
 | 
			
		||||
msgstr "Posición en el mundo"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Name"
 | 
			
		||||
msgstr "Nombre"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "HUD text color"
 | 
			
		||||
msgstr "Color del HUD"
 | 
			
		||||
							
								
								
									
										364
									
								
								locale/fr.po
									
									
									
									
									
								
							
							
						
						@@ -1,364 +0,0 @@
 | 
			
		||||
# French translation for the unified_inventory mod.
 | 
			
		||||
# Copyright (C) 2018 Maciej Kasatkin (RealBadAngel)
 | 
			
		||||
# This file is distributed under the same license as the unified_inventory package.
 | 
			
		||||
# kilbith
 | 
			
		||||
# CodeXP <codexp@gmx.net>, 2018.
 | 
			
		||||
#
 | 
			
		||||
#, fuzzy
 | 
			
		||||
msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Project-Id-Version: unified_inventory\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: \n"
 | 
			
		||||
"POT-Creation-Date: 2018-04-02 16:15+0200\n"
 | 
			
		||||
"PO-Revision-Date: \n"
 | 
			
		||||
"Last-Translator: CodeXP <codexp@gmx.net>\n"
 | 
			
		||||
"Language-Team: \n"
 | 
			
		||||
"Language: fr\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 | 
			
		||||
#: api.lua register.lua
 | 
			
		||||
msgid "Crafting"
 | 
			
		||||
msgstr "Création"
 | 
			
		||||
 | 
			
		||||
#: api.lua
 | 
			
		||||
msgid "Mixing"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: api.lua
 | 
			
		||||
msgid "Cooking"
 | 
			
		||||
msgstr "Cuisson"
 | 
			
		||||
 | 
			
		||||
#: api.lua
 | 
			
		||||
msgid "Digging"
 | 
			
		||||
msgstr "Creuser"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Bags"
 | 
			
		||||
msgstr "Sacs"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Bag @1"
 | 
			
		||||
msgstr "Sac @1"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Small Bag"
 | 
			
		||||
msgstr "Petit sac"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Medium Bag"
 | 
			
		||||
msgstr "Sac moyen"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Large Bag"
 | 
			
		||||
msgstr "Grand sac"
 | 
			
		||||
 | 
			
		||||
#: group.lua
 | 
			
		||||
msgid " and "
 | 
			
		||||
msgstr " et "
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "First page"
 | 
			
		||||
msgstr "1ère page"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Back three pages"
 | 
			
		||||
msgstr "3 pages en arrière"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Back one page"
 | 
			
		||||
msgstr "Page précédente"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Forward one page"
 | 
			
		||||
msgstr "Page suivante"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Forward three pages"
 | 
			
		||||
msgstr "3 pages en avant"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Last page"
 | 
			
		||||
msgstr "Dernière page"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Search"
 | 
			
		||||
msgstr "Rechercher"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Reset search and display everything"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "No matching items"
 | 
			
		||||
msgstr "Aucun élément correspondant"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "No matches."
 | 
			
		||||
msgstr "Aucun match"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Page"
 | 
			
		||||
msgstr "Page"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "%s of %s"
 | 
			
		||||
msgstr "%s de %s"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Filter"
 | 
			
		||||
msgstr "Filtre"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Can use the creative inventory"
 | 
			
		||||
msgstr "Vous pouvez utiliser l'inventaire créatif"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid ""
 | 
			
		||||
"Forces Unified Inventory to be displayed in Full mode if Lite mode is "
 | 
			
		||||
"configured globally"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Crafting Grid"
 | 
			
		||||
msgstr "Grille de création"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Crafting Guide"
 | 
			
		||||
msgstr "Guide de création"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, fuzzy
 | 
			
		||||
msgid "Set home position"
 | 
			
		||||
msgstr "Position dans le monde"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Home position set to: %s"
 | 
			
		||||
msgstr "Position de votre base fixée à: %s"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "You don't have the \"home\" privilege!"
 | 
			
		||||
msgstr "Vous n'avez pas le privilège \"home\"!"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Go home"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Set time to day"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Time of day set to 6am"
 | 
			
		||||
msgstr "Heure fixée à 6h"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "You don't have the settime privilege!"
 | 
			
		||||
msgstr "Vous n'avez pas le privilège \"settime\"!"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Set time to night"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Time of day set to 9pm"
 | 
			
		||||
msgstr "Heure fixée à 21h"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Clear inventory"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid ""
 | 
			
		||||
"This button has been disabled outside of creative mode to prevent accidental "
 | 
			
		||||
"inventory trashing.\n"
 | 
			
		||||
"Use the trash slot instead."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Ce bouton a été désactivé en dehors du mode créatif pour éviter des saccages "
 | 
			
		||||
"dans l'inventaire.\n"
 | 
			
		||||
"Utilisez plutôt la case poubelle."
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Inventory cleared!"
 | 
			
		||||
msgstr "Inventaire vidé !"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Trash:"
 | 
			
		||||
msgstr "Poubelle :"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Refill:"
 | 
			
		||||
msgstr "Remplir :"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Any item belonging to the %s group"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Any item belonging to the groups %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Recipe %d of %d"
 | 
			
		||||
msgstr "Recette %d de %d"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Usage %d of %d"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "No recipes"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "No usages"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Result"
 | 
			
		||||
msgstr "Résultat"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Ingredient"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Show next recipe"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Show next usage"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Show previous recipe"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Show previous usage"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "%s (%s)"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Give me:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid ""
 | 
			
		||||
"This recipe is too\n"
 | 
			
		||||
"large to be displayed."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "To craft grid:"
 | 
			
		||||
msgstr "Sur de création:"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "All"
 | 
			
		||||
msgstr "Tout"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "White"
 | 
			
		||||
msgstr "Blanc"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Yellow"
 | 
			
		||||
msgstr "Jaune"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Red"
 | 
			
		||||
msgstr "Rouge"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Green"
 | 
			
		||||
msgstr "Vert"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Blue"
 | 
			
		||||
msgstr "Bleu"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Waypoints"
 | 
			
		||||
msgstr "Point de passage"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Select Waypoint #%d"
 | 
			
		||||
msgstr "Choisir un point de passage #%d"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Waypoint %d"
 | 
			
		||||
msgstr "Point de passage %d"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Set waypoint to current location"
 | 
			
		||||
msgstr "Marquer un point de passage à la position actuelle"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "invisible"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "visible"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Make waypoint @1"
 | 
			
		||||
msgstr "Rendre @1 le point de passage"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Disable"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Enable"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
#, fuzzy
 | 
			
		||||
msgid "@1 display of waypoint coordinates"
 | 
			
		||||
msgstr "@1 montrer les coordonnées des points de passages"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Change color of waypoint display"
 | 
			
		||||
msgstr "Changer la couleur du point de passage"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Edit waypoint name"
 | 
			
		||||
msgstr "Editer le nom du point de passage"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Waypoint active"
 | 
			
		||||
msgstr "Point de passage actif"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Waypoint inactive"
 | 
			
		||||
msgstr "Point de passage inactif"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Finish editing"
 | 
			
		||||
msgstr "Terminer l'édition"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "World position"
 | 
			
		||||
msgstr "Position dans le monde"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Name"
 | 
			
		||||
msgstr "Nom"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "HUD text color"
 | 
			
		||||
msgstr "Couleur de texte du HUD"
 | 
			
		||||
							
								
								
									
										369
									
								
								locale/ms.po
									
									
									
									
									
								
							
							
						
						@@ -1,369 +0,0 @@
 | 
			
		||||
# Malay translation for the unified_inventory mod.
 | 
			
		||||
# Copyright (C) 2018 Maciej Kasatkin (RealBadAngel)
 | 
			
		||||
# This file is distributed under the same license as the unified_inventory package.
 | 
			
		||||
# muhdnurhidayat <translation@mnh48.moe>, 2018.
 | 
			
		||||
#
 | 
			
		||||
msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Project-Id-Version: unified_inventory\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: \n"
 | 
			
		||||
"POT-Creation-Date: 2018-04-02 03:34+0200\n"
 | 
			
		||||
"PO-Revision-Date: 2018-07-17 20:14+0800\n"
 | 
			
		||||
"Language-Team: muhdnurhidayat <translation@mnh48.moe>\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
"X-Generator: Poedit 2.0.9\n"
 | 
			
		||||
"Last-Translator: muhdnurhidayat <translation@mnh48.moe>\n"
 | 
			
		||||
"Plural-Forms: nplurals=1; plural=0;\n"
 | 
			
		||||
"Language: ms\n"
 | 
			
		||||
"X-Poedit-Flags-xgettext: --add-comments\n"
 | 
			
		||||
 | 
			
		||||
#: api.lua register.lua
 | 
			
		||||
msgid "Crafting"
 | 
			
		||||
msgstr "Pertukangan"
 | 
			
		||||
 | 
			
		||||
#: api.lua
 | 
			
		||||
msgid "Mixing"
 | 
			
		||||
msgstr "Pencampuran"
 | 
			
		||||
 | 
			
		||||
#: api.lua
 | 
			
		||||
msgid "Cooking"
 | 
			
		||||
msgstr "Pemasakan"
 | 
			
		||||
 | 
			
		||||
#: api.lua
 | 
			
		||||
msgid "Digging"
 | 
			
		||||
msgstr "Penggalian"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Bags"
 | 
			
		||||
msgstr "Beg"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Bag @1"
 | 
			
		||||
msgstr "Beg @1"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Small Bag"
 | 
			
		||||
msgstr "Beg Kecil"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Medium Bag"
 | 
			
		||||
msgstr "Beg Sederhana"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Large Bag"
 | 
			
		||||
msgstr "Beg Besar"
 | 
			
		||||
 | 
			
		||||
#: group.lua
 | 
			
		||||
msgid " and "
 | 
			
		||||
msgstr " dan "
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "First page"
 | 
			
		||||
msgstr "Halaman pertama"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Back three pages"
 | 
			
		||||
msgstr "Tiga halaman sebelumnya"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Back one page"
 | 
			
		||||
msgstr "Halaman sebelumnya"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Forward one page"
 | 
			
		||||
msgstr "Halaman seterusnya"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Forward three pages"
 | 
			
		||||
msgstr "Tiga halaman seterusnya"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Last page"
 | 
			
		||||
msgstr "Halaman terakhir"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Search"
 | 
			
		||||
msgstr "Cari"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Reset search and display everything"
 | 
			
		||||
msgstr "Set semula carian dan tunjukkan semua benda"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "No matching items"
 | 
			
		||||
msgstr "Tiada item sepadan"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "No matches."
 | 
			
		||||
msgstr "Tiada padanan."
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Page"
 | 
			
		||||
msgstr "Halaman"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "%s of %s"
 | 
			
		||||
msgstr "%s drpd %s"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Filter"
 | 
			
		||||
msgstr "Tapis"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Can use the creative inventory"
 | 
			
		||||
msgstr "Boleh guna inventori kreatif"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid ""
 | 
			
		||||
"Forces Unified Inventory to be displayed in Full mode if Lite mode is "
 | 
			
		||||
"configured globally"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Memaksa Unified Inventory untuk dipaparkan dalam mod Full jika mod Lite "
 | 
			
		||||
"ditetapkan secara global"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Crafting Grid"
 | 
			
		||||
msgstr "Grid Pertukangan"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Crafting Guide"
 | 
			
		||||
msgstr "Panduan Pertukangan"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Set home position"
 | 
			
		||||
msgstr "Tetapkan kedudukan rumah"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Home position set to: %s"
 | 
			
		||||
msgstr "Kedudukan rumah ditetapkan ke: %s"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "You don't have the \"home\" privilege!"
 | 
			
		||||
msgstr "Anda tidak ada keistimewaan \"home\"!"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Go home"
 | 
			
		||||
msgstr "Balik rumah"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Set time to day"
 | 
			
		||||
msgstr "Tetapkan masa jadi siang"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Time of day set to 6am"
 | 
			
		||||
msgstr "Masa ditetapkan ke 6 pagi"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "You don't have the settime privilege!"
 | 
			
		||||
msgstr "Anda tidak ada keistimewaan settime!"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Set time to night"
 | 
			
		||||
msgstr "Tetapkan masa jadi malam"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Time of day set to 9pm"
 | 
			
		||||
msgstr "Masa ditetapkan ke 9 malam"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Clear inventory"
 | 
			
		||||
msgstr "Kosongkan inventori"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid ""
 | 
			
		||||
"This button has been disabled outside of creative mode to prevent accidental "
 | 
			
		||||
"inventory trashing.\n"
 | 
			
		||||
"Use the trash slot instead."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Butang ini dilumpuhkan di luar mod kreatif untuk mengelakkan pengosongan "
 | 
			
		||||
"inventori secara tidak sengaja.\n"
 | 
			
		||||
"Sebaliknya, gunakan slot tong sampah."
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Inventory cleared!"
 | 
			
		||||
msgstr "Inventori dikosongkan!"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Trash:"
 | 
			
		||||
msgstr "Buang:"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Refill:"
 | 
			
		||||
msgstr "Isi balik:"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Any item belonging to the %s group"
 | 
			
		||||
msgstr "Sebarang item dari kumpulan %s"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Any item belonging to the groups %s"
 | 
			
		||||
msgstr "Sebarang item dari kumpulan %s"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Recipe %d of %d"
 | 
			
		||||
msgstr "Resipi %d drpd %d"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Usage %d of %d"
 | 
			
		||||
msgstr "Kegunaan %d drpd %d"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "No recipes"
 | 
			
		||||
msgstr "Tiada resipi"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "No usages"
 | 
			
		||||
msgstr "Tiada kegunaan"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Result"
 | 
			
		||||
msgstr "Hasil"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Ingredient"
 | 
			
		||||
msgstr "Bahan"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Show next recipe"
 | 
			
		||||
msgstr "Tunjuk resipi seterusnya"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Show next usage"
 | 
			
		||||
msgstr "Tunjuk kegunaan seterusnya"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Show previous recipe"
 | 
			
		||||
msgstr "Tunjuk resipi sebelumnya"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Show previous usage"
 | 
			
		||||
msgstr "Tunjuk kegunaan sebelumnya"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "%s (%s)"
 | 
			
		||||
msgstr "%s (%s)"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Give me:"
 | 
			
		||||
msgstr "Beri saya:"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid ""
 | 
			
		||||
"This recipe is too\n"
 | 
			
		||||
"large to be displayed."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Resipi ini terlalu\n"
 | 
			
		||||
"besar untuk paparan."
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "To craft grid:"
 | 
			
		||||
msgstr "Ke grid pertukangan:"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "All"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"SE\n"
 | 
			
		||||
"MUA"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "White"
 | 
			
		||||
msgstr "Putih"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Yellow"
 | 
			
		||||
msgstr "Kuning"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Red"
 | 
			
		||||
msgstr "Merah"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Green"
 | 
			
		||||
msgstr "Hijau"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Blue"
 | 
			
		||||
msgstr "Biru"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Waypoints"
 | 
			
		||||
msgstr "Titik Arah"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Select Waypoint #%d"
 | 
			
		||||
msgstr "Pilih Titik Arah #%d"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Waypoint %d"
 | 
			
		||||
msgstr "Titik Arah %d"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Set waypoint to current location"
 | 
			
		||||
msgstr "Tetapkan titik arah ke lokasi semasa"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "invisible"
 | 
			
		||||
msgstr "Sembunyikan"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "visible"
 | 
			
		||||
msgstr "Paparkan"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Make waypoint @1"
 | 
			
		||||
msgstr "@1 titik arah"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Disable"
 | 
			
		||||
msgstr "Sembunyikan"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Enable"
 | 
			
		||||
msgstr "Paparkan"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "@1 display of waypoint coordinates"
 | 
			
		||||
msgstr "@1 koordinat untuk titik arah"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Change color of waypoint display"
 | 
			
		||||
msgstr "Tukar warna paparan titik arah"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Edit waypoint name"
 | 
			
		||||
msgstr "Edit nama titik arah"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Waypoint active"
 | 
			
		||||
msgstr "Titik arah aktif"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Waypoint inactive"
 | 
			
		||||
msgstr "Titik arah tidak aktif"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Finish editing"
 | 
			
		||||
msgstr "Selesai edit"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "World position"
 | 
			
		||||
msgstr "Kedudukan dunia"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Name"
 | 
			
		||||
msgstr "Nama"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "HUD text color"
 | 
			
		||||
msgstr "Warna tulisan HUD"
 | 
			
		||||
							
								
								
									
										359
									
								
								locale/pl.po
									
									
									
									
									
								
							
							
						
						@@ -1,359 +0,0 @@
 | 
			
		||||
# Polish translation for the unified_inventory mod.
 | 
			
		||||
# Copyright (C) 2018 Maciej Kasatkin (RealBadAngel)
 | 
			
		||||
# This file is distributed under the same license as the unified_inventory package.
 | 
			
		||||
# RealBadAngel
 | 
			
		||||
# CodeXP <codexp@gmx.net>, 2018.
 | 
			
		||||
#
 | 
			
		||||
#, fuzzy
 | 
			
		||||
msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Project-Id-Version: unified_inventory\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: \n"
 | 
			
		||||
"POT-Creation-Date: 2018-04-02 16:30+0200\n"
 | 
			
		||||
"PO-Revision-Date: \n"
 | 
			
		||||
"Last-Translator: CodeXP <codexp@gmx.net>\n"
 | 
			
		||||
"Language-Team: \n"
 | 
			
		||||
"Language: pl\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 | 
			
		||||
#: api.lua register.lua
 | 
			
		||||
msgid "Crafting"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: api.lua
 | 
			
		||||
msgid "Mixing"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: api.lua
 | 
			
		||||
msgid "Cooking"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: api.lua
 | 
			
		||||
msgid "Digging"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Bags"
 | 
			
		||||
msgstr "Plecaki"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Bag @1"
 | 
			
		||||
msgstr "Plecak @1"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Small Bag"
 | 
			
		||||
msgstr "Maly plecak"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Medium Bag"
 | 
			
		||||
msgstr "Sredni plecak"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Large Bag"
 | 
			
		||||
msgstr "Duzy plecak"
 | 
			
		||||
 | 
			
		||||
#: group.lua
 | 
			
		||||
msgid " and "
 | 
			
		||||
msgstr " i "
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "First page"
 | 
			
		||||
msgstr "Pierwsza strona"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Back three pages"
 | 
			
		||||
msgstr "3 strony w tyl"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Back one page"
 | 
			
		||||
msgstr "1 strona w tyl"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Forward one page"
 | 
			
		||||
msgstr "1 strona do przodu"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Forward three pages"
 | 
			
		||||
msgstr "3 strony do przodu"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Last page"
 | 
			
		||||
msgstr "Ostatnia strona"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Search"
 | 
			
		||||
msgstr "Szukaj"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Reset search and display everything"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "No matching items"
 | 
			
		||||
msgstr "Brak pasujacych przedmiotow"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "No matches."
 | 
			
		||||
msgstr "Brak wyników"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Page"
 | 
			
		||||
msgstr "Strona"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "%s of %s"
 | 
			
		||||
msgstr "%s z %s"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Filter"
 | 
			
		||||
msgstr "Filtr"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Can use the creative inventory"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid ""
 | 
			
		||||
"Forces Unified Inventory to be displayed in Full mode if Lite mode is "
 | 
			
		||||
"configured globally"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Crafting Grid"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Crafting Guide"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Set home position"
 | 
			
		||||
msgstr "Ustaw pozycję wyjściową"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Home position set to: %s"
 | 
			
		||||
msgstr "Pozycja domowa ustawiona na: %s"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "You don't have the \"home\" privilege!"
 | 
			
		||||
msgstr "Nie masz uprawnien do zmiany czasu \"home\"!"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Go home"
 | 
			
		||||
msgstr "Idź do domu"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Set time to day"
 | 
			
		||||
msgstr "Ustaw czas na dzień"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Time of day set to 6am"
 | 
			
		||||
msgstr "Czas ustawiony na 6:00"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "You don't have the settime privilege!"
 | 
			
		||||
msgstr "Nie masz uprawnien do zmiany czasu \"settime\"!"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Set time to night"
 | 
			
		||||
msgstr "Ustaw czas na noc"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Time of day set to 9pm"
 | 
			
		||||
msgstr "Czas ustawiony na 21:00"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Clear inventory"
 | 
			
		||||
msgstr "Wyczyść zapasy"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid ""
 | 
			
		||||
"This button has been disabled outside of creative mode to prevent accidental "
 | 
			
		||||
"inventory trashing.\n"
 | 
			
		||||
"Use the trash slot instead."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Inventory cleared!"
 | 
			
		||||
msgstr "Zapasy zostały wyczyszczone!"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Trash:"
 | 
			
		||||
msgstr "Smietnik:"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Refill:"
 | 
			
		||||
msgstr "Uzupelnianie:"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Any item belonging to the %s group"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Any item belonging to the groups %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Recipe %d of %d"
 | 
			
		||||
msgstr "Recepta %d z %d"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Usage %d of %d"
 | 
			
		||||
msgstr "Użycie %d z %d"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "No recipes"
 | 
			
		||||
msgstr "Brak recepty"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "No usages"
 | 
			
		||||
msgstr "Bez użycia"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Result"
 | 
			
		||||
msgstr "Wynik"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Ingredient"
 | 
			
		||||
msgstr "Składnik"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Show next recipe"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Show next usage"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Show previous recipe"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Show previous usage"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "%s (%s)"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Give me:"
 | 
			
		||||
msgstr "Daj mi:"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid ""
 | 
			
		||||
"This recipe is too\n"
 | 
			
		||||
"large to be displayed."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "To craft grid:"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "All"
 | 
			
		||||
msgstr "Wszystko"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "White"
 | 
			
		||||
msgstr "Bialy"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Yellow"
 | 
			
		||||
msgstr "Zolty"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Red"
 | 
			
		||||
msgstr "Czerwony"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Green"
 | 
			
		||||
msgstr "Zielony"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Blue"
 | 
			
		||||
msgstr "Niebieski"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Waypoints"
 | 
			
		||||
msgstr "Punkty orientacyjne"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Select Waypoint #%d"
 | 
			
		||||
msgstr "Wybierz punkt #%d"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Waypoint %d"
 | 
			
		||||
msgstr "Punkty orientacyjne %d"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Set waypoint to current location"
 | 
			
		||||
msgstr "Ustaw punkt orientacyjny na biezacej pozycji"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "invisible"
 | 
			
		||||
msgstr "niewidzialny"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "visible"
 | 
			
		||||
msgstr "widomy"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Make waypoint @1"
 | 
			
		||||
msgstr "Robić punkt @1"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Disable"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Enable"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "@1 display of waypoint coordinates"
 | 
			
		||||
msgstr "@1 koordynatow punktu"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Change color of waypoint display"
 | 
			
		||||
msgstr "Zmien kolor punktu"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Edit waypoint name"
 | 
			
		||||
msgstr "Edytuj nazwe punktu"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Waypoint active"
 | 
			
		||||
msgstr "Punkt wlaczony"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Waypoint inactive"
 | 
			
		||||
msgstr "Punkt wylaczony"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Finish editing"
 | 
			
		||||
msgstr "Zakoncz edycje"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "World position"
 | 
			
		||||
msgstr "Pozycja"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Name"
 | 
			
		||||
msgstr "Nazwa"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "HUD text color"
 | 
			
		||||
msgstr "Kolor tekstu HUD"
 | 
			
		||||
							
								
								
									
										366
									
								
								locale/pt.po
									
									
									
									
									
								
							
							
						
						@@ -1,366 +0,0 @@
 | 
			
		||||
# Portuguese translation for the unified_inventory mod.
 | 
			
		||||
# Copyright (C) 2018 Maciej Kasatkin (RealBadAngel)
 | 
			
		||||
# This file is distributed under the same license as the unified_inventory package.
 | 
			
		||||
# Lunovox <lunovox@openmailbox.org>
 | 
			
		||||
# CodeXP <codexp@gmx.net>, 2018.
 | 
			
		||||
#
 | 
			
		||||
#, fuzzy
 | 
			
		||||
msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Project-Id-Version: unified_inventory\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: \n"
 | 
			
		||||
"POT-Creation-Date: 2018-04-02 16:48+0200\n"
 | 
			
		||||
"PO-Revision-Date: \n"
 | 
			
		||||
"Last-Translator: CodeXP <codexp@gmx.net>\n"
 | 
			
		||||
"Language-Team: \n"
 | 
			
		||||
"Language: pt\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 | 
			
		||||
#: api.lua register.lua
 | 
			
		||||
msgid "Crafting"
 | 
			
		||||
msgstr "Artesanato"
 | 
			
		||||
 | 
			
		||||
#: api.lua
 | 
			
		||||
msgid "Mixing"
 | 
			
		||||
msgstr "Muistura"
 | 
			
		||||
 | 
			
		||||
#: api.lua
 | 
			
		||||
msgid "Cooking"
 | 
			
		||||
msgstr "Cozimento"
 | 
			
		||||
 | 
			
		||||
#: api.lua
 | 
			
		||||
msgid "Digging"
 | 
			
		||||
msgstr "Escavação"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Bags"
 | 
			
		||||
msgstr "Bolsas"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Bag @1"
 | 
			
		||||
msgstr "Bolsa @1"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Small Bag"
 | 
			
		||||
msgstr "Bolsa Pequena"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Medium Bag"
 | 
			
		||||
msgstr "Bolsa Média"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Large Bag"
 | 
			
		||||
msgstr "Bolsa Grande"
 | 
			
		||||
 | 
			
		||||
#: group.lua
 | 
			
		||||
msgid " and "
 | 
			
		||||
msgstr " e "
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "First page"
 | 
			
		||||
msgstr "Primeira Página"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Back three pages"
 | 
			
		||||
msgstr "Voltar 3 Páginas"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Back one page"
 | 
			
		||||
msgstr "Voltar 1 Página"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Forward one page"
 | 
			
		||||
msgstr "Avançar 1 Página"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Forward three pages"
 | 
			
		||||
msgstr "Avançar 3 Páginas"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Last page"
 | 
			
		||||
msgstr "Ultima Página"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Search"
 | 
			
		||||
msgstr "Pesquisar"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Reset search and display everything"
 | 
			
		||||
msgstr "Redefinir pesquisa e exibir tudo"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "No matching items"
 | 
			
		||||
msgstr "Nenhum item correspondente"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "No matches."
 | 
			
		||||
msgstr "Sem correspondências"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Page"
 | 
			
		||||
msgstr "Página"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "%s of %s"
 | 
			
		||||
msgstr "%s de %s"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Filter"
 | 
			
		||||
msgstr "Filtro"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Can use the creative inventory"
 | 
			
		||||
msgstr "Pode usar o inventário do criativo"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid ""
 | 
			
		||||
"Forces Unified Inventory to be displayed in Full mode if Lite mode is "
 | 
			
		||||
"configured globally"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Força o Unified Inventory a ser exibido no modo Full se o modo Lite estiver "
 | 
			
		||||
"configurado globalmente"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Crafting Grid"
 | 
			
		||||
msgstr "Grade de Artesanato"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Crafting Guide"
 | 
			
		||||
msgstr "Guia de Artesanato"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Set home position"
 | 
			
		||||
msgstr "Definir posição de casa"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Home position set to: %s"
 | 
			
		||||
msgstr "Posição inicial definida para: %s"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "You don't have the \"home\" privilege!"
 | 
			
		||||
msgstr "Você não tem o privilégio de \"home\"!"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Go home"
 | 
			
		||||
msgstr "Transportar para Casa"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Set time to day"
 | 
			
		||||
msgstr "Definir turno para dia"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Time of day set to 6am"
 | 
			
		||||
msgstr "Hora do dia definida para 06h"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "You don't have the settime privilege!"
 | 
			
		||||
msgstr "Você não tem o privilégio de \"settime\"!"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Set time to night"
 | 
			
		||||
msgstr "Definir turno para noite"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Time of day set to 9pm"
 | 
			
		||||
msgstr "Hora do dia ajustada para 21h"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Clear inventory"
 | 
			
		||||
msgstr "Limpar Inventário"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid ""
 | 
			
		||||
"This button has been disabled outside of creative mode to prevent accidental "
 | 
			
		||||
"inventory trashing.\n"
 | 
			
		||||
"Use the trash slot instead."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Este botão foi desativado fora do modo de criativo para evitar o descarte "
 | 
			
		||||
"acidental de inventário. \n"
 | 
			
		||||
"Use o slot de lixo em vez disso."
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Inventory cleared!"
 | 
			
		||||
msgstr "Inventário Apagado!"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Trash:"
 | 
			
		||||
msgstr "Lixo:"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Refill:"
 | 
			
		||||
msgstr "Recarga:"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Any item belonging to the %s group"
 | 
			
		||||
msgstr "Qualquer item pertencente ao grupo '%s'."
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Any item belonging to the groups %s"
 | 
			
		||||
msgstr "Qualquer item pertencente aos grupos '%s'."
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Recipe %d of %d"
 | 
			
		||||
msgstr "Receita %d de %d"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Usage %d of %d"
 | 
			
		||||
msgstr "Utilização %d de %d"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "No recipes"
 | 
			
		||||
msgstr "Sem Receita"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "No usages"
 | 
			
		||||
msgstr "Sem Utilização"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Result"
 | 
			
		||||
msgstr "Resultado"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Ingredient"
 | 
			
		||||
msgstr "Ingrediente"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Show next recipe"
 | 
			
		||||
msgstr "Exibir Próxima Receita"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Show next usage"
 | 
			
		||||
msgstr "Mostrar Próxima Utilização"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Show previous recipe"
 | 
			
		||||
msgstr "Exibir Receita Anterior"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Show previous usage"
 | 
			
		||||
msgstr "Exibir Utilização Anterior"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "%s (%s)"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Give me:"
 | 
			
		||||
msgstr "Gerado:"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid ""
 | 
			
		||||
"This recipe is too\n"
 | 
			
		||||
"large to be displayed."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Esta receita é grande \n"
 | 
			
		||||
"demais para ser apresentada."
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "To craft grid:"
 | 
			
		||||
msgstr "Para Grade de Artesanato"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "All"
 | 
			
		||||
msgstr "MAX"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "White"
 | 
			
		||||
msgstr "Branco"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Yellow"
 | 
			
		||||
msgstr "Amarelo"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Red"
 | 
			
		||||
msgstr "Vermelho"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Green"
 | 
			
		||||
msgstr "Verde"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Blue"
 | 
			
		||||
msgstr "Azul"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Waypoints"
 | 
			
		||||
msgstr "Apontador de Direção"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Select Waypoint #%d"
 | 
			
		||||
msgstr "Seleção de Apontador de Direção #%02d"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Waypoint %d"
 | 
			
		||||
msgstr "Apontador de Direção %d"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Set waypoint to current location"
 | 
			
		||||
msgstr "Configurar localização atual do Apontador de Direção"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "invisible"
 | 
			
		||||
msgstr "invisível"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "visible"
 | 
			
		||||
msgstr "visível"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Make waypoint @1"
 | 
			
		||||
msgstr "Fazer Apontador de Direção @1"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Disable"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Enable"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "@1 display of waypoint coordinates"
 | 
			
		||||
msgstr "@1 exibição de coordenadas de Fazer Apontador de Direção"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Change color of waypoint display"
 | 
			
		||||
msgstr "Mudar cor exibida do Apontador de Direção"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Edit waypoint name"
 | 
			
		||||
msgstr "Editar Nome de Apontador de Direção"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Waypoint active"
 | 
			
		||||
msgstr "Apontador de Direção Ativo"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Waypoint inactive"
 | 
			
		||||
msgstr "Apontador de Direção Inativo"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Finish editing"
 | 
			
		||||
msgstr "Edição Finalizada"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "World position"
 | 
			
		||||
msgstr "Posição Mundial"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Name"
 | 
			
		||||
msgstr "Nome"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "HUD text color"
 | 
			
		||||
msgstr "Cor de HUD"
 | 
			
		||||
							
								
								
									
										366
									
								
								locale/ru.po
									
									
									
									
									
								
							
							
						
						@@ -1,366 +0,0 @@
 | 
			
		||||
# Russian translation for the unified_inventory mod.
 | 
			
		||||
# Copyright (C) 2018 Maciej Kasatkin (RealBadAngel)
 | 
			
		||||
# This file is distributed under the same license as the unified_inventory package.
 | 
			
		||||
# eternal_sorrow
 | 
			
		||||
# CodeXP <codexp@gmx.net>, 2018.
 | 
			
		||||
#
 | 
			
		||||
#, fuzzy
 | 
			
		||||
msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Project-Id-Version: unified_inventory\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: \n"
 | 
			
		||||
"POT-Creation-Date: 2018-04-02 03:34+0200\n"
 | 
			
		||||
"PO-Revision-Date: \n"
 | 
			
		||||
"Last-Translator: CodeXP <codexp@gmx.net>\n"
 | 
			
		||||
"Language-Team: \n"
 | 
			
		||||
"Language: ru\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 | 
			
		||||
#: api.lua register.lua
 | 
			
		||||
#, fuzzy
 | 
			
		||||
msgid "Crafting"
 | 
			
		||||
msgstr "Крафт"
 | 
			
		||||
 | 
			
		||||
#: api.lua
 | 
			
		||||
msgid "Mixing"
 | 
			
		||||
msgstr "Мешать"
 | 
			
		||||
 | 
			
		||||
#: api.lua
 | 
			
		||||
msgid "Cooking"
 | 
			
		||||
msgstr "Варить"
 | 
			
		||||
 | 
			
		||||
#: api.lua
 | 
			
		||||
msgid "Digging"
 | 
			
		||||
msgstr "Копать"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Bags"
 | 
			
		||||
msgstr "Сумки"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Bag @1"
 | 
			
		||||
msgstr "Сумка @1"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Small Bag"
 | 
			
		||||
msgstr "Малая сумка"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Medium Bag"
 | 
			
		||||
msgstr "Средняя сумка"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Large Bag"
 | 
			
		||||
msgstr "Большая сумка"
 | 
			
		||||
 | 
			
		||||
#: group.lua
 | 
			
		||||
msgid " and "
 | 
			
		||||
msgstr " и "
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "First page"
 | 
			
		||||
msgstr "Первая страница"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Back three pages"
 | 
			
		||||
msgstr "3 страницы назад"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Back one page"
 | 
			
		||||
msgstr "1 страницу назад"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Forward one page"
 | 
			
		||||
msgstr "1 страницу вперёд"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Forward three pages"
 | 
			
		||||
msgstr "3 страницы вперёд"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Last page"
 | 
			
		||||
msgstr "Последняя страница"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Search"
 | 
			
		||||
msgstr "Поиск"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Reset search and display everything"
 | 
			
		||||
msgstr "Сброс поиска, показать всё"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "No matching items"
 | 
			
		||||
msgstr "Нет подходящих элементов"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "No matches."
 | 
			
		||||
msgstr "Ничего не найдено"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Page"
 | 
			
		||||
msgstr "Страница"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "%s of %s"
 | 
			
		||||
msgstr "%s из %s"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Filter"
 | 
			
		||||
msgstr "Фильтр"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Can use the creative inventory"
 | 
			
		||||
msgstr "Можно использовать инвентарь творческого режима"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid ""
 | 
			
		||||
"Forces Unified Inventory to be displayed in Full mode if Lite mode is "
 | 
			
		||||
"configured globally"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Crafting Grid"
 | 
			
		||||
msgstr "Решетка крафта"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Crafting Guide"
 | 
			
		||||
msgstr "Книга рецептов"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Set home position"
 | 
			
		||||
msgstr "Установить позицию дома"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Home position set to: %s"
 | 
			
		||||
msgstr "Дом теперь расположен по коодинатам: %s"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "You don't have the \"home\" privilege!"
 | 
			
		||||
msgstr "У вас нет привилегии \"home\"!"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Go home"
 | 
			
		||||
msgstr "Отправиться домой"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Set time to day"
 | 
			
		||||
msgstr "День"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Time of day set to 6am"
 | 
			
		||||
msgstr "Установлено время 6 утра"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, fuzzy
 | 
			
		||||
msgid "You don't have the settime privilege!"
 | 
			
		||||
msgstr "Вам не разрешено устанавливать время! (нет привилегии \"settime\")"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Set time to night"
 | 
			
		||||
msgstr "Ночь"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Time of day set to 9pm"
 | 
			
		||||
msgstr "Установлено время 9 вечера"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Clear inventory"
 | 
			
		||||
msgstr "Очистить инвентарь"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid ""
 | 
			
		||||
"This button has been disabled outside of creative mode to prevent accidental "
 | 
			
		||||
"inventory trashing.\n"
 | 
			
		||||
"Use the trash slot instead."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Эта кнопка отключена вне творческого режима, чтобы предотвратить случайное "
 | 
			
		||||
"уничтожение предметов.\n"
 | 
			
		||||
"Используйте слот корзины вместо нее."
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Inventory cleared!"
 | 
			
		||||
msgstr "Инвентарь очищен!"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Trash:"
 | 
			
		||||
msgstr "Мусор:"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Refill:"
 | 
			
		||||
msgstr "Наполнить:"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Any item belonging to the %s group"
 | 
			
		||||
msgstr "Любой элемент из группы: %s"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Any item belonging to the groups %s"
 | 
			
		||||
msgstr "Любой элемент из группы: %s"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Recipe %d of %d"
 | 
			
		||||
msgstr "Рецепт %s из %s"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Usage %d of %d"
 | 
			
		||||
msgstr "Вариант %d of %d"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "No recipes"
 | 
			
		||||
msgstr "Рецептов нет"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "No usages"
 | 
			
		||||
msgstr "Не используется"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Result"
 | 
			
		||||
msgstr "Результат"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Ingredient"
 | 
			
		||||
msgstr "Состав"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Show next recipe"
 | 
			
		||||
msgstr "Следующий рецепт"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Show next usage"
 | 
			
		||||
msgstr "Следующее использование"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Show previous recipe"
 | 
			
		||||
msgstr "Прошлый рецепт"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Show previous usage"
 | 
			
		||||
msgstr "Прошлая страница"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "%s (%s)"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Give me:"
 | 
			
		||||
msgstr "Дай мне:"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid ""
 | 
			
		||||
"This recipe is too\n"
 | 
			
		||||
"large to be displayed."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Этот рецепт не\n"
 | 
			
		||||
"помещается в решетку."
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "To craft grid:"
 | 
			
		||||
msgstr "На решeтку крафта:"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "All"
 | 
			
		||||
msgstr "Все"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "White"
 | 
			
		||||
msgstr "Белый"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Yellow"
 | 
			
		||||
msgstr "Желтый"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Red"
 | 
			
		||||
msgstr "Красный"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Green"
 | 
			
		||||
msgstr "Зелёный"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Blue"
 | 
			
		||||
msgstr "Синий"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Waypoints"
 | 
			
		||||
msgstr "Путевые точки"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Select Waypoint #%d"
 | 
			
		||||
msgstr "Выбрать путевую точку №%d"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Waypoint %d"
 | 
			
		||||
msgstr "Путевая точка %d"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Set waypoint to current location"
 | 
			
		||||
msgstr "Установить путевую точку по текущей позиции"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "invisible"
 | 
			
		||||
msgstr "невидимой"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "visible"
 | 
			
		||||
msgstr "видимой"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Make waypoint @1"
 | 
			
		||||
msgstr "Сделать путевую точку @1"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Disable"
 | 
			
		||||
msgstr "Выключить"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Enable"
 | 
			
		||||
msgstr "Включить"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "@1 display of waypoint coordinates"
 | 
			
		||||
msgstr "@1 показ координат путевых точек"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Change color of waypoint display"
 | 
			
		||||
msgstr "Поменять цвет путевой точки"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Edit waypoint name"
 | 
			
		||||
msgstr "Переименовать путевую точку"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Waypoint active"
 | 
			
		||||
msgstr "Путевая точка включена"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Waypoint inactive"
 | 
			
		||||
msgstr "Путевая точка выключена"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Finish editing"
 | 
			
		||||
msgstr "Закончить редакцию"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "World position"
 | 
			
		||||
msgstr "Позиция мира"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Name"
 | 
			
		||||
msgstr "Имя"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "HUD text color"
 | 
			
		||||
msgstr "Цвет текста HUDа"
 | 
			
		||||
							
								
								
									
										90
									
								
								locale/template.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,90 @@
 | 
			
		||||
# textdomain: unified_inventory
 | 
			
		||||
Mixing=
 | 
			
		||||
Cooking=
 | 
			
		||||
Digging=
 | 
			
		||||
Bags=
 | 
			
		||||
Bag @1=
 | 
			
		||||
Small Bag=
 | 
			
		||||
Medium Bag=
 | 
			
		||||
Large Bag=
 | 
			
		||||
All Items=
 | 
			
		||||
Misc. Items=
 | 
			
		||||
Plant Life=
 | 
			
		||||
Building Materials=
 | 
			
		||||
Tools=
 | 
			
		||||
Minerals and Metals=
 | 
			
		||||
Environment and Worldgen=
 | 
			
		||||
Lighting=
 | 
			
		||||
 and =
 | 
			
		||||
Scroll categories left=
 | 
			
		||||
Scroll categories right=
 | 
			
		||||
Search=
 | 
			
		||||
Reset search and display everything=
 | 
			
		||||
First page=
 | 
			
		||||
Back three pages=
 | 
			
		||||
Back one page=
 | 
			
		||||
Forward one page=
 | 
			
		||||
Forward three pages=
 | 
			
		||||
Last page=
 | 
			
		||||
No matching items=
 | 
			
		||||
No matches.=
 | 
			
		||||
Page=
 | 
			
		||||
@1 of @2=
 | 
			
		||||
Filter=
 | 
			
		||||
Can use the creative inventory=
 | 
			
		||||
Forces Unified Inventory to be displayed in Full mode if Lite mode is configured globally=
 | 
			
		||||
Crafting Grid=
 | 
			
		||||
Crafting Guide=
 | 
			
		||||
Set home position=
 | 
			
		||||
Home position set to: @1=
 | 
			
		||||
You don't have the "home" privilege!=
 | 
			
		||||
Go home=
 | 
			
		||||
Set time to day=
 | 
			
		||||
Time of day set to 6am=
 | 
			
		||||
You don't have the settime privilege!=
 | 
			
		||||
Set time to night=
 | 
			
		||||
Time of day set to 9pm=
 | 
			
		||||
Clear inventory=
 | 
			
		||||
This button has been disabled outside of creative mode to prevent accidental inventory trashing.@nUse the trash slot instead.=
 | 
			
		||||
Inventory cleared!=
 | 
			
		||||
Trash:=
 | 
			
		||||
Refill:=
 | 
			
		||||
Any item belonging to the @1 group=
 | 
			
		||||
Any item belonging to the groups @1=
 | 
			
		||||
Recipe @1 of @2=
 | 
			
		||||
Usage @1 of @2=
 | 
			
		||||
No recipes=
 | 
			
		||||
No usages=
 | 
			
		||||
Result=
 | 
			
		||||
Ingredient=
 | 
			
		||||
Show next recipe=
 | 
			
		||||
Show next usage=
 | 
			
		||||
Show previous recipe=
 | 
			
		||||
Show previous usage=
 | 
			
		||||
@1 (@2)=
 | 
			
		||||
Give me:=
 | 
			
		||||
This recipe is too@@large to be displayed.=
 | 
			
		||||
To craft grid:=
 | 
			
		||||
All=
 | 
			
		||||
Crafting=
 | 
			
		||||
White=
 | 
			
		||||
Yellow=
 | 
			
		||||
Red=
 | 
			
		||||
Green=
 | 
			
		||||
Blue=
 | 
			
		||||
Waypoints=
 | 
			
		||||
Select Waypoint #@1=
 | 
			
		||||
Waypoint @1=
 | 
			
		||||
Set waypoint to current location=
 | 
			
		||||
Hide waypoint=
 | 
			
		||||
Show waypoint=
 | 
			
		||||
Hide coordinates=
 | 
			
		||||
Show coordinates=
 | 
			
		||||
Change color of waypoint display=
 | 
			
		||||
Edit waypoint name=
 | 
			
		||||
Waypoint active=
 | 
			
		||||
Waypoint inactive=
 | 
			
		||||
Finish editing=
 | 
			
		||||
World position=
 | 
			
		||||
Name=
 | 
			
		||||
HUD text color=
 | 
			
		||||
							
								
								
									
										360
									
								
								locale/tr.po
									
									
									
									
									
								
							
							
						
						@@ -1,360 +0,0 @@
 | 
			
		||||
# Turkish translation for the unified_inventory mod.
 | 
			
		||||
# Copyright (C) 2018 Maciej Kasatkin (RealBadAngel)
 | 
			
		||||
# This file is distributed under the same license as the unified_inventory package.
 | 
			
		||||
# Mahmutelmas06@hotmail.com
 | 
			
		||||
# CodeXP <codexp@gmx.net>, 2018.
 | 
			
		||||
#
 | 
			
		||||
#, fuzzy
 | 
			
		||||
msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Project-Id-Version: unified_inventory\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: \n"
 | 
			
		||||
"POT-Creation-Date: 2018-04-02 13:41+0200\n"
 | 
			
		||||
"PO-Revision-Date: \n"
 | 
			
		||||
"Last-Translator: CodeXP <codexp@gmx.net>\n"
 | 
			
		||||
"Language-Team: \n"
 | 
			
		||||
"Language: tr\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 | 
			
		||||
#: api.lua register.lua
 | 
			
		||||
msgid "Crafting"
 | 
			
		||||
msgstr "Üretim"
 | 
			
		||||
 | 
			
		||||
#: api.lua
 | 
			
		||||
msgid "Mixing"
 | 
			
		||||
msgstr "Karıştırma"
 | 
			
		||||
 | 
			
		||||
#: api.lua
 | 
			
		||||
msgid "Cooking"
 | 
			
		||||
msgstr "Pişirme"
 | 
			
		||||
 | 
			
		||||
#: api.lua
 | 
			
		||||
msgid "Digging"
 | 
			
		||||
msgstr "Kazma"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Bags"
 | 
			
		||||
msgstr "Çantalarım"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Bag @1"
 | 
			
		||||
msgstr "@1. Çanta"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Small Bag"
 | 
			
		||||
msgstr "Küçük Çanta"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Medium Bag"
 | 
			
		||||
msgstr "Çanta"
 | 
			
		||||
 | 
			
		||||
#: bags.lua
 | 
			
		||||
msgid "Large Bag"
 | 
			
		||||
msgstr "Büyük Çanta"
 | 
			
		||||
 | 
			
		||||
#: group.lua
 | 
			
		||||
msgid " and "
 | 
			
		||||
msgstr " ve "
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "First page"
 | 
			
		||||
msgstr "İlk Sayfa"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Back three pages"
 | 
			
		||||
msgstr "3 Sayfa Gerile"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Back one page"
 | 
			
		||||
msgstr "Geri"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Forward one page"
 | 
			
		||||
msgstr "İleri"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Forward three pages"
 | 
			
		||||
msgstr "3 Sayfa İlerile"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Last page"
 | 
			
		||||
msgstr "Son Sayfa"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Search"
 | 
			
		||||
msgstr "Ara"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Reset search and display everything"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "No matching items"
 | 
			
		||||
msgstr "Eşleşme yok"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "No matches."
 | 
			
		||||
msgstr "Eşleşme yok"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Page"
 | 
			
		||||
msgstr "Sayfa"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "%s of %s"
 | 
			
		||||
msgstr "%s dan %s"
 | 
			
		||||
 | 
			
		||||
#: internal.lua
 | 
			
		||||
msgid "Filter"
 | 
			
		||||
msgstr "Süzgeç"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Can use the creative inventory"
 | 
			
		||||
msgstr "Yaratıcı envanteri kullanabilir"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid ""
 | 
			
		||||
"Forces Unified Inventory to be displayed in Full mode if Lite mode is "
 | 
			
		||||
"configured globally"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Crafting Grid"
 | 
			
		||||
msgstr "Üretim tablosu"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Crafting Guide"
 | 
			
		||||
msgstr "Kılavuz"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Set home position"
 | 
			
		||||
msgstr "Set ev pozisyon"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Home position set to: %s"
 | 
			
		||||
msgstr "Yeni eviniz: %s"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "You don't have the \"home\" privilege!"
 | 
			
		||||
msgstr "\"home\" yetkiniz yok!"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Go home"
 | 
			
		||||
msgstr "Eve git"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Set time to day"
 | 
			
		||||
msgstr "Güne zaman ayarla"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Time of day set to 6am"
 | 
			
		||||
msgstr "Saat 06:00 olarak ayarlandı"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "You don't have the settime privilege!"
 | 
			
		||||
msgstr "\"settime\" yetkiniz yok!"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Set time to night"
 | 
			
		||||
msgstr "Geceye zaman ayarla"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Time of day set to 9pm"
 | 
			
		||||
msgstr "Saat 19:00 olarak ayarlandı"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Clear inventory"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid ""
 | 
			
		||||
"This button has been disabled outside of creative mode to prevent accidental "
 | 
			
		||||
"inventory trashing.\n"
 | 
			
		||||
"Use the trash slot instead."
 | 
			
		||||
msgstr "Yaratıcı modu dışında iken bu tuş kullanılamaz."
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Inventory cleared!"
 | 
			
		||||
msgstr "Envanter temizlendi!"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Trash:"
 | 
			
		||||
msgstr "Çöp"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Refill:"
 | 
			
		||||
msgstr "Doldur"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Any item belonging to the %s group"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Any item belonging to the groups %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Recipe %d of %d"
 | 
			
		||||
msgstr "%d dan %d tarifi"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Usage %d of %d"
 | 
			
		||||
msgstr "Kullanım %d/%d"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "No recipes"
 | 
			
		||||
msgstr "Tarifi yok"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "No usages"
 | 
			
		||||
msgstr "Kullanım yok"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Result"
 | 
			
		||||
msgstr "Çıktı"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Ingredient"
 | 
			
		||||
msgstr "Bileşen"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Show next recipe"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Show next usage"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Show previous recipe"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Show previous usage"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "%s (%s)"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "Give me:"
 | 
			
		||||
msgstr "Ver bana:"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid ""
 | 
			
		||||
"This recipe is too\n"
 | 
			
		||||
"large to be displayed."
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
#, fuzzy
 | 
			
		||||
msgid "To craft grid:"
 | 
			
		||||
msgstr "Üretim tablosuna kopyala"
 | 
			
		||||
 | 
			
		||||
#: register.lua
 | 
			
		||||
msgid "All"
 | 
			
		||||
msgstr "Tümü"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "White"
 | 
			
		||||
msgstr "Beyaz"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Yellow"
 | 
			
		||||
msgstr "Sarı"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Red"
 | 
			
		||||
msgstr "Kırmızı"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Green"
 | 
			
		||||
msgstr "Yeşil"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Blue"
 | 
			
		||||
msgstr "Mavi"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Waypoints"
 | 
			
		||||
msgstr "Konum Noktaları"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Select Waypoint #%d"
 | 
			
		||||
msgstr "#%d konum noktası seç"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
#, lua-format
 | 
			
		||||
msgid "Waypoint %d"
 | 
			
		||||
msgstr "%d Konum Noktaları"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Set waypoint to current location"
 | 
			
		||||
msgstr "Bulunduğun noktayı işaretle"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "invisible"
 | 
			
		||||
msgstr "görünmez"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "visible"
 | 
			
		||||
msgstr "görünür"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Make waypoint @1"
 | 
			
		||||
msgstr "Yol noktası @1"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Disable"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Enable"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "@1 display of waypoint coordinates"
 | 
			
		||||
msgstr "Yol noktası koordinatlarının görüntülenmesini @1"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Change color of waypoint display"
 | 
			
		||||
msgstr "Konum Gösterge Rengi"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Edit waypoint name"
 | 
			
		||||
msgstr "Konum Noktasını Düzenle"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Waypoint active"
 | 
			
		||||
msgstr "Konum Etkin"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Waypoint inactive"
 | 
			
		||||
msgstr "Konum Devredışı"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Finish editing"
 | 
			
		||||
msgstr "Düzenleme bitti"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "World position"
 | 
			
		||||
msgstr "Dünya konumu"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "Name"
 | 
			
		||||
msgstr "İsim"
 | 
			
		||||
 | 
			
		||||
#: waypoints.lua
 | 
			
		||||
msgid "HUD text color"
 | 
			
		||||
msgstr "Metin rengi"
 | 
			
		||||
							
								
								
									
										100
									
								
								locale/unified_inventory.de.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,100 @@
 | 
			
		||||
# textdomain: unified_inventory
 | 
			
		||||
Mixing=Mischen
 | 
			
		||||
Cooking=Kochen
 | 
			
		||||
Digging=Graben
 | 
			
		||||
Bags=Taschen
 | 
			
		||||
Bag @1=Tasche @1
 | 
			
		||||
Small Bag=Kleine Tasche
 | 
			
		||||
Medium Bag=Mittelgroße Tasche
 | 
			
		||||
Large Bag=Große Tasche
 | 
			
		||||
All Items=
 | 
			
		||||
Misc. Items=
 | 
			
		||||
Plant Life=
 | 
			
		||||
Building Materials=
 | 
			
		||||
Tools=
 | 
			
		||||
Minerals and Metals=
 | 
			
		||||
Environment and Worldgen=
 | 
			
		||||
Lighting=
 | 
			
		||||
 and = und 
 | 
			
		||||
Scroll categories left=
 | 
			
		||||
Scroll categories right=
 | 
			
		||||
Search=Suchen
 | 
			
		||||
Reset search and display everything=Suche zurücksetzen und alles anzeigen
 | 
			
		||||
First page=Erste Seite
 | 
			
		||||
Back three pages=3 Seiten zurückblättern
 | 
			
		||||
Back one page=1 Seite zurückblättern
 | 
			
		||||
Forward one page=1 Seite vorblättern
 | 
			
		||||
Forward three pages=3 Seiten vorblättern
 | 
			
		||||
Last page=Letzte Seite
 | 
			
		||||
No matching items=Keine passenden Gegenstände
 | 
			
		||||
No matches.=Keine Treffer
 | 
			
		||||
Page=Seite
 | 
			
		||||
@1 of @2=@1 von @2
 | 
			
		||||
Filter=Filter
 | 
			
		||||
Can use the creative inventory=Kann das Kreativinventar nutzen
 | 
			
		||||
Forces Unified Inventory to be displayed in Full mode if Lite mode is configured globally=Zwingt Unified Inventory, im Vollmodus angezeigt zu werden, wenn der Minimalmodus global eingestellt ist
 | 
			
		||||
Crafting Grid=Fertigungsraster
 | 
			
		||||
Crafting Guide=Fertigungsführer
 | 
			
		||||
Set home position=Heimatposition setzen
 | 
			
		||||
Home position set to: @1=Heimatposition nach @1 gesetzt
 | 
			
		||||
You don't have the "home" privilege!=Du hast das „home“-Privileg nicht!
 | 
			
		||||
Go home=Nach Hause gehen
 | 
			
		||||
Set time to day=Zur Tageszeit wechseln
 | 
			
		||||
Time of day set to 6am=Tageszeit auf 6 Uhr gesetzt
 | 
			
		||||
You don't have the settime privilege!=Du hast das „settime“-Privileg nicht!
 | 
			
		||||
Set time to night=Zur Nachtzeit wechseln
 | 
			
		||||
Time of day set to 9pm=Tageszeit auf 21 Uhr gesetzt
 | 
			
		||||
Clear inventory=Inventar leeren
 | 
			
		||||
This button has been disabled outside of creative mode to prevent accidental inventory trashing.@nUse the trash slot instead.=
 | 
			
		||||
Inventory cleared!=Inventar geleert!
 | 
			
		||||
Trash:=Müll:
 | 
			
		||||
Refill:=Nachfüllen:
 | 
			
		||||
Any item belonging to the @1 group=Irgendein Gegenstand, der zur Gruppe @1 gehört
 | 
			
		||||
Any item belonging to the groups @1=Irgendein Gegenstand, der zu den Gruppen @1 gehört
 | 
			
		||||
Recipe @1 of @2=Rezept @1 von @2
 | 
			
		||||
Usage @1 of @2=Verwendung @1 von @2
 | 
			
		||||
No recipes=Keine Rezepte
 | 
			
		||||
No usages=Keine Verwendungen
 | 
			
		||||
Result=Ergebnis
 | 
			
		||||
Ingredient=Zutat
 | 
			
		||||
Show next recipe=Nächstes Rezept zeigen
 | 
			
		||||
Show next usage=Nächste Verwendung zeigen
 | 
			
		||||
Show previous recipe=Vorheriges Rezept zeigen
 | 
			
		||||
Show previous usage=Vorherige Verwendung zeigen
 | 
			
		||||
@1 (@2)=
 | 
			
		||||
Give me:=Gib mir:
 | 
			
		||||
This recipe is too@@large to be displayed.=
 | 
			
		||||
To craft grid:=Ins Fertigungsraster:
 | 
			
		||||
All=Alles
 | 
			
		||||
Crafting=Fertigung
 | 
			
		||||
White=Weiß
 | 
			
		||||
Yellow=Gelb
 | 
			
		||||
Red=Rot
 | 
			
		||||
Green=Grün
 | 
			
		||||
Blue=Blau
 | 
			
		||||
Waypoints=Wegpunkte
 | 
			
		||||
Select Waypoint #@1=Wegpunkt Nr. @1 auswählen
 | 
			
		||||
Waypoint @1=Wegpunkt Nr. @1
 | 
			
		||||
Set waypoint to current location=Setze Wegpunkt zur derzeitigen Position
 | 
			
		||||
Hide waypoint=
 | 
			
		||||
Show waypoint=
 | 
			
		||||
Hide coordinates=
 | 
			
		||||
Show coordinates=
 | 
			
		||||
Change color of waypoint display=Farbe der Darstellung der Wegpunkte ändern
 | 
			
		||||
Edit waypoint name=Name des Wegpunkts ändern
 | 
			
		||||
Waypoint active=Wegpunkt aktiv
 | 
			
		||||
Waypoint inactive=Wegpunkt inaktiv
 | 
			
		||||
Finish editing=Bearbeitung abschließen
 | 
			
		||||
World position=Weltposition
 | 
			
		||||
Name=Name
 | 
			
		||||
HUD text color=HUD-Textfarbe
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
##### not used anymore #####
 | 
			
		||||
 | 
			
		||||
invisible=unsichtbar
 | 
			
		||||
visible=sichtbar
 | 
			
		||||
Make waypoint @1=Wegpunkt @1 machen
 | 
			
		||||
Disable=ausschalten
 | 
			
		||||
Enable=einschalten
 | 
			
		||||
@1 display of waypoint coordinates=Anzeige der Wegpunktkoordinaten @1
 | 
			
		||||
							
								
								
									
										108
									
								
								locale/unified_inventory.es.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,108 @@
 | 
			
		||||
# textdomain: unified_inventory
 | 
			
		||||
# api.lua
 | 
			
		||||
Mixing=Mezclar
 | 
			
		||||
Cooking=Hornear
 | 
			
		||||
Digging=Recoger
 | 
			
		||||
# bags.lua
 | 
			
		||||
Bags=Bolsos
 | 
			
		||||
Bag @1=Bolso @1
 | 
			
		||||
Small Bag=Bolso Pequeño
 | 
			
		||||
Medium Bag=Bolso Mediano
 | 
			
		||||
Large Bag=Bolso Grande
 | 
			
		||||
All Items=
 | 
			
		||||
Misc. Items=
 | 
			
		||||
Plant Life=
 | 
			
		||||
Building Materials=
 | 
			
		||||
Tools=
 | 
			
		||||
Minerals and Metals=
 | 
			
		||||
Environment and Worldgen=
 | 
			
		||||
Lighting=
 | 
			
		||||
# group.lua
 | 
			
		||||
 and = y
 | 
			
		||||
Scroll categories left=
 | 
			
		||||
Scroll categories right=
 | 
			
		||||
Search=Buscar
 | 
			
		||||
Reset search and display everything=Limpiar la busqueda y mostrar todo
 | 
			
		||||
# internal.lua
 | 
			
		||||
First page=Primera página
 | 
			
		||||
Back three pages=Volver tres páginas
 | 
			
		||||
Back one page=Volver una página
 | 
			
		||||
Forward one page=Avanzar una página
 | 
			
		||||
Forward three pages=Avanzar tres páginas
 | 
			
		||||
Last page=Ultima Pagina
 | 
			
		||||
No matching items=No se encontraron elementos
 | 
			
		||||
No matches.=No hay resultados.
 | 
			
		||||
Page=Página
 | 
			
		||||
@1 of @2=@1 de @2
 | 
			
		||||
Filter=Filtro
 | 
			
		||||
# register.lua
 | 
			
		||||
Can use the creative inventory=Puede usar el inventario creativo
 | 
			
		||||
Forces Unified Inventory to be displayed in Full mode if Lite mode is configured globally=Obliga al Inventario Unificado a mostrarse en modo Completo si el modo Simple está configurado globalmente
 | 
			
		||||
Crafting Grid=Cuadricula de Elaboración
 | 
			
		||||
Crafting Guide=Guía de Elaboración
 | 
			
		||||
Set home position=Establecer posición de la casa
 | 
			
		||||
Home position set to: @1=Posición de la casa cambiada a: @1
 | 
			
		||||
You don't have the "home" privilege!=
 | 
			
		||||
Go home=Ir a casa
 | 
			
		||||
Set time to day=Cambiar a dia
 | 
			
		||||
Time of day set to 6am=Hora del día cambiada a 6 AM
 | 
			
		||||
You don't have the settime privilege!=¡No tienes el privilegio "settime"!
 | 
			
		||||
Set time to night=Cambiar a noche
 | 
			
		||||
Time of day set to 9pm=Hora del día cambiada a 9 PM
 | 
			
		||||
Clear inventory=Limpiar inventario
 | 
			
		||||
This button has been disabled outside of creative mode to prevent accidental inventory trashing.@nUse the trash slot instead.=
 | 
			
		||||
Inventory cleared!=¡Inventario limpio!
 | 
			
		||||
Trash:=Basura:
 | 
			
		||||
Refill:=Rellenar:
 | 
			
		||||
Any item belonging to the @1 group=Cualquier elemento que pertenezca al grupo @1
 | 
			
		||||
Any item belonging to the groups @1=Cualquier elemento perteneciente a los grupos @1
 | 
			
		||||
Recipe @1 of @2=Receta @1 de @2
 | 
			
		||||
Usage @1 of @2=Uso @1 de @2
 | 
			
		||||
No recipes=No tiene receta
 | 
			
		||||
No usages=No tiene uso
 | 
			
		||||
Result=Resultado
 | 
			
		||||
Ingredient=Ingrediente
 | 
			
		||||
Show next recipe=Mostrar la siguiente receta
 | 
			
		||||
Show next usage=Mostrar el siguiente uso
 | 
			
		||||
Show previous recipe=Mostrar la receta anterior
 | 
			
		||||
Show previous usage=Mostrar el uso anterior
 | 
			
		||||
@1 (@2)=@1 (@2)
 | 
			
		||||
Give me:=Dame:
 | 
			
		||||
This recipe is too@@large to be displayed.=
 | 
			
		||||
To craft grid:=Construir:
 | 
			
		||||
All=Todos
 | 
			
		||||
Crafting=Elaboración
 | 
			
		||||
White=Blanco
 | 
			
		||||
Yellow=Amarillo
 | 
			
		||||
Red=Rojo
 | 
			
		||||
Green=Verde
 | 
			
		||||
Blue=Azul
 | 
			
		||||
Waypoints=Puntos
 | 
			
		||||
Select Waypoint #@1=Seleccionar Punto #@1
 | 
			
		||||
Waypoint @1=Punto @1
 | 
			
		||||
Set waypoint to current location=Establecer el punto a la ubicación actual
 | 
			
		||||
Hide waypoint=
 | 
			
		||||
Show waypoint=
 | 
			
		||||
Hide coordinates=
 | 
			
		||||
Show coordinates=
 | 
			
		||||
Change color of waypoint display=Cambiar el color del punto
 | 
			
		||||
Edit waypoint name=Editar nombre del punto
 | 
			
		||||
Waypoint active=Punto activo
 | 
			
		||||
Waypoint inactive=Punto inactivo
 | 
			
		||||
Finish editing=Terminar edición
 | 
			
		||||
World position=Posición en el mundo
 | 
			
		||||
Name=Nombre
 | 
			
		||||
HUD text color=Color del texto de la Interfaz
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
##### not used anymore #####
 | 
			
		||||
 | 
			
		||||
Make waypoint @1=Hacer punto @1
 | 
			
		||||
invisible=invisible
 | 
			
		||||
visible=visible
 | 
			
		||||
@1 display of waypoint coordinates=Visualizar coordenadas del punto @1
 | 
			
		||||
Disable=Deshabilitado
 | 
			
		||||
Enable=Habilitado
 | 
			
		||||
You don't have the \"home\" privilege!=¡No tienes el privilegio \"home\"!
 | 
			
		||||
This button has been disabled outside=Este botón ha sido deshabilitado
 | 
			
		||||
This recipe is too@nlarge to be displayed.=Esta receta es demasiado@ngrande para ser mostrada.
 | 
			
		||||
							
								
								
									
										96
									
								
								locale/unified_inventory.fr.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,96 @@
 | 
			
		||||
# textdomain: unified_inventory
 | 
			
		||||
Mixing=
 | 
			
		||||
Cooking=Cuisson
 | 
			
		||||
Digging=Creuser
 | 
			
		||||
Bags=Sacs
 | 
			
		||||
Bag @1=Sac @1
 | 
			
		||||
Small Bag=Petit sac
 | 
			
		||||
Medium Bag=Sac moyen
 | 
			
		||||
Large Bag=Grand sac
 | 
			
		||||
All Items=
 | 
			
		||||
Misc. Items=
 | 
			
		||||
Plant Life=
 | 
			
		||||
Building Materials=
 | 
			
		||||
Tools=
 | 
			
		||||
Minerals and Metals=
 | 
			
		||||
Environment and Worldgen=
 | 
			
		||||
Lighting=
 | 
			
		||||
 and = et 
 | 
			
		||||
Scroll categories left=
 | 
			
		||||
Scroll categories right=
 | 
			
		||||
Search=Rechercher
 | 
			
		||||
Reset search and display everything=
 | 
			
		||||
First page=1ère page
 | 
			
		||||
Back three pages=3 pages en arrière
 | 
			
		||||
Back one page=Page précédente
 | 
			
		||||
Forward one page=Page suivante
 | 
			
		||||
Forward three pages=3 pages en avant
 | 
			
		||||
Last page=Dernière page
 | 
			
		||||
No matching items=Aucun élément correspondant
 | 
			
		||||
No matches.=Aucun match
 | 
			
		||||
Page=Page
 | 
			
		||||
@1 of @2=@1 de @2
 | 
			
		||||
Filter=Filtre
 | 
			
		||||
Can use the creative inventory=Vous pouvez utiliser l'inventaire créatif
 | 
			
		||||
Forces Unified Inventory to be displayed in Full mode if Lite mode is configured globally=
 | 
			
		||||
Crafting Grid=Grille de création
 | 
			
		||||
Crafting Guide=Guide de création
 | 
			
		||||
Set home position=Position dans le monde
 | 
			
		||||
Home position set to: @1=Position de votre base fixée à: @1
 | 
			
		||||
You don't have the "home" privilege!=Vous n'avez pas le privilège "home"!
 | 
			
		||||
Go home=
 | 
			
		||||
Set time to day=
 | 
			
		||||
Time of day set to 6am=Heure fixée à 6h
 | 
			
		||||
You don't have the settime privilege!=Vous n'avez pas le privilège "settime"!
 | 
			
		||||
Set time to night=
 | 
			
		||||
Time of day set to 9pm=Heure fixée à 21h
 | 
			
		||||
Clear inventory=
 | 
			
		||||
This button has been disabled outside of creative mode to prevent accidental inventory trashing.@nUse the trash slot instead.=
 | 
			
		||||
Inventory cleared!=Inventaire vidé !
 | 
			
		||||
Trash:=Poubelle :
 | 
			
		||||
Refill:=Remplir :
 | 
			
		||||
Any item belonging to the @1 group=
 | 
			
		||||
Any item belonging to the groups @1=
 | 
			
		||||
Recipe @1 of @2=Recette @1 de @2
 | 
			
		||||
Usage @1 of @2=
 | 
			
		||||
No recipes=
 | 
			
		||||
No usages=
 | 
			
		||||
Result=Résultat
 | 
			
		||||
Ingredient=
 | 
			
		||||
Show next recipe=
 | 
			
		||||
Show next usage=
 | 
			
		||||
Show previous recipe=
 | 
			
		||||
Show previous usage=
 | 
			
		||||
@1 (@2)=
 | 
			
		||||
Give me:=
 | 
			
		||||
This recipe is too@@large to be displayed.=
 | 
			
		||||
To craft grid:=Sur de création:
 | 
			
		||||
All=Tout
 | 
			
		||||
Crafting=Création
 | 
			
		||||
White=Blanc
 | 
			
		||||
Yellow=Jaune
 | 
			
		||||
Red=Rouge
 | 
			
		||||
Green=Vert
 | 
			
		||||
Blue=Bleu
 | 
			
		||||
Waypoints=Point de passage
 | 
			
		||||
Select Waypoint #@1=Choisir un point de passage #@1
 | 
			
		||||
Waypoint @1=Point de passage @1
 | 
			
		||||
Set waypoint to current location=Marquer un point de passage à la position actuelle
 | 
			
		||||
Hide waypoint=
 | 
			
		||||
Show waypoint=
 | 
			
		||||
Hide coordinates=
 | 
			
		||||
Show coordinates=
 | 
			
		||||
Change color of waypoint display=Changer la couleur du point de passage
 | 
			
		||||
Edit waypoint name=Editer le nom du point de passage
 | 
			
		||||
Waypoint active=Point de passage actif
 | 
			
		||||
Waypoint inactive=Point de passage inactif
 | 
			
		||||
Finish editing=Terminer l'édition
 | 
			
		||||
World position=Position dans le monde
 | 
			
		||||
Name=Nom
 | 
			
		||||
HUD text color=Couleur de texte du HUD
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
##### not used anymore #####
 | 
			
		||||
 | 
			
		||||
Make waypoint @1=Rendre @1 le point de passage
 | 
			
		||||
@1 display of waypoint coordinates=@1 montrer les coordonnées des points de passages
 | 
			
		||||
							
								
								
									
										100
									
								
								locale/unified_inventory.it.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,100 @@
 | 
			
		||||
# textdomain: unified_inventory
 | 
			
		||||
Mixing=Unione
 | 
			
		||||
Cooking=Cottura
 | 
			
		||||
Digging=Scavo
 | 
			
		||||
Bags=Borse
 | 
			
		||||
Bag @1=Borsa @1
 | 
			
		||||
Small Bag=Borsa piccola
 | 
			
		||||
Medium Bag=Borsa media
 | 
			
		||||
Large Bag=Borsa grande
 | 
			
		||||
All Items=
 | 
			
		||||
Misc. Items=
 | 
			
		||||
Plant Life=
 | 
			
		||||
Building Materials=
 | 
			
		||||
Tools=
 | 
			
		||||
Minerals and Metals=
 | 
			
		||||
Environment and Worldgen=
 | 
			
		||||
Lighting=
 | 
			
		||||
 and = e 
 | 
			
		||||
Scroll categories left=
 | 
			
		||||
Scroll categories right=
 | 
			
		||||
Search=Cerca
 | 
			
		||||
Reset search and display everything=Azzera la ricerca e mostra tutto
 | 
			
		||||
First page=Prima pagina
 | 
			
		||||
Back three pages=Indietro di tre pagine
 | 
			
		||||
Back one page=Indietro di una pagina
 | 
			
		||||
Forward one page=Avanti di una pagina
 | 
			
		||||
Forward three pages=Avanti di tre pagine
 | 
			
		||||
Last page=Ultima pagina
 | 
			
		||||
No matching items=Nessun oggetto corrispondente
 | 
			
		||||
No matches.=Nessuna corrispondenza.
 | 
			
		||||
Page=Pagina
 | 
			
		||||
@1 of @2=@1 di @2
 | 
			
		||||
Filter=Filtro
 | 
			
		||||
Can use the creative inventory=Può usare l'inventario creativo
 | 
			
		||||
Forces Unified Inventory to be displayed in Full mode if Lite mode is configured globally=Forza la visualizzazione di Unified Inventory in modalità completa se è configurata globalmente la visualizzazione semplice
 | 
			
		||||
Crafting Grid=Griglia di assemblaggio
 | 
			
		||||
Crafting Guide=Guida di assemblaggio
 | 
			
		||||
Set home position=Imposta la residenza
 | 
			
		||||
Home position set to: @1=Residenza impostata su: @1
 | 
			
		||||
You don't have the "home" privilege!=Non hai il privilegio "home"!
 | 
			
		||||
Go home=Torna a casa
 | 
			
		||||
Set time to day=Imposta l'orario sul giorno
 | 
			
		||||
Time of day set to 6am=Orario impostato sulle 6am
 | 
			
		||||
You don't have the settime privilege!=Non hai il privilegio "time"!
 | 
			
		||||
Set time to night=Imposta l'orario sulla notte
 | 
			
		||||
Time of day set to 9pm=Orario impostato sulle 9am
 | 
			
		||||
Clear inventory=Ripulisci l'inventario
 | 
			
		||||
This button has been disabled outside of creative mode to prevent accidental inventory trashing.@nUse the trash slot instead.=
 | 
			
		||||
Inventory cleared!=Inventario ripulito!
 | 
			
		||||
Trash:=Butta:
 | 
			
		||||
Refill:=Riempi:
 | 
			
		||||
Any item belonging to the @1 group=Qualunque oggetto appartenente al gruppo @1
 | 
			
		||||
Any item belonging to the groups @1=Qualunque oggetto appartenente ai gruppi @1
 | 
			
		||||
Recipe @1 of @2=Ricetta @1 di @2
 | 
			
		||||
Usage @1 of @2=Uso @1 di @2
 | 
			
		||||
No recipes=Nessuna ricetta
 | 
			
		||||
No usages=Nessun utilizzo
 | 
			
		||||
Result=Risultato
 | 
			
		||||
Ingredient=Ingrediente
 | 
			
		||||
Show next recipe=Mostra la prossima ricetta
 | 
			
		||||
Show next usage=Mostra il prossimo utilizzo
 | 
			
		||||
Show previous recipe=Mostra la ricetta precedente
 | 
			
		||||
Show previous usage=Mostra l'utilizzo precedente
 | 
			
		||||
@1 (@2)=
 | 
			
		||||
Give me:=Dammi:
 | 
			
		||||
This recipe is too@@large to be displayed.=
 | 
			
		||||
To craft grid:=Alla griglia di assemblaggio:
 | 
			
		||||
All=Tutto
 | 
			
		||||
Crafting=Assemblaggio
 | 
			
		||||
White=Bianco
 | 
			
		||||
Yellow=Giallo
 | 
			
		||||
Red=Rosso
 | 
			
		||||
Green=Verde
 | 
			
		||||
Blue=Blu
 | 
			
		||||
Waypoints=Tappe
 | 
			
		||||
Select Waypoint #@1=Seleziona tappa n°@1
 | 
			
		||||
Waypoint @1=Tappa @1
 | 
			
		||||
Set waypoint to current location=Imposta tappa alla posizione attuale
 | 
			
		||||
Hide waypoint=
 | 
			
		||||
Show waypoint=
 | 
			
		||||
Hide coordinates=
 | 
			
		||||
Show coordinates=
 | 
			
		||||
Change color of waypoint display=Modifica il colore della visualizzazione della tappa
 | 
			
		||||
Edit waypoint name=Modifica il nome della tappa
 | 
			
		||||
Waypoint active=Tappa attiva
 | 
			
		||||
Waypoint inactive=Tappa inattiva
 | 
			
		||||
Finish editing=Termina la modifica
 | 
			
		||||
World position=Posizione del mondo
 | 
			
		||||
Name=Nome
 | 
			
		||||
HUD text color=Colore del testo del visore
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
##### not used anymore #####
 | 
			
		||||
 | 
			
		||||
invisible=invisibile
 | 
			
		||||
visible=visibile
 | 
			
		||||
Make waypoint @1=Crea tappa @1
 | 
			
		||||
Disable=Disabilita
 | 
			
		||||
Enable=Abilita
 | 
			
		||||
@1 display of waypoint coordinates=@1 la visualizzazione delle coordinate della tappa
 | 
			
		||||
							
								
								
									
										100
									
								
								locale/unified_inventory.ms.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,100 @@
 | 
			
		||||
# textdomain: unified_inventory
 | 
			
		||||
Mixing=Pencampuran
 | 
			
		||||
Cooking=Pemasakan
 | 
			
		||||
Digging=Penggalian
 | 
			
		||||
Bags=Beg
 | 
			
		||||
Bag @1=Beg @1
 | 
			
		||||
Small Bag=Beg Kecil
 | 
			
		||||
Medium Bag=Beg Sederhana
 | 
			
		||||
Large Bag=Beg Besar
 | 
			
		||||
All Items=
 | 
			
		||||
Misc. Items=
 | 
			
		||||
Plant Life=
 | 
			
		||||
Building Materials=
 | 
			
		||||
Tools=
 | 
			
		||||
Minerals and Metals=
 | 
			
		||||
Environment and Worldgen=
 | 
			
		||||
Lighting=
 | 
			
		||||
 and = dan 
 | 
			
		||||
Scroll categories left=
 | 
			
		||||
Scroll categories right=
 | 
			
		||||
Search=Cari
 | 
			
		||||
Reset search and display everything=Set semula carian dan tunjukkan semua benda
 | 
			
		||||
First page=Halaman pertama
 | 
			
		||||
Back three pages=Tiga halaman sebelumnya
 | 
			
		||||
Back one page=Halaman sebelumnya
 | 
			
		||||
Forward one page=Halaman seterusnya
 | 
			
		||||
Forward three pages=Tiga halaman seterusnya
 | 
			
		||||
Last page=Halaman terakhir
 | 
			
		||||
No matching items=Tiada item sepadan
 | 
			
		||||
No matches.=Tiada padanan.
 | 
			
		||||
Page=Halaman
 | 
			
		||||
@1 of @2=@1 drpd @2
 | 
			
		||||
Filter=Tapis
 | 
			
		||||
Can use the creative inventory=Boleh guna inventori kreatif
 | 
			
		||||
Forces Unified Inventory to be displayed in Full mode if Lite mode is configured globally=
 | 
			
		||||
Crafting Grid=Grid Pertukangan
 | 
			
		||||
Crafting Guide=Panduan Pertukangan
 | 
			
		||||
Set home position=Tetapkan kedudukan rumah
 | 
			
		||||
Home position set to: @1=Kedudukan rumah ditetapkan ke: @1
 | 
			
		||||
You don't have the "home" privilege!=Anda tidak ada keistimewaan "home"!
 | 
			
		||||
Go home=Balik rumah
 | 
			
		||||
Set time to day=Tetapkan masa jadi siang
 | 
			
		||||
Time of day set to 6am=Masa ditetapkan ke 6 pagi
 | 
			
		||||
You don't have the settime privilege!=Anda tidak ada keistimewaan settime!
 | 
			
		||||
Set time to night=Tetapkan masa jadi malam
 | 
			
		||||
Time of day set to 9pm=Masa ditetapkan ke 9 malam
 | 
			
		||||
Clear inventory=Kosongkan inventori
 | 
			
		||||
This button has been disabled outside of creative mode to prevent accidental inventory trashing.@nUse the trash slot instead.=
 | 
			
		||||
Inventory cleared!=Inventori dikosongkan!
 | 
			
		||||
Trash:=Buang:
 | 
			
		||||
Refill:=Isi balik:
 | 
			
		||||
Any item belonging to the @1 group=Sebarang item dari kumpulan @1
 | 
			
		||||
Any item belonging to the groups @1=Sebarang item dari kumpulan @1
 | 
			
		||||
Recipe @1 of @2=Resipi @1 drpd @2
 | 
			
		||||
Usage @1 of @2=Kegunaan @1 drpd @2
 | 
			
		||||
No recipes=Tiada resipi
 | 
			
		||||
No usages=Tiada kegunaan
 | 
			
		||||
Result=Hasil
 | 
			
		||||
Ingredient=Bahan
 | 
			
		||||
Show next recipe=Tunjuk resipi seterusnya
 | 
			
		||||
Show next usage=Tunjuk kegunaan seterusnya
 | 
			
		||||
Show previous recipe=Tunjuk resipi sebelumnya
 | 
			
		||||
Show previous usage=Tunjuk kegunaan sebelumnya
 | 
			
		||||
@1 (@2)=@1 (@2)
 | 
			
		||||
Give me:=Beri saya:
 | 
			
		||||
This recipe is too@@large to be displayed.=
 | 
			
		||||
To craft grid:=Ke grid pertukangan:
 | 
			
		||||
All=
 | 
			
		||||
Crafting=Pertukangan
 | 
			
		||||
White=Putih
 | 
			
		||||
Yellow=Kuning
 | 
			
		||||
Red=Merah
 | 
			
		||||
Green=Hijau
 | 
			
		||||
Blue=Biru
 | 
			
		||||
Waypoints=Titik Arah
 | 
			
		||||
Select Waypoint #@1=Pilih Titik Arah #@1
 | 
			
		||||
Waypoint @1=Titik Arah @1
 | 
			
		||||
Set waypoint to current location=Tetapkan titik arah ke lokasi semasa
 | 
			
		||||
Hide waypoint=
 | 
			
		||||
Show waypoint=
 | 
			
		||||
Hide coordinates=
 | 
			
		||||
Show coordinates=
 | 
			
		||||
Change color of waypoint display=Tukar warna paparan titik arah
 | 
			
		||||
Edit waypoint name=Edit nama titik arah
 | 
			
		||||
Waypoint active=Titik arah aktif
 | 
			
		||||
Waypoint inactive=Titik arah tidak aktif
 | 
			
		||||
Finish editing=Selesai edit
 | 
			
		||||
World position=Kedudukan dunia
 | 
			
		||||
Name=Nama
 | 
			
		||||
HUD text color=Warna tulisan HUD
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
##### not used anymore #####
 | 
			
		||||
 | 
			
		||||
invisible=Sembunyikan
 | 
			
		||||
visible=Paparkan
 | 
			
		||||
Make waypoint @1=@1 titik arah
 | 
			
		||||
Disable=Sembunyikan
 | 
			
		||||
Enable=Paparkan
 | 
			
		||||
@1 display of waypoint coordinates=@1 koordinat untuk titik arah
 | 
			
		||||
							
								
								
									
										98
									
								
								locale/unified_inventory.pl.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,98 @@
 | 
			
		||||
# textdomain: unified_inventory
 | 
			
		||||
Mixing=
 | 
			
		||||
Cooking=
 | 
			
		||||
Digging=
 | 
			
		||||
Bags=Plecaki
 | 
			
		||||
Bag @1=Plecak @1
 | 
			
		||||
Small Bag=Maly plecak
 | 
			
		||||
Medium Bag=Sredni plecak
 | 
			
		||||
Large Bag=Duzy plecak
 | 
			
		||||
All Items=
 | 
			
		||||
Misc. Items=
 | 
			
		||||
Plant Life=
 | 
			
		||||
Building Materials=
 | 
			
		||||
Tools=
 | 
			
		||||
Minerals and Metals=
 | 
			
		||||
Environment and Worldgen=
 | 
			
		||||
Lighting=
 | 
			
		||||
 and = i 
 | 
			
		||||
Scroll categories left=
 | 
			
		||||
Scroll categories right=
 | 
			
		||||
Search=Szukaj
 | 
			
		||||
Reset search and display everything=
 | 
			
		||||
First page=Pierwsza strona
 | 
			
		||||
Back three pages=3 strony w tyl
 | 
			
		||||
Back one page=1 strona w tyl
 | 
			
		||||
Forward one page=1 strona do przodu
 | 
			
		||||
Forward three pages=3 strony do przodu
 | 
			
		||||
Last page=Ostatnia strona
 | 
			
		||||
No matching items=Brak pasujacych przedmiotow
 | 
			
		||||
No matches.=Brak wyników
 | 
			
		||||
Page=Strona
 | 
			
		||||
@1 of @2=@1 z @2
 | 
			
		||||
Filter=Filtr
 | 
			
		||||
Can use the creative inventory=
 | 
			
		||||
Forces Unified Inventory to be displayed in Full mode if Lite mode is configured globally=
 | 
			
		||||
Crafting Grid=
 | 
			
		||||
Crafting Guide=
 | 
			
		||||
Set home position=Ustaw pozycję wyjściową
 | 
			
		||||
Home position set to: @1=Pozycja domowa ustawiona na: @1
 | 
			
		||||
You don't have the "home" privilege!=Nie masz uprawnien do zmiany czasu "home"!
 | 
			
		||||
Go home=Idź do domu
 | 
			
		||||
Set time to day=Ustaw czas na dzień
 | 
			
		||||
Time of day set to 6am=Czas ustawiony na 6:00
 | 
			
		||||
You don't have the settime privilege!=Nie masz uprawnien do zmiany czasu "settime"!
 | 
			
		||||
Set time to night=Ustaw czas na noc
 | 
			
		||||
Time of day set to 9pm=Czas ustawiony na 21:00
 | 
			
		||||
Clear inventory=Wyczyść zapasy
 | 
			
		||||
This button has been disabled outside of creative mode to prevent accidental inventory trashing.@nUse the trash slot instead.=
 | 
			
		||||
Inventory cleared!=Zapasy zostały wyczyszczone!
 | 
			
		||||
Trash:=Smietnik:
 | 
			
		||||
Refill:=Uzupelnianie:
 | 
			
		||||
Any item belonging to the @1 group=
 | 
			
		||||
Any item belonging to the groups @1=
 | 
			
		||||
Recipe @1 of @2=Recepta @1 z @2
 | 
			
		||||
Usage @1 of @2=Użycie @1 z @2
 | 
			
		||||
No recipes=Brak recepty
 | 
			
		||||
No usages=Bez użycia
 | 
			
		||||
Result=Wynik
 | 
			
		||||
Ingredient=Składnik
 | 
			
		||||
Show next recipe=
 | 
			
		||||
Show next usage=
 | 
			
		||||
Show previous recipe=
 | 
			
		||||
Show previous usage=
 | 
			
		||||
@1 (@2)=
 | 
			
		||||
Give me:=Daj mi:
 | 
			
		||||
This recipe is too@@large to be displayed.=
 | 
			
		||||
To craft grid:=
 | 
			
		||||
All=Wszystko
 | 
			
		||||
Crafting=
 | 
			
		||||
White=Bialy
 | 
			
		||||
Yellow=Zolty
 | 
			
		||||
Red=Czerwony
 | 
			
		||||
Green=Zielony
 | 
			
		||||
Blue=Niebieski
 | 
			
		||||
Waypoints=Punkty orientacyjne
 | 
			
		||||
Select Waypoint #@1=Wybierz punkt #@1
 | 
			
		||||
Waypoint @1=Punkty orientacyjne @1
 | 
			
		||||
Set waypoint to current location=Ustaw punkt orientacyjny na biezacej pozycji
 | 
			
		||||
Hide waypoint=
 | 
			
		||||
Show waypoint=
 | 
			
		||||
Hide coordinates=
 | 
			
		||||
Show coordinates=
 | 
			
		||||
Change color of waypoint display=Zmien kolor punktu
 | 
			
		||||
Edit waypoint name=Edytuj nazwe punktu
 | 
			
		||||
Waypoint active=Punkt wlaczony
 | 
			
		||||
Waypoint inactive=Punkt wylaczony
 | 
			
		||||
Finish editing=Zakoncz edycje
 | 
			
		||||
World position=Pozycja
 | 
			
		||||
Name=Nazwa
 | 
			
		||||
HUD text color=Kolor tekstu HUD
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
##### not used anymore #####
 | 
			
		||||
 | 
			
		||||
invisible=niewidzialny
 | 
			
		||||
visible=widomy
 | 
			
		||||
Make waypoint @1=Robić punkt @1
 | 
			
		||||
@1 display of waypoint coordinates=@1 koordynatow punktu
 | 
			
		||||
							
								
								
									
										98
									
								
								locale/unified_inventory.pt.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,98 @@
 | 
			
		||||
# textdomain: unified_inventory
 | 
			
		||||
Mixing=Muistura
 | 
			
		||||
Cooking=Cozimento
 | 
			
		||||
Digging=Escavação
 | 
			
		||||
Bags=Bolsas
 | 
			
		||||
Bag @1=Bolsa @1
 | 
			
		||||
Small Bag=Bolsa Pequena
 | 
			
		||||
Medium Bag=Bolsa Média
 | 
			
		||||
Large Bag=Bolsa Grande
 | 
			
		||||
All Items=
 | 
			
		||||
Misc. Items=
 | 
			
		||||
Plant Life=
 | 
			
		||||
Building Materials=
 | 
			
		||||
Tools=
 | 
			
		||||
Minerals and Metals=
 | 
			
		||||
Environment and Worldgen=
 | 
			
		||||
Lighting=
 | 
			
		||||
 and = e 
 | 
			
		||||
Scroll categories left=
 | 
			
		||||
Scroll categories right=
 | 
			
		||||
Search=Pesquisar
 | 
			
		||||
Reset search and display everything=Redefinir pesquisa e exibir tudo
 | 
			
		||||
First page=Primeira Página
 | 
			
		||||
Back three pages=Voltar 3 Páginas
 | 
			
		||||
Back one page=Voltar 1 Página
 | 
			
		||||
Forward one page=Avançar 1 Página
 | 
			
		||||
Forward three pages=Avançar 3 Páginas
 | 
			
		||||
Last page=Ultima Página
 | 
			
		||||
No matching items=Nenhum item correspondente
 | 
			
		||||
No matches.=Sem correspondências
 | 
			
		||||
Page=Página
 | 
			
		||||
@1 of @2=@1 de @2
 | 
			
		||||
Filter=Filtro
 | 
			
		||||
Can use the creative inventory=Pode usar o inventário do criativo
 | 
			
		||||
Forces Unified Inventory to be displayed in Full mode if Lite mode is configured globally=
 | 
			
		||||
Crafting Grid=Grade de Artesanato
 | 
			
		||||
Crafting Guide=Guia de Artesanato
 | 
			
		||||
Set home position=Definir posição de casa
 | 
			
		||||
Home position set to: @1=Posição inicial definida para: @1
 | 
			
		||||
You don't have the "home" privilege!=Você não tem o privilégio de "home"!
 | 
			
		||||
Go home=Transportar para Casa
 | 
			
		||||
Set time to day=Definir turno para dia
 | 
			
		||||
Time of day set to 6am=Hora do dia definida para 06h
 | 
			
		||||
You don't have the settime privilege!=Você não tem o privilégio de "settime"!
 | 
			
		||||
Set time to night=Definir turno para noite
 | 
			
		||||
Time of day set to 9pm=Hora do dia ajustada para 21h
 | 
			
		||||
Clear inventory=Limpar Inventário
 | 
			
		||||
This button has been disabled outside of creative mode to prevent accidental inventory trashing.@nUse the trash slot instead.=
 | 
			
		||||
Inventory cleared!=Inventário Apagado!
 | 
			
		||||
Trash:=Lixo:
 | 
			
		||||
Refill:=Recarga:
 | 
			
		||||
Any item belonging to the @1 group=Qualquer item pertencente ao grupo '@1'.
 | 
			
		||||
Any item belonging to the groups @1=Qualquer item pertencente aos grupos '@1'.
 | 
			
		||||
Recipe @1 of @2=Receita @1 de @2
 | 
			
		||||
Usage @1 of @2=Utilização @1 de @2
 | 
			
		||||
No recipes=Sem Receita
 | 
			
		||||
No usages=Sem Utilização
 | 
			
		||||
Result=Resultado
 | 
			
		||||
Ingredient=Ingrediente
 | 
			
		||||
Show next recipe=Exibir Próxima Receita
 | 
			
		||||
Show next usage=Mostrar Próxima Utilização
 | 
			
		||||
Show previous recipe=Exibir Receita Anterior
 | 
			
		||||
Show previous usage=Exibir Utilização Anterior
 | 
			
		||||
@1 (@2)=
 | 
			
		||||
Give me:=Gerado:
 | 
			
		||||
This recipe is too@@large to be displayed.=
 | 
			
		||||
To craft grid:=Para Grade de Artesanato
 | 
			
		||||
All=MAX
 | 
			
		||||
Crafting=Artesanato
 | 
			
		||||
White=Branco
 | 
			
		||||
Yellow=Amarelo
 | 
			
		||||
Red=Vermelho
 | 
			
		||||
Green=Verde
 | 
			
		||||
Blue=Azul
 | 
			
		||||
Waypoints=Apontador de Direção
 | 
			
		||||
Select Waypoint #@1=Seleção de Apontador de Direção #@1
 | 
			
		||||
Waypoint @1=Apontador de Direção @1
 | 
			
		||||
Set waypoint to current location=Configurar localização atual do Apontador de Direção
 | 
			
		||||
Hide waypoint=
 | 
			
		||||
Show waypoint=
 | 
			
		||||
Hide coordinates=
 | 
			
		||||
Show coordinates=
 | 
			
		||||
Change color of waypoint display=Mudar cor exibida do Apontador de Direção
 | 
			
		||||
Edit waypoint name=Editar Nome de Apontador de Direção
 | 
			
		||||
Waypoint active=Apontador de Direção Ativo
 | 
			
		||||
Waypoint inactive=Apontador de Direção Inativo
 | 
			
		||||
Finish editing=Edição Finalizada
 | 
			
		||||
World position=Posição Mundial
 | 
			
		||||
Name=Nome
 | 
			
		||||
HUD text color=Cor de HUD
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
##### not used anymore #####
 | 
			
		||||
 | 
			
		||||
invisible=invisível
 | 
			
		||||
visible=visível
 | 
			
		||||
Make waypoint @1=Fazer Apontador de Direção @1
 | 
			
		||||
@1 display of waypoint coordinates=@1 exibição de coordenadas de Fazer Apontador de Direção
 | 
			
		||||
							
								
								
									
										100
									
								
								locale/unified_inventory.ru.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,100 @@
 | 
			
		||||
# textdomain: unified_inventory
 | 
			
		||||
Mixing=Мешать
 | 
			
		||||
Cooking=Варить
 | 
			
		||||
Digging=Копать
 | 
			
		||||
Bags=Сумки
 | 
			
		||||
Bag @1=Сумка @1
 | 
			
		||||
Small Bag=Малая сумка
 | 
			
		||||
Medium Bag=Средняя сумка
 | 
			
		||||
Large Bag=Большая сумка
 | 
			
		||||
All Items=
 | 
			
		||||
Misc. Items=
 | 
			
		||||
Plant Life=
 | 
			
		||||
Building Materials=
 | 
			
		||||
Tools=
 | 
			
		||||
Minerals and Metals=
 | 
			
		||||
Environment and Worldgen=
 | 
			
		||||
Lighting=
 | 
			
		||||
 and = и 
 | 
			
		||||
Scroll categories left=
 | 
			
		||||
Scroll categories right=
 | 
			
		||||
Search=Поиск
 | 
			
		||||
Reset search and display everything=Сброс поиска, показать всё
 | 
			
		||||
First page=Первая страница
 | 
			
		||||
Back three pages=3 страницы назад
 | 
			
		||||
Back one page=1 страницу назад
 | 
			
		||||
Forward one page=1 страницу вперёд
 | 
			
		||||
Forward three pages=3 страницы вперёд
 | 
			
		||||
Last page=Последняя страница
 | 
			
		||||
No matching items=Нет подходящих элементов
 | 
			
		||||
No matches.=Ничего не найдено
 | 
			
		||||
Page=Страница
 | 
			
		||||
@1 of @2=@1 из @2
 | 
			
		||||
Filter=Фильтр
 | 
			
		||||
Can use the creative inventory=Можно использовать инвентарь творческого режима
 | 
			
		||||
Forces Unified Inventory to be displayed in Full mode if Lite mode is configured globally=
 | 
			
		||||
Crafting Grid=Решетка крафта
 | 
			
		||||
Crafting Guide=Книга рецептов
 | 
			
		||||
Set home position=Установить позицию дома
 | 
			
		||||
Home position set to: @1=Дом теперь расположен по коодинатам: @1
 | 
			
		||||
You don't have the "home" privilege!=У вас нет привилегии "home"!
 | 
			
		||||
Go home=Отправиться домой
 | 
			
		||||
Set time to day=День
 | 
			
		||||
Time of day set to 6am=Установлено время 6 утра
 | 
			
		||||
You don't have the settime privilege!=Вам не разрешено устанавливать время! (нет привилегии "settime")
 | 
			
		||||
Set time to night=Ночь
 | 
			
		||||
Time of day set to 9pm=Установлено время 9 вечера
 | 
			
		||||
Clear inventory=Очистить инвентарь
 | 
			
		||||
This button has been disabled outside of creative mode to prevent accidental inventory trashing.@nUse the trash slot instead.=
 | 
			
		||||
Inventory cleared!=Инвентарь очищен!
 | 
			
		||||
Trash:=Мусор:
 | 
			
		||||
Refill:=Наполнить:
 | 
			
		||||
Any item belonging to the @1 group=Любой элемент из группы: @1
 | 
			
		||||
Any item belonging to the groups @1=Любой элемент из группы: @1
 | 
			
		||||
Recipe @1 of @2=Рецепт @1 из @2
 | 
			
		||||
Usage @1 of @2=Вариант @1 of @2
 | 
			
		||||
No recipes=Рецептов нет
 | 
			
		||||
No usages=Не используется
 | 
			
		||||
Result=Результат
 | 
			
		||||
Ingredient=Состав
 | 
			
		||||
Show next recipe=Следующий рецепт
 | 
			
		||||
Show next usage=Следующее использование
 | 
			
		||||
Show previous recipe=Прошлый рецепт
 | 
			
		||||
Show previous usage=Прошлая страница
 | 
			
		||||
@1 (@2)=
 | 
			
		||||
Give me:=Дай мне:
 | 
			
		||||
This recipe is too@@large to be displayed.=
 | 
			
		||||
To craft grid:=На решeтку крафта:
 | 
			
		||||
All=Все
 | 
			
		||||
Crafting=Крафт
 | 
			
		||||
White=Белый
 | 
			
		||||
Yellow=Желтый
 | 
			
		||||
Red=Красный
 | 
			
		||||
Green=Зелёный
 | 
			
		||||
Blue=Синий
 | 
			
		||||
Waypoints=Путевые точки
 | 
			
		||||
Select Waypoint #@1=Выбрать путевую точку №@1
 | 
			
		||||
Waypoint @1=Путевая точка @1
 | 
			
		||||
Set waypoint to current location=Установить путевую точку по текущей позиции
 | 
			
		||||
Hide waypoint=
 | 
			
		||||
Show waypoint=
 | 
			
		||||
Hide coordinates=
 | 
			
		||||
Show coordinates=
 | 
			
		||||
Change color of waypoint display=Поменять цвет путевой точки
 | 
			
		||||
Edit waypoint name=Переименовать путевую точку
 | 
			
		||||
Waypoint active=Путевая точка включена
 | 
			
		||||
Waypoint inactive=Путевая точка выключена
 | 
			
		||||
Finish editing=Закончить редакцию
 | 
			
		||||
World position=Позиция мира
 | 
			
		||||
Name=Имя
 | 
			
		||||
HUD text color=Цвет текста HUDа
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
##### not used anymore #####
 | 
			
		||||
 | 
			
		||||
invisible=невидимой
 | 
			
		||||
visible=видимой
 | 
			
		||||
Make waypoint @1=Сделать путевую точку @1
 | 
			
		||||
Disable=Выключить
 | 
			
		||||
Enable=Включить
 | 
			
		||||
@1 display of waypoint coordinates=@1 показ координат путевых точек
 | 
			
		||||
							
								
								
									
										99
									
								
								locale/unified_inventory.tr.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,99 @@
 | 
			
		||||
# textdomain: unified_inventory
 | 
			
		||||
Mixing=Karıştırma
 | 
			
		||||
Cooking=Pişirme
 | 
			
		||||
Digging=Kazma
 | 
			
		||||
Bags=Çantalarım
 | 
			
		||||
Bag @1=@1. Çanta
 | 
			
		||||
Small Bag=Küçük Çanta
 | 
			
		||||
Medium Bag=Çanta
 | 
			
		||||
Large Bag=Büyük Çanta
 | 
			
		||||
All Items=
 | 
			
		||||
Misc. Items=
 | 
			
		||||
Plant Life=
 | 
			
		||||
Building Materials=
 | 
			
		||||
Tools=
 | 
			
		||||
Minerals and Metals=
 | 
			
		||||
Environment and Worldgen=
 | 
			
		||||
Lighting=
 | 
			
		||||
 and = ve 
 | 
			
		||||
Scroll categories left=
 | 
			
		||||
Scroll categories right=
 | 
			
		||||
Search=Ara
 | 
			
		||||
Reset search and display everything=
 | 
			
		||||
First page=İlk Sayfa
 | 
			
		||||
Back three pages=3 Sayfa Gerile
 | 
			
		||||
Back one page=Geri
 | 
			
		||||
Forward one page=İleri
 | 
			
		||||
Forward three pages=3 Sayfa İlerile
 | 
			
		||||
Last page=Son Sayfa
 | 
			
		||||
No matching items=Eşleşme yok
 | 
			
		||||
No matches.=Eşleşme yok
 | 
			
		||||
Page=Sayfa
 | 
			
		||||
@1 of @2=@1 dan @2
 | 
			
		||||
Filter=Süzgeç
 | 
			
		||||
Can use the creative inventory=Yaratıcı envanteri kullanabilir
 | 
			
		||||
Forces Unified Inventory to be displayed in Full mode if Lite mode is configured globally=
 | 
			
		||||
Crafting Grid=Üretim tablosu
 | 
			
		||||
Crafting Guide=Kılavuz
 | 
			
		||||
Set home position=Set ev pozisyon
 | 
			
		||||
Home position set to: @1=Yeni eviniz: @1
 | 
			
		||||
You don't have the "home" privilege!="home" yetkiniz yok!
 | 
			
		||||
Go home=Eve git
 | 
			
		||||
Set time to day=Güne zaman ayarla
 | 
			
		||||
Time of day set to 6am=Saat 06:00 olarak ayarlandı
 | 
			
		||||
You don't have the settime privilege!="settime" yetkiniz yok!
 | 
			
		||||
Set time to night=Geceye zaman ayarla
 | 
			
		||||
Time of day set to 9pm=Saat 19:00 olarak ayarlandı
 | 
			
		||||
Clear inventory=
 | 
			
		||||
This button has been disabled outside of creative mode to prevent accidental inventory trashing.@nUse the trash slot instead.=
 | 
			
		||||
Inventory cleared!=Envanter temizlendi!
 | 
			
		||||
Trash:=Çöp
 | 
			
		||||
Refill:=Doldur
 | 
			
		||||
Any item belonging to the @1 group=
 | 
			
		||||
Any item belonging to the groups @1=
 | 
			
		||||
Recipe @1 of @2=@1 dan @2 tarifi
 | 
			
		||||
Usage @1 of @2=Kullanım @1/@2
 | 
			
		||||
No recipes=Tarifi yok
 | 
			
		||||
No usages=Kullanım yok
 | 
			
		||||
Result=Çıktı
 | 
			
		||||
Ingredient=Bileşen
 | 
			
		||||
Show next recipe=
 | 
			
		||||
Show next usage=
 | 
			
		||||
Show previous recipe=
 | 
			
		||||
Show previous usage=
 | 
			
		||||
@1 (@2)=
 | 
			
		||||
Give me:=Ver bana:
 | 
			
		||||
This recipe is too@@large to be displayed.=
 | 
			
		||||
To craft grid:=Üretim tablosuna kopyala
 | 
			
		||||
All=Tümü
 | 
			
		||||
Crafting=Üretim
 | 
			
		||||
White=Beyaz
 | 
			
		||||
Yellow=Sarı
 | 
			
		||||
Red=Kırmızı
 | 
			
		||||
Green=Yeşil
 | 
			
		||||
Blue=Mavi
 | 
			
		||||
Waypoints=Konum Noktaları
 | 
			
		||||
Select Waypoint #@1=#@1 konum noktası seç
 | 
			
		||||
Waypoint @1=@1 Konum Noktaları
 | 
			
		||||
Set waypoint to current location=Bulunduğun noktayı işaretle
 | 
			
		||||
Hide waypoint=
 | 
			
		||||
Show waypoint=
 | 
			
		||||
Hide coordinates=
 | 
			
		||||
Show coordinates=
 | 
			
		||||
Change color of waypoint display=Konum Gösterge Rengi
 | 
			
		||||
Edit waypoint name=Konum Noktasını Düzenle
 | 
			
		||||
Waypoint active=Konum Etkin
 | 
			
		||||
Waypoint inactive=Konum Devredışı
 | 
			
		||||
Finish editing=Düzenleme bitti
 | 
			
		||||
World position=Dünya konumu
 | 
			
		||||
Name=İsim
 | 
			
		||||
HUD text color=Metin rengi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
##### not used anymore #####
 | 
			
		||||
 | 
			
		||||
msgid ""=Yaratıcı modu dışında iken bu tuş kullanılamaz.
 | 
			
		||||
invisible=görünmez
 | 
			
		||||
visible=görünür
 | 
			
		||||
Make waypoint @1=Yol noktası @1
 | 
			
		||||
@1 display of waypoint coordinates=Yol noktası koordinatlarının görüntülenmesini @1
 | 
			
		||||
							
								
								
									
										98
									
								
								locale/unified_inventory.zh_CN.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,98 @@
 | 
			
		||||
# textdomain: unified_inventory
 | 
			
		||||
Mixing=混合
 | 
			
		||||
Cooking=烹饪
 | 
			
		||||
Digging=挖出
 | 
			
		||||
Bags=背包
 | 
			
		||||
Bag @1=背包@1
 | 
			
		||||
Small Bag=小背包
 | 
			
		||||
Medium Bag=中背包
 | 
			
		||||
Large Bag=大背包
 | 
			
		||||
All Items=
 | 
			
		||||
Misc. Items=
 | 
			
		||||
Plant Life=
 | 
			
		||||
Building Materials=
 | 
			
		||||
Tools=
 | 
			
		||||
Minerals and Metals=
 | 
			
		||||
Environment and Worldgen=
 | 
			
		||||
Lighting=
 | 
			
		||||
 and = 和 
 | 
			
		||||
Scroll categories left=
 | 
			
		||||
Scroll categories right=
 | 
			
		||||
Search=搜索
 | 
			
		||||
Reset search and display everything=重置搜索并显示所有物品
 | 
			
		||||
First page=第一页
 | 
			
		||||
Back three pages=后退三页
 | 
			
		||||
Back one page=后退一页
 | 
			
		||||
Forward one page=前进一页
 | 
			
		||||
Forward three pages=前进三页
 | 
			
		||||
Last page=最后一页
 | 
			
		||||
No matching items=没有匹配物品
 | 
			
		||||
No matches.=没有匹配
 | 
			
		||||
Page=页面
 | 
			
		||||
@1 of @2=第@1页,共@2页
 | 
			
		||||
Filter=过滤器
 | 
			
		||||
Can use the creative inventory=可以使用创造背包
 | 
			
		||||
Forces Unified Inventory to be displayed in Full mode if Lite mode is configured globally=
 | 
			
		||||
Crafting Grid=合成表
 | 
			
		||||
Crafting Guide=合成指南
 | 
			
		||||
Set home position=设置家的位置
 | 
			
		||||
Home position set to: @1=家的位置设置到: @1
 | 
			
		||||
You don't have the "home" privilege!=你没有“home”权限!
 | 
			
		||||
Go home=回家
 | 
			
		||||
Set time to day=设置时间到白天
 | 
			
		||||
Time of day set to 6am=时间设置到早晨6点
 | 
			
		||||
You don't have the settime privilege!=你没有“settime”权限!
 | 
			
		||||
Set time to night=设置时间到晚上
 | 
			
		||||
Time of day set to 9pm=时间设置到晚上9点
 | 
			
		||||
Clear inventory=清空背包
 | 
			
		||||
This button has been disabled outside of creative mode to prevent accidental inventory trashing.@nUse the trash slot instead.=
 | 
			
		||||
Inventory cleared!=清空背包
 | 
			
		||||
Trash:=丢弃:
 | 
			
		||||
Refill:=填满:
 | 
			
		||||
Any item belonging to the @1 group=属于@1组的任何项目
 | 
			
		||||
Any item belonging to the groups @1=属于组@1的任何项目
 | 
			
		||||
Recipe @1 of @2=第@1配方,共@2个
 | 
			
		||||
Usage @1 of @2=第@1用法,共@2个
 | 
			
		||||
No recipes=没有配方
 | 
			
		||||
No usages=没有用法
 | 
			
		||||
Result=结果
 | 
			
		||||
Ingredient=原料
 | 
			
		||||
Show next recipe=
 | 
			
		||||
Show next usage=
 | 
			
		||||
Show previous recipe=
 | 
			
		||||
Show previous usage=
 | 
			
		||||
@1 (@2)=
 | 
			
		||||
Give me:=给予:
 | 
			
		||||
This recipe is too@@large to be displayed.=
 | 
			
		||||
To craft grid:=填充物品到合成表
 | 
			
		||||
All=全部
 | 
			
		||||
Crafting=合成
 | 
			
		||||
White=白
 | 
			
		||||
Yellow=黄
 | 
			
		||||
Red=红
 | 
			
		||||
Green=绿
 | 
			
		||||
Blue=蓝
 | 
			
		||||
Waypoints=航路点
 | 
			
		||||
Select Waypoint #@1=查询航路点 #@1
 | 
			
		||||
Waypoint @1=航路点 @1
 | 
			
		||||
Set waypoint to current location=将航路点设置到当前位置
 | 
			
		||||
Hide waypoint=
 | 
			
		||||
Show waypoint=
 | 
			
		||||
Hide coordinates=
 | 
			
		||||
Show coordinates=
 | 
			
		||||
Change color of waypoint display=改变航路点显示的颜色
 | 
			
		||||
Edit waypoint name=编辑航路点名称
 | 
			
		||||
Waypoint active=航路点已激活
 | 
			
		||||
Waypoint inactive=航路点未激活
 | 
			
		||||
Finish editing=完成编辑
 | 
			
		||||
World position=世界位置
 | 
			
		||||
Name=名称
 | 
			
		||||
HUD text color=HUD文本颜色
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
##### not used anymore #####
 | 
			
		||||
 | 
			
		||||
invisible=不可见的
 | 
			
		||||
visible=可见的
 | 
			
		||||
Make waypoint @1=设置航路点 @1
 | 
			
		||||
@1 display of waypoint coordinates=显示航路点@1坐标
 | 
			
		||||
							
								
								
									
										98
									
								
								locale/unified_inventory.zh_TW.tr
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,98 @@
 | 
			
		||||
# textdomain: unified_inventory
 | 
			
		||||
Mixing=混合
 | 
			
		||||
Cooking=烹飪
 | 
			
		||||
Digging=挖出
 | 
			
		||||
Bags=揹包
 | 
			
		||||
Bag @1=揹包@1
 | 
			
		||||
Small Bag=小揹包
 | 
			
		||||
Medium Bag=中揹包
 | 
			
		||||
Large Bag=大揹包
 | 
			
		||||
All Items=
 | 
			
		||||
Misc. Items=
 | 
			
		||||
Plant Life=
 | 
			
		||||
Building Materials=
 | 
			
		||||
Tools=
 | 
			
		||||
Minerals and Metals=
 | 
			
		||||
Environment and Worldgen=
 | 
			
		||||
Lighting=
 | 
			
		||||
 and = 和 
 | 
			
		||||
Scroll categories left=
 | 
			
		||||
Scroll categories right=
 | 
			
		||||
Search=搜索
 | 
			
		||||
Reset search and display everything=重置搜索並顯示所有物品
 | 
			
		||||
First page=第一頁
 | 
			
		||||
Back three pages=後退三頁
 | 
			
		||||
Back one page=後退一頁
 | 
			
		||||
Forward one page=前進一頁
 | 
			
		||||
Forward three pages=前進三頁
 | 
			
		||||
Last page=最後一頁
 | 
			
		||||
No matching items=沒有匹配物品
 | 
			
		||||
No matches.=沒有匹配
 | 
			
		||||
Page=頁面
 | 
			
		||||
@1 of @2=第@1頁,共@2頁
 | 
			
		||||
Filter=過濾器
 | 
			
		||||
Can use the creative inventory=可以使用創造揹包
 | 
			
		||||
Forces Unified Inventory to be displayed in Full mode if Lite mode is configured globally=
 | 
			
		||||
Crafting Grid=合成表
 | 
			
		||||
Crafting Guide=合成指南
 | 
			
		||||
Set home position=設置家的位置
 | 
			
		||||
Home position set to: @1=家的位置設置到: @1
 | 
			
		||||
You don't have the "home" privilege!=你沒有“home”權限!
 | 
			
		||||
Go home=回家
 | 
			
		||||
Set time to day=設置時間到白天
 | 
			
		||||
Time of day set to 6am=時間設置到早晨6點
 | 
			
		||||
You don't have the settime privilege!=你沒有“settime”權限!
 | 
			
		||||
Set time to night=設置時間到晚上
 | 
			
		||||
Time of day set to 9pm=時間設置到晚上9點
 | 
			
		||||
Clear inventory=清空揹包
 | 
			
		||||
This button has been disabled outside of creative mode to prevent accidental inventory trashing.@nUse the trash slot instead.=
 | 
			
		||||
Inventory cleared!=清空揹包
 | 
			
		||||
Trash:=丟棄:
 | 
			
		||||
Refill:=填滿:
 | 
			
		||||
Any item belonging to the @1 group=屬於@1組的任何項目
 | 
			
		||||
Any item belonging to the groups @1=屬於組@1的任何項目
 | 
			
		||||
Recipe @1 of @2=第@1配方,共@2個
 | 
			
		||||
Usage @1 of @2=第@1用法,共@2個
 | 
			
		||||
No recipes=沒有配方
 | 
			
		||||
No usages=沒有用法
 | 
			
		||||
Result=結果
 | 
			
		||||
Ingredient=原料
 | 
			
		||||
Show next recipe=
 | 
			
		||||
Show next usage=
 | 
			
		||||
Show previous recipe=
 | 
			
		||||
Show previous usage=
 | 
			
		||||
@1 (@2)=
 | 
			
		||||
Give me:=給予:
 | 
			
		||||
This recipe is too@@large to be displayed.=
 | 
			
		||||
To craft grid:=填充物品到合成表
 | 
			
		||||
All=全部
 | 
			
		||||
Crafting=合成
 | 
			
		||||
White=白
 | 
			
		||||
Yellow=黃
 | 
			
		||||
Red=紅
 | 
			
		||||
Green=綠
 | 
			
		||||
Blue=藍
 | 
			
		||||
Waypoints=航路點
 | 
			
		||||
Select Waypoint #@1=查詢航路點 #@1
 | 
			
		||||
Waypoint @1=航路點 @1
 | 
			
		||||
Set waypoint to current location=將航路點設置到當前位置
 | 
			
		||||
Hide waypoint=
 | 
			
		||||
Show waypoint=
 | 
			
		||||
Hide coordinates=
 | 
			
		||||
Show coordinates=
 | 
			
		||||
Change color of waypoint display=改變航路點顯示的顏色
 | 
			
		||||
Edit waypoint name=編輯航路點名稱
 | 
			
		||||
Waypoint active=航路點已激活
 | 
			
		||||
Waypoint inactive=航路點未激活
 | 
			
		||||
Finish editing=完成編輯
 | 
			
		||||
World position=世界位置
 | 
			
		||||
Name=名稱
 | 
			
		||||
HUD text color=HUD文本顏色
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
##### not used anymore #####
 | 
			
		||||
 | 
			
		||||
invisible=不可見的
 | 
			
		||||
visible=可見的
 | 
			
		||||
Make waypoint @1=設置航路點 @1
 | 
			
		||||
@1 display of waypoint coordinates=顯示航路點@1座標
 | 
			
		||||
							
								
								
									
										409
									
								
								match_craft.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,409 @@
 | 
			
		||||
-- match_craft.lua
 | 
			
		||||
-- Find and automatically move inventory items to the crafting grid
 | 
			
		||||
-- according to the recipe.
 | 
			
		||||
 | 
			
		||||
--[[
 | 
			
		||||
Retrieve items from inventory lists and calculate their total count.
 | 
			
		||||
Return a table of "item name" - "total count" pairs.
 | 
			
		||||
 | 
			
		||||
Arguments:
 | 
			
		||||
	inv: minetest inventory reference
 | 
			
		||||
	lists: names of inventory lists to use
 | 
			
		||||
 | 
			
		||||
Example usage:
 | 
			
		||||
	-- Count items in "main" and "craft" lists of player inventory
 | 
			
		||||
	unified_inventory.count_items(player_inv_ref, {"main", "craft"})
 | 
			
		||||
 | 
			
		||||
Example output:
 | 
			
		||||
	{
 | 
			
		||||
		["default:pine_wood"] = 2,
 | 
			
		||||
		["default:acacia_wood"] = 4,
 | 
			
		||||
		["default:chest"] = 3,
 | 
			
		||||
		["default:axe_diamond"] = 2, -- unstackable item are counted too
 | 
			
		||||
		["wool:white"] = 6
 | 
			
		||||
	}
 | 
			
		||||
]]--
 | 
			
		||||
function unified_inventory.count_items(inv, lists)
 | 
			
		||||
	local counts = {}
 | 
			
		||||
 | 
			
		||||
	for i = 1, #lists do
 | 
			
		||||
		local name = lists[i]
 | 
			
		||||
		local size = inv:get_size(name)
 | 
			
		||||
		local list = inv:get_list(name)
 | 
			
		||||
 | 
			
		||||
		for j = 1, size do
 | 
			
		||||
			local stack = list[j]
 | 
			
		||||
 | 
			
		||||
			if not stack:is_empty() then
 | 
			
		||||
				local item = stack:get_name()
 | 
			
		||||
				local count = stack:get_count()
 | 
			
		||||
 | 
			
		||||
				counts[item] = (counts[item] or 0) + count
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	return counts
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
--[[
 | 
			
		||||
Retrieve craft recipe items and their positions in the crafting grid.
 | 
			
		||||
Return a table of "craft item name" - "set of positions" pairs.
 | 
			
		||||
 | 
			
		||||
Note that if craft width is not 3 then positions are recalculated as
 | 
			
		||||
if items were placed on a 3x3 grid. Also note that craft can contain
 | 
			
		||||
groups of items with "group:" prefix.
 | 
			
		||||
 | 
			
		||||
Arguments:
 | 
			
		||||
	craft: minetest craft recipe
 | 
			
		||||
 | 
			
		||||
Example output:
 | 
			
		||||
	-- Bed recipe
 | 
			
		||||
	{
 | 
			
		||||
		["wool:white"] = {[1] = true, [2] = true, [3] = true}
 | 
			
		||||
		["group:wood"] = {[4] = true, [5] = true, [6] = true}
 | 
			
		||||
	}
 | 
			
		||||
--]]
 | 
			
		||||
function unified_inventory.count_craft_positions(craft)
 | 
			
		||||
	local positions = {}
 | 
			
		||||
	local craft_items = craft.items
 | 
			
		||||
	local craft_type = unified_inventory.registered_craft_types[craft.type]
 | 
			
		||||
	                   or unified_inventory.craft_type_defaults(craft.type, {})
 | 
			
		||||
	local display_width = craft_type.dynamic_display_size
 | 
			
		||||
	                      and craft_type.dynamic_display_size(craft).width
 | 
			
		||||
	                      or craft_type.width
 | 
			
		||||
	local craft_width = craft_type.get_shaped_craft_width
 | 
			
		||||
	                    and craft_type.get_shaped_craft_width(craft)
 | 
			
		||||
	                    or display_width
 | 
			
		||||
	local i = 0
 | 
			
		||||
 | 
			
		||||
	for y = 1, 3 do
 | 
			
		||||
		for x = 1, craft_width do
 | 
			
		||||
			i = i + 1
 | 
			
		||||
			local item = craft_items[i]
 | 
			
		||||
 | 
			
		||||
			if item ~= nil then
 | 
			
		||||
				local pos = 3 * (y - 1) + x
 | 
			
		||||
				local set = positions[item]
 | 
			
		||||
 | 
			
		||||
				if set ~= nil then
 | 
			
		||||
					set[pos] = true
 | 
			
		||||
				else
 | 
			
		||||
					positions[item] = {[pos] = true}
 | 
			
		||||
				end
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	return positions
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
--[[
 | 
			
		||||
For every craft item find all matching inventory items.
 | 
			
		||||
- If craft item is a group then find all inventory items that matches
 | 
			
		||||
  this group.
 | 
			
		||||
- If craft item is not a group (regular item) then find only this item.
 | 
			
		||||
 | 
			
		||||
If inventory doesn't contain needed item then found set is empty for
 | 
			
		||||
this item.
 | 
			
		||||
 | 
			
		||||
Return a table of "craft item name" - "set of matching inventory items"
 | 
			
		||||
pairs.
 | 
			
		||||
 | 
			
		||||
Arguments:
 | 
			
		||||
	inv_items: table with items names as keys
 | 
			
		||||
	craft_items: table with items names or groups as keys
 | 
			
		||||
 | 
			
		||||
Example output:
 | 
			
		||||
	{
 | 
			
		||||
		["group:wood"] = {
 | 
			
		||||
			["default:pine_wood"] = true,
 | 
			
		||||
			["default:acacia_wood"] = true
 | 
			
		||||
		},
 | 
			
		||||
		["wool:white"] = {
 | 
			
		||||
			["wool:white"] = true
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
--]]
 | 
			
		||||
function unified_inventory.find_usable_items(inv_items, craft_items)
 | 
			
		||||
	local get_group = minetest.get_item_group
 | 
			
		||||
	local result = {}
 | 
			
		||||
 | 
			
		||||
	for craft_item in pairs(craft_items) do
 | 
			
		||||
		local group = craft_item:match("^group:(.+)")
 | 
			
		||||
		local found = {}
 | 
			
		||||
 | 
			
		||||
		if group ~= nil then
 | 
			
		||||
			for inv_item in pairs(inv_items) do
 | 
			
		||||
				if get_group(inv_item, group) > 0 then
 | 
			
		||||
					found[inv_item] = true
 | 
			
		||||
				end
 | 
			
		||||
			end
 | 
			
		||||
		else
 | 
			
		||||
			if inv_items[craft_item] ~= nil then
 | 
			
		||||
				found[craft_item] = true
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		result[craft_item] = found
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	return result
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
--[[
 | 
			
		||||
Match inventory items with craft grid positions.
 | 
			
		||||
For every position select the matching inventory item with maximum
 | 
			
		||||
(total_count / (times_matched + 1)) value.
 | 
			
		||||
 | 
			
		||||
If for some position matching item cannot be found or match count is 0
 | 
			
		||||
then return nil.
 | 
			
		||||
 | 
			
		||||
Return a table of "matched item name" - "set of craft positions" pairs
 | 
			
		||||
and overall match count.
 | 
			
		||||
 | 
			
		||||
Arguments:
 | 
			
		||||
	inv_counts: table of inventory items counts from "count_items"
 | 
			
		||||
	craft_positions: table of craft positions from "count_craft_positions"
 | 
			
		||||
 | 
			
		||||
Example output:
 | 
			
		||||
	match_table = {
 | 
			
		||||
		["wool:white"] = {[1] = true, [2] = true, [3] = true}
 | 
			
		||||
		["default:acacia_wood"] = {[4] = true, [6] = true}
 | 
			
		||||
		["default:pine_wood"] = {[5] = true}
 | 
			
		||||
	}
 | 
			
		||||
	match_count = 2
 | 
			
		||||
--]]
 | 
			
		||||
function unified_inventory.match_items(inv_counts, craft_positions)
 | 
			
		||||
	local usable = unified_inventory.find_usable_items(inv_counts, craft_positions)
 | 
			
		||||
	local match_table = {}
 | 
			
		||||
	local match_count
 | 
			
		||||
	local matches = {}
 | 
			
		||||
 | 
			
		||||
	for craft_item, pos_set in pairs(craft_positions) do
 | 
			
		||||
		local use_set = usable[craft_item]
 | 
			
		||||
 | 
			
		||||
		for pos in pairs(pos_set) do
 | 
			
		||||
			local pos_item
 | 
			
		||||
			local pos_count
 | 
			
		||||
 | 
			
		||||
			for use_item in pairs(use_set) do
 | 
			
		||||
				local count = inv_counts[use_item]
 | 
			
		||||
				local times_matched = matches[use_item] or 0
 | 
			
		||||
				local new_pos_count = math.floor(count / (times_matched + 1))
 | 
			
		||||
 | 
			
		||||
				if pos_count == nil or pos_count < new_pos_count then
 | 
			
		||||
					pos_item = use_item
 | 
			
		||||
					pos_count = new_pos_count
 | 
			
		||||
				end
 | 
			
		||||
			end
 | 
			
		||||
 | 
			
		||||
			if pos_item == nil or pos_count == 0 then
 | 
			
		||||
				return nil
 | 
			
		||||
			end
 | 
			
		||||
 | 
			
		||||
			local set = match_table[pos_item]
 | 
			
		||||
 | 
			
		||||
			if set ~= nil then
 | 
			
		||||
				set[pos] = true
 | 
			
		||||
			else
 | 
			
		||||
				match_table[pos_item] = {[pos] = true}
 | 
			
		||||
			end
 | 
			
		||||
 | 
			
		||||
			matches[pos_item] = (matches[pos_item] or 0) + 1
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	for match_item, times_matched in pairs(matches) do
 | 
			
		||||
		local count = inv_counts[match_item]
 | 
			
		||||
		local item_count = math.floor(count / times_matched)
 | 
			
		||||
 | 
			
		||||
		if match_count == nil or item_count < match_count then
 | 
			
		||||
			match_count = item_count
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	return match_table, match_count
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
--[[
 | 
			
		||||
Remove item from inventory lists.
 | 
			
		||||
Return stack of actually removed items.
 | 
			
		||||
 | 
			
		||||
This function replicates the inv:remove_item function but can accept
 | 
			
		||||
multiple lists.
 | 
			
		||||
 | 
			
		||||
Arguments:
 | 
			
		||||
	inv: minetest inventory reference
 | 
			
		||||
	lists: names of inventory lists
 | 
			
		||||
	stack: minetest item stack
 | 
			
		||||
--]]
 | 
			
		||||
function unified_inventory.remove_item(inv, lists, stack)
 | 
			
		||||
	local removed = ItemStack(nil)
 | 
			
		||||
	local leftover = ItemStack(stack)
 | 
			
		||||
 | 
			
		||||
	for i = 1, #lists do
 | 
			
		||||
		if leftover:is_empty() then
 | 
			
		||||
			break
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		local cur_removed = inv:remove_item(lists[i], leftover)
 | 
			
		||||
		removed:add_item(cur_removed)
 | 
			
		||||
		leftover:take_item(cur_removed:get_count())
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	return removed
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
--[[
 | 
			
		||||
Add item to inventory lists.
 | 
			
		||||
Return leftover stack.
 | 
			
		||||
 | 
			
		||||
This function replicates the inv:add_item function but can accept
 | 
			
		||||
multiple lists.
 | 
			
		||||
 | 
			
		||||
Arguments:
 | 
			
		||||
	inv: minetest inventory reference
 | 
			
		||||
	lists: names of inventory lists
 | 
			
		||||
	stack: minetest item stack
 | 
			
		||||
--]]
 | 
			
		||||
function unified_inventory.add_item(inv, lists, stack)
 | 
			
		||||
	local leftover = ItemStack(stack)
 | 
			
		||||
 | 
			
		||||
	for i = 1, #lists do
 | 
			
		||||
		if leftover:is_empty() then
 | 
			
		||||
			break
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		leftover = inv:add_item(lists[i], leftover)
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	return leftover
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
--[[
 | 
			
		||||
Move items from source list to destination list if possible.
 | 
			
		||||
Skip positions specified in exclude set.
 | 
			
		||||
 | 
			
		||||
Arguments:
 | 
			
		||||
	inv: minetest inventory reference
 | 
			
		||||
	src_list: name of source list
 | 
			
		||||
	dst_list: name of destination list
 | 
			
		||||
	exclude: set of positions to skip
 | 
			
		||||
--]]
 | 
			
		||||
function unified_inventory.swap_items(inv, src_list, dst_list, exclude)
 | 
			
		||||
	local size = inv:get_size(src_list)
 | 
			
		||||
	local empty = ItemStack(nil)
 | 
			
		||||
 | 
			
		||||
	for i = 1, size do
 | 
			
		||||
		if exclude == nil or exclude[i] == nil then
 | 
			
		||||
			local stack = inv:get_stack(src_list, i)
 | 
			
		||||
 | 
			
		||||
			if not stack:is_empty() then
 | 
			
		||||
				inv:set_stack(src_list, i, empty)
 | 
			
		||||
				local leftover = inv:add_item(dst_list, stack)
 | 
			
		||||
 | 
			
		||||
				if not leftover:is_empty() then
 | 
			
		||||
					inv:set_stack(src_list, i, leftover)
 | 
			
		||||
				end
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
--[[
 | 
			
		||||
Move matched items to the destination list.
 | 
			
		||||
 | 
			
		||||
If destination list position is already occupied with some other item
 | 
			
		||||
then function tries to (in that order):
 | 
			
		||||
1. Move it to the source list
 | 
			
		||||
2. Move it to some other unused position in destination list itself
 | 
			
		||||
3. Drop it to the ground if nothing else is possible.
 | 
			
		||||
 | 
			
		||||
Arguments:
 | 
			
		||||
	player: minetest player object
 | 
			
		||||
	src_list: name of source list
 | 
			
		||||
	dst_list: name of destination list
 | 
			
		||||
	match_table: table of matched items
 | 
			
		||||
	amount: amount of items per every position
 | 
			
		||||
--]]
 | 
			
		||||
function unified_inventory.move_match(player, src_list, dst_list, match_table, amount)
 | 
			
		||||
	local inv = player:get_inventory()
 | 
			
		||||
	local item_drop = minetest.item_drop
 | 
			
		||||
	local src_dst_list = {src_list, dst_list}
 | 
			
		||||
	local dst_src_list = {dst_list, src_list}
 | 
			
		||||
 | 
			
		||||
	local needed = {}
 | 
			
		||||
	local moved = {}
 | 
			
		||||
 | 
			
		||||
	-- Remove stacks needed for craft
 | 
			
		||||
	for item, pos_set in pairs(match_table) do
 | 
			
		||||
		local stack = ItemStack(item)
 | 
			
		||||
		local stack_max = stack:get_stack_max()
 | 
			
		||||
		local bounded_amount = math.min(stack_max, amount)
 | 
			
		||||
		stack:set_count(bounded_amount)
 | 
			
		||||
 | 
			
		||||
		for pos in pairs(pos_set) do
 | 
			
		||||
			needed[pos] = unified_inventory.remove_item(inv, dst_src_list, stack)
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	-- Add already removed stacks
 | 
			
		||||
	for pos, stack in pairs(needed) do
 | 
			
		||||
		local occupied = inv:get_stack(dst_list, pos)
 | 
			
		||||
		inv:set_stack(dst_list, pos, stack)
 | 
			
		||||
 | 
			
		||||
		if not occupied:is_empty() then
 | 
			
		||||
			local leftover = unified_inventory.add_item(inv, src_dst_list, occupied)
 | 
			
		||||
 | 
			
		||||
			if not leftover:is_empty() then
 | 
			
		||||
				inv:set_stack(dst_list, pos, leftover)
 | 
			
		||||
				local oversize = unified_inventory.add_item(inv, src_dst_list, stack)
 | 
			
		||||
 | 
			
		||||
				if not oversize:is_empty() then
 | 
			
		||||
					item_drop(oversize, player, player:get_pos())
 | 
			
		||||
				end
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		moved[pos] = true
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	-- Swap items from unused positions to src (moved positions excluded)
 | 
			
		||||
	unified_inventory.swap_items(inv, dst_list, src_list, moved)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
--[[
 | 
			
		||||
Find craft match and move matched items to the destination list.
 | 
			
		||||
 | 
			
		||||
If match cannot be found or match count is smaller than the desired
 | 
			
		||||
amount then do nothing.
 | 
			
		||||
 | 
			
		||||
If amount passed is -1 then amount is defined by match count itself.
 | 
			
		||||
This is used to indicate "craft All" case.
 | 
			
		||||
 | 
			
		||||
Arguments:
 | 
			
		||||
	player: minetest player object
 | 
			
		||||
	src_list: name of source list
 | 
			
		||||
	dst_list: name of destination list
 | 
			
		||||
	craft: minetest craft recipe
 | 
			
		||||
	amount: desired amount of output items
 | 
			
		||||
--]]
 | 
			
		||||
function unified_inventory.craftguide_match_craft(player, src_list, dst_list, craft, amount)
 | 
			
		||||
	local inv = player:get_inventory()
 | 
			
		||||
	local src_dst_list = {src_list, dst_list}
 | 
			
		||||
 | 
			
		||||
	local counts = unified_inventory.count_items(inv, src_dst_list)
 | 
			
		||||
	local positions = unified_inventory.count_craft_positions(craft)
 | 
			
		||||
	local match_table, match_count = unified_inventory.match_items(counts, positions)
 | 
			
		||||
 | 
			
		||||
	if match_table == nil or match_count < amount then
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	if amount == -1 then
 | 
			
		||||
		amount = match_count
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	unified_inventory.move_match(player, src_list, dst_list, match_table, amount)
 | 
			
		||||
end
 | 
			
		||||
							
								
								
									
										7
									
								
								mod.conf
									
									
									
									
									
								
							
							
						
						@@ -1 +1,8 @@
 | 
			
		||||
name = unified_inventory
 | 
			
		||||
 | 
			
		||||
optional_depends = default, creative, sfinv, datastorage, farming
 | 
			
		||||
description = """
 | 
			
		||||
Unified Inventory replaces the default survival and creative inventory.
 | 
			
		||||
It adds a nicer interface and a number of features, such as a crafting guide.
 | 
			
		||||
"""
 | 
			
		||||
min_minetest_version = 5.4.0
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										357
									
								
								register.lua
									
									
									
									
									
								
							
							
						
						@@ -1,5 +1,7 @@
 | 
			
		||||
local S = unified_inventory.gettext
 | 
			
		||||
local S = minetest.get_translator("unified_inventory")
 | 
			
		||||
local NS = function(s) return s end
 | 
			
		||||
local F = minetest.formspec_escape
 | 
			
		||||
local ui = unified_inventory
 | 
			
		||||
 | 
			
		||||
minetest.register_privilege("creative", {
 | 
			
		||||
	description = S("Can use the creative inventory"),
 | 
			
		||||
@@ -11,10 +13,9 @@ minetest.register_privilege("ui_full", {
 | 
			
		||||
	give_to_singleplayer = false,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
local trash = minetest.create_detached_inventory("trash", {
 | 
			
		||||
	--allow_put = function(inv, listname, index, stack, player)
 | 
			
		||||
	--	if unified_inventory.is_creative(player:get_player_name()) then
 | 
			
		||||
	--	if ui.is_creative(player:get_player_name()) then
 | 
			
		||||
	--		return stack:get_count()
 | 
			
		||||
	--	else
 | 
			
		||||
	--		return 0
 | 
			
		||||
@@ -28,19 +29,19 @@ local trash = minetest.create_detached_inventory("trash", {
 | 
			
		||||
})
 | 
			
		||||
trash:set_size("main", 1)
 | 
			
		||||
 | 
			
		||||
unified_inventory.register_button("craft", {
 | 
			
		||||
ui.register_button("craft", {
 | 
			
		||||
	type = "image",
 | 
			
		||||
	image = "ui_craft_icon.png",
 | 
			
		||||
	tooltip = S("Crafting Grid")
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
unified_inventory.register_button("craftguide", {
 | 
			
		||||
ui.register_button("craftguide", {
 | 
			
		||||
	type = "image",
 | 
			
		||||
	image = "ui_craftguide_icon.png",
 | 
			
		||||
	tooltip = S("Crafting Guide")
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
unified_inventory.register_button("misc_set_day", {
 | 
			
		||||
ui.register_button("misc_set_day", {
 | 
			
		||||
	type = "image",
 | 
			
		||||
	image = "ui_sun_icon.png",
 | 
			
		||||
	tooltip = S("Set time to day"),
 | 
			
		||||
@@ -56,7 +57,7 @@ unified_inventory.register_button("misc_set_day", {
 | 
			
		||||
		else
 | 
			
		||||
			minetest.chat_send_player(player_name,
 | 
			
		||||
				S("You don't have the settime privilege!"))
 | 
			
		||||
			unified_inventory.set_inventory_formspec(player, unified_inventory.current_page[player_name])
 | 
			
		||||
			ui.set_inventory_formspec(player, ui.current_page[player_name])
 | 
			
		||||
		end
 | 
			
		||||
	end,
 | 
			
		||||
	condition = function(player)
 | 
			
		||||
@@ -64,7 +65,7 @@ unified_inventory.register_button("misc_set_day", {
 | 
			
		||||
	end,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
unified_inventory.register_button("misc_set_night", {
 | 
			
		||||
ui.register_button("misc_set_night", {
 | 
			
		||||
	type = "image",
 | 
			
		||||
	image = "ui_moon_icon.png",
 | 
			
		||||
	tooltip = S("Set time to night"),
 | 
			
		||||
@@ -80,7 +81,7 @@ unified_inventory.register_button("misc_set_night", {
 | 
			
		||||
		else
 | 
			
		||||
			minetest.chat_send_player(player_name,
 | 
			
		||||
					S("You don't have the settime privilege!"))
 | 
			
		||||
			unified_inventory.set_inventory_formspec(player, unified_inventory.current_page[player_name])
 | 
			
		||||
			ui.set_inventory_formspec(player, ui.current_page[player_name])
 | 
			
		||||
		end
 | 
			
		||||
	end,
 | 
			
		||||
	condition = function(player)
 | 
			
		||||
@@ -88,19 +89,19 @@ unified_inventory.register_button("misc_set_night", {
 | 
			
		||||
	end,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
unified_inventory.register_button("clear_inv", {
 | 
			
		||||
ui.register_button("clear_inv", {
 | 
			
		||||
	type = "image",
 | 
			
		||||
	image = "ui_trash_icon.png",
 | 
			
		||||
	tooltip = S("Clear inventory"),
 | 
			
		||||
	action = function(player)
 | 
			
		||||
		local player_name = player:get_player_name()
 | 
			
		||||
		if not unified_inventory.is_creative(player_name) then
 | 
			
		||||
		if not ui.is_creative(player_name) then
 | 
			
		||||
			minetest.chat_send_player(player_name,
 | 
			
		||||
					S("This button has been disabled outside"
 | 
			
		||||
					.." of creative mode to prevent"
 | 
			
		||||
					.." accidental inventory trashing."
 | 
			
		||||
					.."\nUse the trash slot instead."))
 | 
			
		||||
			unified_inventory.set_inventory_formspec(player, unified_inventory.current_page[player_name])
 | 
			
		||||
			ui.set_inventory_formspec(player, ui.current_page[player_name])
 | 
			
		||||
			return
 | 
			
		||||
		end
 | 
			
		||||
		player:get_inventory():set_list("main", {})
 | 
			
		||||
@@ -109,35 +110,42 @@ unified_inventory.register_button("clear_inv", {
 | 
			
		||||
				{to_player=player_name, gain = 1.0})
 | 
			
		||||
	end,
 | 
			
		||||
	condition = function(player)
 | 
			
		||||
		return unified_inventory.is_creative(player:get_player_name())
 | 
			
		||||
		return ui.is_creative(player:get_player_name())
 | 
			
		||||
	end,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
unified_inventory.register_page("craft", {
 | 
			
		||||
ui.register_page("craft", {
 | 
			
		||||
	get_formspec = function(player, perplayer_formspec)
 | 
			
		||||
 | 
			
		||||
		local formspecy = perplayer_formspec.formspec_y
 | 
			
		||||
		local formheadery =  perplayer_formspec.form_header_y
 | 
			
		||||
		local formheaderx = perplayer_formspec.form_header_x
 | 
			
		||||
		local formheadery = perplayer_formspec.form_header_y
 | 
			
		||||
		local craftx = perplayer_formspec.craft_x
 | 
			
		||||
		local crafty = perplayer_formspec.craft_y
 | 
			
		||||
 | 
			
		||||
		local player_name = player:get_player_name()
 | 
			
		||||
		local formspec = "background[2,"..formspecy..";6,3;ui_crafting_form.png]"
 | 
			
		||||
		formspec = formspec.."background[0,"..(formspecy + 3.5)..";8,4;ui_main_inventory.png]"
 | 
			
		||||
		formspec = formspec.."label[0,"..formheadery..";" ..F(S("Crafting")).."]"
 | 
			
		||||
		formspec = formspec.."listcolors[#00000000;#00000000]"
 | 
			
		||||
		formspec = formspec.."list[current_player;craftpreview;6,"..formspecy..";1,1;]"
 | 
			
		||||
		formspec = formspec.."list[current_player;craft;2,"..formspecy..";3,3;]"
 | 
			
		||||
		if unified_inventory.trash_enabled or unified_inventory.is_creative(player_name) or minetest.get_player_privs(player_name).give then
 | 
			
		||||
			formspec = formspec.."label[7,"..(formspecy + 1.5)..";" .. F(S("Trash:")) .. "]"
 | 
			
		||||
			formspec = formspec.."background[7,"..(formspecy + 2)..";1,1;ui_single_slot.png]"
 | 
			
		||||
			formspec = formspec.."list[detached:trash;main;7,"..(formspecy + 2)..";1,1;]"
 | 
			
		||||
		local formspec = {
 | 
			
		||||
			perplayer_formspec.standard_inv_bg,
 | 
			
		||||
			perplayer_formspec.craft_grid,
 | 
			
		||||
			"label["..formheaderx..","..formheadery..";" ..F(S("Crafting")).."]",
 | 
			
		||||
			"listcolors[#00000000;#00000000]",
 | 
			
		||||
			"listring[current_name;craft]",
 | 
			
		||||
			"listring[current_player;main]"
 | 
			
		||||
		}
 | 
			
		||||
		local n=#formspec+1
 | 
			
		||||
 | 
			
		||||
		if ui.trash_enabled or ui.is_creative(player_name) or minetest.get_player_privs(player_name).give then
 | 
			
		||||
			formspec[n] = string.format("label[%f,%f;%s]", craftx + 6.45, crafty + 2.4, F(S("Trash:")))
 | 
			
		||||
			formspec[n+1] = ui.make_trash_slot(craftx + 6.25, crafty + 2.5)
 | 
			
		||||
			n=n + 2
 | 
			
		||||
		end
 | 
			
		||||
		formspec = formspec.."listring[current_name;craft]"
 | 
			
		||||
		formspec = formspec.."listring[current_player;main]"
 | 
			
		||||
		if unified_inventory.is_creative(player_name) then
 | 
			
		||||
			formspec = formspec.."label[0,"..(formspecy + 1.5)..";" .. F(S("Refill:")) .. "]"
 | 
			
		||||
			formspec = formspec.."list[detached:"..F(player_name).."refill;main;0,"..(formspecy +2)..";1,1;]"
 | 
			
		||||
 | 
			
		||||
		if ui.is_creative(player_name) then
 | 
			
		||||
			formspec[n] = ui.single_slot(craftx - 2.5, crafty + 2.5)
 | 
			
		||||
			formspec[n+1] = string.format("label[%f,%f;%s]", craftx - 2.3, crafty + 2.4,F(S("Refill:")))
 | 
			
		||||
			formspec[n+2] = string.format("list[detached:%srefill;main;%f,%f;1,1;]",
 | 
			
		||||
				F(player_name), craftx - 2.5 + ui.list_img_offset, crafty + 2.5 + ui.list_img_offset)
 | 
			
		||||
		end
 | 
			
		||||
		return {formspec=formspec}
 | 
			
		||||
		return {formspec=table.concat(formspec)}
 | 
			
		||||
	end,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
@@ -156,23 +164,23 @@ local function stack_image_button(x, y, w, h, buttonname_prefix, item)
 | 
			
		||||
	local selectitem = name
 | 
			
		||||
	if name:sub(1, 6) == "group:" then
 | 
			
		||||
		local group_name = name:sub(7)
 | 
			
		||||
		local group_item = unified_inventory.get_group_item(group_name)
 | 
			
		||||
		local group_item = ui.get_group_item(group_name)
 | 
			
		||||
		show_is_group = not group_item.sole
 | 
			
		||||
		displayitem = group_item.item or "unknown"
 | 
			
		||||
		selectitem = group_item.sole and displayitem or name
 | 
			
		||||
	end
 | 
			
		||||
	local label = show_is_group and "G" or ""
 | 
			
		||||
	local buttonname = F(buttonname_prefix..unified_inventory.mangle_for_formspec(selectitem))
 | 
			
		||||
	local buttonname = F(buttonname_prefix..ui.mangle_for_formspec(selectitem))
 | 
			
		||||
	local button = string.format("item_image_button[%f,%f;%f,%f;%s;%s;%s]",
 | 
			
		||||
			x, y, w, h,
 | 
			
		||||
			F(displayitem), buttonname, label)
 | 
			
		||||
	if show_is_group then
 | 
			
		||||
		local groupstring, andcount = unified_inventory.extract_groupnames(name)
 | 
			
		||||
		local groupstring, andcount = ui.extract_groupnames(name)
 | 
			
		||||
		local grouptip
 | 
			
		||||
		if andcount == 1 then
 | 
			
		||||
			grouptip = string.format(S("Any item belonging to the %s group"), groupstring)
 | 
			
		||||
			grouptip = S("Any item belonging to the @1 group", groupstring)
 | 
			
		||||
		elseif andcount > 1 then
 | 
			
		||||
			grouptip = string.format(S("Any item belonging to the groups %s"), groupstring)
 | 
			
		||||
			grouptip = S("Any item belonging to the groups @1", groupstring)
 | 
			
		||||
		end
 | 
			
		||||
		grouptip = F(grouptip)
 | 
			
		||||
		if andcount >= 1 then
 | 
			
		||||
@@ -183,8 +191,8 @@ local function stack_image_button(x, y, w, h, buttonname_prefix, item)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
local recipe_text = {
 | 
			
		||||
	recipe = S("Recipe %d of %d"),
 | 
			
		||||
	usage = S("Usage %d of %d"),
 | 
			
		||||
	recipe = NS("Recipe @1 of @2"),
 | 
			
		||||
	usage = NS("Usage @1 of @2"),
 | 
			
		||||
}
 | 
			
		||||
local no_recipe_text = {
 | 
			
		||||
	recipe = S("No recipes"),
 | 
			
		||||
@@ -207,80 +215,96 @@ local other_dir = {
 | 
			
		||||
	usage = "recipe",
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
unified_inventory.register_page("craftguide", {
 | 
			
		||||
ui.register_page("craftguide", {
 | 
			
		||||
	get_formspec = function(player, perplayer_formspec)
 | 
			
		||||
 | 
			
		||||
		local formspecy =    perplayer_formspec.formspec_y
 | 
			
		||||
		local formheadery =  perplayer_formspec.form_header_y
 | 
			
		||||
		local craftresultx = perplayer_formspec.craft_result_x
 | 
			
		||||
		local craftresulty = perplayer_formspec.craft_result_y
 | 
			
		||||
		local craftguidex =       perplayer_formspec.craft_guide_x
 | 
			
		||||
		local craftguidey =       perplayer_formspec.craft_guide_y
 | 
			
		||||
		local craftguidearrowx =  perplayer_formspec.craft_guide_arrow_x
 | 
			
		||||
		local craftguideresultx = perplayer_formspec.craft_guide_result_x
 | 
			
		||||
		local formheaderx =       perplayer_formspec.form_header_x
 | 
			
		||||
		local formheadery =       perplayer_formspec.form_header_y
 | 
			
		||||
		local give_x =            perplayer_formspec.give_btn_x
 | 
			
		||||
 | 
			
		||||
		local player_name = player:get_player_name()
 | 
			
		||||
		local player_privs = minetest.get_player_privs(player_name)
 | 
			
		||||
		local fs = {
 | 
			
		||||
			"background[0,"..(formspecy + 3.5)..";8,4;ui_main_inventory.png]",
 | 
			
		||||
			"label[0,"..formheadery..";" .. F(S("Crafting Guide")) .. "]",
 | 
			
		||||
 | 
			
		||||
		local formspec = {
 | 
			
		||||
			perplayer_formspec.standard_inv_bg,
 | 
			
		||||
			"label["..formheaderx..","..formheadery..";" .. F(S("Crafting Guide")) .. "]",
 | 
			
		||||
			"listcolors[#00000000;#00000000]"
 | 
			
		||||
		}
 | 
			
		||||
		local item_name = unified_inventory.current_item[player_name]
 | 
			
		||||
 | 
			
		||||
		local item_name = ui.current_item[player_name]
 | 
			
		||||
		if not item_name then
 | 
			
		||||
			return { formspec = table.concat(fs) }
 | 
			
		||||
			return { formspec = table.concat(formspec) }
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		local n = 4
 | 
			
		||||
 | 
			
		||||
		local item_name_shown
 | 
			
		||||
		if minetest.registered_items[item_name]
 | 
			
		||||
				and minetest.registered_items[item_name].description then
 | 
			
		||||
			item_name_shown = string.format(S("%s (%s)"),
 | 
			
		||||
			item_name_shown = S("@1 (@2)",
 | 
			
		||||
				minetest.registered_items[item_name].description, item_name)
 | 
			
		||||
		else
 | 
			
		||||
			item_name_shown = item_name
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		local dir = unified_inventory.current_craft_direction[player_name]
 | 
			
		||||
		local dir = ui.current_craft_direction[player_name]
 | 
			
		||||
		local rdir = dir == "recipe" and "usage" or "recipe"
 | 
			
		||||
 | 
			
		||||
		local crafts = unified_inventory.crafts_for[dir][item_name]
 | 
			
		||||
		local alternate = unified_inventory.alternate[player_name]
 | 
			
		||||
		local crafts = ui.crafts_for[dir][item_name]
 | 
			
		||||
		local alternate = ui.alternate[player_name]
 | 
			
		||||
		local alternates, craft
 | 
			
		||||
		if crafts and #crafts > 0 then
 | 
			
		||||
			alternates = #crafts
 | 
			
		||||
			craft = crafts[alternate]
 | 
			
		||||
		end
 | 
			
		||||
		local has_give = player_privs.give or unified_inventory.is_creative(player_name)
 | 
			
		||||
		local has_give = player_privs.give or ui.is_creative(player_name)
 | 
			
		||||
 | 
			
		||||
		fs[#fs + 1] = "background[0.5,"..(formspecy + 0.2)..";8,3;ui_craftguide_form.png]"
 | 
			
		||||
		fs[#fs + 1] = string.format("textarea[%f,%f;10,1;;%s: %s;]",
 | 
			
		||||
				craftresultx, craftresulty, F(role_text[dir]), item_name_shown)
 | 
			
		||||
		fs[#fs + 1] = stack_image_button(0, formspecy, 1.1, 1.1,
 | 
			
		||||
				"item_button_" .. rdir .. "_", ItemStack(item_name))
 | 
			
		||||
		formspec[n] = string.format("image[%f,%f;%f,%f;ui_crafting_arrow.png]",
 | 
			
		||||
	                            craftguidearrowx, craftguidey, ui.imgscale, ui.imgscale)
 | 
			
		||||
 | 
			
		||||
		formspec[n+1] = string.format("textarea[%f,%f;10,1;;%s: %s;]",
 | 
			
		||||
				perplayer_formspec.craft_guide_resultstr_x, perplayer_formspec.craft_guide_resultstr_y,
 | 
			
		||||
				F(role_text[dir]), item_name_shown)
 | 
			
		||||
		n = n + 2
 | 
			
		||||
 | 
			
		||||
		local giveme_form = table.concat({
 | 
			
		||||
			"label[".. (give_x+0.1)..",".. (craftguidey + 2.7) .. ";" .. F(S("Give me:")) .. "]",
 | 
			
		||||
			"button["..(give_x)..","..     (craftguidey + 2.9) .. ";0.75,0.5;craftguide_giveme_1;1]",
 | 
			
		||||
			"button["..(give_x+0.8)..",".. (craftguidey + 2.9) .. ";0.75,0.5;craftguide_giveme_10;10]",
 | 
			
		||||
			"button["..(give_x+1.6)..",".. (craftguidey + 2.9) .. ";0.75,0.5;craftguide_giveme_99;99]"
 | 
			
		||||
		})
 | 
			
		||||
 | 
			
		||||
		if not craft then
 | 
			
		||||
			-- No craft recipes available for this item.
 | 
			
		||||
			fs[#fs + 1] = "label[5.5,"..(formspecy + 2.35)..";"
 | 
			
		||||
					.. F(no_recipe_text[dir]) .. "]"
 | 
			
		||||
			local no_pos = dir == "recipe" and 4.5 or 6.5
 | 
			
		||||
			local item_pos = dir == "recipe" and 6.5 or 4.5
 | 
			
		||||
			fs[#fs + 1] = "image["..no_pos..","..formspecy..";1.1,1.1;ui_no.png]"
 | 
			
		||||
			fs[#fs + 1] = stack_image_button(item_pos, formspecy, 1.1, 1.1,
 | 
			
		||||
			formspec[n] = string.format("label[%f,%f;%s]", craftguidex+2.5, craftguidey+1.5, F(no_recipe_text[dir]))
 | 
			
		||||
			local no_pos = dir == "recipe" and (craftguidex+2.5) or craftguideresultx
 | 
			
		||||
			local item_pos = dir == "recipe" and craftguideresultx or (craftguidex+2.5)
 | 
			
		||||
			formspec[n+1] = "image["..no_pos..","..craftguidey..";1.2,1.2;ui_no.png]"
 | 
			
		||||
			formspec[n+2] = stack_image_button(item_pos, craftguidey, 1.2, 1.2,
 | 
			
		||||
				"item_button_" .. other_dir[dir] .. "_", ItemStack(item_name))
 | 
			
		||||
			if has_give then
 | 
			
		||||
				fs[#fs + 1] = "label[0," .. (formspecy + 2.10) .. ";" .. F(S("Give me:")) .. "]"
 | 
			
		||||
						.. "button[0,  " .. (formspecy + 2.7) .. ";0.6,0.5;craftguide_giveme_1;1]"
 | 
			
		||||
						.. "button[0.6," .. (formspecy + 2.7) .. ";0.7,0.5;craftguide_giveme_10;10]"
 | 
			
		||||
						.. "button[1.3," .. (formspecy + 2.7) .. ";0.8,0.5;craftguide_giveme_99;99]"
 | 
			
		||||
				formspec[n+3] = giveme_form
 | 
			
		||||
			end
 | 
			
		||||
			return { formspec = table.concat(fs) }
 | 
			
		||||
			return { formspec = table.concat(formspec) }
 | 
			
		||||
		else
 | 
			
		||||
			formspec[n] = stack_image_button(craftguideresultx, craftguidey, 1.2, 1.2,
 | 
			
		||||
					"item_button_" .. rdir .. "_", ItemStack(craft.output))
 | 
			
		||||
			n = n + 1
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		local craft_type = unified_inventory.registered_craft_types[craft.type] or
 | 
			
		||||
				unified_inventory.craft_type_defaults(craft.type, {})
 | 
			
		||||
		local craft_type = ui.registered_craft_types[craft.type] or
 | 
			
		||||
				ui.craft_type_defaults(craft.type, {})
 | 
			
		||||
		if craft_type.icon then
 | 
			
		||||
			fs[#fs + 1] = string.format("image[%f,%f;%f,%f;%s]",
 | 
			
		||||
					5.7, (formspecy + 0.05), 0.5, 0.5, craft_type.icon)
 | 
			
		||||
			formspec[n] = string.format("image[%f,%f;%f,%f;%s]",
 | 
			
		||||
					craftguidearrowx+0.35, craftguidey, 0.5, 0.5, craft_type.icon)
 | 
			
		||||
			n = n + 1
 | 
			
		||||
		end
 | 
			
		||||
		fs[#fs + 1] = "label[5.5,"..(formspecy + 1)..";" .. F(craft_type.description).."]"
 | 
			
		||||
		fs[#fs + 1] = stack_image_button(6.5, formspecy, 1.1, 1.1,
 | 
			
		||||
				"item_button_usage_", ItemStack(craft.output))
 | 
			
		||||
		formspec[n] = string.format("label[%f,%f;%s]", craftguidearrowx + 0.15, craftguidey + 1.4, F(craft_type.description))
 | 
			
		||||
		n = n + 1
 | 
			
		||||
 | 
			
		||||
		local display_size = craft_type.dynamic_display_size
 | 
			
		||||
				and craft_type.dynamic_display_size(craft)
 | 
			
		||||
@@ -291,11 +315,12 @@ unified_inventory.register_page("craftguide", {
 | 
			
		||||
 | 
			
		||||
		-- This keeps recipes aligned to the right,
 | 
			
		||||
		-- so that they're close to the arrow.
 | 
			
		||||
		local xoffset = 5.5
 | 
			
		||||
		local xoffset = craftguidex+3.75
 | 
			
		||||
		local bspc = 1.25
 | 
			
		||||
		-- Offset factor for crafting grids with side length > 4
 | 
			
		||||
		local of = (3/math.max(3, math.max(display_size.width, display_size.height)))
 | 
			
		||||
		local od = 0
 | 
			
		||||
		-- Minimum grid size at which size optimazation measures kick in
 | 
			
		||||
		-- Minimum grid size at which size optimization measures kick in
 | 
			
		||||
		local mini_craft_size = 6
 | 
			
		||||
		if display_size.width >= mini_craft_size then
 | 
			
		||||
			od = math.max(1, display_size.width - 2)
 | 
			
		||||
@@ -304,12 +329,12 @@ unified_inventory.register_page("craftguide", {
 | 
			
		||||
		-- Size modifier factor
 | 
			
		||||
		local sf = math.min(1, of * (1.05 + 0.05*od))
 | 
			
		||||
		-- Button size
 | 
			
		||||
		local bsize_h = 1.1 * sf
 | 
			
		||||
		local bsize_w = bsize_h
 | 
			
		||||
		if display_size.width >= mini_craft_size then
 | 
			
		||||
			bsize_w = 1.175 * sf
 | 
			
		||||
		local bsize = 1.2 * sf
 | 
			
		||||
 | 
			
		||||
		if display_size.width >= mini_craft_size then  -- it's not a normal 3x3 grid
 | 
			
		||||
			bsize = 0.8 * sf
 | 
			
		||||
		end
 | 
			
		||||
		if (bsize_h > 0.35 and display_size.width) then
 | 
			
		||||
		if (bsize > 0.35 and display_size.width) then
 | 
			
		||||
		for y = 1, display_size.height do
 | 
			
		||||
		for x = 1, display_size.width do
 | 
			
		||||
			local item
 | 
			
		||||
@@ -319,48 +344,53 @@ unified_inventory.register_page("craftguide", {
 | 
			
		||||
			-- Flipped x, used to build formspec buttons from right to left
 | 
			
		||||
			local fx = display_size.width - (x-1)
 | 
			
		||||
			-- x offset, y offset
 | 
			
		||||
			local xof = (fx-1) * of + of
 | 
			
		||||
			local yof = (y-1) * of + 1
 | 
			
		||||
			local xof = ((fx-1) * of + of) * bspc
 | 
			
		||||
			local yof = ((y-1) * of + 1) * bspc
 | 
			
		||||
			if item then
 | 
			
		||||
				fs[#fs + 1] = stack_image_button(
 | 
			
		||||
						xoffset - xof, formspecy - 1 + yof, bsize_w, bsize_h,
 | 
			
		||||
				formspec[n] = stack_image_button(
 | 
			
		||||
						xoffset - xof, craftguidey - 1.25 + yof, bsize, bsize,
 | 
			
		||||
						"item_button_recipe_",
 | 
			
		||||
						ItemStack(item))
 | 
			
		||||
			else
 | 
			
		||||
				-- Fake buttons just to make grid
 | 
			
		||||
				fs[#fs + 1] = string.format("image_button[%f,%f;%f,%f;ui_blank_image.png;;]",
 | 
			
		||||
						xoffset - xof, formspecy - 1 + yof, bsize_w, bsize_h)
 | 
			
		||||
				formspec[n] = string.format("image_button[%f,%f;%f,%f;ui_blank_image.png;;]",
 | 
			
		||||
						xoffset - xof, craftguidey - 1.25 + yof, bsize, bsize)
 | 
			
		||||
			end
 | 
			
		||||
			n = n + 1
 | 
			
		||||
		end
 | 
			
		||||
		end
 | 
			
		||||
		else
 | 
			
		||||
			-- Error
 | 
			
		||||
			fs[#fs + 1] = string.format("label[2,%f;%s]",
 | 
			
		||||
				formspecy, F(S("This recipe is too\nlarge to be displayed.")))
 | 
			
		||||
			formspec[n] = string.format("label[2,%f;%s]",
 | 
			
		||||
				craftguidey, F(S("This recipe is too@nlarge to be displayed.")))
 | 
			
		||||
			n = n + 1
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		if craft_type.uses_crafting_grid and display_size.width <= 3 then
 | 
			
		||||
			fs[#fs + 1] = "label[0," .. (formspecy + 0.9) .. ";" .. F(S("To craft grid:")) .. "]"
 | 
			
		||||
					.. "button[0,  " .. (formspecy + 1.5) .. ";0.6,0.5;craftguide_craft_1;1]"
 | 
			
		||||
					.. "button[0.6," .. (formspecy + 1.5) .. ";0.7,0.5;craftguide_craft_10;10]"
 | 
			
		||||
					.. "button[1.3," .. (formspecy + 1.5) .. ";0.8,0.5;craftguide_craft_max;" .. F(S("All")) .. "]"
 | 
			
		||||
			formspec[n]   = "label["..(give_x+0.1)..","..    (craftguidey + 1.7) .. ";" .. F(S("To craft grid:")) .. "]"
 | 
			
		||||
			formspec[n+1] = "button["..  (give_x)..","..     (craftguidey + 1.9) .. ";0.75,0.5;craftguide_craft_1;1]"
 | 
			
		||||
			formspec[n+2] = "button["..  (give_x+0.8)..",".. (craftguidey + 1.9) .. ";0.75,0.5;craftguide_craft_10;10]"
 | 
			
		||||
			formspec[n+3] = "button["..  (give_x+1.6)..",".. (craftguidey + 1.9) .. ";0.75,0.5;craftguide_craft_max;" .. F(S("All")) .. "]"
 | 
			
		||||
			n = n + 4
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		if has_give then
 | 
			
		||||
			fs[#fs + 1] = "label[0," .. (formspecy + 2.1) .. ";" .. F(S("Give me:")) .. "]"
 | 
			
		||||
					.. "button[0,  " .. (formspecy + 2.7) .. ";0.6,0.5;craftguide_giveme_1;1]"
 | 
			
		||||
					.. "button[0.6," .. (formspecy + 2.7) .. ";0.7,0.5;craftguide_giveme_10;10]"
 | 
			
		||||
					.. "button[1.3," .. (formspecy + 2.7) .. ";0.8,0.5;craftguide_giveme_99;99]"
 | 
			
		||||
			formspec[n] = giveme_form
 | 
			
		||||
			n = n + 1
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		if alternates and alternates > 1 then
 | 
			
		||||
			fs[#fs + 1] = "label[5.5," .. (formspecy + 1.6) .. ";"
 | 
			
		||||
					.. string.format(F(recipe_text[dir]), alternate, alternates) .. "]"
 | 
			
		||||
					.. "image_button[5.5," .. (formspecy + 2) .. ";1,1;ui_left_icon.png;alternate_prev;]"
 | 
			
		||||
					.. "image_button[6.5," .. (formspecy + 2) .. ";1,1;ui_right_icon.png;alternate;]"
 | 
			
		||||
					.. "tooltip[alternate_prev;" .. F(prev_alt_text[dir]) .. "]"
 | 
			
		||||
					.. "tooltip[alternate;" .. F(next_alt_text[dir]) .. "]"
 | 
			
		||||
			formspec[n] = string.format("label[%f,%f;%s]",
 | 
			
		||||
						craftguidex+4, craftguidey + 2.3, F(S(recipe_text[dir], alternate, alternates)))
 | 
			
		||||
			formspec[n+1] = string.format("image_button[%f,%f;1.1,1.1;ui_left_icon.png;alternate_prev;]",
 | 
			
		||||
						craftguidearrowx+0.2, craftguidey + 2.6)
 | 
			
		||||
			formspec[n+2] = string.format("image_button[%f,%f;1.1,1.1;ui_right_icon.png;alternate;]",
 | 
			
		||||
						craftguidearrowx+1.35, craftguidey + 2.6)
 | 
			
		||||
			formspec[n+3] = "tooltip[alternate_prev;" .. F(prev_alt_text[dir]) .. "]"
 | 
			
		||||
			formspec[n+4] = "tooltip[alternate;" .. F(next_alt_text[dir]) .. "]"
 | 
			
		||||
		end
 | 
			
		||||
		return { formspec = table.concat(fs) }
 | 
			
		||||
 | 
			
		||||
		return { formspec = table.concat(formspec) }
 | 
			
		||||
	end,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
@@ -368,7 +398,7 @@ local function craftguide_giveme(player, formname, fields)
 | 
			
		||||
	local player_name = player:get_player_name()
 | 
			
		||||
	local player_privs = minetest.get_player_privs(player_name)
 | 
			
		||||
	if not player_privs.give and
 | 
			
		||||
			not unified_inventory.is_creative(player_name) then
 | 
			
		||||
			not ui.is_creative(player_name) then
 | 
			
		||||
		minetest.log("action", "[unified_inventory] Denied give action to player " ..
 | 
			
		||||
			player_name)
 | 
			
		||||
		return
 | 
			
		||||
@@ -383,7 +413,7 @@ local function craftguide_giveme(player, formname, fields)
 | 
			
		||||
	amount = tonumber(amount) or 0
 | 
			
		||||
	if amount == 0 then return end
 | 
			
		||||
 | 
			
		||||
	local output = unified_inventory.current_item[player_name]
 | 
			
		||||
	local output = ui.current_item[player_name]
 | 
			
		||||
	if (not output) or (output == "") then return end
 | 
			
		||||
 | 
			
		||||
	local player_inv = player:get_inventory()
 | 
			
		||||
@@ -391,65 +421,6 @@ local function craftguide_giveme(player, formname, fields)
 | 
			
		||||
	player_inv:add_item("main", {name = output, count = amount})
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- Takes any stack from "main" where the `amount` of `needed_item` may fit
 | 
			
		||||
-- into the given crafting stack (`craft_item`)
 | 
			
		||||
local function craftguide_move_stacks(inv, craft_item, needed_item, amount)
 | 
			
		||||
	if craft_item:get_count() >= amount then
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	local get_item_group = minetest.get_item_group
 | 
			
		||||
	local group = needed_item:match("^group:(.+)")
 | 
			
		||||
	if group then
 | 
			
		||||
		if not craft_item:is_empty() then
 | 
			
		||||
			-- Source item must be the same to fill
 | 
			
		||||
			if get_item_group(craft_item:get_name(), group) ~= 0 then
 | 
			
		||||
				needed_item = craft_item:get_name()
 | 
			
		||||
			else
 | 
			
		||||
				-- TODO: Maybe swap unmatching "craft" items
 | 
			
		||||
				-- !! Would conflict with recursive function call
 | 
			
		||||
				return
 | 
			
		||||
			end
 | 
			
		||||
		else
 | 
			
		||||
			-- Take matching group from the inventory (biggest stack)
 | 
			
		||||
			local main = inv:get_list("main")
 | 
			
		||||
			local max_found = 0
 | 
			
		||||
			for i, stack in ipairs(main) do
 | 
			
		||||
				if stack:get_count() > max_found and
 | 
			
		||||
						get_item_group(stack:get_name(), group) ~= 0 then
 | 
			
		||||
					needed_item = stack:get_name()
 | 
			
		||||
					max_found = stack:get_count()
 | 
			
		||||
					if max_found >= amount then
 | 
			
		||||
						break
 | 
			
		||||
					end
 | 
			
		||||
				end
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
	else
 | 
			
		||||
		if not craft_item:is_empty() and
 | 
			
		||||
				craft_item:get_name() ~= needed_item then
 | 
			
		||||
			return -- Item must be identical
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	needed_item = ItemStack(needed_item)
 | 
			
		||||
	local to_take = math.min(amount, needed_item:get_stack_max())
 | 
			
		||||
	to_take = to_take - craft_item:get_count()
 | 
			
		||||
	if to_take <= 0 then
 | 
			
		||||
		return -- Nothing to do
 | 
			
		||||
	end
 | 
			
		||||
	needed_item:set_count(to_take)
 | 
			
		||||
 | 
			
		||||
	local taken = inv:remove_item("main", needed_item)
 | 
			
		||||
	local leftover = taken:add_item(craft_item)
 | 
			
		||||
	if not leftover:is_empty() then
 | 
			
		||||
		-- Somehow failed to add the existing "craft" item. Undo the action.
 | 
			
		||||
		inv:add_item("main", leftover)
 | 
			
		||||
		return taken
 | 
			
		||||
	end
 | 
			
		||||
	return taken
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
local function craftguide_craft(player, formname, fields)
 | 
			
		||||
	local amount
 | 
			
		||||
	for k, v in pairs(fields) do
 | 
			
		||||
@@ -458,60 +429,26 @@ local function craftguide_craft(player, formname, fields)
 | 
			
		||||
	end
 | 
			
		||||
	if not amount then return end
 | 
			
		||||
 | 
			
		||||
	amount = tonumber(amount) or 99 -- fallback for "all"
 | 
			
		||||
	if amount <= 0 or amount > 99 then return end
 | 
			
		||||
	amount = tonumber(amount) or -1 -- fallback for "all"
 | 
			
		||||
	if amount == 0 or amount < -1 or amount > 99 then return end
 | 
			
		||||
 | 
			
		||||
	local player_name = player:get_player_name()
 | 
			
		||||
 | 
			
		||||
	local output = unified_inventory.current_item[player_name] or ""
 | 
			
		||||
	local output = ui.current_item[player_name] or ""
 | 
			
		||||
	if output == "" then return end
 | 
			
		||||
 | 
			
		||||
	local player_inv = player:get_inventory()
 | 
			
		||||
	local craft_list = player_inv:get_list("craft")
 | 
			
		||||
 | 
			
		||||
	local crafts = unified_inventory.crafts_for[
 | 
			
		||||
		unified_inventory.current_craft_direction[player_name]][output] or {}
 | 
			
		||||
	local crafts = ui.crafts_for[
 | 
			
		||||
		ui.current_craft_direction[player_name]][output] or {}
 | 
			
		||||
	if #crafts == 0 then return end
 | 
			
		||||
 | 
			
		||||
	local alternate = unified_inventory.alternate[player_name]
 | 
			
		||||
	local alternate = ui.alternate[player_name]
 | 
			
		||||
 | 
			
		||||
	local craft = crafts[alternate]
 | 
			
		||||
	if craft.width > 3 then return end
 | 
			
		||||
 | 
			
		||||
	local needed = craft.items
 | 
			
		||||
	local width = craft.width
 | 
			
		||||
	if width == 0 then
 | 
			
		||||
		-- Shapeless recipe
 | 
			
		||||
		width = 3
 | 
			
		||||
	end
 | 
			
		||||
	ui.craftguide_match_craft(player, "main", "craft", craft, amount)
 | 
			
		||||
 | 
			
		||||
	-- To spread the items evenly
 | 
			
		||||
	local STEPSIZE = math.ceil(math.sqrt(amount) / 5) * 5
 | 
			
		||||
	local current_count = 0
 | 
			
		||||
	repeat
 | 
			
		||||
		current_count = math.min(current_count + STEPSIZE, amount)
 | 
			
		||||
		local index = 1
 | 
			
		||||
		for y = 1, 3 do
 | 
			
		||||
			for x = 1, width do
 | 
			
		||||
				local needed_item = needed[index]
 | 
			
		||||
				if needed_item then
 | 
			
		||||
					local craft_index = ((y - 1) * 3) + x
 | 
			
		||||
					local craft_item = craft_list[craft_index]
 | 
			
		||||
					local newitem = craftguide_move_stacks(player_inv,
 | 
			
		||||
							craft_item, needed_item, current_count)
 | 
			
		||||
 | 
			
		||||
					if newitem then
 | 
			
		||||
						craft_list[craft_index] = newitem
 | 
			
		||||
					end
 | 
			
		||||
				end
 | 
			
		||||
				index = index + 1
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
	until current_count == amount
 | 
			
		||||
 | 
			
		||||
	player_inv:set_list("craft", craft_list)
 | 
			
		||||
 | 
			
		||||
	unified_inventory.set_inventory_formspec(player, "craft")
 | 
			
		||||
	ui.set_inventory_formspec(player, "craft")
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
minetest.register_on_player_receive_fields(function(player, formname, fields)
 | 
			
		||||
 
 | 
			
		||||
@@ -9,3 +9,6 @@ unified_inventory_bags (Enable bags) bool true
 | 
			
		||||
#If enabled, the trash slot can be used by those without both creative
 | 
			
		||||
#and the give privilege.
 | 
			
		||||
unified_inventory_trash (Enable trash) bool true
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
unified_inventory_automatic_categorization (Items automatically added to categories) bool true
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 12 KiB  | 
| 
		 Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 11 KiB  | 
| 
		 Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 9.1 KiB  | 
| 
		 Before Width: | Height: | Size: 546 B After Width: | Height: | Size: 456 B  | 
| 
		 Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 961 B  | 
| 
		 Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.1 KiB  | 
| 
		 Before Width: | Height: | Size: 777 B After Width: | Height: | Size: 658 B  | 
| 
		 Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 928 B  | 
| 
		 Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 12 KiB  | 
| 
		 Before Width: | Height: | Size: 13 KiB  | 
| 
		 Before Width: | Height: | Size: 9.7 KiB  | 
| 
		 Before Width: | Height: | Size: 11 KiB  | 
| 
		 Before Width: | Height: | Size: 10 KiB  | 
| 
		 Before Width: | Height: | Size: 1.7 KiB  | 
| 
		 Before Width: | Height: | Size: 81 B After Width: | Height: | Size: 71 B  | 
| 
		 Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.3 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								textures/ui_category_all.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.2 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								textures/ui_category_none.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 7.8 KiB  | 
| 
		 Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 8.6 KiB  | 
| 
		 Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 15 KiB  | 
| 
		 Before Width: | Height: | Size: 896 B After Width: | Height: | Size: 483 B  | 
| 
		 Before Width: | Height: | Size: 12 KiB  | 
| 
		 Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 15 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								textures/ui_crafting_arrow.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 788 B  | 
| 
		 Before Width: | Height: | Size: 2.9 KiB  | 
| 
		 Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 9.0 KiB  | 
| 
		 Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 9.1 KiB  | 
| 
		 Before Width: | Height: | Size: 1.6 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								textures/ui_formbg_9_sliced.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 240 B  | 
| 
		 Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 15 KiB  | 
| 
		 Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 3.6 KiB  | 
| 
		 Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 22 KiB  | 
| 
		 Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB  | 
| 
		 Before Width: | Height: | Size: 7.0 KiB After Width: | Height: | Size: 6.3 KiB  | 
| 
		 Before Width: | Height: | Size: 4.6 KiB  | 
| 
		 Before Width: | Height: | Size: 8.7 KiB  | 
| 
		 Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 13 KiB  | 
| 
		 Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.6 KiB  | 
| 
		 Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.6 KiB  | 
| 
		 Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 5.6 KiB  | 
| 
		 Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 5.9 KiB  | 
| 
		 Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.2 KiB  | 
| 
		 Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 10 KiB  | 
| 
		 Before Width: | Height: | Size: 7.1 KiB After Width: | Height: | Size: 6.3 KiB  | 
| 
		 Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 10 KiB  | 
| 
		 Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 13 KiB  | 
| 
		 Before Width: | Height: | Size: 988 B After Width: | Height: | Size: 648 B  | 
							
								
								
									
										
											BIN
										
									
								
								textures/ui_single_slot_bright.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.0 KiB  | 
| 
		 Before Width: | Height: | Size: 9.3 KiB After Width: | Height: | Size: 8.1 KiB  | 
| 
		 Before Width: | Height: | Size: 9.2 KiB After Width: | Height: | Size: 8.0 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								textures/ui_smallbg_9_sliced.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 139 B  | 
| 
		 Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 18 KiB  | 
| 
		 Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 13 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								textures/ui_trash_slot_icon.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 697 B  | 
| 
		 Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 3.7 KiB  | 
| 
		 Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB  | 
| 
		 Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.1 KiB  | 
| 
		 Before Width: | Height: | Size: 8.4 KiB  | 
| 
		 Before Width: | Height: | Size: 2.4 KiB  |