122 Commits

Author SHA1 Message Date
15afd559f6 Fix crash caused by bag swapping 2018-08-10 16:11:35 +02:00
9ffe40d210 Refactor translations for intllib 2018-06-30 03:31:25 +00:00
3988f4c572 Merge origin/master to refactor-translation branch (resolving conflicts) 2018-06-23 15:37:13 +02:00
edd00f222c Replace deprecated function names, unify creative check 2018-06-23 15:02:23 +02:00
c43074f5c2 Move bag storage to player attributes
Compatible with 0.4.16 or later
Fixes an item duplication bug for the four player inventory slots on each join
Clean up old player lists after saving
2018-06-21 21:23:21 +02:00
934757edd6 FIX: do not translate direction 2018-04-08 22:21:44 +02:00
ab20e43468 convert Turkish locale to po format 2018-04-02 17:52:09 +02:00
1a52f33756 convert Portuguese locale to po format 2018-04-02 16:55:48 +02:00
87ae46b6d8 convert Polish locale to po format 2018-04-02 16:46:28 +02:00
827e544c58 convert French locale to po format 2018-04-02 16:28:54 +02:00
0288d558e9 convert Spanish locale to po format 2018-04-02 16:19:25 +02:00
2159dd5a4a convert German locale to po format 2018-04-02 16:19:05 +02:00
72ca872002 convert Russian locale to po format 2018-04-02 16:00:00 +02:00
06f6d45891 generate template.pot with intllib tool 2018-04-02 13:35:05 +02:00
c1ab7277ab refactor code to use with intllib tool 2018-04-02 13:33:36 +02:00
2ab5a7c90a fix excessive privilege check 2018-01-03 11:15:53 +01:00
86c73a4752 Item_names: Refactorize & use meta description 2018-01-03 11:14:25 +01:00
4010953888 Fix unclear licenses for the images. 2018-01-02 22:39:13 +01:00
4df1aa7492 Change texture licenses to CC-BY-4.0 2018-01-02 22:08:39 +01:00
fc36b3ff3b Merge pull request #95 from Thomas--S/patch-1
Add forgotten backtick
2017-04-07 16:19:11 -04:00
f23f0733a6 Add forgotten backtick 2017-04-07 22:18:09 +02:00
8073df0134 bags: Add buttons to quickly switch bags in sub-form. 2017-03-24 19:48:59 -03:00
0764000d99 Portuguese translation.
Translation done by @Lunovox.
2017-03-13 03:37:37 -03:00
cff06ab167 Merge pull request #91 from ForbiddenJ/master
Make trash configurable but preserve default functionality
2017-03-01 18:20:15 -05:00
7ab8825460 Make trash configurable but preserve default functionality 2017-03-01 16:28:40 -06:00
e8529e7742 Merge pull request #90 from Wuzzy2/not_in_craft_guide
Replace exclude_from_craft_guide with not_in_craft_guide
2017-02-06 21:44:22 -05:00
3209033051 Replace exclude_from_craft_guide with not_in_craft_guide 2017-02-06 15:17:53 +01:00
2ea417fad0 Search when ENTER is pressed on the search field. 2016-11-29 17:35:40 -03:00
be00ffe913 Merge pull request #88 from Wuzzy2/st
Add settingtypes.txt
2016-11-28 16:08:14 -05:00
10c22c0032 Add settingtypes.txt 2016-11-28 21:56:23 +01:00
e6c380d8c5 allow user to disable bags
via minetest.conf --> unified_inventory_bags = false

