Módulo:Traits

De Coromon Wiki
Ir a la navegación Ir a la búsqueda

La documentación para este módulo puede ser creada en Módulo:Traits/doc

local p = { }

local traits = mw.loadData("Module:Traits/List");

local errorMsg = "'''Nombre de rasgo no válido. Revisa [[Module:Traits]] para más información.'''"

function p.getList ()
	return traits
end

function p.isValid (frame)
	
	local trait = frame.args[1] or frame.args["trait"]
	
	for k, v in pairs(traits) do
		if v["name"] == trait then
			return 'true'
		end
	end
	
	return 'false'
end

function p.isValidLocal (trait)
	
	for k, v in pairs(traits) do
		if v["name"] == trait then
			return 'true'
		end
	end
	
	return 'false'
end

function p.getTrait(frame)
   local trait = frame.args[1] or frame.args["trait"]

   for k, v in pairs(traits) do
      if v["name"] == trait or k == trait then
         return v
      end
   end

   error("Rasgo no encontrado: " .. tostring(trait))
end
function p.getTraitID (frame)
	local trait = frame.args[1] or frame.args["trait"]
	
	for k, v in pairs(traits) do
		if v["name"] == trait then
			return k
		end
	end
end

function p.getTraitParamOrDefault (frame, param, valueIfEmpty)
	local trait = p.getTrait(frame)
	if trait == nil then
		return errorMsg
	end
	
	if trait[param] == nil then
		return param .. " is undefined for " .. trait["name"]
	end

	return trait[param] ~= "" and trait[param] or valueIfEmpty
end

function p.getDesc (frame)
	return p.getTraitParamOrDefault(frame, "desc", "N/A")
end

function p.get(frame)
	local parameter = frame.args[2] or frame.args["parameter"]
    return p.getTraitParamOrDefault(frame, parameter, "N/A")
end

function p.getParam (frame)
	
	local trait = p.getTrait(frame)
	local param = frame.args[2] or frame.args["param"]
	
	return trait[param]
end

return p