Compare commits
8 Commits
nalc-1.2.0
...
version-1
Author | SHA1 | Date | |
---|---|---|---|
d1a4396fbe | |||
fbbf786caf | |||
ae124b02c2 | |||
ebd1d1f245 | |||
0f756a5d33 | |||
341a438267 | |||
d86592841e | |||
f25426911d |
2
api.lua
@ -188,7 +188,9 @@ function unified_inventory.go_home(player)
|
||||
local pos = unified_inventory.home_pos[player:get_player_name()]
|
||||
if pos then
|
||||
player:set_pos(pos)
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
-- register_craft
|
||||
|
35
bags.lua
@ -7,22 +7,24 @@ License: GPLv3
|
||||
|
||||
local S = minetest.get_translator("unified_inventory")
|
||||
local F = minetest.formspec_escape
|
||||
local bags_inv_bg_prefix = "image[-0.1,1.0;10.05,"
|
||||
|
||||
unified_inventory.register_page("bags", {
|
||||
get_formspec = function(player)
|
||||
local player_name = player:get_player_name()
|
||||
return { formspec = table.concat({
|
||||
"background[0.06,0.99;7.92,7.52;ui_bags_main_form.png]",
|
||||
string.gsub(unified_inventory.standard_inv_bg, "YYY", "4.4"),
|
||||
bags_inv_bg_prefix.."1.175;ui_bags_header.png]",
|
||||
"label[0,0;" .. F(S("Bags")) .. "]",
|
||||
"button[0,2;2,0.5;bag1;" .. F(S("Bag @1", 1)) .. "]",
|
||||
"button[2,2;2,0.5;bag2;" .. F(S("Bag @1", 2)) .. "]",
|
||||
"button[4,2;2,0.5;bag3;" .. F(S("Bag @1", 3)) .. "]",
|
||||
"button[6,2;2,0.5;bag4;" .. F(S("Bag @1", 4)) .. "]",
|
||||
"button[0,2.2;2,0.5;bag1;" .. F(S("Bag @1", 1)) .. "]",
|
||||
"button[2,2.2;2,0.5;bag2;" .. F(S("Bag @1", 2)) .. "]",
|
||||
"button[4,2.2;2,0.5;bag3;" .. F(S("Bag @1", 3)) .. "]",
|
||||
"button[6,2.2;2,0.5;bag4;" .. F(S("Bag @1", 4)) .. "]",
|
||||
"listcolors[#00000000;#00000000]",
|
||||
"list[detached:" .. F(player_name) .. "_bags;bag1;0.5,1;1,1;]",
|
||||
"list[detached:" .. F(player_name) .. "_bags;bag2;2.5,1;1,1;]",
|
||||
"list[detached:" .. F(player_name) .. "_bags;bag3;4.5,1;1,1;]",
|
||||
"list[detached:" .. F(player_name) .. "_bags;bag4;6.5,1;1,1;]"
|
||||
"list[detached:" .. F(player_name) .. "_bags;bag1;0.5,1.1;1,1;]",
|
||||
"list[detached:" .. F(player_name) .. "_bags;bag2;2.5,1.1;1,1;]",
|
||||
"list[detached:" .. F(player_name) .. "_bags;bag3;4.5,1.1;1,1;]",
|
||||
"list[detached:" .. F(player_name) .. "_bags;bag4;6.5,1.1;1,1;]"
|
||||
}) }
|
||||
end,
|
||||
})
|
||||
@ -47,26 +49,27 @@ for bag_i = 1, 4 do
|
||||
local stack = get_player_bag_stack(player, bag_i)
|
||||
local image = stack:get_definition().inventory_image
|
||||
local fs = {
|
||||
string.gsub(unified_inventory.standard_inv_bg, "YYY", "4.4"),
|
||||
"image[7,0;1,1;" .. image .. "]",
|
||||
"label[0,0;" .. F(S("Bag @1", bag_i)) .. "]",
|
||||
"listcolors[#00000000;#00000000]",
|
||||
"list[current_player;bag" .. bag_i .. "contents;0,1;8,3;]",
|
||||
"list[current_player;bag" .. bag_i .. "contents;0,1.1;8,3;]",
|
||||
"listring[current_name;bag" .. bag_i .. "contents]",
|
||||
"listring[current_player;main]"
|
||||
"listring[current_player;main]",
|
||||
}
|
||||
local slots = stack:get_definition().groups.bagslots
|
||||
if slots == 8 then
|
||||
fs[#fs + 1] = "background[0.06,0.99;7.92,7.52;ui_bags_sm_form.png]"
|
||||
fs[#fs + 1] = bags_inv_bg_prefix.."1.175;ui_bags_inv_small.png]"
|
||||
elseif slots == 16 then
|
||||
fs[#fs + 1] = "background[0.06,0.99;7.92,7.52;ui_bags_med_form.png]"
|
||||
fs[#fs + 1] = bags_inv_bg_prefix.."2.35;ui_bags_inv_medium.png]"
|
||||
elseif slots == 24 then
|
||||
fs[#fs + 1] = "background[0.06,0.99;7.92,7.52;ui_bags_lg_form.png]"
|
||||
fs[#fs + 1] = bags_inv_bg_prefix.."3.525;ui_bags_inv_large.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
|
||||
fs[#fs + 1] = "background[6.06,0;0.92,0.92;ui_bags_trash.png]"
|
||||
fs[#fs + 1] = "image[5.91,-0.06;1.21,1.15;ui_bags_trash.png]"
|
||||
.. "list[detached:trash;main;6,0.1;1,1;]"
|
||||
end
|
||||
local inv = player:get_inventory()
|
||||
@ -132,7 +135,7 @@ end
|
||||
local function load_bags_metadata(player, bags_inv)
|
||||
local player_inv = player:get_inventory()
|
||||
local meta = player:get_meta()
|
||||
local bags_meta = meta:get_string("unified_inventory:bags")
|
||||
local bags_meta = meta:get("unified_inventory:bags")
|
||||
local bags = bags_meta and minetest.deserialize(bags_meta) or {}
|
||||
local dirty_meta = false
|
||||
if not bags_meta then
|
||||
|
@ -1,5 +0,0 @@
|
||||
default
|
||||
creative?
|
||||
sfinv?
|
||||
datastorage?
|
||||
farming?
|
@ -1 +0,0 @@
|
||||
Unified Inventory replaces the default survival and creative inventory. It adds a nicer interface and a number of features, such as a crafting guide.
|
5
init.lua
@ -44,7 +44,10 @@ unified_inventory = {
|
||||
main_button_y = 9,
|
||||
craft_result_x = 0.3,
|
||||
craft_result_y = 0.5,
|
||||
form_header_y = 0
|
||||
form_header_y = 0,
|
||||
standard_background = "background[-0.2,-0.2;1,1;ui_form_bg.png;true]", -- the 'true' scales to fill, overrides the 1,1
|
||||
standard_inv = "list[current_player;main;0,YYY;8,4;]", -- the YYY's are placeholders which get
|
||||
standard_inv_bg = "image[-0.1,YYY;10.05,4.70;ui_main_inventory.png]", -- replaced later by string.gsub()
|
||||
}
|
||||
|
||||
-- Disable default creative inventory
|
||||
|
10
internal.lua
@ -65,13 +65,13 @@ function unified_inventory.get_formspec(player, page)
|
||||
local formspec = {
|
||||
"size[14,10]",
|
||||
pagedef.formspec_prepend and "" or "no_prepend[]",
|
||||
"background[-0.19,-0.25;14.4,10.75;ui_form_bg.png]" -- Background
|
||||
unified_inventory.standard_background -- Background
|
||||
}
|
||||
local n = 4
|
||||
|
||||
if draw_lite_mode then
|
||||
formspec[1] = "size[11,7.7]"
|
||||
formspec[3] = "background[-0.19,-0.2;11.4,8.4;ui_form_bg.png]"
|
||||
formspec[3] = unified_inventory.standard_background
|
||||
end
|
||||
|
||||
if unified_inventory.is_creative(player_name)
|
||||
@ -130,7 +130,7 @@ function unified_inventory.get_formspec(player, page)
|
||||
if fsdata.draw_inventory ~= false then
|
||||
-- Player inventory
|
||||
formspec[n] = "listcolors[#00000000;#00000000]"
|
||||
formspec[n+1] = "list[current_player;main;0,"..(ui_peruser.formspec_y + 3.5)..";8,4;]"
|
||||
formspec[n+1] = string.gsub(unified_inventory.standard_inv, "YYY", ui_peruser.formspec_y + 3.5)
|
||||
n = n+2
|
||||
end
|
||||
|
||||
@ -290,10 +290,14 @@ function unified_inventory.apply_filter(player, filter, search_dir)
|
||||
return true
|
||||
end
|
||||
else
|
||||
local lang = minetest.get_player_information(player_name).lang_code
|
||||
ffilter = function(name, def)
|
||||
local lname = string.lower(name)
|
||||
local ldesc = string.lower(def.description)
|
||||
local llocaldesc = minetest.get_translated_string
|
||||
and string.lower(minetest.get_translated_string(lang, def.description))
|
||||
return string.find(lname, lfilter, 1, true) or string.find(ldesc, lfilter, 1, true)
|
||||
or llocaldesc and string.find(llocaldesc, lfilter, 1, true)
|
||||
end
|
||||
end
|
||||
unified_inventory.filtered_items_list[player_name]={}
|
||||
|
@ -73,6 +73,7 @@ World position=世界位置
|
||||
Name=名称
|
||||
HUD text color=HUD文本颜色
|
||||
|
||||
#new
|
||||
|
||||
Reset search and display everything=重置搜索并显示所有物品
|
||||
|
||||
Any item belonging to the @1 group=属于@1组的任何项目
|
||||
Any item belonging to the groups @1=属于组@1的任何项目
|
||||
|
@ -73,6 +73,7 @@ World position=世界位置
|
||||
Name=名稱
|
||||
HUD text color=HUD文本顏色
|
||||
|
||||
#new
|
||||
|
||||
Reset search and display everything=重置搜索並顯示所有物品
|
||||
|
||||
Any item belonging to the @1 group=屬於@1組的任何項目
|
||||
Any item belonging to the groups @1=屬於組@1的任何項目
|
||||
|
5
mod.conf
@ -1,4 +1,7 @@
|
||||
name = unified_inventory
|
||||
depends = default
|
||||
optional_depends = creative, sfinv, datastorage, farming
|
||||
description = Unified Inventory replaces the default survival and creative inventory. It adds a nicer interface and a number of features, such as a crafting guide.
|
||||
description = """
|
||||
Unified Inventory replaces the default survival and creative inventory.
|
||||
It adds a nicer interface and a number of features, such as a crafting guide.
|
||||
"""
|
||||
|
10
register.lua
@ -76,9 +76,9 @@ unified_inventory.register_button("home_gui_go", {
|
||||
action = function(player)
|
||||
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)
|
||||
if unified_inventory.go_home(player) then
|
||||
minetest.sound_play("teleport", {to_player = player_name})
|
||||
end
|
||||
else
|
||||
minetest.chat_send_player(player_name,
|
||||
S("You don't have the \"home\" privilege!"))
|
||||
@ -171,7 +171,7 @@ unified_inventory.register_page("craft", {
|
||||
|
||||
local player_name = player:get_player_name()
|
||||
local formspec = "background[2,"..formspecy..";6,3;ui_crafting_form.png]"
|
||||
formspec = formspec.."background[0,"..(formspecy + 3.5)..";8,4;ui_main_inventory.png]"
|
||||
formspec = formspec..string.gsub(unified_inventory.standard_inv_bg, "YYY", (formspecy + 3.4))
|
||||
formspec = formspec.."label[0,"..formheadery..";" ..F(S("Crafting")).."]"
|
||||
formspec = formspec.."listcolors[#00000000;#00000000]"
|
||||
formspec = formspec.."list[current_player;craftpreview;6,"..formspecy..";1,1;]"
|
||||
@ -268,7 +268,7 @@ unified_inventory.register_page("craftguide", {
|
||||
local player_name = player:get_player_name()
|
||||
local player_privs = minetest.get_player_privs(player_name)
|
||||
local fs = {
|
||||
"background[0,"..(formspecy + 3.5)..";8,4;ui_main_inventory.png]",
|
||||
string.gsub(unified_inventory.standard_inv_bg, "YYY", (formspecy + 3.4)),
|
||||
"label[0,"..formheadery..";" .. F(S("Crafting Guide")) .. "]",
|
||||
"listcolors[#00000000;#00000000]"
|
||||
}
|
||||
|
BIN
textures/ui_bags_header.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
textures/ui_bags_inv_large.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
textures/ui_bags_inv_medium.png
Normal file
After Width: | Height: | Size: 2.2 KiB |
BIN
textures/ui_bags_inv_small.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 7.9 KiB |
Before Width: | Height: | Size: 5.9 KiB |
Before Width: | Height: | Size: 7.0 KiB |
Before Width: | Height: | Size: 6.3 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1003 B |
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 5.7 KiB |
@ -23,7 +23,7 @@ unified_inventory.register_page("waypoints", {
|
||||
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]" ..
|
||||
local formspec = string.gsub(unified_inventory.standard_inv_bg, "YYY", "4.4") ..
|
||||
"image[0,0;1,1;ui_waypoints_icon.png]" ..
|
||||
"label[1,0;" .. F(S("Waypoints")) .. "]"
|
||||
|
||||
|