(default is to enable)
2016-11-28 14:46:42 -05:00
4a22f8e4da Merge pull request #83 from FozLand/issue_82
Fix bug in usages. Closes #82
2016-11-27 13:37:29 -05:00
2e00206f58 Merge pull request #81 from Wuzzy2/master
Disable useless main buttons
2016-11-27 13:36:02 -05:00
e57a5f80b4 Merge pull request #80 from Wuzzy2/give
Also enable “Give me” for creative mode and priv
2016-11-27 13:31:12 -05:00
2fb61ca7fb Merge pull request #79 from Wuzzy2/realname2
Show “real” item name AND itemstring in craft result
2016-11-27 13:30:52 -05:00
41e9d43608 Merge pull request #86 from VanessaE/leak_inv
avoid "leaking" detached inventories to other players
2016-11-27 13:30:14 -05:00
8073a3d167 Merge pull request #58 from rubenwardy/sfinv
Disable sfinv if installed
2016-11-27 13:29:36 -05:00
029d5c4c6a avoid "leaking" detached inventories to other players (see also, 2ff48b22a9 ) 2016-11-27 04:10:10 -05:00
59f52fd481 Disable sfinv if installed 2016-11-26 21:30:59 +00:00
Foz
020732a954 Fix bug in usages. Closes #82 2016-11-18 16:34:40 -10:00
75a0e6a318 Bags: Code cleanup and per-bag trash slot.
* Turn page creation into a loop.
* Add per-bag trash slot.
* Changed i18n to allow replacements.
2016-11-17 19:19:51 -03:00
8770b7df93 Disable useless main buttons 2016-11-06 02:28:45 +01:00
a661f54e72 Also enable “Give me” for creative mode and priv 2016-11-06 01:48:05 +01:00
8e98b00021 Also show “real” item name in craft result 2016-10-29 14:20:11 +02:00
5b9a53bf29 Fail gracefully for invalid drop tables.
Notified by user `photon` on IRC.
2016-10-08 00:54:05 -03:00
f6ea3daef7 Merge pull request #63 from Wuzzy2/search
Improve search and group handling and related usability
2016-08-14 19:43:08 -04:00
15f5b8e804 Craftguide: Use better tooltips for group buttons 2016-08-14 23:36:12 +02:00
c9d7942840 Update translation strings 2016-08-14 23:35:12 +02:00
40f8b4d9cf Update search field when clicking on group item 2016-08-14 23:35:12 +02:00
7224299e7c Register some Minetest Game group icons 2016-08-14 23:35:12 +02:00
2a516ac22b Add seperate button for resetting search 2016-08-14 23:35:12 +02:00
dba69b1f71 Merge pull request #71 from Wuzzy2/minicraft
Show crafting recipes correctly with size > 3
2016-08-14 16:17:08 -04:00
0678056716 Fix horizontally flipped crafting recipes in guide 2016-08-14 13:17:41 +02:00
5d67d36396 Update translation files 2016-08-14 13:17:41 +02:00
3bc3fae648 Hide “To crafting grid:” for crafts with size > 3 2016-08-14 13:16:30 +02:00
2ef76af687 Apply size optimizations for large craftings
Also prevent huge crafting recipes from being displayed for stability reasons.
2016-08-14 13:16:30 +02:00
c1fcc06059 Fix horizontal craft guide offset for large crafts 2016-08-14 13:16:30 +02:00
f8082a0e35 Fix crafting guide grid button sizes for size>4 2016-08-14 13:16:30 +02:00
5c57915159 Attempt to make large crafting recipes displayable 2016-08-14 13:16:30 +02:00
fc879df761 Merge pull request #62 from Wuzzy2/alternate_prev
Allow to move back and forth in alternate recipes and usages in craft guide
2016-08-14 06:31:03 -04:00
a1e7b650ab Guide: Allow to move back and forth in alternates 2016-08-14 10:56:24 +02:00
23a27b38ae Revert "Show real item name in craft guide"
Players don't really like this, neither do I.
See the comments attached to the original commit.
Sorry, Wuzzy. :-(

This reverts commit fe00059eea.
2016-08-13 18:19:29 -04:00
fe00059eea Show real item name in craft guide 2016-08-08 09:19:23 -04:00
32769c9f34 Merge pull request #65 from Wuzzy2/digging_chance
Add partial support for complex (table-based) node drops
2016-08-07 12:57:39 -04:00
54d97635ec Merge pull request #64 from Wuzzy2/flipclick
Toggle recipe/usage mode in craft guide when clicking on current item in item list
2016-08-07 12:57:29 -04:00
8332707198 Merge pull request #61 from Wuzzy2/bagdep
Add optional farming dependency for bag craft
2016-08-07 12:57:06 -04:00
6ec72eba74 Merge pull request #59 from Wuzzy2/trans
Update translation strings, update German, more formspec escaping
2016-08-07 12:56:53 -04:00
af56ddf06b Consider max_items in complex drop analysis 2016-08-07 05:44:36 +02:00
1c5fcd18ca Properly seperate chance digs from normal digs 2016-08-07 04:47:15 +02:00
80f99cffe7 Take count into account for complex node drops 2016-08-07 04:38:08 +02:00
09c731cee0 Reduce redundancy in chance-based drops 2016-08-07 04:21:02 +02:00
08d8d99ab3 Add crafting type: digging by chance 2016-08-07 03:49:16 +02:00
7bba35a911 Flip craft mode when clicking current item in list 2016-08-07 02:14:46 +02:00
1c11de10d5 Add optional farming dependency for bag craft 2016-08-06 17:44:37 +02:00
c816666945 Ensure formspec escaping for translated strings 2016-08-06 17:23:46 +02:00
534c7bd92c Fix German translation for “waypoints” 2016-08-06 16:45:13 +02:00
2a18e7357d Make default waypoint names translatable 2016-08-06 16:43:27 +02:00
8ffc8e9323 Fix translation strings for recipe alternations 2016-08-06 16:34:16 +02:00
bb19ab97fe Fix minor typo in English 2016-08-06 16:26:30 +02:00
7c822a79be Update German 2016-08-06 16:25:52 +02:00
8f14d41706 Collect more missing strings for translation 2016-08-06 16:25:01 +02:00
115e0bfaf4 Collect missing strings for translation 2016-08-05 19:34:40 +02:00
1413f760bc Update German translation 2016-08-05 19:18:21 +02:00
7d039147e7 Merge pull request #53 from BadToad2000/use_smaller_bag
Ensure items are not lost when using a smaller bag
2016-07-17 07:43:30 -04:00
5da8914da9 Merge remote-tracking branch 'main/master' into use_smaller_bag
Merging at VenessaE's request to potentially get this change marged into Unified Inventory.
2016-07-17 02:05:29 -05:00
ea5ffafb9c Merge pull request #49 from HybridDog/proller_suggestion
Stop flooding connected clients by all detached inventories if freemi…
2016-07-15 07:22:58 -04:00
8c0d0309f1 Merge pull request #28 from HybridDog/reduced_texture_size
advpng and optipng textures
2016-07-15 07:19:37 -04:00
5aab3640ec adv- and optipng textures
M  screenshot.png
M  textures/bags_large.png
M  textures/bags_medium.png
M  textures/bags_small.png
M  textures/ui_1_icon.png
M  textures/ui_2_icon.png
M  textures/ui_3_icon.png
M  textures/ui_4_icon.png
M  textures/ui_5_icon.png
M  textures/ui_bags_icon.png
M  textures/ui_bags_lg_form.png
M  textures/ui_bags_main_form.png
M  textures/ui_bags_med_form.png
M  textures/ui_bags_sm_form.png
M  textures/ui_blank_image.png
M  textures/ui_blue_icon_background.png
M  textures/ui_circular_arrows_icon.png
M  textures/ui_craft_icon.png
M  textures/ui_craftgrid_icon.png
M  textures/ui_craftguide_form.png
M  textures/ui_craftguide_icon.png
M  textures/ui_crafting_form.png
M  textures/ui_doubleleft_icon.png
M  textures/ui_doubleright_icon.png
M  textures/ui_form_bg.png
M  textures/ui_gohome_icon.png
M  textures/ui_green_icon_background.png
M  textures/ui_group.png
M  textures/ui_home_icon.png
M  textures/ui_left_icon.png
M  textures/ui_main_inventory.png
M  textures/ui_misc_form.png
M  textures/ui_moon_icon.png
M  textures/ui_no.png
M  textures/ui_off_icon.png
M  textures/ui_ok_icon.png
M  textures/ui_on_icon.png
M  textures/ui_pencil_icon.png
M  textures/ui_red_icon_background.png
M  textures/ui_right_icon.png
M  textures/ui_search_icon.png
M  textures/ui_sethome_icon.png
M  textures/ui_skip_backward_icon.png
M  textures/ui_skip_forward_icon.png
M  textures/ui_sun_icon.png
M  textures/ui_trash_icon.png
M  textures/ui_waypoint_set_icon.png
M  textures/ui_waypoints_icon.png
M  textures/ui_xyz_icon.png
M  textures/ui_xyz_off_icon.png
M  textures/ui_xyz_on_icon.png
2016-07-15 09:53:27 +02:00
310ec1da81 Stop flooding connected clients by all detached inventories if freeminer is used, fixes #7 2016-07-15 09:25:23 +02:00
1b40a02f1c Merge pull request #57 from pgimeno/exclude-items-from-recipes
Allow items to exclude their recipes from the recipes list
2016-07-14 07:45:09 -04:00
1645d17c97 Merge pull request #55 from DonBatman/master
Added screenshot, description and mod.conf
2016-07-14 07:38:11 -04:00
f23b4aed65 Allow items to exclude their recipes from the recipes list
Certain mods add many recipes that take smaller blocks and output a bigger block. This clutters the recipes list. Case in point: the circular saw from the moreblocks mod.

This patch allows mods to tell the craft guide to not include recipes that contain certain items, by setting the group exclude_from_craft_guide = 1 in the items.
2016-03-31 03:11:32 +02:00
bae55eb7c6 Added screenshot, description and mod.conf 2016-03-20 07:41:10 -07:00
3cdfdd14a5 When attempting to replace a bag with a smaller bag, ensure the items beyond the last index of the smaller bag are not lost.
If there is sufficient space in the smaller bag, move the items to the front.
Otherwise disallow the replacement.
2016-02-28 23:34:13 -06:00
bdf9b61779 Add item_name support for hudbars mod
Does the same thing as 8bb1c8288b
2016-02-13 21:16:35 -03:00
758b643c4d Check for both old and new default creative mod name 2016-02-12 03:19:03 +01:00
b3c6c92286 Remove count from item_image_button label,
item_image_buttons can now display properly item stacks
2016-02-09 04:42:45 +01:00
8f91abbfb8 Merge pull request #47 from kilbith/patch-1
Fix disabling of default creative inventory (fixes #46)
2016-02-08 16:14:33 +01:00
f3127e9d7c Fix disabling of default creative inventory (fixes #46)
The function prefix in upstream has changed.
2016-02-08 13:07:23 +01:00
df1309a6fd Added listring/shift click to craft grid 2015-10-09 19:25:49 -07:00
9bc6301f60 Added listring/shift click to bags 2015-10-09 18:55:46 -07:00
5df353c299 stop crash if HUD is returned nil (server too slow to emerge player) 2015-10-08 05:56:04 -04:00
9fe84789ba Allow per-user "full" mode when "lite" mode is set as global
default (give the user "ui_full" priv to turn it on).

Also, a few whitespace fixes.
2015-10-05 04:24:01 -04:00
babe4380ac disallow repairing tools using the 'to craft grid', allow it to put items of specific groups and (maybe) make it keep the meta of items, remove unused elseif, change a bit translation and use table.concat at one place because I read somewhere that it's faster than .. 2015-08-16 16:40:49 +02:00
570d2cb162 peoposed update for bag recipies
when bags was first created, wool and farming were not in minetest_game, and so that people didnt have a load of dependancies I made the recipe from wood and sticks.

now that wool and cotton are available it makes a lot more sense to craft the bags from these items.

they are harder to obtain, but bags are valuable items in game, so i think the extra effort to obtain the items is justified.
2015-08-06 16:03:11 +09:30
2d6a0ed606 split ui_crafting_form
into craft grid/trash image and a single slot image.  The latter is now
used for a refill slot if user has creative priv or server is in
creative mode.
2015-08-05 08:37:25 -04:00
f2914b3d4f only show items in crafting guide if they can be crafted or player has creative 2015-07-30 09:13:16 -04:00
56892b8e75 Don't add a recipe to the main list if it contains any unknown items/groups 2015-07-30 08:03:29 -04:00
2355dc6fc2 require "home" privilege to use home/sethome buttons 2015-07-19 17:01:36 -04:00
8338b406d3 fix crash in waypoints? 2015-06-28 05:17:43 -04:00
16e40a2e22 re-arrange a few elements in the crafting guide to eliminate text overlap
Also make sure to chech if lite mode before assuming 4x2 "tab" button layout.
2015-06-28 04:54:48 -04:00
0a70d8edef Add "lite" mode
Set unified_inventory_lite = true in minetest.conf to enable.

This mode reduces the feature-set of the mod as follows:

* no bags
* no waypoints,
* no home/go-home buttons,
* no set-day/-night buttons,
* smaller creative/craft guide inventory pages (4x6 instead of 8x10)
* fewer paging buttons
* smaller search field
* move "Result: foo" to below the crafting guide grid.
* Move main "tab" buttons to the right, below the search and paging buttons.
* Made "tab" buttons able to use to 2 rows if necessary (max 8 buttons)
2015-06-28 04:15:55 -04:00
20eba2bf9b Remove unneeded and slow get_desc function 2015-04-18 15:32:22 -04:00
7d8b5f3760 Round home positions 2015-04-18 15:23:54 -04:00
8bb1c8288b Add item_names support for Better "HUD" 2015-03-11 19:00:25 -04:00
75f719507e Add buttons to give oneself items (with 'give' privilege) 2015-03-11 17:55:30 -04:00
d5d97e7dca Update bags.lua
changed bag recipes from default:stick to group:stick
2015-03-11 17:55:30 -04:00
12f14d7aff Create tr.txt 2015-03-11 17:55:30 -04:00
2fd9e59242 Display conversion method symbolically and textually next to arrow 2015-03-11 16:00:37 +01:00
Tim
76a9efff71 reduce table lookups during initialization 2015-02-05 10:03:07 +01:00
Tim
1a1bfc3839 supress intllib check warning, this fixes #19 2015-02-05 10:00:10 +01:00
Tim
1a962542e6 supress intentional creative_inventory check warning, this fixes #18 2015-02-05 09:58:15 +01:00
84 changed files with 4090 additions and 839 deletions

View File

@ -13,10 +13,49 @@ Unified inventory code is licensed under the GNU LGPLv2+.
Licenses for textures:
VanessaE: (WTFPL)
* ui\_group.png
VanessaE: (CC-BY-4.0)
* `ui_group.png`
RealBadAngel: (WTFPL)
* Everything else.
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)
* [`ui_left_icon.png` / `ui_right_icon.png`](http://commons.wikimedia.org/wiki/File:Media-playback-start.svg)
* [`ui_skip_backward_icon.png`](http://commons.wikimedia.org/wiki/File:Media-skip-backward.svg)
* [`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)
* `ui_trash_icon.png`: <http://www.clker.com/clipart-29090.html> and <http://www.clker.com/clipart-trash.html>
* [`ui_search_icon.png`](http://www.clker.com/clipart-24887.html)
* [`ui_off_icon.png` / `ui_on_icon.png`](http://www.clker.com/clipart-on-off-switches.html)
* [`ui_waypoints_icon.png`](http://www.clker.com/clipart-map-pin-red.html)
* [`ui_circular_arrows_icon.png`](http://www.clker.com/clipart-circular-arrow-pattern.html)
* [`ui_pencil_icon.pnc`](http://www.clker.com/clipart-2256.html)
* [`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.

163
api.lua
View File

@ -1,9 +1,5 @@
local S
if intllib then
S = intllib.Getter()
else
S = function(s) return s end
end
local S = unified_inventory.gettext
local F = minetest.formspec_escape
-- Create detached creative inventory after loading all mods
minetest.after(0.01, function()
@ -24,7 +20,21 @@ minetest.after(0.01, function()
local recipes = minetest.get_all_craft_recipes(name)
if recipes then
for _, recipe in ipairs(recipes) do
unified_inventory.register_craft(recipe)
local unknowns
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 minetest.get_item_group(chk, "not_in_craft_guide") ~= 0 then
unknowns = true
end
end
if not unknowns then
unified_inventory.register_craft(recipe)
end
end
end
end
@ -35,6 +45,7 @@ minetest.after(0.01, function()
print("Unified Inventory. inventory size: "..unified_inventory.items_list_size)
for _, name in ipairs(unified_inventory.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
@ -46,12 +57,85 @@ minetest.after(0.01, function()
})
end
-- Complex drops. Yes, it's really complex!
elseif type(def.drop) == "table" then
--[[ Extract single items from the table and save them into dedicated tables
to register them later, in order to avoid duplicates. These tables counts
the total number of guaranteed drops and drops by chance (“maybes”) for each item.
For “maybes”, the final count is the theoretical maximum number of items, not
neccessarily the actual drop count. ]]
local drop_guaranteed = {}
local drop_maybe = {}
-- This is for catching an obscure corner case: If the top items table has
-- only items with rarity = 1, but max_items is set, then only the first
-- max_items will be part of the drop, any later entries are logically
-- impossible, so this variable is for keeping track of this
local max_items_left = def.drop.max_items
-- For checking whether we still encountered only guaranteed only so far;
-- for the first “maybe” item it will become false which will cause ALL
-- later items to be considered “maybes”.
-- A common idiom is:
-- { max_items 1, { items = {
-- { items={"example:1"}, rarity = 5 },
-- { items={"example:2"}, rarity = 1 }, }}}
-- example:2 must be considered a “maybe” because max_items is set and it
-- appears after a “maybe”
local max_start = true
-- Let's iterate through the items madness!
-- Handle invalid drop entries gracefully.
local drop_items = def.drop.items or { }
for i=1,#drop_items do
if max_items_left ~= nil and max_items_left <= 0 then break end
local itit = drop_items[i]
for j=1,#itit.items do
local dstack = ItemStack(itit.items[j])
if not dstack:is_empty() and dstack:get_name() ~= name then
local dname = dstack:get_name()
local dcount = dstack:get_count()
-- Guaranteed drops AND we are not yet in “maybe mode”
if #itit.items == 1 and itit.rarity == 1 and max_start then
if drop_guaranteed[dname] == nil then
drop_guaranteed[dname] = 0
end
drop_guaranteed[dname] = drop_guaranteed[dname] + dcount
if max_items_left ~= nil then
max_items_left = max_items_left - 1
if max_items_left <= 0 then break end
end
-- Drop was a “maybe”
else
if max_items_left ~= nil then max_start = false end
if drop_maybe[dname] == nil then
drop_maybe[dname] = 0
end
drop_maybe[dname] = drop_maybe[dname] + dcount
end
end
end
end
for itemstring, count in pairs(drop_guaranteed) do
unified_inventory.register_craft({
type = "digging",
items = {name},
output = itemstring .. " " .. count,
width = 0,
})
end
for itemstring, count in pairs(drop_maybe) do
unified_inventory.register_craft({
type = "digging_chance",
items = {name},
output = itemstring .. " " .. count,
width = 0,
})
end
end
end
for _, recipes in pairs(unified_inventory.crafts_for.recipe) do
for _, recipe in ipairs(recipes) do
local ingredient_items = {}
for _, spec in ipairs(recipe.items) do
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
if matches_spec(name) then
@ -73,50 +157,43 @@ end)
-- load_home
local function load_home()
local input = io.open(unified_inventory.home_filename, "r")
if input then
while true do
local x = input:read("*n")
if x == nil then
break
end
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}
end
io.close(input)
else
if not input then
unified_inventory.home_pos = {}
return
end
while true do
local x = input:read("*n")
if not x then break end
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}
end
io.close(input)
end
load_home()
function unified_inventory.set_home(player, pos)
local player_name = player:get_player_name()
unified_inventory.home_pos[player_name] = pos
unified_inventory.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
if v ~= nil then
output:write(math.floor(v.x).." "
..math.floor(v.y).." "
..math.floor(v.z).." "
..k.."\n")
end
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()]
if pos ~= nil then
if pos then
player:setpos(pos)
end
end
-- register_craft
function unified_inventory.register_craft(options)
if options.output == nil then
if not options.output then
return
end
local itemstack = ItemStack(options.output)
@ -126,7 +203,7 @@ 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 unified_inventory.crafts_for.recipe[itemstack:get_name()] == nil then
if not unified_inventory.crafts_for.recipe[itemstack:get_name()] then
unified_inventory.crafts_for.recipe[itemstack:get_name()] = {}
end
table.insert(unified_inventory.crafts_for.recipe[itemstack:get_name()],options)
@ -156,7 +233,8 @@ end
unified_inventory.register_craft_type("normal", {
description = "Crafting",
description = F(S("Crafting")),
icon = "ui_craftgrid_icon.png",
width = 3,
height = 3,
get_shaped_craft_width = function (craft) return craft.width end,
@ -171,7 +249,8 @@ unified_inventory.register_craft_type("normal", {
unified_inventory.register_craft_type("shapeless", {
description = "Mixing",
description = F(S("Mixing")),
icon = "ui_craftgrid_icon.png",
width = 3,
height = 3,
dynamic_display_size = function (craft)
@ -185,18 +264,26 @@ unified_inventory.register_craft_type("shapeless", {
unified_inventory.register_craft_type("cooking", {
description = "Cooking",
description = F(S("Cooking")),
icon = "default_furnace_front.png",
width = 1,
height = 1,
})
unified_inventory.register_craft_type("digging", {
description = "Digging",
description = F(S("Digging")),
icon = "default_tool_steelpick.png",
width = 1,
height = 1,
})
unified_inventory.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
@ -215,9 +302,7 @@ end
function unified_inventory.is_creative(playername)
if minetest.check_player_privs(playername, {creative=true}) or
minetest.setting_getbool("creative_mode") then
return true
end
return minetest.check_player_privs(playername, {creative=true})
or minetest.settings:get_bool("creative_mode")
end

247
bags.lua
View File

@ -3,27 +3,23 @@
-- Copyright (c) 2012 cornernote, Brett O'Donnell <cornernote@gmail.com>
-- License: GPLv3
local S
if intllib then
S = intllib.Getter()
else
S = function(s) return s end
end
local S = unified_inventory.gettext
local F = minetest.formspec_escape
unified_inventory.register_page("bags", {
get_formspec = function(player)
local player_name = player:get_player_name()
local formspec = "background[0.06,0.99;7.92,7.52;ui_bags_main_form.png]"
formspec = formspec.."label[0,0;"..S("Bags").."]"
formspec = formspec.."button[0,2;2,0.5;bag1;Bag 1]"
formspec = formspec.."button[2,2;2,0.5;bag2;Bag 2]"
formspec = formspec.."button[4,2;2,0.5;bag3;Bag 3]"
formspec = formspec.."button[6,2;2,0.5;bag4;Bag 4]"
formspec = formspec.."label[0,0;"..F(S("Bags")).."]"
formspec = formspec.."button[0,2;2,0.5;bag1;"..F(S("Bag @1", 1)).."]"
formspec = formspec.."button[2,2;2,0.5;bag2;"..F(S("Bag @1", 2)).."]"
formspec = formspec.."button[4,2;2,0.5;bag3;"..F(S("Bag @1", 3)).."]"
formspec = formspec.."button[6,2;2,0.5;bag4;"..F(S("Bag @1", 4)).."]"
formspec = formspec.."listcolors[#00000000;#00000000]"
formspec = formspec.."list[detached:"..minetest.formspec_escape(player_name).."_bags;bag1;0.5,1;1,1;]"
formspec = formspec.."list[detached:"..minetest.formspec_escape(player_name).."_bags;bag2;2.5,1;1,1;]"
formspec = formspec.."list[detached:"..minetest.formspec_escape(player_name).."_bags;bag3;4.5,1;1,1;]"
formspec = formspec.."list[detached:"..minetest.formspec_escape(player_name).."_bags;bag4;6.5,1;1,1;]"
formspec = formspec.."list[detached:"..F(player_name).."_bags;bag1;0.5,1;1,1;]"
formspec = formspec.."list[detached:"..F(player_name).."_bags;bag2;2.5,1;1,1;]"
formspec = formspec.."list[detached:"..F(player_name).."_bags;bag3;4.5,1;1,1;]"
formspec = formspec.."list[detached:"..F(player_name).."_bags;bag4;6.5,1;1,1;]"
return {formspec=formspec}
end,
})
@ -31,18 +27,29 @@ unified_inventory.register_page("bags", {
unified_inventory.register_button("bags", {
type = "image",
image = "ui_bags_icon.png",
tooltip = S("Bags")
tooltip = S("Bags"),
hide_lite=true
})
local function get_player_bag_stack(player, i)
return minetest.get_inventory({
type = "detached",
name = player:get_player_name() .. "_bags"
}):get_stack("bag" .. i, 1)
end
for i = 1, 4 do
unified_inventory.register_page("bag"..i, {
local bi = i
unified_inventory.register_page("bag"..bi, {
get_formspec = function(player)
local stack = player:get_inventory():get_stack("bag"..i, 1)
local stack = get_player_bag_stack(player, bi)
local image = stack:get_definition().inventory_image
local formspec = "image[7,0;1,1;"..image.."]"
formspec = formspec.."label[0,0;Bag "..i.."]"
formspec = formspec.."listcolors[#00000000;#00000000]"
formspec = formspec.."list[current_player;bag"..i.."contents;0,1;8,3;]"
local formspec = ("image[7,0;1,1;"..image.."]"
.."label[0,0;"..F(S("Bag @1", bi)).."]"
.."listcolors[#00000000;#00000000]"
.."list[current_player;bag"..bi.."contents;0,1;8,3;]"
.."listring[current_name;bag"..bi.."contents]"
.."listring[current_player;main]")
local slots = stack:get_definition().groups.bagslots
if slots == 8 then
formspec = formspec.."background[0.06,0.99;7.92,7.52;ui_bags_sm_form.png]"
@ -51,6 +58,33 @@ for i = 1, 4 do
elseif slots == 24 then
formspec = formspec.."background[0.06,0.99;7.92,7.52;ui_bags_lg_form.png]"
end
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
formspec = (formspec.."background[6.06,0;0.92,0.92;ui_bags_trash.png]"
.."list[detached:trash;main;6,0.1;1,1;]")
end
local inv = player:get_inventory()
for i = 1, 4 do
local def = get_player_bag_stack(player, i):get_definition()
local button
if def.groups.bagslots then
local list_name = "bag"..i.."contents"
local size = inv:get_size(list_name)
local used = 0
for si = 1, size do
local stk = inv:get_stack(list_name, si)
if not stk:is_empty() then
used = used + 1
end
end
local img = def.inventory_image
local label = F(S("Bag @1", i)).."\n"..used.."/"..size
button = "image_button["..(i+1)..",0;1,1;"..img..";bag"..i..";"..label.."]"
else
button = ""
end
formspec = formspec..button
end
return {formspec=formspec}
end,
})
@ -62,7 +96,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
end
for i = 1, 4 do
if fields["bag"..i] then
local stack = player:get_inventory():get_stack("bag"..i, 1)
local stack = get_player_bag_stack(player, i)
if not stack:get_definition().groups.bagslots then
return
end
@ -72,41 +106,119 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
end
end)
local function save_bags_metadata(player, bags_inv)
local is_empty = true
local bags = {}
for i = 1, 4 do
local bag = "bag"..i
if not bags_inv:is_empty(bag) then
-- Stack limit is 1, otherwise use stack:to_string()
bags[i] = bags_inv:get_stack(bag, 1):get_name()
is_empty = false
end
end
if is_empty then
player:set_attribute("unified_inventory:bags", nil)
else
player:set_attribute("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 bags = bags_meta and minetest.deserialize(bags_meta) or {}
local dirty_meta = false
if not bags_meta then
-- Backwards compatiblity
for i = 1, 4 do
local bag = "bag"..i
if not player_inv:is_empty(bag) then
-- Stack limit is 1, otherwise use stack:to_string()
bags[i] = player_inv:get_stack(bag, 1):get_name()
dirty_meta = true
end
end
end
-- Fill detached slots
for i = 1, 4 do
local bag = "bag"..i
bags_inv:set_size(bag, 1)
bags_inv:set_stack(bag, 1, bags[i] or "")
end
if dirty_meta then
-- Requires detached inventory to be set up
save_bags_metadata(player, bags_inv)
end
-- Clean up deprecated garbage after saving
for i = 1, 4 do
local bag = "bag"..i
player_inv:set_size(bag, 0)
end
end
minetest.register_on_joinplayer(function(player)
local player_inv = player:get_inventory()
local bags_inv = minetest.create_detached_inventory(player:get_player_name().."_bags",{
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)
player:get_inventory():set_stack(listname, index, stack)
player:get_inventory():set_size(listname.."contents",
stack:get_definition().groups.bagslots)
end,
on_take = function(inv, listname, index, stack, player)
player:get_inventory():set_stack(listname, index, nil)
save_bags_metadata(player, inv)
end,
allow_put = function(inv, listname, index, stack, player)
if stack:get_definition().groups.bagslots then
return 1
else
local new_slots = stack:get_definition().groups.bagslots
if not new_slots then
return 0
end
local player_inv = player:get_inventory()
local old_slots = player_inv:get_size(listname.."contents")
if new_slots >= old_slots then
return 1
end
-- using a smaller bag, make sure it fits
local old_list = player_inv:get_list(listname.."contents")
local new_list = {}
local slots_used = 0
local use_new_list = false
for i, v in ipairs(old_list) do
if v and not v:is_empty() then
slots_used = slots_used + 1
use_new_list = i > new_slots
new_list[slots_used] = v
end
end
if new_slots >= slots_used then
if use_new_list then
player_inv:set_list(listname.."contents", new_list)
end
return 1
end
-- New bag is smaller: Disallow inserting
return 0
end,
allow_take = function(inv, listname, index, stack, player)
if player:get_inventory():is_empty(listname.."contents") then
return stack:get_count()
else
return 0
end
end,
allow_move = function(inv, from_list, from_index, to_list, to_index, count, player)
return 0
end,
})
for i=1,4 do
local bag = "bag"..i
player_inv:set_size(bag, 1)
bags_inv:set_size(bag, 1)
bags_inv:set_stack(bag, 1, player_inv:get_stack(bag, 1))
end
on_take = function(inv, listname, index, stack, player)
player:get_inventory():set_size(listname.."contents", 0)
save_bags_metadata(player, inv)
end,
allow_move = function()
return 0
end,
}, player_name)
load_bags_metadata(player, bags_inv)
end)
-- register bag tools
@ -129,30 +241,31 @@ minetest.register_tool("unified_inventory:bag_large", {
})
-- register bag crafts
minetest.register_craft({
output = "unified_inventory:bag_small",
recipe = {
{"", "default:stick", ""},
{"group:wood", "group:wood", "group:wood"},
{"group:wood", "group:wood", "group:wood"},
},
})
if minetest.get_modpath("farming") ~= nil then
minetest.register_craft({
output = "unified_inventory:bag_small",
recipe = {
{"", "farming:cotton", ""},
{"group:wool", "group:wool", "group:wool"},
{"group:wool", "group:wool", "group:wool"},
},
})
minetest.register_craft({
output = "unified_inventory:bag_medium",
recipe = {
{"", "", ""},
{"default:stick", "unified_inventory:bag_small", "default:stick"},
{"default:stick", "unified_inventory:bag_small", "default:stick"},
},
})
minetest.register_craft({
output = "unified_inventory:bag_large",
recipe = {
{"", "", ""},
{"default:stick", "unified_inventory:bag_medium", "default:stick"},
{"default:stick", "unified_inventory:bag_medium", "default:stick"},
},
})
minetest.register_craft({
output = "unified_inventory:bag_medium",
recipe = {
{"", "", ""},
{"farming:cotton", "unified_inventory:bag_small", "farming:cotton"},
{"farming:cotton", "unified_inventory:bag_small", "farming:cotton"},
},
})
minetest.register_craft({
output = "unified_inventory:bag_large",
recipe = {
{"", "", ""},
{"farming:cotton", "unified_inventory:bag_medium", "farming:cotton"},
{"farming:cotton", "unified_inventory:bag_medium", "farming:cotton"},
},
})
end

View File

@ -1,7 +1,9 @@
local function default_refill(stack)
stack:set_count(stack:get_stack_max())
local itemdef = minetest.registered_items[stack:get_name()]
if itemdef and (itemdef.wear_represents or "mechanical_wear") == "mechanical_wear" and stack:get_wear() ~= 0 then
if itemdef
and (itemdef.wear_represents or "mechanical_wear") == "mechanical_wear"
and stack:get_wear() ~= 0 then
stack:set_wear(0)
end
return stack
@ -12,7 +14,7 @@ minetest.register_on_joinplayer(function(player)
unified_inventory.players[player_name] = {}
unified_inventory.current_index[player_name] = 1
unified_inventory.filtered_items_list[player_name] =
unified_inventory.items_list
unified_inventory.items_list
unified_inventory.activefilter[player_name] = ""
unified_inventory.active_search_direction[player_name] = "nochange"
unified_inventory.apply_filter(player, "", "nochange")
@ -21,7 +23,7 @@ minetest.register_on_joinplayer(function(player)
unified_inventory.current_item[player_name] = nil
unified_inventory.current_craft_direction[player_name] = "recipe"
unified_inventory.set_inventory_formspec(player,
unified_inventory.default)
unified_inventory.default)
-- Refill slot
local refill = minetest.create_detached_inventory(player_name.."refill", {
@ -41,18 +43,22 @@ minetest.register_on_joinplayer(function(player)
minetest.sound_play("electricity",
{to_player=player_name, gain = 1.0})
end,
})
}, player_name)
refill:set_size("main", 1)
end)
minetest.register_on_player_receive_fields(function(player, formname, fields)
local player_name = player:get_player_name()
local ui_peruser,draw_lite_mode = unified_inventory.get_per_player_formspec(player_name)
if formname ~= "" then
return
end
local player_name = player:get_player_name()
-- always take new search text, even if not searching on it yet
if fields.searchbox ~= nil and fields.searchbox ~= unified_inventory.current_searchbox[player_name] then
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
@ -68,11 +74,11 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
-- Inventory page controls
local start = math.floor(
unified_inventory.current_index[player_name] / 80 + 1)
unified_inventory.current_index[player_name] / ui_peruser.items_per_page + 1)
local start_i = start
local pagemax = math.floor(
(#unified_inventory.filtered_items_list[player_name] - 1)
/ (80) + 1)
/ (ui_peruser.items_per_page) + 1)
if fields.start_list then
start_i = 1
@ -98,15 +104,15 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
if start_i > pagemax then
start_i = pagemax
end
if not (start_i == start) then
if start_i ~= start then
minetest.sound_play("paperflip1",
{to_player=player_name, gain = 1.0})
unified_inventory.current_index[player_name] = (start_i - 1) * 80 + 1
unified_inventory.current_index[player_name] = (start_i - 1) * ui_peruser.items_per_page + 1
unified_inventory.set_inventory_formspec(player,
unified_inventory.current_page[player_name])
end
local clicked_item = nil
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]+)_(.*)$")
@ -114,9 +120,13 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
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])
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
@ -126,57 +136,80 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
minetest.sound_play("click",
{to_player=player_name, gain = 0.1})
local page = unified_inventory.current_page[player_name]
if not unified_inventory.is_creative(player_name) then
local player_creative = unified_inventory.is_creative(player_name)
if not player_creative then
page = "craftguide"
end
if page == "craftguide" then
unified_inventory.current_item[player_name] = clicked_item
unified_inventory.alternate[player_name] = 1
unified_inventory.set_inventory_formspec(player,
"craftguide")
else
if unified_inventory.is_creative(player_name) then
local inv = player:get_inventory()
local stack = ItemStack(clicked_item)
stack:set_count(stack:get_stack_max())
if inv:room_for_item("main", stack) then
inv:add_item("main", stack)
end
unified_inventory.set_inventory_formspec(player, "craftguide")
elseif player_creative then
local inv = player:get_inventory()
local stack = ItemStack(clicked_item)
stack:set_count(stack:get_stack_max())
if inv:room_for_item("main", stack) then
inv:add_item("main", stack)
end
end
end
if fields.searchbutton then
if fields.searchbutton
or fields.key_enter_field == "searchbox" then
unified_inventory.apply_filter(player, unified_inventory.current_searchbox[player_name], "nochange")
unified_inventory.current_searchbox[player_name] = ""
unified_inventory.set_inventory_formspec(player,
unified_inventory.current_page[player_name])
minetest.sound_play("paperflip2",
{to_player=player_name, gain = 1.0})
end
-- alternate button
if fields.alternate then
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})
local item_name = unified_inventory.current_item[player_name]
if item_name then
local alternates = 0
local alternate = unified_inventory.alternate[player_name]
local crafts = unified_inventory.crafts_for[unified_inventory.current_craft_direction[player_name]][item_name]
if crafts ~= nil then
alternates = #crafts
end
if alternates > 1 then
alternate = alternate + 1
if alternate > alternates then
alternate = 1
end
unified_inventory.alternate[player_name] = alternate
unified_inventory.set_inventory_formspec(player,
unified_inventory.current_page[player_name])
end
end
-- alternate buttons
if not (fields.alternate or fields.alternate_prev) then
return
end
minetest.sound_play("click",
{to_player=player_name, gain = 0.1})
local item_name = unified_inventory.current_item[player_name]
if not item_name then
return
end
local crafts = unified_inventory.crafts_for[unified_inventory.current_craft_direction[player_name]][item_name]
if not crafts then
return
end
local alternates = #crafts
if alternates <= 1 then
return
end
local alternate
if fields.alternate then
alternate = unified_inventory.alternate[player_name] + 1
if alternate > alternates then
alternate = 1
end
elseif fields.alternate_prev then
alternate = unified_inventory.alternate[player_name] - 1
if alternate < 1 then
alternate = alternates
end
end
unified_inventory.alternate[player_name] = alternate
unified_inventory.set_inventory_formspec(player,
unified_inventory.current_page[player_name])
end)
if minetest.delete_detached_inventory then
minetest.register_on_leaveplayer(function(player)
local player_name = player:get_player_name()
minetest.delete_detached_inventory(player_name.."_bags")
minetest.delete_detached_inventory(player_name.."craftrecipe")
minetest.delete_detached_inventory(player_name.."refill")
end)
end

View File

@ -1,4 +1,6 @@
default
creative?
sfinv?
intllib?
datastorage?
farming?

1
description.txt Normal file
View File

@ -0,0 +1 @@
Unified Inventory replaces the default survival and creative inventory. It adds a nicer interface and a number of features, such as a crafting guide.

View File

@ -1,3 +1,5 @@
local S = unified_inventory.gettext
function unified_inventory.canonical_item_spec_matcher(spec)
local specname = ItemStack(spec):get_name()
if specname:sub(1, 6) == "group:" then
@ -21,9 +23,36 @@ function unified_inventory.item_matches_spec(item, spec)
return unified_inventory.canonical_item_spec_matcher(spec)(itemname)
end
function unified_inventory.extract_groupnames(groupname)
local specname = ItemStack(groupname):get_name()
if specname:sub(1, 6) == "group:" then
local group_names = specname:sub(7):split(",")
if #group_names == 1 then
return group_names[1], 1
end
local s = ""
for g=1,#group_names do
if g > 1 then
-- List connector
s = s .. S(" and ")
end
s = s .. group_names[g]
end
return s, #group_names
else
return nil, 0
end
end
unified_inventory.registered_group_items = {
mesecon_conductor_craftable = "mesecons:wire_00000000_off",
stone = "default:cobble",
wood = "default:wood",
book = "default:book",
sand = "default:sand",
leaves = "default:leaves",
tree = "default:tree",
vessel = "vessels:glass_bottle",
wool = "wool:white",
}

View File

@ -25,6 +25,9 @@ ui_skip_backward_icon.png
ui_skip_forward_icon.png
http://commons.wikimedia.org/wiki/File:Media-skip-forward.svg
ui_reset_icon.png
https://commons.wikimedia.org/wiki/File:Edit-clear.svg
ui_gohome_icon.png / ui_home_icon.png / ui_sethome_icon.png
http://commons.wikimedia.org/wiki/File:Home_256x256.png

View File

@ -1,51 +1,84 @@
-- Unified Inventory for Minetest 0.4.8+
-- Unified Inventory for Minetest >= 0.4.16
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 = {}
unified_inventory.activefilter = {}
unified_inventory.active_search_direction = {}
unified_inventory.alternate = {}
unified_inventory.current_page = {}
unified_inventory.current_searchbox = {}
unified_inventory.current_index = {}
unified_inventory.current_item = {}
unified_inventory.current_craft_direction = {}
unified_inventory.registered_craft_types = {}
unified_inventory.crafts_for = { usage = {}, recipe = {} }
unified_inventory.players = {}
unified_inventory.items_list_size = 0
unified_inventory.items_list = {}
unified_inventory.filtered_items_list_size = {}
unified_inventory.filtered_items_list = {}
unified_inventory.pages = {}
unified_inventory.buttons = {}
unified_inventory = {
activefilter = {},
active_search_direction = {},
alternate = {},
current_page = {},
current_searchbox = {},
current_index = {},
current_item = {},
current_craft_direction = {},
registered_craft_types = {},
crafts_for = {usage = {}, recipe = {} },
players = {},
items_list_size = 0,
items_list = {},
filtered_items_list_size = {},
filtered_items_list = {},
pages = {},
buttons = {},
-- Homepos stuff
unified_inventory.home_pos = {}
unified_inventory.home_filename =
worldpath.."/unified_inventory_home.home"
-- Homepos stuff
home_pos = {},
home_filename = worldpath.."/unified_inventory_home.home",
-- Default inventory page
unified_inventory.default = "craft"
-- Default inventory page
default = "craft",
-- intllib
gettext = S,
-- "Lite" mode
lite_mode = minetest.settings:get_bool("unified_inventory_lite"),
-- 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
}
-- Disable default creative inventory
if creative_inventory then
function creative_inventory.set_creative_formspec(player, start_i, pagenum)
local creative = rawget(_G, "creative") or rawget(_G, "creative_inventory")
if creative then
function creative.set_creative_formspec(player, start_i, pagenum)
return
end
end
-- Disable sfinv inventory
local sfinv = rawget(_G, "sfinv")
if sfinv then
sfinv.enabled = false
end
dofile(modpath.."/group.lua")
dofile(modpath.."/api.lua")
dofile(modpath.."/internal.lua")
dofile(modpath.."/callbacks.lua")
dofile(modpath.."/register.lua")
dofile(modpath.."/bags.lua")
if minetest.settings:get_bool("unified_inventory_bags") ~= false then
dofile(modpath.."/bags.lua")
end
dofile(modpath.."/item_names.lua")
if minetest.get_modpath("datastorage") then
dofile(modpath.."/waypoints.lua")
end

View File

@ -1,9 +1,5 @@
local S
if intllib then
S = intllib.Getter()
else
S = function(s) return s end
end
local S = unified_inventory.gettext
local F = minetest.formspec_escape
-- This pair of encoding functions is used where variable text must go in
-- button names, where the text might contain formspec metacharacters.
@ -20,126 +16,259 @@ function unified_inventory.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
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
end
function unified_inventory.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)
unified_inventory.current_page[player_name] = page
local pagedef = unified_inventory.pages[page]
local formspec = "size[14,10]"
local fsdata = nil
local formspec = {
"size[14,10]",
"background[-0.19,-0.25;14.4,10.75;ui_form_bg.png]" -- Background
}
local n = 3
if draw_lite_mode then
formspec[1] = "size[11,7.7]"
formspec[2] = "background[-0.19,-0.2;11.4,8.4;ui_form_bg.png]"
end
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
-- Background
formspec = formspec .. "background[-0.19,-0.25;14.4,10.75;ui_form_bg.png]"
-- Current page
if unified_inventory.pages[page] then
fsdata = pagedef.get_formspec(player)
formspec = formspec .. fsdata.formspec
else
if not unified_inventory.pages[page] then
return "" -- Invalid page name
end
local perplayer_formspec = unified_inventory.get_per_player_formspec(player_name)
local fsdata = pagedef.get_formspec(player, perplayer_formspec)
formspec[n] = fsdata.formspec
n = n+1
local button_row = 0
local button_col = 0
-- Main buttons
local filtered_inv_buttons = {}
for i, def in pairs(unified_inventory.buttons) do
local tooltip = def.tooltip or ""
if not (draw_lite_mode and def.hide_lite) then
table.insert(filtered_inv_buttons, def)
end
end
for i, def in pairs(filtered_inv_buttons) do
if draw_lite_mode and i > 4 then
button_row = 1
button_col = 1
end
if def.type == "image" then
formspec = formspec.."image_button["
..(0.65 * (i - 1))..",9;0.8,0.8;"
..minetest.formspec_escape(def.image)..";"
..minetest.formspec_escape(def.name)..";]"
.."tooltip["..minetest.formspec_escape(def.name)
..";"..tooltip.."]"
if (def.condition == nil or def.condition(player) == true) then
formspec[n] = "image_button["
formspec[n+1] = ( ui_peruser.main_button_x + 0.65 * (i - 1) - button_col * 0.65 * 4)
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
else
formspec[n] = "image["
formspec[n+1] = ( ui_peruser.main_button_x + 0.65 * (i - 1) - button_col * 0.65 * 4)
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
end
end
end
if fsdata.draw_inventory ~= false then
-- Player inventory
formspec = formspec.."listcolors[#00000000;#00000000]"
formspec = formspec .. "list[current_player;main;0,4.5;8,4;]"
formspec[n] = "listcolors[#00000000;#00000000]"
formspec[n+1] = "list[current_player;main;0,"..(ui_peruser.formspec_y + 3.5)..";8,4;]"
n = n+2
end
if fsdata.draw_item_list == false then
return formspec
return table.concat(formspec, "")
end
-- Controls to flip items pages
local start_x = 9.2
formspec = formspec
.. "image_button[" .. (start_x + 0.6 * 0)
.. ",9;.8,.8;ui_skip_backward_icon.png;start_list;]"
.. "tooltip[start_list;" .. minetest.formspec_escape(S("First page")) .. "]"
.. "image_button[" .. (start_x + 0.6 * 1)
.. ",9;.8,.8;ui_doubleleft_icon.png;rewind3;]"
.. "tooltip[rewind3;" .. minetest.formspec_escape(S("Back three pages")) .. "]"
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")) .. "]"
.. "image_button[" .. (start_x + 0.6 * 2)
.. ",9;.8,.8;ui_left_icon.png;rewind1;]"
.. "tooltip[rewind1;" .. minetest.formspec_escape(S("Back one page")) .. "]"
.. "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")) .. "]"
.. "image_button[" .. (start_x + 0.6 * 3)
.. ",9;.8,.8;ui_right_icon.png;forward1;]"
.. "tooltip[forward1;" .. minetest.formspec_escape(S("Forward one page")) .. "]"
.. "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")) .. "]"
.. "image_button[" .. (start_x + 0.6 * 4)
.. ",9;.8,.8;ui_doubleright_icon.png;forward3;]"
.. "tooltip[forward3;" .. minetest.formspec_escape(S("Forward three pages")) .. "]"
.. "image_button[" .. (start_x + 0.6 * 5)
.. ",9;.8,.8;ui_skip_forward_icon.png;end_list;]"
.. "tooltip[end_list;" .. minetest.formspec_escape(S("Last page")) .. "]"
.. "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")) .. "]"
end
n = n+1
-- Search box
formspec = formspec .. "field[9.5,8.325;3,1;searchbox;;"
.. minetest.formspec_escape(unified_inventory.current_searchbox[player_name]) .. "]"
formspec = formspec .. "image_button[12.2,8.1;.8,.8;ui_search_icon.png;searchbutton;]"
.. "tooltip[searchbutton;" ..S("Search") .. "]"
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")) .. "]"
end
n = n+3
local no_matches = S("No matching items")
if draw_lite_mode then
no_matches = S("No matches.")
end
-- Items list
if #unified_inventory.filtered_items_list[player_name] == 0 then
formspec = formspec.."label[8.2,0;" .. S("No matching items") .. "]"
formspec[n] = "label[8.2,"..ui_peruser.form_header_y..";" .. 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 / (80) + 1)
local page = math.floor(list_index / (ui_peruser.items_per_page) + 1)
local pagemax = math.floor(
(#unified_inventory.filtered_items_list[player_name] - 1)
/ (80) + 1)
/ (ui_peruser.items_per_page) + 1)
local item = {}
for y = 0, 9 do
for x = 0, 7 do
local name = unified_inventory.filtered_items_list[player_name][list_index]
if minetest.registered_items[name] then
formspec = formspec.."item_image_button["
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]
if minetest.registered_items[name] 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 cdir == "recipe" then
dir = "usage"
elseif cdir == "usage" then
dir = "recipe"
end
else
-- Default: use active search direction by default
dir = unified_inventory.active_search_direction[player_name]
end
formspec[n] = "item_image_button["
..(8.2 + x * 0.7)..","
..(1 + y * 0.7)..";.81,.81;"
..(ui_peruser.formspec_y + ui_peruser.page_y + y * 0.7)..";.81,.81;"
..name..";item_button_"..dir.."_"
..unified_inventory.mangle_for_formspec(name)..";]"
list_index = list_index + 1
n = n+1
list_index = list_index + 1
end
end
end
end
formspec = formspec.."label[8.2,0;"..S("Page") .. ": "
formspec[n] = "label[8.2,"..ui_peruser.form_header_y..";"..F(S("Page")) .. ": "
.. S("%s of %s"):format(page,pagemax).."]"
end
n= n+1
if unified_inventory.activefilter[player_name] ~= "" then
formspec = formspec.."label[8.2,0.4;" .. S("Filter") .. ":]"
formspec = formspec.."label[9,0.4;"..minetest.formspec_escape(unified_inventory.activefilter[player_name]).."]"
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]).."]"
end
return formspec
return table.concat(formspec, "")
end
function unified_inventory.set_inventory_formspec(player, page)
if player then
local formspec = unified_inventory.get_formspec(player, page)
player:set_inventory_formspec(formspec)
player:set_inventory_formspec(unified_inventory.get_formspec(player, page))
end
end
--apply filter to the inventory list (create filtered copy of full one)
function unified_inventory.apply_filter(player, filter, search_dir)
if not player then
return false
end
local player_name = player:get_player_name()
local lfilter = string.lower(filter)
local ffilter
@ -147,7 +276,8 @@ function unified_inventory.apply_filter(player, filter, search_dir)
local groups = lfilter:sub(7):split(",")
ffilter = function(name, def)
for _, group in ipairs(groups) do
if not ((def.groups[group] or 0) > 0) then
if not def.groups[group]
or def.groups[group] <= 0 then
return false
end
end
@ -160,9 +290,15 @@ function unified_inventory.apply_filter(player, filter, search_dir)
return string.find(lname, lfilter, 1, true) or string.find(ldesc, 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 (def.groups.not_in_creative_inventory or 0) == 0 and (def.description or "") ~= "" and ffilter(name, def) then
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)
end
end
@ -172,7 +308,7 @@ function unified_inventory.apply_filter(player, filter, search_dir)
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])
unified_inventory.current_page[player_name])
end
function unified_inventory.items_in_group(groups)

