removable: change item label (item description)
This commit is contained in:
parent
9b5d9c633d
commit
97045a6c09
@ -1,17 +1,49 @@
|
|||||||
|
local function get_item_data(mtos)
|
||||||
|
local stack = mtos:get_node_inventory():get_stack("main", 1)
|
||||||
|
if stack then
|
||||||
|
local def = stack:get_definition()
|
||||||
|
if def and def.name ~= "" then
|
||||||
|
local data = {
|
||||||
|
def = def,
|
||||||
|
stack = stack,
|
||||||
|
meta = stack:get_meta()
|
||||||
|
}
|
||||||
|
|
||||||
|
data.label = data.meta:get_string("description")
|
||||||
|
if not data.label or data.label == "" then
|
||||||
|
data.label = def.description
|
||||||
|
end
|
||||||
|
return data
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
local function set_item_data(mtos, data)
|
||||||
|
if data.label ~= data.def.description then
|
||||||
|
data.meta:set_string("description", data.label)
|
||||||
|
end
|
||||||
|
mtos:get_node_inventory():set_stack("main", 1, data.stack)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
laptop.register_app("removable", {
|
laptop.register_app("removable", {
|
||||||
app_name = "Removable storage",
|
app_name = "Removable storage",
|
||||||
app_icon = "laptop_setting_wrench.png",
|
app_icon = "laptop_setting_wrench.png",
|
||||||
app_info = "Work with removable media",
|
app_info = "Work with removable media",
|
||||||
formspec_func = function(app, mtos)
|
formspec_func = function(app, mtos)
|
||||||
local stack = mtos:get_node_inventory():get_stack("main", 1)
|
|
||||||
local formspec =
|
local formspec =
|
||||||
"list[nodemeta:"..mtos.pos.x..','..mtos.pos.y..','..mtos.pos.z..";main;0,0.3;1,1;]" ..
|
"list[nodemeta:"..mtos.pos.x..','..mtos.pos.y..','..mtos.pos.z..";main;0,0.3;1,1;]" ..
|
||||||
"list[current_player;main;0,4.85;8,1;]" ..
|
"list[current_player;main;0,4.85;8,1;]" ..
|
||||||
"list[current_player;main;0,6.08;8,3;8]" ..
|
"list[current_player;main;0,6.08;8,3;8]" ..
|
||||||
"listring[nodemeta:"..mtos.pos.x..','..mtos.pos.y..','..mtos.pos.z..";main]" ..
|
"listring[nodemeta:"..mtos.pos.x..','..mtos.pos.y..','..mtos.pos.z..";main]" ..
|
||||||
"listring[current_player;main]"
|
"listring[current_player;main]"
|
||||||
if stack then
|
|
||||||
formspec = formspec .. mtos.theme:get_label('2,0.3', stack:to_string())
|
local idata = get_item_data(mtos)
|
||||||
|
if idata then
|
||||||
|
formspec = formspec .. mtos.theme:get_label('0,1.2', idata.def.description)..
|
||||||
|
"field[2,0.7;4,1;label;Label:;"..idata.label.."]"..
|
||||||
|
mtos.theme:get_button('5.7,0.55;1.5,0.7', 'minor', 'set_label', 'Rename', 'Rename the '..idata.def.description)
|
||||||
end
|
end
|
||||||
return formspec
|
return formspec
|
||||||
end,
|
end,
|
||||||
@ -33,6 +65,12 @@ laptop.register_app("removable", {
|
|||||||
end,
|
end,
|
||||||
|
|
||||||
receive_fields_func = function(app, mtos, sender, fields)
|
receive_fields_func = function(app, mtos, sender, fields)
|
||||||
|
local idata = get_item_data(mtos)
|
||||||
end
|
if idata then
|
||||||
|
if fields.set_label then
|
||||||
|
idata.label = fields.label
|
||||||
|
end
|
||||||
|
set_item_data(mtos, idata)
|
||||||
|
end
|
||||||
|
end,
|
||||||
})
|
})
|
||||||
|
Loading…
x
Reference in New Issue
Block a user