No Man's Sky Wiki
Advertisement
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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

local p = {}
local cargo = mw.ext.cargo

function p.Main( frame )
	local text = ""
	local icontext = ""
	local separator = ""
	local linktext = ""
	local needicon = true
	local needlink = true
	local iconsize = "18px"

	if frame.args[3] ~= nil then
		for token in string.gmatch(frame.args[3], "([^;]+);?") do
			if token == "option=notext" then
				needlink = false
			elseif token == "option=noicon" then
				needicon = false
			end
		end
	end

	local innertext = frame.args[1]
	if frame.args[2] ~= "" and frame.args[2] ~= nil then
		innertext = frame.args[2]
	end
	
	if needicon then
	    local tables = 'Items'
	    local fields = 'Item_type,Type,Image,_pageName'
	    local args = {
	        where = '_pageName = "' .. frame.args[1] .. '"',
	        groupBy = '_pageName',
	        limit = 1,
	    }
	    local result = cargo.query( tables, fields, args )
	    local r = result[1]
	    if r ~= nil then
			local class = ""
		    if r.Item_type == "Resource" then
		    	class = "resource-"	
			end
			local t = "technology"
			if r.Type ~= "" then
				t = string.gsub(string.lower(r.Type),' ','')
			end
			local image = ""
			if r.Image ~= "" then
				if string.sub(r.Image,1,5) ~= "File:" then
					r.Image = "File:" .. r.Image
				end
				image = "[["..r.Image.."|"..iconsize.."|text-bottom|link="..r._pageName.."]]"	
			end
			icontext = '<span class="'..class..t..'" style="border:1px solid #D3D3D3">'..image..'</span>'
		end
	end
	
	if needlink then
		if needicon then
			separator = " "
		end
		linktext = '[['..frame.args[1]..'|<span class="itemlink ajaxttlink">'..innertext..'</span>]]'
	end
	
	text = icontext .. separator .. linktext
    return text
end

return p
Advertisement