45
intllib.lua Normal file
View File

@ -0,0 +1,45 @@
-- 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

View File

@ -1,58 +1,76 @@
-- code based on 4itemnames mod by 4aiman
-- Based on 4itemnames mod by 4aiman
local wield = {}
local huds = {}
local dtimes = {}
local dlimit = 3 -- hud will be hidden after this much seconds
local airhudmod = minetest.get_modpath("4air")
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 get_desc(item)
if minetest.registered_nodes[item] then return minetest.registered_nodes[item]["description"] end
if minetest.registered_items[item] then return minetest.registered_items[item]["description"] end
if minetest.registered_craftitems[item] then return minetest.registered_craftitems[item]["description"] end
if minetest.registered_tools[item] then return minetest.registered_tools[item]["description"] end
return ""
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
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},
number = 0xFFFFFF,
text = "",
}),
dtime = dlimit,
index = 1,
itemname = ""
}
end
minetest.register_on_joinplayer(function(player)
minetest.after(0.0, function()
local player_name = player:get_player_name()
local off = {x=0, y=-70}
if airhudmod then
off.y=off.y-20
end
huds[player_name] = player:hud_add({
hud_elem_type = "text",
position = {x=0.5, y=1},
offset = off,
alignment = {x=0, y=0},
number = 0xFFFFFF ,
text = "",
})
--print(dump("item hud id: "..huds[player_name]))
end)
minetest.after(0, set_hud, player)
end)
minetest.register_on_leaveplayer(function(player)
item_names[player:get_player_name()] = nil
end)
minetest.register_globalstep(function(dtime)
local players = minetest.get_connected_players()
for i,player in ipairs(players) do
local player_name = player:get_player_name()
local wstack = player:get_wielded_item():get_name()
for _, player in pairs(minetest.get_connected_players()) do
local data = item_names[player:get_player_name()]
if not data or not data.hud then
data = {} -- Update on next step
set_hud(player)
end
if dtimes[player_name] and dtimes[player_name] < dlimit then
dtimes[player_name] = dtimes[player_name] + dtime
if dtimes[player_name] > dlimit and huds[player_name] then
player:hud_change(huds[player_name], 'text', "")
local index = player:get_wield_index()
local stack = player:get_wielded_item()
local itemname = stack:get_name()
if data.hud and data.dtime < dlimit then
data.dtime = data.dtime + dtime
if data.dtime > dlimit then
player:hud_change(data.hud, 'text', "")
end
end
if wstack ~= wield[player_name] then
wield[player_name] = wstack
local desc = get_desc(wstack)
dtimes[player_name] = 0
if huds[player_name] then
player:hud_change(huds[player_name], 'text', desc)
if data.hud and (itemname ~= data.itemname or index ~= data.index) then
data.itemname = itemname
data.index = index
data.dtime = 0
local desc = stack.get_meta
and stack:get_meta():get_string("description")
if not desc or desc == "" then
-- Try to use default description when none is set in the meta
local def = minetest.registered_items[itemname]
desc = def and def.description or ""
end
player:hud_change(data.hud, 'text', desc)
end
end
end)

