Модуль:RecipeData
local p = {}
local lib = require('Module:Feature')
function p.get(frame) local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end
local data = require('Module:RecipeData/data')
local recipe = args['recipe'] or args[1] local datatype = args['datatype'] or args[2] local num = tonumber(args['num']) or 1 local result = data[recipe] for k, v in ipairs(result) do if tonumber(num) == k then if datatype == 'name' then return v['name'] elseif datatype == 'image' then return v['image'] elseif datatype == 'count' then return v['count'] elseif datatype == 'chance' then if v['chance'] == nil then v['chance'] = "?" end if v['chance'] == 100 then v['chance'] = ">99" end return v['chance'] elseif datatype == 'catalyst' then if v['chance'] == nil then return "?" end
return math.floor((100 - v['chance']) / 2.5) elseif datatype == 'types' then local count = p.ingredients(v['ingredients']) if count == 1 or count == 2 then type = 1 elseif count == 3 or count == 4 then type = 2 else type = 3 end
return type
end end end
end
function p.getRecipeItems(frame) local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end
local get = require ('Module:RecipeData/getter') local recipe = args['recipe'] or args[1] local items = "ingredients" local num = tonumber(args['num']) or 1 local str = ""
local result = get[items](recipe) for k, v in ipairs(result) do if tonumber(num) == k then for k2, v2 in ipairs(v['ingredients']) do if tonumber(args['index']) == k2 then str= mw.ustring.format('%s/%s', v2[1], v2[2]) end end end
end return tostring(str)
end
function p.ingredients(items) local count for k, v in ipairs(items) do count = k end
return count end
return p