Documentation for this module may be created at Module:Items/doc
cdb = require("Module:Crafting_DB") edb = require("Module:Enemy_DB") cbdb = require("Module:CooksBook_DB") pdb = require("Module:Potions_DB") idb = require("Module:Tablette_DB") u = require("Module:Util") local p = {} function p.used_in_table(name) recipes = {} for _, e in ipairs(cdb) do for _, f in ipairs(e[5]) do if f[1] == name then table.insert(recipes, {e[1], e[2], e[3], f[2]}) end end end result = [[ {| class="wikitable sortable" ! colspan="2"|Item !Crafting level !Amount needed ]] for _, e in ipairs(recipes) do result = result .. [[ |- |]] .. '[[File: ' .. e[2] .. '.png|35px|link=' .. e[1] .. ']]' .. [[ |]] .. '[[' .. e[1] .. ']]' .. [[ |]] .. e[3] .. [[ |]] .. u.c(e[4]) .. [[ ]] end return result .. [[ |} ]] end function p.cooked_in_table(name) recipes = {} for _, e in ipairs(cbdb) do for _, f in ipairs(e[6]) do if f[1] == name then table.insert(recipes, {e[1], e[2], e[3], f[2]}) end end end result = [[ {| class="wikitable" ! colspan="2"|Recipe !Cooking level !Amount needed ]] for _, e in ipairs(recipes) do result = result .. [[ |- |]] .. '[[File: ' .. e[2] .. '.png|35px|link=' .. e[1] .. ']]' .. [[ |]] .. '[[' .. e[1] .. ']]' .. [[ |]] .. e[3] .. [[ |]] .. u.c(e[4]) .. [[ ]] end return result .. [[ |} ]] end function p.brewed_in_table(name) recipes = {} for _, e in ipairs(pdb) do for _, f in ipairs(e[5]) do if f[1] == name then table.insert(recipes, {e[1], e[2], e[3], f[2], e[6]}) end end end result = [[ {| class="wikitable" ! colspan="2"|Potion !Brewing Level !Amount Needed !Potion Effect ]] for _, e in ipairs(recipes) do result = result .. [[ |- |]] .. '[[File: ' .. e[2] .. '.png|35px|link=' .. e[1] .. ']]' .. [[ |]] .. '[[' .. e[1] .. ']]' .. [[ |]] .. e[3] .. [[ |]] .. u.c(e[4]) .. [[ |]] .. e[5] .. [[ ]] end return result .. [[ |} ]] end function p.bloodify_table(name) recipes = {} for _, e in ipairs(idb) do local added = false for _, f in ipairs(e[7]) do if f[1] == name then table.insert(recipes, {e[1], e[2], f[2]}) added = true end end if added then for _, s in ipairs(e[8]) do if s[1] == name then recipes[#recipes][4] = s[2] else recipes[#recipes][4] = '' end end else for _, s in ipairs(e[8]) do if s[1] == name then table.insert(recipes, {e[1], e[2], '', s[2]}) end end end end result = [[ {| class="wikitable" ! colspan="2"|Tablette ! colspan="2"|How many needed to Bloodify ]] for _, e in ipairs(recipes) do result = result .. [[ |- |]] .. '[[File: ' .. e[2] .. '.png|35px|link=' .. e[1] .. ']]' .. [[ |]] .. '[[' .. e[1] .. ']]' .. [[ |style="width: 30%;"|]] .. u.c(e[3]) .. [[ |style="width: 30%;"|]] .. u.c(e[4]) .. [[ ]] end return result .. [[ |} ]] end function p.dropped_from_table(name) recipes = {} for _, e in ipairs(edb) do if e[2] ~= "Fields2" then for _, f in ipairs(e[8]) do if f[1] == name then table.insert(recipes, {e[1], e[1] .. ' Monster', f[2], f[3], f[4], f[6], f[5] and e[2]}) end end end end result = [[ {| class="wikitable" ! colspan="2"|Monster !Amount dropped !Drop chance ]] for _, e in ipairs(recipes) do result = result .. [[ |- class="]] .. u.r(e[5]) .. [[" |]] .. '[[File: ' .. e[2]:gsub(' ', '') .. '.png|35px|link=' .. e[1] .. ']]' .. [[ |]] .. '[[' .. e[1] .. ']]' .. [[ |]] .. (e[3] == e[4] and u.c(e[3]) or u.c(e[3]) .. ' - ' .. u.c(e[4])) .. [[ |1/]] .. e[5] .. (e[6] and e[6] ~= '' and '*' or '') .. [[ ]] end return result .. [[ |} ]] end function p.tuit(frame) return p.used_in_table(frame.args[1] or frame:getParent():getTitle()) end function p.tcit(frame) return p.cooked_in_table(frame.args[1] or frame:getParent():getTitle()) end function p.tbit(frame) return p.brewed_in_table(frame.args[1] or frame:getParent():getTitle()) end function p.tbt(frame) return p.bloodify_table(frame.args[1] or frame:getParent():getTitle()) end function p.tdft(frame) return p.dropped_from_table(frame.args[1] or frame:getParent():getTitle()) end return p