366
locale/de.po Normal file
View File

@ -0,0 +1,366 @@
# 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"

View File

@ -1,71 +0,0 @@
# Translation by Xanthin
### bags.lua ###
Bags = Rucksaecke
Bag 1 = Rucksack 1
Bag 2 = Rucksack 2
Bag 3 = Rucksack 3
Bag 4 = Rucksack 4
Small Bag = Rucksack (klein)
Medium Bag = Rucksack (mittel)
Large Bag = Rucksack (gross)
### inernal.lua ###
First page =
Back three pages =
Back one page =
Forward one page =
Forward three pages =
Last page =
No matching items =
Page = Seite
%s of %s = %s von %s
Filter = Suche
Search =
### register.lua ###
Can use the creative inventory = Kann das Kreativinventar nutzen
Home position set to: %s = Ausgangsposition nach: %s gesetzt
Time of day set to 6am = Tageszeit auf 6 Uhr morgens geaendert
You don't have the settime priviledge! = Du hast nicht das "settime" Privileg!
Time of day set to 9pm = Tageszeit auf 9 Uhr abends geaendert
This button has been disabled outside of creative mode to prevent accidental inventory trashing. Use the trash slot instead. = Diese Funktion ist ausserhalb des Kreativmodus deaktiviert um ein versehentliches Loeschen des ganzen Inventars zu verhindern.\nNutze stattdessen das Muellfeld.
Inventory Cleared! = Inventar geleert!
Crafting = Bauen
Trash: = Muell:
Refill: = Nachfuellen:
Crafting Guide = Bauanleitung
Method: = Methode:
Result: %s = Ergebnis: %s
crafting = Bauen
shapeless crafting = Formloses Bauen
cooking = Kochen
alloy cooking = Legierung Kochen
Copy to craft grid: = Kopiere ins Baufeld:
All = Alles
Recipe %s of %s = Rezept %s von %s
Alternate = Alternative
Crafting Grid =
### waypoints.lua ###
White =
Yellow =
Red =
Green =
Blue =
Waypoints =
Waypoint active =
Waypoint inactive =
World position =
Name =
HUD text color =
Edit waypoint name =
Rename waypoint =
Change color of waypoint display =
Set waypoint to current location =
Make waypoint visible =
Make waypoint invisible =
Disable display of waypoint coordinates =
Enable display of waypoint coordinates =
Finish editing =
Select Waypoint #%d =

