diff options
author | Wuzzy <almikes@aol.com> | 2016-08-04 12:41:11 +0200 |
---|---|---|
committer | Wuzzy <almikes@aol.com> | 2016-08-04 12:41:11 +0200 |
commit | 48b10578cd379c73ccf43e9736c03248043c09d1 (patch) | |
tree | c829a845e40b3157f462ec4656702470361f22e5 /init.lua | |
parent | e8ce0976906e3b56fa41170ccf9f72a5d1619e1f (diff) |
Simplify groups functions
Diffstat (limited to 'init.lua')
-rw-r--r-- | init.lua | 65 |
1 files changed, 19 insertions, 46 deletions
@@ -1,8 +1,7 @@ doc.sub.items = {} local groupdefs = {} -local minegroups = {} -local damagegroups= {} +local miscgroups = {} local forced_items = { ["air"] = true, } @@ -11,24 +10,17 @@ local item_name_overrides = { ["air"] = "Air" } -local groups_to_string = function(grouptable, expose_all_groups) +local groups_to_string = function(grouptable, filter) local gstring = "" local groups_count = 0 for id, value in pairs(grouptable) do - if groupdefs[id] ~= nil then + if groupdefs[id] ~= nil and (filter == nil or filter[id] == true) then -- Readable group name if groups_count > 0 then gstring = gstring .. ", " end gstring = gstring .. groupdefs[id] groups_count = groups_count + 1 - elseif expose_all_groups == true then - -- Raw group name (if requested) - if groups_count > 0 then - gstring = gstring .. ", " - end - gstring = gstring .. id - groups_count = groups_count + 1 end end if groups_count == 0 then @@ -38,23 +30,8 @@ local groups_to_string = function(grouptable, expose_all_groups) end end -local group_to_string = function(groupname, grouptype) - local grouptable - if grouptype == "mining" then - grouptable = minegroups - elseif grouptype == "damage" then - grouptable = damagegroups - elseif grouptype == "generic" then - grouptable = groupdefs - else - return minetest.formspec_escape(groupname) - end - - if grouptable[groupname] ~= nil then - return minetest.formspec_escape(grouptable[groupname]) - else - return minetest.formspec_escape(groupname) - end +local group_to_string = function(groupname) + return groupdeps[groupname] end local burntime_to_text = function(burntime) @@ -105,7 +82,7 @@ local toolcaps_to_text = function(tool_capabilities) else levelstring = "any level" end - formstring = formstring .. "- " .. group_to_string(k, "mining") .. ": "..ratingstring..", ".. levelstring .. "\n" + formstring = formstring .. "- " .. group_to_string(k) .. ": "..ratingstring..", ".. levelstring .. "\n" end end formstring = formstring .. "\n" @@ -114,7 +91,7 @@ local toolcaps_to_text = function(tool_capabilities) if damage_groups ~= nil then formstring = formstring .. "This is a melee weapon which deals damage by punching.\nMaximum damage per hit:\n" for k,v in pairs(damage_groups) do - formstring = formstring .. "- " .. group_to_string(k, "damage") .. ": " .. v .. " HP\n" + formstring = formstring .. "- " .. group_to_string(k) .. ": " .. v .. " HP\n" end end end @@ -255,7 +232,7 @@ doc.new_category("nodes", { formstring = formstring .. "This block connects to these blocks: "..nstring..".\n" end - local gstring, gcount = groups_to_string(groups, true) + local gstring, gcount = groups_to_string(groups) if gcount == 1 then formstring = formstring .. "This block connects to blocks of the "..minetest.formspec_escape(gstring).." group.\n" elseif gcount > 1 then @@ -357,7 +334,7 @@ doc.new_category("nodes", { local mstring = "This block can be mined by mining tools which match any of the following mining ratings and its mining level.\n" mstring = mstring .. "Mining ratings:\n" local minegroupcount = 0 - for g,name in pairs(minegroups) do + for g,name in pairs(groupdefs) do local rating = data.def.groups[g] if rating ~= nil then mstring = mstring .. "- "..name..": "..rating.."\n" @@ -382,7 +359,7 @@ doc.new_category("nodes", { end -- Show other “exposable” groups in quick list - local gstring, gcount = groups_to_string(data.def.groups) + local gstring, gcount = groups_to_string(data.def.groups, miscgroups) if gstring ~= nil then if gcount == 1 then formstring = formstring .. "This block belongs to the "..minetest.formspec_escape(gstring).." group.\n" @@ -525,7 +502,7 @@ doc.new_category("tools", { end -- Show other “exposable” groups - local gstring, gcount = groups_to_string(data.def.groups) + local gstring, gcount = groups_to_string(data.def.groups, miscgroups) if gstring ~= nil then if gcount == 1 then formstring = formstring .. "This tool belongs to the "..minetest.formspec_escape(gstring).." group.\n" @@ -586,7 +563,7 @@ doc.new_category("craftitems", { end -- Show other “exposable” groups - local gstring, gcount = groups_to_string(data.def.groups) + local gstring, gcount = groups_to_string(data.def.groups, miscgroups) if gstring ~= nil then if gcount == 1 then formstring = formstring .. "This item belongs to the "..minetest.formspec_escape(gstring).." group.\n" @@ -631,17 +608,13 @@ function doc.sub.items.add_real_group_names(groupnames) end end --- List of “real” group names of groups intended for mining -function doc.sub.items.add_mine_group_names(groupnames) - for internal, real in pairs(groupnames) do - minegroups[internal] = real - end -end - --- List of “real” group names of groups intended for damage groups -function doc.sub.items.add_damage_group_names(groupnames) - for internal, real in pairs(groupnames) do - damagegroups[internal] = real +-- Adds groups to be displayed in the generic “misc.” groups +-- factoid. Those groups should be neither be used as mining +-- groups nor as damage groups and should be relevant to the +-- player in someway. +function doc.sub.items.add_notable_groups(groupnames) + for g=1,#groupnames do + miscgroups[groupnames[g]] = true end end |