Модуль:IDLists/Items

Материал из Terraria Wiki
Перейти к навигации Перейти к поиску
См. также этот модуль на английском языке: Module:IDLists/Items. В нём может содержаться более полная или подробная информация.

Документация для этого модуля отсутствует. Создайте её.


local tr = require('Module:Tr')
local getData = require('Module:Iteminfo').getItemStat
local info = require('Module:Iteminfo').info

local na
local lang

local l10n_info = {
	['en'] = {
		['na_note'] = 'No official name',
		['id'] = 'ID',
		['name'] = 'Name',
		['iname'] = 'Internal name',
		['ename'] = 'English name'
	},
	['ru'] = {
		['na_note'] = 'Нет официального названия',
		['id'] = 'ID',
		['name'] = 'Название',
		['ename'] = 'Название на английском',
		['iname'] = 'Внутреннее название',
	}
}

local l10n_table

local function l10n(key)
	return l10n_table[key] or l10n_info['en'][key] or ''
end

local replaceName = {
	[115] = "Shadow Orb (item)",
	[669] = "Fish (item)",
	[989] = 'Enchanted Sword (item)',
	[1435] = "The Destroyer (item)",
	[1475] = "Darkness (Painting)",
	[2436] = "Jellyfish (bait)",
	[2437] = "Jellyfish (bait)",
	[2438] = "Jellyfish (bait)",
	[3062] = "Crimson Heart (item)",
	[4633] = "Oasis (Painting)",
	[4725] = "Graveyard (Painting)",
}

local function row(id)
	local result = '<tr><td>' .. id .. '</td>'
	local name = getData(id, 'name')
	local internalName = getData(id, 'internalName')
	
	if name == '' then
		result = result .. '<td>' .. na .. '</td>' .. (lang ~= 'en' and '<td>' .. na .. '</td>' or '')
	else
		linkName = replaceName[id] or name
		if lang == 'en' then
			result = result .. '<td>[[' .. linkName .. '|' .. name .. ']]</td>'
		else
			result = result .. '<td>[[' .. tr.translateLink(linkName, lang) .. '|' .. tr.translate(name, lang) .. ']]</td>'
			.. '<td>' .. name .. '</td>'
		end
	end
	
	result = result .. '<td><code>' .. internalName .. '</code></td></tr>'
	
	return result
end

return {
	main = function(frame)
		lang = frame:expandTemplate{ title = 'lang' }
		l10n_table = l10n_info[lang] or l10n_info['en']
		na = frame:expandTemplate{ title = 'na' } .. ' ' .. frame:expandTemplate{ title = 'note', args = { small = 'y', paren = 'y', l10n('na_note') }}
		
		local result = { '<table class="terraria lined sortable">',
			'<tr><th>' .. l10n('id') .. '</th><th>' .. l10n('name') .. '</th>' .. (lang ~= 'en' and '<th>' .. l10n('ename') .. '</th>' or '') .. '<th>' .. l10n('iname') .. '</th></tr>'
		}
		
		for i = info.IDs.min, info.IDs.max do
			result[#result + 1] = row(i)
		end
		
		result[#result + 1] = '</table>'
		
		return table.concat(result, '\n')
	end,
}