366
locale/es.po Normal file
View File

@ -0,0 +1,366 @@
# 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"

View File

@ -1,72 +0,0 @@
# Translation by Diego Martínez <kaeza>
# Template
### bags.lua ###
Bags = Bolsas
Bag 1 = Bolsa 1
Bag 2 = Bolsa 2
Bag 3 = Bolsa 3
Bag 4 = Bolsa 4
Small Bag = Bolsa Pequeña
Medium Bag = Bolsa Mediana
Large Bag = Bolsa Grande
### inernal.lua ###
First page =
Back three pages =
Back one page =
Forward one page =
Forward three pages =
Last page =
No matching items =
Page = Página
%s of %s = %s de %s
Filter = Filtro
Search =
### register.lua ###
Can use the creative inventory = Puede usar el inventario creativo
Home position set to: %s = Posición de hogar cambiada a: %s
Time of day set to 6am = Hora del día cambiada a 6AM
You don't have the settime priviledge! = ¡No tienes el privilegio `settime'!
Time of day set to 9pm = Hora del día cambiada a 9PM
This button has been disabled outside of creative mode to prevent accidental inventory trashing. Use the trash slot instead. = Éste botón ha sido deshabilitado para prevenir la destrucción accidental del inventario.\nUsa la ranura para basura en su lugar.
Inventory Cleared! = ¡Inventario limpio!
Crafting = Elaboración
Trash: = Basura:
Refill: = Rellenar:
Crafting Guide = Guía de Elaboración
Method: = Método:
Result: %s = Resultado: %s
crafting = elaboración
shapeless crafting = elaboración sin forma
cooking = hornear
alloy cooking = horneado de aleación
Copy to craft grid: = Copiar al cuadro de elaboración
All = Todos
Recipe %s of %s = Receta %s de %s
Alternate = Alternar
Crafting Grid =
### waypoints.lua ###
White = Blanco
Yellow = Amarillo
Red = Rojo
Green = Verde
Blue = Azul
Waypoints = Puntos de paso
Waypoint active = Punto de paso activo
Waypoint inactive = Punto de paso inactivo
World position = Posición en el mundo
Name = Nombre
HUD text color = Color del HUD
Edit waypoint name =
Rename waypoint =
Change color of waypoint display =
Set waypoint to current location =
Make waypoint visible =
Make waypoint invisible =
Disable display of waypoint coordinates =
Enable display of waypoint coordinates =
Finish editing =
Select Waypoint #%d =

