show an item instead of unknown if item is a group
This commit is contained in:
parent
343d72feb8
commit
adb5c88faa
@ -18,6 +18,7 @@ craft_guide = {}
|
||||
|
||||
-- define api variables
|
||||
craft_guide.crafts = {}
|
||||
craft_guide.groups = {}
|
||||
|
||||
|
||||
-- log
|
||||
@ -227,90 +228,90 @@ craft_guide.update_recipe = function(meta, player, stack, alternate)
|
||||
|
||||
-- cook
|
||||
if craft.type == "cooking" then
|
||||
inv:set_stack("cook", 1, craft.recipe)
|
||||
inv:set_stack("cook", 1, craft_guide.get_item_name(craft.recipe))
|
||||
meta:set_string("formspec",craft_guide.get_craft_guide_formspec(meta))
|
||||
return
|
||||
end
|
||||
-- fuel
|
||||
if craft.type == "fuel" then
|
||||
inv:set_stack("fuel", 1, craft.recipe)
|
||||
inv:set_stack("fuel", 1, craft_guide.get_item_name(craft.recipe))
|
||||
meta:set_string("formspec",craft_guide.get_craft_guide_formspec(meta))
|
||||
return
|
||||
end
|
||||
-- build (shaped or shapeless)
|
||||
if craft.recipe[1] then
|
||||
if (type(craft.recipe[1]) == "string") then
|
||||
inv:set_stack("build", 1, craft.recipe[1])
|
||||
inv:set_stack("build", 1, craft_guide.get_item_name(craft.recipe[1]))
|
||||
else
|
||||
if craft.recipe[1][1] then
|
||||
inv:set_stack("build", 1, craft.recipe[1][1])
|
||||
inv:set_stack("build", 1, craft_guide.get_item_name(craft.recipe[1][1]))
|
||||
end
|
||||
if craft.recipe[1][2] then
|
||||
inv:set_stack("build", 2, craft.recipe[1][2])
|
||||
inv:set_stack("build", 2, craft_guide.get_item_name(craft.recipe[1][2]))
|
||||
end
|
||||
if craft.recipe[1][3] then
|
||||
inv:set_stack("build", 3, craft.recipe[1][3])
|
||||
inv:set_stack("build", 3, craft_guide.get_item_name(craft.recipe[1][3]))
|
||||
end
|
||||
end
|
||||
end
|
||||
if craft.recipe[2] then
|
||||
if (type(craft.recipe[2]) == "string") then
|
||||
inv:set_stack("build", 2, craft.recipe[2])
|
||||
inv:set_stack("build", 2, craft_guide.get_item_name(craft.recipe[2]))
|
||||
else
|
||||
if craft.recipe[2][1] then
|
||||
inv:set_stack("build", 4, craft.recipe[2][1])
|
||||
inv:set_stack("build", 4, craft_guide.get_item_name(craft.recipe[2][1]))
|
||||
end
|
||||
if craft.recipe[2][2] then
|
||||
inv:set_stack("build", 5, craft.recipe[2][2])
|
||||
inv:set_stack("build", 5, craft_guide.get_item_name(craft.recipe[2][2]))
|
||||
end
|
||||
if craft.recipe[2][3] then
|
||||
inv:set_stack("build", 6, craft.recipe[2][3])
|
||||
inv:set_stack("build", 6, craft_guide.get_item_name(craft.recipe[2][3]))
|
||||
end
|
||||
end
|
||||
end
|
||||
if craft.recipe[3] then
|
||||
if (type(craft.recipe[3]) == "string") then
|
||||
inv:set_stack("build", 3, craft.recipe[3])
|
||||
inv:set_stack("build", 3, craft_guide.get_item_name(craft.recipe[3]))
|
||||
else
|
||||
if craft.recipe[3][1] then
|
||||
inv:set_stack("build", 7, craft.recipe[3][1])
|
||||
inv:set_stack("build", 7, craft_guide.get_item_name(craft.recipe[3][1]))
|
||||
end
|
||||
if craft.recipe[3][2] then
|
||||
inv:set_stack("build", 8, craft.recipe[3][2])
|
||||
inv:set_stack("build", 8, craft_guide.get_item_name(craft.recipe[3][2]))
|
||||
end
|
||||
if craft.recipe[3][3] then
|
||||
inv:set_stack("build", 9, craft.recipe[3][3])
|
||||
inv:set_stack("build", 9, craft_guide.get_item_name(craft.recipe[3][3]))
|
||||
end
|
||||
end
|
||||
end
|
||||
if craft.recipe[4] then
|
||||
if (type(craft.recipe[4]) == "string") then
|
||||
inv:set_stack("build", 4, craft.recipe[4])
|
||||
inv:set_stack("build", 4, craft_guide.get_item_name(craft.recipe[4]))
|
||||
end
|
||||
end
|
||||
if craft.recipe[5] then
|
||||
if (type(craft.recipe[5]) == "string") then
|
||||
inv:set_stack("build", 5, craft.recipe[5])
|
||||
inv:set_stack("build", 5, craft_guide.get_item_name(craft.recipe[5]))
|
||||
end
|
||||
end
|
||||
if craft.recipe[6] then
|
||||
if (type(craft.recipe[6]) == "string") then
|
||||
inv:set_stack("build", 6, craft.recipe[6])
|
||||
inv:set_stack("build", 6, craft_guide.get_item_name(craft.recipe[6]))
|
||||
end
|
||||
end
|
||||
if craft.recipe[7] then
|
||||
if (type(craft.recipe[7]) == "string") then
|
||||
inv:set_stack("build", 7, craft.recipe[7])
|
||||
inv:set_stack("build", 7, craft_guide.get_item_name(craft.recipe[7]))
|
||||
end
|
||||
end
|
||||
if craft.recipe[8] then
|
||||
if (type(craft.recipe[8]) == "string") then
|
||||
inv:set_stack("build", 8, craft.recipe[8])
|
||||
inv:set_stack("build", 8, craft_guide.get_item_name(craft.recipe[8]))
|
||||
end
|
||||
end
|
||||
if craft.recipe[9] then
|
||||
if (type(craft.recipe[9]) == "string") then
|
||||
inv:set_stack("build", 9, craft.recipe[9])
|
||||
inv:set_stack("build", 9, craft_guide.get_item_name(craft.recipe[9]))
|
||||
end
|
||||
end
|
||||
meta:set_string("formspec",craft_guide.get_craft_guide_formspec(meta))
|
||||
@ -388,3 +389,31 @@ craft_guide.allow_metadata_inventory_take = function(pos, listname, index, stack
|
||||
return 0
|
||||
end
|
||||
|
||||
|
||||
-- get an item name, if it's a group then get an item in the group
|
||||
craft_guide.get_item_name = function(item_name)
|
||||
if string.find(item_name, "group:") then
|
||||
if #craft_guide.groups == 0 then
|
||||
craft_guide.load_item_groups()
|
||||
end
|
||||
if craft_guide.groups[string.sub(item_name, 7)] ~= nil then
|
||||
item_name = craft_guide.groups[string.sub(item_name, 7)].item_name
|
||||
end
|
||||
end
|
||||
return item_name
|
||||
end
|
||||
|
||||
|
||||
-- load the item groups table
|
||||
craft_guide.load_item_groups = function()
|
||||
for name,def in pairs(minetest.registered_items) do
|
||||
if name ~= nil and def ~= nil and dump(name) ~= "\"\"" and dump(def) ~= "\"\"" then
|
||||
for group,_ in pairs(def.groups) do
|
||||
if craft_guide.groups[group] == nil then
|
||||
craft_guide.groups[group] = {}
|
||||
craft_guide.groups[group].item_name = name
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
x
Reference in New Issue
Block a user