Module:PageRef: Difference between revisions

From Deadlock Wiki
Jump to navigation Jump to search
Sur (talk | contribs)
m check if type is provided first
Sur (talk | contribs)
m check if resource name is an english hero name
Line 1: Line 1:
local p = {}
local p = {}
local heroes_data = mw.loadJsonData("Data:HeroData.json")


-- Generates appropriate filename from name and type
local function is_hero(resource_name_en)
p.getFilename = function(frame)
for hero_key, hero_data in pairs(heroes_data) do
local name = frame.args[1]
if hero_data["Name"] == resource_name_en then
local type = frame.args[2]
return true
end
end
return false
end
 
-- Generates appropriate filename from resource_name_en
p.get_file_name = function(frame)
local resource_name_en = frame.args[1]
-- Prefix with File namespace
-- Prefix with File namespace
name = "File:" .. name
file_name = "File:" .. resource_name_en
-- Do some name fiddling where appropriate (can be expanded if new file naming conventions arise)
--Determine the filename to use
if (type ~= nil and string.lower(type)=="hero") then name = name .. " MM" end -- Hero files are suffixed with MM (minimap)
--Heroes use <hero_name>_MM.ext
--Items use <item_name>.ext
--Abilities use <ability_name>.ext
if is_hero(resource_name_en) then
file_name = file_name .. "_MM"
--elseif is_item(resource_name_en) then
--file_name = file_name .. ""
--elseif is_ability(resource_name_en) then
--file_name = file_name .. ""
end
-- Try to grab SVG if possible
-- Try to grab SVG if possible
if mw.title.new(name..".svg").exists then
local svg_file_name = file_name .. ".svg"
name = name .. ".svg"
if mw.title.new(svg_file_name).exists then
file_name = svg_file_name
else
else
name = name .. ".png"
file_name = file_name .. ".png"
end
end
return name
return file_name
end
end


return p
return p

Revision as of 19:31, 20 October 2024

Documentation for this module may be created at Module:PageRef/doc

local p = {}
local heroes_data = mw.loadJsonData("Data:HeroData.json")

local function is_hero(resource_name_en) 
	for hero_key, hero_data in pairs(heroes_data) do
		if hero_data["Name"] == resource_name_en then
			return true
		end
	end
	return false
end

-- Generates appropriate filename from resource_name_en
p.get_file_name = function(frame)
	local resource_name_en = frame.args[1]
	
	-- Prefix with File namespace
	file_name = "File:" .. resource_name_en
	
	--Determine the filename to use
	--Heroes use <hero_name>_MM.ext
	--Items use <item_name>.ext
	--Abilities use <ability_name>.ext
	if is_hero(resource_name_en) then
		file_name = file_name .. "_MM"
	--elseif is_item(resource_name_en) then
		--file_name = file_name .. ""
	--elseif is_ability(resource_name_en) then
		--file_name = file_name .. ""
	end
	
	-- Try to grab SVG if possible
	local svg_file_name = file_name .. ".svg"
	if mw.title.new(svg_file_name).exists then
		file_name = svg_file_name
	else
		file_name = file_name .. ".png"
	end
	
	return file_name
end

return p