364
locale/fr.po Normal file
View File

@ -0,0 +1,364 @@
# 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"

View File

@ -1,72 +0,0 @@
# Translation by kilbith
# Template
### bags.lua ###
Bags = Sacs
Bag 1 = Sac 1
Bag 2 = Sac 2
Bag 3 = Sac 3
Bag 4 = Sac 4
Small Bag = Petit sac
Medium Bag = Sac moyen
Large Bag = Grand sac
### inernal.lua ###
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
Page = Page
%s of %s = %s de %s
Filter = Filtre
Search = Rechercher
### register.lua ###
Can use the creative inventory = Vous pouvez utiliser l'inventaire créatif
Home position set to: %s = Position de votre base fixée à : %s
Time of day set to 6am = Heure fixée à 6h
You don't have the settime priviledge! = Vous n'avez pas le privilège 'settime' !
Time of day set to 9pm = Heure fixée à 21h
This button has been disabled outside of creative mode to prevent accidental inventory trashing.\nUse the trash slot instead. = Ce bouton a été désactivé en dehors du mode créatif pour éviter des saccages dans l'inventaire.\nUtilisez plutôt la case poubelle.
Inventory Cleared! = Inventaire vidé !
Crafting = Création
Trash: = Poubelle :
Refill: = Remplir :
Crafting Guide = Guide de création
Method: = Méthode :
Result: %s = Résultat : %s
crafting = fabrication
shapeless crafting = fabrication sans forme
cooking = cuisson
alloy cooking = cuisson des métaux
Copy to craft grid: = Copier sur la grille de création
All = Tout
Recipe %s of %s = Recette %s de %d
Alternate = Alternative
Crafting Grid = Grille de création
### waypoints.lua ###
White = Blanc
Yellow = Jaune
Red = Rouge
Green = Vert
Blue = Bleu
Waypoints = Point de passage
Waypoint active = Point de passage actif
Waypoint inactive = Point de passage inactif
World position = Position dans le monde
Name = Nom
HUD text color = Couleur de texte du HUD
Edit waypoint name = Editer le nom du point de passage
Rename waypoint = Renommer le point de passage
Change color of waypoint display = Changer la couleur du point de passage
Set waypoint to current location = Marquer un point de passage à la position actuelle
Make waypoint visible = Rendre visible le point de passage
Make waypoint invisible = Rendre invisible le point de passage
Disable display of waypoint coordinates = Masquer les coordonnées des points de passages
Enable display of waypoint coordinates = Montrer les coordonnées des points de passages
Finish editing = Terminer l'édition
Select Waypoint #%d = Choisir un point de passage #%d

359
locale/pl.po Normal file
View File

@ -0,0 +1,359 @@
# 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"

View File

@ -1,71 +0,0 @@
# Translation by RealBadAngel
### bags.lua ###
Bags = Plecaki
Bag 1 = Plecak 1
Bag 2 = Plecak 2
Bag 3 = Plecak 3
Bag 4 = Plecak 4
Small Bag = Maly plecak
Medium Bag = Sredni plecak
Large Bag = Duzy plecak
### inernal.lua ###
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
Page = Strona
%s of %s = %s z %s
Filter = Filtr
Search = Szukaj
### register.lua ###
Can use the creative inventory =
Home position set to: %s = Pozycja domowa ustawiona na: %s
Time of day set to 6am = Czas ustawiony na 6:00
You don't have the settime priviledge! = Nie masz uprawnien do zmiany czasu (settime)!
Time of day set to 9pm = Czas ustawiony na 21:00
This button has been disabled outside of creative mode to prevent accidental inventory trashing.\nUse the trash slot instead. =
Inventory Cleared! =
Crafting =
Trash: = Smietnik:
Refill: = Uzupelnianie:
Crafting Guide =
Method: = Metoda:
Result: %s = Wynik: %s
crafting =
shapeless crafting =
cooking =
alloy cooking =
Copy to craft grid: =
All = Wszystko
Recipe %s of %s = Recepta %s z %s
Alternate = Alternatywa
Crafting Grid =
### waypoints.lua ###
White = Bialy
Yellow = Zolty
Red = Czerwony
Green = Zielony
Blue = Niebieski
Waypoints = Punkty orientacyjne
Waypoint active = Punkt wlaczony
Waypoint inactive = Punkt wylaczony
World position = Pozycja
Name = Nazwa
HUD text color = Kolor tekstu HUD
Edit waypoint name = Edytuj nazwe punktu
Rename waypoint = Zmien nazwe punktu
Change color of waypoint display = Zmien kolor punktu
Set waypoint to current location = Ustaw punkt orientacyjny na biezacej pozycji
Make waypoint visible = Pokaz punkt
Make waypoint invisible = Nie pokazuj punktu
Disable display of waypoint coordinates = Pokazuj koordynaty punktu
Enable display of waypoint coordinates = Nie pokazuj koordynatow punktu
Finish editing = Zakoncz edycje
Select Waypoint #%d = Wybierz punkt #%d

366
locale/pt.po Normal file
View File

@ -0,0 +1,366 @@
# 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 Normal file
View File

@ -0,0 +1,366 @@
# 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а"

View File

@ -1,76 +0,0 @@
# Translation by eternal_sorrow
# Template
### bags.lua ###
Bags = Сумки
Bag 1 = Сумка 1
Bag 2 = Сумка 2
Bag 3 = Сумка 3
Bag 4 = Сумка 4
Small Bag = Малая сумка
Medium Bag = Средняя сумка
Large Bag = Большая сумка
### inernal.lua ###
First page = Первая страница
Back three pages = Назад на три страницы
Back one page = Назад на одну страницу
Forward one page = Вперед на одну страницу
Forward three pages = Вперед на три страницы
Last page = Последняя страница
No matching items = Совпадений нет
Page = Страница
%s of %s = %s из %s
Filter = Фильтр
Search = Поиск
### register.lua ###
Can use the creative inventory = Можно использовать инвентарь творческого режима
Home position set to: %s = Дом теперь расположен по коодинатам: %s
Time of day set to 6am = Установлено время 6 утра
You don't have the settime priviledge! = Вам не разрешено устанавливать время!
Time of day set to 9pm = Установлено время 9 вечера
This button has been disabled outside of creative mode to prevent accidental inventory trashing.\nUse the trash slot instead. = Эта кнопка отключена вне творческого режима, чтобы предотвратить случайное уничтожение предметов.\nИспользуйте слот корзины вместо нее.
Inventory Cleared! = Инвентарь очищен!
Crafting = Крафт
Trash: = Корзина:
Refill: = Размножить:
Crafting Guide = Книга рецептов
Method: = Способ:
Result: %s = Результат: %s
crafting = крафт
shapeless crafting = бесформенный крафт
cooking = жарка
alloy cooking = приготовление сплавов
Copy to craft grid: = В решетку крафта:
All = Все
Recipe %s of %s = Рецепт %s из %s
Alternate = Следующий
Crafting Grid = Решетка крафта
Go home = Отправиться домой
Set time to day = День
Set time to night = Ночь
Clear inventory = Очистить инвентарь
### waypoints.lua ###
White = Белый
Yellow = Желтый
Red = Красный
Green = Зелёный
Blue = Синий
Waypoints = Путевые точки
Waypoint active = Путевая точка активна
Waypoint inactive = Путевая точка неактивна
World position = Позиция
Name = Имя
HUD text color = Цвет текста
Edit waypoint name = Редактировать имя путевой точки
Rename waypoint = Переименовать путевую точку
Change color of waypoint display = Изменить цвет путевой точки
Set waypoint to current location = Установить путевую точку в текущем местоположении
Make waypoint visible = Сделать путевую точку видимой
Make waypoint invisible = Сделать путевую точку невидимой
Disable display of waypoint coordinates = Отключить отображение координат путевой точки
Enable display of waypoint coordinates = Включить отображение координат путевой точки
Finish editing = Завершить редактирование
Select Waypoint #%d = Выбрать путевую точку №%d

358
locale/template.pot Normal file
View File

@ -0,0 +1,358 @@
# LANGUAGE 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.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, 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: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \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 ""
#: bags.lua
msgid "Bag @1"
msgstr ""
#: 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 ""
#: 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 ""
#: internal.lua
#, lua-format
msgid "%s of %s"
msgstr ""
#: 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 ""
#: register.lua
msgid "You don't have the \"home\" privilege!"
msgstr ""
#: register.lua
msgid "Go home"
msgstr ""
#: register.lua
msgid "Set time to day"
msgstr ""
#: register.lua
msgid "Time of day set to 6am"
msgstr ""
#: register.lua
msgid "You don't have the settime privilege!"
msgstr ""
#: register.lua
msgid "Set time to night"
msgstr ""
#: register.lua
msgid "Time of day set to 9pm"
msgstr ""
#: 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 ""
#: 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 ""
#: register.lua
#, lua-format
msgid "Any item belonging to the groups %s"
msgstr ""
#: register.lua
#, lua-format
msgid "Recipe %d of %d"
msgstr ""
#: 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 ""
#: 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 ""
#: 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 ""
#: waypoints.lua
#, lua-format
msgid "Waypoint %d"
msgstr ""
#: 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 ""
#: 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 ""

View File

@ -1,72 +0,0 @@
# Translation by
# Template
### bags.lua ###
Bags =
Bag 1 =
Bag 2 =
Bag 3 =
Bag 4 =
Small Bag =
Medium Bag =
Large Bag =
### inernal.lua ###
First page =
Back three pages =
Back one page =
Forward one page =
Forward three pages =
Last page =
No matching items =
Page =
%s of %s =
Filter =
Search =
### register.lua ###
Can use the creative inventory =
Home position set to: %s =
Time of day set to 6am =
You don't have the settime priviledge! =
Time of day set to 9pm =
This button has been disabled outside of creative mode to prevent accidental inventory trashing.\nUse the trash slot instead. =
Inventory Cleared! =
Crafting =
Trash: =
Refill: =
Crafting Guide =
Method: =
Result: %s =
crafting =
shapeless crafting =
cooking =
alloy cooking =
Copy to craft grid: =
All =
Recipe %s of %s =
Alternate =
Crafting Grid =
### waypoints.lua ###
White =
Yellow =
Red =
Green =
Blue =
Waypoints =
Waypoint active =
Waypoint inactive =
World position =
Name =
HUD text color =
Edit waypoint name =
Rename waypoint =
Change color of waypoint display =
Set waypoint to current location =
Make waypoint visible =
Make waypoint invisible =
Disable display of waypoint coordinates =
Enable display of waypoint coordinates =
Finish editing =
Select Waypoint #%d =

360
locale/tr.po Normal file
View File

@ -0,0 +1,360 @@
# 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"

1
mod.conf Normal file
View File

@ -0,0 +1 @@
name = unified_inventory

View File

@ -1,15 +1,17 @@
local S
if intllib then
S = intllib.Getter()
else
S = function(s) return s end
end
local S = unified_inventory.gettext
local F = minetest.formspec_escape
minetest.register_privilege("creative", {
description = "Can use the creative inventory",
description = S("Can use the creative inventory"),
give_to_singleplayer = false,
})
minetest.register_privilege("ui_full", {
description = S("Forces Unified Inventory to be displayed in Full mode if Lite mode is configured globally"),
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
@ -42,27 +44,48 @@ unified_inventory.register_button("home_gui_set", {
type = "image",
image = "ui_sethome_icon.png",
tooltip = S("Set home position"),
hide_lite=true,
action = function(player)
local player_name = player:get_player_name()
unified_inventory.set_home(player, player:getpos())
local home = unified_inventory.home_pos[player_name]
if home ~= nil then
minetest.sound_play("dingdong",
{to_player=player_name, gain = 1.0})
if minetest.check_player_privs(player_name, {home=true}) then
unified_inventory.set_home(player, player:getpos())
local home = unified_inventory.home_pos[player_name]
if home ~= nil then
minetest.sound_play("dingdong",
{to_player=player_name, gain = 1.0})
minetest.chat_send_player(player_name,
S("Home position set to: %s"):format(minetest.pos_to_string(home)))
end
else
minetest.chat_send_player(player_name,
S("Home position set to: %s"):format(minetest.pos_to_string(home)))
S("You don't have the \"home\" privilege!"))
unified_inventory.set_inventory_formspec(player, unified_inventory.current_page[player_name])
end
end,
condition = function(player)
return minetest.check_player_privs(player:get_player_name(), {home=true})
end,
})
unified_inventory.register_button("home_gui_go", {
type = "image",
image = "ui_gohome_icon.png",
tooltip = S("Go home"),
hide_lite=true,
action = function(player)
minetest.sound_play("teleport",
local player_name = player:get_player_name()
if minetest.check_player_privs(player_name, {home=true}) then
minetest.sound_play("teleport",
{to_player=player:get_player_name(), gain = 1.0})
unified_inventory.go_home(player)
unified_inventory.go_home(player)
else
minetest.chat_send_player(player_name,
S("You don't have the \"home\" privilege!"))
unified_inventory.set_inventory_formspec(player, unified_inventory.current_page[player_name])
end
end,
condition = function(player)
return minetest.check_player_privs(player:get_player_name(), {home=true})
end,
})
@ -70,6 +93,7 @@ unified_inventory.register_button("misc_set_day", {
type = "image",
image = "ui_sun_icon.png",
tooltip = S("Set time to day"),
hide_lite=true,
action = function(player)
local player_name = player:get_player_name()
if minetest.check_player_privs(player_name, {settime=true}) then
@ -80,15 +104,20 @@ unified_inventory.register_button("misc_set_day", {
S("Time of day set to 6am"))
else
minetest.chat_send_player(player_name,
S("You don't have the settime priviledge!"))
S("You don't have the settime privilege!"))
unified_inventory.set_inventory_formspec(player, unified_inventory.current_page[player_name])
end
end,
condition = function(player)
return minetest.check_player_privs(player:get_player_name(), {settime=true})
end,
})
unified_inventory.register_button("misc_set_night", {
type = "image",
image = "ui_moon_icon.png",
tooltip = S("Set time to night"),
hide_lite=true,
action = function(player)
local player_name = player:get_player_name()
if minetest.check_player_privs(player_name, {settime=true}) then
@ -99,9 +128,13 @@ unified_inventory.register_button("misc_set_night", {
S("Time of day set to 9pm"))
else
minetest.chat_send_player(player_name,
S("You don't have the settime priviledge!"))
S("You don't have the settime privilege!"))
unified_inventory.set_inventory_formspec(player, unified_inventory.current_page[player_name])
end
end,
condition = function(player)
return minetest.check_player_privs(player:get_player_name(), {settime=true})
end,
})
unified_inventory.register_button("clear_inv", {
@ -116,42 +149,49 @@ unified_inventory.register_button("clear_inv", {
.." 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])
return
end
player:get_inventory():set_list("main", {})
minetest.chat_send_player(player_name, 'Inventory Cleared!')
minetest.chat_send_player(player_name, S('Inventory cleared!'))
minetest.sound_play("trash_all",
{to_player=player_name, gain = 1.0})
end,
condition = function(player)
return unified_inventory.is_creative(player:get_player_name())
end,
})
unified_inventory.register_page("craft", {
get_formspec = function(player, formspec)
get_formspec = function(player, perplayer_formspec)
local formspecy = perplayer_formspec.formspec_y
local formheadery = perplayer_formspec.form_header_y
local player_name = player:get_player_name()
local formspec = "background[0,1;8,3;ui_crafting_form.png]"
formspec = formspec.."background[0,4.5;8,4;ui_main_inventory.png]"
formspec = formspec.."label[0,0;Crafting]"
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,1;1,1;]"
formspec = formspec.."list[current_player;craft;2,1;3,3;]"
formspec = formspec.."label[7,2.5;" .. S("Trash:") .. "]"
formspec = formspec.."list[detached:trash;main;7,3;1,1;]"
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;]"
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,2.5;" .. S("Refill:") .. "]"
formspec = formspec.."list[detached:"..minetest.formspec_escape(player_name).."refill;main;0,3;1,1;]"
formspec = formspec.."label[0,"..(formspecy + 1.5)..";" .. F(S("Refill:")) .. "]"
formspec = formspec.."list[detached:"..F(player_name).."refill;main;0,"..(formspecy +2)..";1,1;]"
end
return {formspec=formspec}
end,
})
-- stack_image_button(): generate a form button displaying a stack of items
--
-- Normally a simple item_image_button[] is used. If the stack contains
-- more than one item, item_image_button[] doesn't have an option to
-- display an item count in the way that an inventory slot does, so
-- we have to fake it using the label facility.
--
-- The specified item may be a group. In that case, the group will be
-- represented by some item in the group, along with a flag indicating
-- that it's a group. If the group contains only one item, it will be
@ -161,7 +201,7 @@ local function stack_image_button(x, y, w, h, buttonname_prefix, item)
local name = item:get_name()
local count = item:get_count()
local show_is_group = false
local displayitem = name
local displayitem = name.." "..count
local selectitem = name
if name:sub(1, 6) == "group:" then
local group_name = name:sub(7)
@ -170,26 +210,46 @@ local function stack_image_button(x, y, w, h, buttonname_prefix, item)
displayitem = group_item.item or "unknown"
selectitem = group_item.sole and displayitem or name
end
local label = string.format("\n\n%s%7d", show_is_group and "G" or " ", count):gsub(" 1$", " .")
if label == "\n\n ." then label = "" end
return string.format("item_image_button[%u,%u;%u,%u;%s;%s;%s]",
local label = show_is_group and "G" or ""
local buttonname = F(buttonname_prefix..unified_inventory.mangle_for_formspec(selectitem))
local button = string.format("item_image_button[%f,%f;%f,%f;%s;%s;%s]",
x, y, w, h,
minetest.formspec_escape(displayitem),
minetest.formspec_escape(buttonname_prefix..unified_inventory.mangle_for_formspec(selectitem)),
label)
F(displayitem), buttonname, label)
if show_is_group then
local groupstring, andcount = unified_inventory.extract_groupnames(name)
local grouptip
if andcount == 1 then
grouptip = string.format(S("Any item belonging to the %s group"), groupstring)
elseif andcount > 1 then
grouptip = string.format(S("Any item belonging to the groups %s"), groupstring)
end
grouptip = F(grouptip)
if andcount >= 1 then
button = button .. string.format("tooltip[%s;%s]", buttonname, grouptip)
end
end
return button
end
local recipe_text = {
recipe = "Recipe",
usage = "Usage",
recipe = S("Recipe %d of %d"),
usage = S("Usage %d of %d"),
}
local no_recipe_text = {
recipe = "No recipes",
usage = "No usages",
recipe = S("No recipes"),
usage = S("No usages"),
}
local role_text = {
recipe = "Result",
usage = "Ingredient",
recipe = S("Result"),
usage = S("Ingredient"),
}
local next_alt_text = {
recipe = S("Show next recipe"),
usage = S("Show next usage"),
}
local prev_alt_text = {
recipe = S("Show previous recipe"),
usage = S("Show previous usage"),
}
local other_dir = {
recipe = "usage",
@ -197,16 +257,32 @@ local other_dir = {
}
unified_inventory.register_page("craftguide", {
get_formspec = function(player)
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 player_name = player:get_player_name()
local player_privs = minetest.get_player_privs(player_name)
local formspec = ""
formspec = formspec.."background[0,4.5;8,4;ui_main_inventory.png]"
formspec = formspec.."label[0,0;" .. S("Crafting Guide") .. "]"
formspec = formspec.."background[0,"..(formspecy + 3.5)..";8,4;ui_main_inventory.png]"
formspec = formspec.."label[0,"..formheadery..";" .. F(S("Crafting Guide")) .. "]"
formspec = formspec.."listcolors[#00000000;#00000000]"
local item_name = unified_inventory.current_item[player_name]
if not item_name then return {formspec=formspec} end
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)"), 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 rdir
if dir == "recipe" then rdir = "usage" end
if dir == "usage" then rdir = "recipe" end
local crafts = unified_inventory.crafts_for[dir][item_name]
local alternate = unified_inventory.alternate[player_name]
local alternates, craft
@ -214,69 +290,215 @@ unified_inventory.register_page("craftguide", {
alternates = #crafts
craft = crafts[alternate]
end
local has_creative = player_privs.give or player_privs.creative or
minetest.settings:get_bool("creative_mode")
formspec = formspec.."background[0,1;8,3;ui_craftguide_form.png]"
formspec = formspec.."textarea[0.3,0.6;10,1;;"..minetest.formspec_escape(role_text[dir]..": "..item_name)..";]"
formspec = formspec.."background[0.5,"..(formspecy + 0.2)..";8,3;ui_craftguide_form.png]"
formspec = formspec.."textarea["..craftresultx..","..craftresulty
..";10,1;;"..F(role_text[dir])..": "..item_name_shown..";]"
formspec = formspec..stack_image_button(0, formspecy, 1.1, 1.1, "item_button_"
.. rdir .. "_", ItemStack(item_name))
if not craft then
formspec = formspec.."label[6,3.35;"..minetest.formspec_escape(no_recipe_text[dir]).."]"
local no_pos = dir == "recipe" and 4 or 6
local item_pos = dir == "recipe" and 6 or 4
formspec = formspec.."image["..no_pos..",1;1.1,1.1;ui_no.png]"
formspec = formspec..stack_image_button(item_pos, 1, 1.1, 1.1, "item_button_"..other_dir[dir].."_", ItemStack(item_name))
formspec = formspec.."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
formspec = formspec.."image["..no_pos..","..formspecy..";1.1,1.1;ui_no.png]"
formspec = formspec..stack_image_button(item_pos, formspecy, 1.1, 1.1, "item_button_"
..other_dir[dir].."_", ItemStack(item_name))
if has_creative then
formspec = formspec.."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]"
end
return {formspec = formspec}
end
local craft_type = unified_inventory.registered_craft_types[craft.type] or
unified_inventory.craft_type_defaults(craft.type, {})
formspec = formspec.."label[6,3.35;" .. S("Method:") .. "]"
formspec = formspec.."label[6,3.75;"
..minetest.formspec_escape(craft_type.description).."]"
formspec = formspec..stack_image_button(6, 1, 1.1, 1.1, "item_button_usage_", ItemStack(craft.output))
if craft_type.icon then
formspec = formspec..string.format(" image[%f,%f;%f,%f;%s]",5.7,(formspecy + 0.05),0.5,0.5,craft_type.icon)
end
formspec = formspec.."label[5.5,"..(formspecy + 1)..";" .. F(craft_type.description).."]"
formspec = formspec..stack_image_button(6.5, formspecy, 1.1, 1.1, "item_button_usage_", ItemStack(craft.output))
local display_size = craft_type.dynamic_display_size and craft_type.dynamic_display_size(craft) or { width = craft_type.width, height = craft_type.height }
local craft_width = craft_type.get_shaped_craft_width and craft_type.get_shaped_craft_width(craft) or display_size.width
-- This keeps recipes aligned to the right,
-- so that they're close to the arrow.
local xoffset = 1 + (3 - display_size.width)
local xoffset = 5.5
-- 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
local mini_craft_size = 6
if display_size.width >= mini_craft_size then
od = math.max(1, display_size.width - 2)
xoffset = xoffset - 0.1
end
-- 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
end
if (bsize_h > 0.35 and display_size.width) then
for y = 1, display_size.height do
for x = 1, display_size.width do
local item
if craft and x <= craft_width then
item = craft.items[(y-1) * craft_width + x]
end
-- 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
if item then
formspec = formspec..stack_image_button(
xoffset + x, y, 1.1, 1.1,
xoffset - xof, formspecy - 1 + yof, bsize_w, bsize_h,
"item_button_recipe_",
ItemStack(item))
else
-- Fake buttons just to make grid
formspec = formspec.."image_button["
..tostring(xoffset + x)..","..tostring(y)
..";1,1;ui_blank_image.png;;]"
..tostring(xoffset - xof)..","..tostring(formspecy - 1 + yof)
..";"..bsize_w..","..bsize_h..";ui_blank_image.png;;]"
end
end
end
else
-- Error
formspec = formspec.."label["
..tostring(2)..","..tostring(formspecy)
..";"..F(S("This recipe is too\nlarge to be displayed.")).."]"
end
if craft_type.uses_crafting_grid then
formspec = formspec.."label[6,1.95;" .. S("Copy to craft grid:") .. "]"
.."button[6,2.5;0.6,0.5;craftguide_craft_1;1]"
.."button[6.6,2.5;0.6,0.5;craftguide_craft_10;10]"
.."button[7.2,2.5;0.6,0.5;craftguide_craft_max;" .. S("All") .. "]"
if craft_type.uses_crafting_grid and display_size.width <= 3 then
formspec = formspec.."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")) .. "]"
end
if has_creative then
formspec = formspec.."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]"
end
if alternates and alternates > 1 then
formspec = formspec.."label[0,2.6;"..recipe_text[dir].." "
..tostring(alternate).." of "
..tostring(alternates).."]"
.."button[0,3.15;2,1;alternate;" .. S("Alternate") .. "]"
formspec = formspec.."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]).."]"
end
return {formspec = formspec}
end,
})
minetest.register_on_player_receive_fields(function(player, formname, fields)
local function craftguide_giveme(player, formname, fields)
local amount
for k, v in pairs(fields) do
amount = k:match("craftguide_giveme_(.*)")
if amount then break end
end
if not amount then return end
amount = tonumber(amount)
if amount == 0 then return end
local player_name = player:get_player_name()
local output = unified_inventory.current_item[player_name]
if (not output) or (output == "") then return end
local player_inv = player:get_inventory()
player_inv:add_item("main", {name = output, count = amount})
end
-- tells if an item can be moved and returns an index if so
local function item_fits(player_inv, craft_item, needed_item)
local need_group = string.sub(needed_item, 1, 6) == "group:"
if need_group then
need_group = string.sub(needed_item, 7)
end
if craft_item
and not craft_item:is_empty() then
local ciname = craft_item:get_name()
-- abort if the item there isn't usable
if ciname ~= needed_item
and not need_group then
return
end
-- abort if no item fits onto it
if craft_item:get_count() >= craft_item:get_definition().stack_max then
return
end
-- use the item there if it's in the right group and a group item is needed
if need_group then
if minetest.get_item_group(ciname, need_group) == 0 then
return
end
needed_item = ciname
need_group = false
end
end
if need_group then
-- search an item of the specific group
for i,item in pairs(player_inv:get_list("main")) do
if not item:is_empty()
and minetest.get_item_group(item:get_name(), need_group) > 0 then
return i
end
end
-- no index found
return
end
-- search an item with a the name needed_item
for i,item in pairs(player_inv:get_list("main")) do
if not item:is_empty()
and item:get_name() == needed_item then
return i
end
end
-- no index found
end
-- modifies the player inventory and returns the changed craft_item if possible
local function move_item(player_inv, craft_item, needed_item)
local stackid = item_fits(player_inv, craft_item, needed_item)
if not stackid then
return
end
local wanted_stack = player_inv:get_stack("main", stackid)
local taken_item = wanted_stack:take_item()
player_inv:set_stack("main", stackid, wanted_stack)
if not craft_item
or craft_item:is_empty() then
return taken_item
end
craft_item:add_item(taken_item)
return craft_item
end
local function craftguide_craft(player, formname, fields)
local amount
for k, v in pairs(fields) do
amount = k:match("craftguide_craft_(.*)")
@ -308,11 +530,13 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
width = 3
end
amount = tonumber(amount) or 99
--[[
if amount == "max" then
amount = 99 -- Arbitrary; need better way to do this.
else
amount = tonumber(amount)
end
end--]]
for iter = 1, amount do
local index = 1
@ -322,17 +546,9 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
if needed_item then
local craft_index = ((y - 1) * 3) + x
local craft_item = craft_list[craft_index]
if (not craft_item) or (craft_item:is_empty()) or (craft_item:get_name() == needed_item) then
itemname = craft_item and craft_item:get_name() or needed_item
local needed_stack = ItemStack(needed_item)
if player_inv:contains_item("main", needed_stack) then
local count = (craft_item and craft_item:get_count() or 0) + 1
if count <= needed_stack:get_definition().stack_max then
local stack = ItemStack({name=needed_item, count=count})
craft_list[craft_index] = stack
player_inv:remove_item("main", needed_stack)
end
end
local newitem = move_item(player_inv, craft_item, needed_item)
if newitem then
craft_list[craft_index] = newitem
end
end
index = index + 1
@ -343,4 +559,17 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
player_inv:set_list("craft", craft_list)
unified_inventory.set_inventory_formspec(player, "craft")
end
minetest.register_on_player_receive_fields(function(player, formname, fields)
for k, v in pairs(fields) do
if k:match("craftguide_craft_") then
craftguide_craft(player, formname, fields)
return
end
if k:match("craftguide_giveme_") then
craftguide_giveme(player, formname, fields)
return
end
end
end)

BIN
screenshot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

11
settingtypes.txt Normal file
View File

@ -0,0 +1,11 @@
#Enabling lite mode enables a smaller and simpler version of the Unified
#Inventory, optimized for small displays.
unified_inventory_lite (Lite mode) bool false
#If enabled, bags will be made available which can be used to extend
#inventory storage size.
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 688 B

After

Width:  |  Height:  |  Size: 546 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 777 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 10 KiB

BIN
textures/ui_bags_trash.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 143 B

After

Width:  |  Height:  |  Size: 81 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 896 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
textures/ui_reset_icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 14 KiB

BIN
textures/ui_single_slot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 988 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.6 KiB

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.6 KiB

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -1,9 +1,5 @@
local S
if intllib then
S = intllib.Getter()
else
S = function(s) return s end
end
local S = unified_inventory.gettext
local F = minetest.formspec_escape
local hud_colors = {
{"#FFFFFF", 0xFFFFFF, S("White")},
@ -21,10 +17,15 @@ local waypoints_temp = {}
unified_inventory.register_page("waypoints", {
get_formspec = function(player)
local player_name = player:get_player_name()
-- build a "fake" temp entry if the server took too long
-- during sign-on and returned an empty entry
if not waypoints_temp[player_name] then waypoints_temp[player_name] = {hud = 1} end
local waypoints = datastorage.get(player_name, "waypoints")
local formspec = "background[0,4.5;8,4;ui_main_inventory.png]" ..
"image[0,0;1,1;ui_waypoints_icon.png]" ..
"label[1,0;" .. S("Waypoints") .. "]"
"label[1,0;" .. F(S("Waypoints")) .. "]"
-- Tabs buttons:
for i = 1, 5, 1 do
@ -34,13 +35,13 @@ unified_inventory.register_page("waypoints", {
"ui_" .. i .. "_icon.png;" ..
"select_waypoint" .. i .. ";]" ..
"tooltip[select_waypoint" .. i .. ";"
.. minetest.formspec_escape(S("Select Waypoint #%d"):format(i)).."]"
.. (S("Select Waypoint #%d"):format(i)).."]"
end
local i = waypoints.selected or 1
local waypoint = waypoints[i] or {}
local temp = waypoints_temp[player_name][i] or {}
local default_name = "Waypoint "..i
local default_name = string.format(S("Waypoint %d"), i)
-- Main buttons:
formspec = formspec ..
@ -48,43 +49,43 @@ unified_inventory.register_page("waypoints", {
"ui_waypoint_set_icon.png;"..
"set_waypoint"..i..";]"..
"tooltip[set_waypoint" .. i .. ";"
.. minetest.formspec_escape(S("Set waypoint to current location")).."]"
.. F(S("Set waypoint to current location")).."]"
formspec = formspec ..
"image_button[5.2,3.7;.8,.8;"..
(waypoint.active and "ui_on_icon.png" or "ui_off_icon.png")..";"..
"toggle_waypoint"..i..";]"..
"tooltip[toggle_waypoint" .. i .. ";"
.. minetest.formspec_escape(S("Make waypoint "
..(waypoint.active and "invisible" or "visible"))).."]"
.. F(S("Make waypoint @1",
waypoint.active and S("invisible") or S("visible"))).."]"
formspec = formspec ..
"image_button[5.9,3.7;.8,.8;"..
(waypoint.display_pos and "ui_green_icon_background.png" or "ui_red_icon_background.png").."^ui_xyz_icon.png;"..
"toggle_display_pos" .. i .. ";]"..
"tooltip[toggle_display_pos" .. i .. ";"
.. minetest.formspec_escape(S((waypoint.display_pos and "Disable" or "Enable")
.." display of waypoint coordinates")).."]"
.. F(S("@1 display of waypoint coordinates",
waypoint.display_pos and S("Disable") or S("Enable"))) .."]"
formspec = formspec ..
"image_button[6.6,3.7;.8,.8;"..
"ui_circular_arrows_icon.png;"..
"toggle_color"..i..";]"..
"tooltip[toggle_color" .. i .. ";"
.. minetest.formspec_escape(S("Change color of waypoint display")).."]"
.. F(S("Change color of waypoint display")).."]"
formspec = formspec ..
"image_button[7.3,3.7;.8,.8;"..
"ui_pencil_icon.png;"..
"rename_waypoint"..i..";]"..
"tooltip[rename_waypoint" .. i .. ";"
.. minetest.formspec_escape(S("Edit waypoint name")).."]"
.. F(S("Edit waypoint name")).."]"
-- Waypoint's info:
if waypoint.active then
formspec = formspec .. "label[1,0.8;"..S("Waypoint active").."]"
formspec = formspec .. "label[1,0.8;"..F(S("Waypoint active")).."]"
else
formspec = formspec .. "label[1,0.8;"..S("Waypoint inactive").."]"
formspec = formspec .. "label[1,0.8;"..F(S("Waypoint inactive")).."]"
end
if temp.edit then
@ -95,13 +96,13 @@ unified_inventory.register_page("waypoints", {
"ui_ok_icon.png;"..
"confirm_rename"..i.. ";]"..
"tooltip[confirm_rename" .. i .. ";"
.. minetest.formspec_escape(S("Finish editing")).."]"
.. F(S("Finish editing")).."]"
end
formspec = formspec .. "label[1,1.3;"..S("World position")..": " ..
formspec = formspec .. "label[1,1.3;"..F(S("World position"))..": " ..
minetest.pos_to_string(waypoint.world_pos or vector.new()) .. "]" ..
"label[1,1.8;"..S("Name")..": ".. (waypoint.name or default_name) .. "]" ..
"label[1,2.3;"..S("HUD text color")..": " ..
"label[1,1.8;"..F(S("Name"))..": ".. (waypoint.name or default_name) .. "]" ..
"label[1,2.3;"..F(S("HUD text color"))..": " ..
hud_colors[waypoint.color or 1][3] .. "]"
return {formspec=formspec}
@ -112,6 +113,7 @@ unified_inventory.register_button("waypoints", {
type = "image",
image = "ui_waypoints_icon.png",
tooltip = S("Waypoints"),
hide_lite=true
})
local function update_hud(player, waypoints, temp, i)