Minecraft Wiki
Advertisement
[создать | история | обновить]Документация
У этого модуля нет документации. Если вы знаете, как использовать этот модуль, пожалуйста, добавьте соответствующую информацию.
-- Список псевдонимов названий блоков и предметов, принимаемых модулем «Инвентарный слот».
-- Переводная версия [[:en:Special:Permalink/1617110]]

-- Этот модуль должен будет вернуть ассоциативную таблицу, где названиям
-- псевдонимов соответствуют структуры псевдонимов.
--
-- Структура псевдонима представляет собой либо один элемент псевдонима, либо
-- последовательность из некоторого числа элементов псевдонимов.
-- Элементы псевдонимов существуют в двух вариантах:
-- • Элемент, определяющий название предмета без каких-либо дополнительных
--   свойств, задаётся строкой.
-- • Элемент, определяющий предмет с переопределением свойств, выражается
--   таблицей, содержащей следующие значения:
--    · name (обязательно): строка с названием используемого спрайта. Также
--      определяет, куда будет вести ссылка из слота;
--    · title (необязательно): строка-minetip с названием предмета, отображаемым
--      во всплывающей подсказке;
--    · text (необязательно): строка-minetip с текстом всплывающей подсказки
--      предмета.
--   Табличный элемент, содержащий только поле name, эквивалентен строковому,
--   поэтому создавать такие элементы не следует.

-- Переменная russian используется для строковых функций, заменяющих стандартные
-- в Lua, так как стандартные работают только с английским языком и не
-- поддерживают Юникод. Например, для приведения строки к нижнему регистру
-- следует использовать `russian:lower(str)`, а не `str:lower()`.
-- Кроме того, переменная предоставляет функции lcfirst() и ucfirst() для
-- изменения регистра первой буквы.
local russian = mw.language.new("ru")


--- Общеиспользуемые прилагательные

-- Операции над прилагательными используются в этом модуле для того, чтобы или
-- использовать прилагательное в переменной форме, либо использовать переменное
-- прилагательное в постоянной форме.
local adjectives = mw.loadData("Модуль:Склонение прилагательных")
local any = adjectives["любой"]
local damaged = adjectives["повреждённый"]
local matching = adjectives["соответствующий"]
local colored = adjectives["цветной"]

-- Все базовые прилагательные даются в начальной форме (единственное число, мужской род, именительный падеж) и со строчной буквы.
-- Данные для склонения и изменения рода будут использоваться из модуля «Склонение прилагательных».

-- Цвета
local colors = {
	"белый",
	"оранжевый",
	"сиреневый",
	"светло-синий",
	"жёлтый",
	"лаймовый",
	"розовый",
	"серый",
	"светло-серый",
	"бирюзовый",
	"фиолетовый",
	"синий",
	"коричневый",
	"зелёный",
	"красный",
	"чёрный"
}

-- Материалы для инструментов, мечей, брони
local toolMaterials = {
	'деревянный',
	'каменный',
	'железный',
	'золотой',
	'алмазный',
	'незеритовый'
}


local coloredDyes = {
	'Оранжевый краситель', 'Сиреневый краситель', 'Светло-синий краситель', 'Жёлтый краситель', 'Лаймовый краситель',
	'Розовый краситель', 'Серый краситель', 'Светло-серый краситель', 'Бирюзовый краситель', 'Фиолетовый краситель',
	'Синий краситель', 'Коричневый краситель', 'Зелёный краситель',
	'Красный краситель', 'Чёрный краситель',
}

-- Все возвращаемые модулем псевдонимы находятся в этой таблице.
local aliases = {
	-- Распространённые виды топлива для печи --
	['Любое топливо'] = { 'Уголь', 'Древесный уголь', { title = 'Древесина', name = 'Дубовая древесина' }, { title = 'Доски Верхнего мира', name = 'Дубовые доски' }, 'Угольный блок' },
	
--[ [
	['Любая кожаная броня'] = { 'Кожаный шлем', 'Кожаная куртка', 'Кожаные штаны', 'Кожаные ботинки' },
	['Любая золотая броня'] = { 'Золотой шлем', 'Золотая кираса', 'Золотые поножи', 'Золотые ботинки' },
	['Любая кольчужная броня'] = { 'Золотой шлем', 'Золотая кираса', 'Золотые поножи', 'Золотые ботинки' },
	['Любая железная броня'] = { 'Железный шлем', 'Железная кираса', 'Железные поножи', 'Железные ботинки' },
	['Любая алмазная броня'] = { 'Алмазный шлем', 'Алмазная кираса', 'Алмазные поножи', 'Алмазные ботинки' },
	['Любая незеритовая броня'] = { 'Незеритовый шлем', 'Незеритовая кираса', 'Незеритовые поножи', 'Незеритовые ботинки' },
--] ]

    -- Камень --
	['Любой булыжник или чернокамень'] = { 'Булыжник', 'Чернокамень' },
	
	-- Отображаемые названия --
	['Сломанные элитры'] = { title = '&eЭлитры', name = 'Сломанные элитры' },
	['Кнопка'] = { title = 'Кнопка', name = 'Каменная кнопка'},
	['Деревянная кнопка'] = { title = 'Кнопка', name = 'Дубовая кнопка'},
	['Арбалет со стрелой'] = { title = 'Арбалет', name = 'Арбалет со стрелой' },
	['Повреждённый арбалет со стрелой'] = { title = 'Арбалет', name = 'Повреждённый арбалет со стрелой' },
	['Арбалет с ракетой'] = { title = 'Арбалет', name = 'Арбалет с ракетой' },
	['Повреждённый арбалет с ракетой'] = { title = 'Арбалет', name = 'Повреждённый арбалет с ракетой' },
	['Зловещий флаг'] = { title = '&6&oЗловещий флаг', name = 'Зловещий флаг', text = 
		'&7Бирюзовый ромб/&7Светло-серое основание/&7Серый столб/&7Светло-серая кайма/&7Чёрный пояс/&7Светло-серая верхняя половина/&7Светло-серый круг/&7Чёрная кайма'},

	-- Оружие --
	['Трезубец'] = { name = 'Трезубец', text = '/&7 Когда в ведущей руке:/ &2Скорость атаки: 1,1/ &2Урон атаки: 9'},

	-- Отображаемые названия для Bedrock и Education Edition --
	['Красный факел (Education Edition)'] = { title = 'Красный факел', name = 'Красный факел (Education Edition)' },
	['Карта (без маркеров)'] = { title = 'Карта', name = 'Карта', text = 'Отображать маркеры: &cнет' },
	['Карта с локатором'] = { title = 'Карта', name = 'Карта', text = 'Отображать маркеры: &aда' },

	-- Химия --
	['Вода (вещество)'] = { title = 'Вода', name = 'Вода (вещество)' },
	['Хлорид'] = { 'Хлорид кальция', 'Хлорид церия', 'Хлорид ртути', 'Хлорид калия', 'Хлорид вольфрама' },
	['Бенгальский огонь'] = { 'Оранжевый бенгальский огонь', 'Синий бенгальский огонь', 'Красный бенгальский огонь', 'Фиолетовый бенгальский огонь', 'Зелёный бенгальский огонь' },
	['Соответствующий хлорид'] = { 'Хлорид кальция', 'Хлорид церия', 'Хлорид ртути', 'Хлорид калия', 'Хлорид вольфрама' },
	['Соответствующий цветной факел'] = { 'Синий факел', { title = 'Красный факел', name = 'Красный факел (Education Edition)' }, 'Фиолетовый факел', 'Зелёный факел' },
	['Соответствующий химический источник света'] = { 'Белый химический источник света', 'Оранжевый химический источник света', 'Сиреневый химический источник света', 'Светло-синий химический источник света',
		'Жёлтый химический источник света', 'Лаймовый химический источник света', 'Розовый химический источник света', 'Серый химический источник света', 'Бирюзовый химический источник света',
		'Фиолетовый химический источник света', 'Синий химический источник света', 'Коричневый химический источник света', 'Зелёный химический источник света', 'Красный химический источник света' },
}

-- Таблица colors содержит последовательность из кодов форматирования, меняющих
-- цвет теста. Предшествующим переменным даны понятные названия, и они равны
-- индексам colors, означающим соответствующий цвет.
local clYellow = 1
local clAqua = 2
local clLightPurple = 3
local clModifiers = {'&e', '&b', '&d'}

-- Цвета подсказок для предметов, которые отличаются от оформления по умолчанию
-- только цветом. Таблица должна состоять из последовательности пар элементов:
-- строки с названием предмета и одной из переменных выше, задающих индекс
-- цвета.
local coloredTooltips = {
	{'Голова крипера', clYellow},
	{'Повреждённые элитры', clYellow},
	{'Голова дракона', clYellow},
	{'Драконье дыхание', clYellow},
	{'Элитры', clYellow},
	{'Голова', clYellow},
	{'Сердце моря', clYellow},
	{'Череп скелета', clYellow},
	{'Тотем бессмертия', clYellow},
	{'Череп скелета-иссушителя', clYellow},
	{'Голова зомби', clYellow},
	{'Маяк', clAqua},
	{'Морской проводник', clAqua},
	{'Золотое яблоко', clAqua},
	{'Пазл', clLightBlue},
	{'Яйцо дракона', clLightPurple},
	{'Структурный блок', clLightPurple},
}
for _, data in ipairs( coloredTooltips ) do
	local name, color = unpack(data)
	aliases[name] = { title = clModifiers[color], name = name }
end

-- Анимированные иконки. Эти предметы используют .gif-изображения вместо
-- спрайтов, а также могут отличаться цветом. Элементы таблицы ниже должны быть
-- таблицами, где первый обязательный элемент — строка с названием, а второй
-- необязательный — один из индексов цветов, приведённых выше.
local animatedIcons = {
	{'Столб пузырей'},
    {'Компас'},
    {'Багровые гифы'},
    {'Багровая ножка'},
	{'Палка отладки'},
	{'Огонь'},
	{'Тепловой блок'},
	{'Лава'},
	{'Магнетитовый компас'},
	{'Магмовый блок'},
	{'Портал Нижнего мира'},
	{'Призмарин'},
	{'Призмариновая плита'},
	{'Призмариновые ступени'},
	{'Призмариновая стена'},
	{'Морской фонарь'},
	{'Камнерез'},
	{'Огонь душ'},
	{'Искажённые гифы'},
	{'Искажённая ножка'},
	{'Вода'},
	{'Написанная книга'},
	{'Зачарованная книга', clYellow},
	{'Звезда Нижнего мира', clYellow},
	{'Зелье опыта', clYellow},
	{'Кристалл Края', clAqua},
	{'Командный блок', clLightPurple},
	{'Цепной командный блок', clLightPurple},
	{'Цикличный командный блок', clLightPurple},
	{'Зачарованное золотое яблоко', clLightPurple},
}
for _, data in ipairs(animatedIcons) do
	local name, color = unpack(data)
	local alias = name .. '.gif'
	if color then
		alias = {title = clModifiers[color], name = alias}
	end
	aliases[name] = alias
end

---- Инструменты и оружие ----

-- Типы инструментов.
-- Ключи: названия типов инструментов (со строчной буквы, именительный падеж).
-- Значения: данные инструментов:
--  поле form: род/число предмета: м/ж/с/н (от "несколько")
--  последовательность: столько же элементов, сколько материалов в списке materials;
--  каждый элемент — пара из двух значений: скорость атаки и урон.
local toolClasses = {
	['меч'] = {
		form = "м",
		{1.6, 4}, {1.6, 5}, {1.6, 6}, {1.6, 4}, {1.6, 7}, {1.6, 8}
	},
	['кирка'] = {
		form = "ж",
		{1.2, 2}, {1.2, 3}, {1.2, 4}, {1.2, 2}, {1.2, 5}, {1.2, 6}
	},
	['топор'] = {
		form = "м",
		{0.8, 7}, {0.8, 9}, {0.9, 9}, {1, 7}, {1, 9}, {1, 9}
	},
	['лопата'] = {
		form = "ж",
		{1, 2.5}, {1, 3.5}, {1, 4.5}, {1, 2.5}, {1, 5.5}, {1.6, 6.5}
	},
	['мотыга'] = {
		form = "ж",
		{1, 1}, {2, 1}, {3, 1}, {1, 1}, {4, 1}, {4, 1}
	},
}

local materialGroups = {}
local toolGroups = {}

local materialAdjectives = {}
for index, material in ipairs(toolMaterials) do
	local adjective = assert(adjectives[material], "неизвестное прилагательное: " .. material)
	
	materialAdjectives[index] = adjective
	materialGroups[adjective] = {}
end

for toolClass, classData in pairs(toolClasses) do
	toolGroups[toolClass] = { form = classData.form }
		
	for index, toolData in ipairs(classData) do
		local adjective = materialAdjectives[index]
		local adjectiveForm = russian:ucfirst(adjective[classData.form]['и'])
		
		local aliasName = adjectiveForm .. ' ' .. toolClass
		local attackSpeed, attackDamage = unpack(toolData)
		
		local alias = {
			title = aliasName,
			name = aliasName,
			text = ("/&7Когда в ведущей руке:/ &2Скорость атаки: %s/ &2Урон атаки: %s"):format(attackSpeed, attackDamage)
		}
		
		aliases[aliasName] = alias
		toolGroups[toolClass][index] = alias
		if toolClass ~= "меч" then
			table.insert(materialGroups[adjective], alias)
		end
	end
end

for materialGroup, items in pairs( materialGroups ) do
	aliases['Любой ' .. materialGroup['м']['и'] .. ' инструмент'] = items
end

for toolGroup, items in pairs( toolGroups ) do
	local form = items.form
	items.form = nil
	aliases[russian:ucfirst(any[form]['и']) .. ' ' .. toolGroup] = items
end

--- Цветные предметы ---

-- Список цветных предметов с указанием рода.
-- Параметр dyed контролирует включение предмета в категорию «цветной»: 0 — без белого, 1 — с белым цветом;
-- если параметр не указан, то категория не создаётся.
-- Обязательно создаются одинаковые по содержанию категории «любой» и «соответствующий».
local colorfulItems = {
	{"шерсть", "ж", dyed=0},
	{"краситель", "м", dyed=0},
	{"кровать", "ж", dyed=0},
	{"ковёр", "м", dyed=0},
	{"глазурованная керамика", "ж"},
	{"керамика", "ж"},
	{"бетон", "м"},
	{"цемент", "ж"},
	{"окрашенное стекло", "с"},
	{"окрашенная стеклянная панель", "ж"},
	{"укреплённое окрашенное стекло", "с", hardened=1},
	{"укреплённая окрашенная стеклянная панель", "ж", hardened=1},
	{"щит", "м"},
	{"шалкеровый ящик", "м"},
	{"воздушный шар", "м"},
}

-- Экспериментальный участок кода
--[ [
for _, data in ipairs(colorfulItems) do
	-- Распаковка массива данных
	local item, form = unpack(data)
	
	-- Базовый список имён для «любых» и «соответствующих» псевдонимов
	local anyColored = {}
	
	-- Необходим только для «цветных» псевдонимов
	local coloredItem = russian:ucfirst(colored[form]["и"]) .. " " .. item
	
	for _, color in ipairs(colors) do
		local subitem = ""
		if data.hardened == 1 then
			-- Здесь, например, «Укреплённое окрашенное стекло» превращается в «Укреплённое синее окрашенное стекло»
			subitem = russian:ucfirst(mw.ustring.gsub(item, "окрашенн", adjectives[color][form]["и"] .. " окрашенн"))
		else
			subitem = russian:ucfirst(adjectives[color][form]["и"] .. " " .. item)
		end
		
		table.insert(anyColored, subitem)
		if data.dyed == 1 or data.dyed == 0 and color ~= "белый" then
			-- Предмет обязательно добавляется в категорию цветных при data.dyed = 1.
			-- Если data.dyed = 0, то добавляются предметы, если их цвет не белый.
			-- Если data.dyed не определён, то не делается ничего.
			
			-- Если таблицы «цветных» псевдонимов нет, она создаётся на месте.
			if aliases[coloredItem] then
				table.insert(aliases[coloredItem], subitem)
			else
				aliases[coloredItem] = {subitem}
			end
		end
	end
	
	-- Наконец, добавление списков имён для основных псевдонимов
	aliases[russian:ucfirst(any[form]["и"] .. " " .. item)] = anyColored
	aliases[russian:ucfirst(matching[form]["и"] .. " " .. item)] = anyColored
end
--] ]

--- Флаги
-- Генерируются несколько видов псевдонимов. Один вид объединяет все расцветки одного и того же узора, другой — все узоры одного и того же цвета,
-- не требующие шаблонов, третий — одноцветные узоры, требующие шаблонов.
-- Кроме того, каждое из названий флагов получает переопределённые заглавие и описание. Все операции как можно лучше совмещены.
local banners = require([[Модуль:Флаги]])
local patterns = mw.loadData([[Модуль:Флаги/Узоры]])

-- У banners есть своя таблица patterns. Их ни в коем случае нельзя путать!
-- banner.patterns — простой список названий узоров
-- Просто patterns — ассоциативная таблица, содержащая таблицы формата {"строка", "род"} с необязательным полем template.
-- В banner.patterns содержатся все ключи для таблицы patterns.

-- Шаблоны для флагов
aliases["Любой шаблон для флага"] = {}
for _, temp in ipairs(banners.templated) do
	local alias = {title = "Шаблон для флага",
		           name = "Шаблон для флага - " .. temp,
		           text = "&7" .. russian:ucfirst(temp)}
	aliases[alias.name] = alias
	table.insert(aliases["Любой шаблон для флага"], alias)
end

-- Служебная функция для построения псевдонима
local function bannerAlias(pattern, color)
	-- Название флага, например: Флаг с белым столбом
	local name = banners.bannerName(pattern, color)
	
	-- Поясняющий текст: прилагательное цвета (с большой буквы, в правильной форме) и название узора
	-- Например: Белый столб
	local text = russian:ucfirst(adjectives[color][patterns[pattern][2]]["и"]) .. " " .. pattern
	
	-- Собственно псевдоним. Получаемое название доступно через поле name
	-- {title = "Флаг", name = "Флаг с белым столбом", text = "&7Белый столб"}
	return {title = "Флаг", name = name, text = "&7" .. text}
end

-- Обход по всем узорам
for _, pattern in ipairs(banners.patterns) do
	-- Название псевдонима для всех раскрасок узора 
	local anyName = banners.bannerName(pattern, "любой")
	aliases[anyName] = {}
	
	-- Обход по всем флагам
	for _, color in ipairs(colors) do
		local anyColored = "Флаг с любым " .. adjectives[color]["м"]["т"] .. " узором"
		local anyColoredTemplated = "Флаг с любой " .. adjectives[color]["ж"]["т"] .. " фигурой"
		
		-- Делаем псевдоним
		alias = bannerAlias(pattern, color)
		
		-- Добавляем сразу в таблицу
		aliases[alias.name] = alias
		
		-- Добавляем в псевдоним для раскрасок узора 
		table.insert(aliases[anyName], alias)
		
		-- Самое интересное:
		-- Добавляем в псевдоним для одноцветных узоров. Здесь и потребуются anyColored и anyColoredTemplated.
		-- Псевдоним добавляется в таблицу, которая при необходимости создаётся.
		-- Такой хитроумный способ позволяет избежать лишних вложенных циклов
		
		if patterns[pattern].template ~= 1 then
			-- Узор не требует использования шаблона хотя бы в одном издании.
			-- В данном случае template либо равен 0, либо отсутствует
			if aliases[anyColored] then
				table.insert(aliases[anyColored], alias)
			else
				aliases[anyColored] = {alias}
			end
		end
		
		if patterns[pattern].template then
			-- Узор требует использования шаблона хотя бы в одном издании.
			-- В данном случае template существует, его значение (0 или 1) при этом не важно
			if aliases[anyColoredTemplated] then
				table.insert(aliases[anyColoredTemplated], alias)
			else
				aliases[anyColoredTemplated] = {alias}
			end
		end
		
		-- Таким образом, узоры с template=0 попадают в оба списка
	end
end

-- Списки вариантов названий --
local itemVariants = {
--[[
	['краситель'] = { 'м', mw.clone( coloredDyes ) },
	['цветной краситель'] = { 'м', coloredDyes },
	['цветная шерсть'] = { 'ж', {
		'Оранжевая шерсть', 'Сиреневая шерсть', 'Светло-синяя шерсть', 'Жёлтая шерсть', 'Лаймовая шерсть',
		'Розовая шерсть', 'Серая шерсть', 'Светло-серая шерсть', 'Бирюзовая шерсть', 'Фиолетовая шерсть',
		'Синяя шерсть', 'Коричневая шерсть', 'Зелёная шерсть', 'Красная шерсть', 'Чёрная шерсть',
	} },
	['цветная кровать'] = { 'ж', {
		'Оранжевая кровать', 'Сиреневая кровать', 'Светло-синяя кровать', 'Жёлтая кровать', 'Лаймовая кровать',
		'Розовая кровать', 'Серая кровать', 'Светло-серая кровать', 'Бирюзовая кровать', 'Фиолетовая кровать',
		'Синяя кровать', 'Коричневая кровать', 'Зелёная кровать', 'Красная кровать', 'Чёрная кровать',
	} },
	['цветной ковёр'] = { 'м', {
		'Оранжевый ковёр', 'Сиреневый ковёр', 'Светло-синий ковёр', 'Жёлтый ковёр', 'Лаймовый ковёр',
		'Розовый ковёр', 'Серый ковёр', 'Светло-серый ковёр', 'Бирюзовый ковёр', 'Фиолетовый ковёр',
		'Синий ковёр', 'Коричневый ковёр', 'Зелёный ковёр', 'Красный ковёр', 'Чёрный ковёр',
	} },
	['цветная керамика'] = { 'ж', {
		'Белая керамика', 'Оранжевая керамика', 'Сиреневая керамика', 'Светло-синяя керамика',
		'Жёлтая керамика', 'Лаймовая керамика', 'Розовая керамика', 'Серая керамика',
		'Светло-серая керамика', 'Бирюзовая керамика', 'Фиолетовая керамика', 'Синяя керамика',
		'Коричневая керамика', 'Зелёная керамика', 'Красная керамика', 'Чёрная керамика',
	} },
--]]
	['цветок'] = { 'м', { 'Нивяник', 'Василёк', 'Ландыш', 'Роза иссушения', 'Красный тюльпан', 'Оранжевый тюльпан', 'Белый тюльпан', 'Розовый тюльпан', 'Хаустония серая', {title = "Лук", name = '(цветок'}, 'Синяя орхидея', 'Мак', 'Одуванчик' } },
	['гриб'] = { 'м', { 'Красный гриб', 'Коричневый гриб' } },
	['кварцевый блок'] = { 'м', { 'Кварцевый блок', 'Резной кварцевый блок', 'Кварцевый пилон' } },
	['красный песчаник'] = { 'м', { 'Красный песчаник', 'Резной красный песчаник', 'Декоративный красный песчаник', 'Гладкий красный песчаник' } },
	['песчаник'] = { 'м', { 'Песчаник', 'Резной песчаник', 'Декоративный песчаник', 'Гладкий песчаник' } },
	['каменные кирпичи'] = { 'н', { 'Каменный кирпич', 'Замшелый каменный кирпич', 'Потрескавшийся каменный кирпич', 'Резной каменный кирпич' } },
	['каменная плита'] = { 'ж', { 'Stone Slab', 'Smooth Stone Slab', 'Cobblestone Slab', 'Mossy Cobblestone Slab', 'Stone Brick Slab', 'Mossy Stone Brick Slab', 'Andesite Slab', 'Polished Andesite Slab',
		'Diorite Slab', 'Polished Diorite Slab', 'Granite Slab', 'Polished Granite Slab', 'Sandstone Slab', 'Cut Sandstone Slab', 'Smooth Sandstone Slab', 'Red Sandstone Slab', 'Cut Red Sandstone Slab', 
		'Smooth Red Sandstone Slab', 'Brick Slab', { title = 'Prismarine Slab', name = 'Prismarine Slab.gif' }, 'Prismarine Brick Slab', 'Dark Prismarine Slab', 'Nether Brick Slab', 'Red Nether Brick Slab', 'Quartz Slab', 
		'Smooth Quartz Slab', 'Purpur Slab', 'End Stone Brick Slab', 'Petrified Oak Slab', 'Blackstone Slab', 'Polished Blackstone Slab', 'Polished Blackstone Brick Slab' } },
	['каменные ступени'] = { 'н', { 'Stone Stairs', 'Cobblestone Stairs', 'Mossy Cobblestone Stairs', 'Stone Brick Stairs', 'Mossy Stone Brick Stairs', 'Andesite Stairs', 'Polished Andesite Stairs', 
		'Diorite Stairs', 'Polished Diorite Stairs', 'Granite Stairs', 'Polished Granite Stairs', 'Sandstone Stairs', 'Smooth Sandstone Stairs', 'Red Sandstone Stairs', 'Smooth Red Sandstone Stairs', 
		'Brick Stairs', { title = 'Prismarine Stairs', name = 'Prismarine Stairs.gif' }, 'Prismarine Brick Stairs', 'Dark Prismarine Stairs', 'Nether Brick Stairs', 'Red Nether Brick Stairs', 'Quartz Stairs', 'Smooth Quartz Stairs', 'Purpur Stairs', 
		'End Stone Brick Stairs', 'Blackstone Stairs', 'Polished Blackstone Stairs', 'Polished Blackstone Brick Stairs' } },
	['пурпурный блок'] = { 'м', { 'Purpur Block', 'Purpur Pillar' } },
	['камень'] = { 'м', { 'Stone', 'Andesite', 'Granite', 'Diorite', 'Polished Andesite', 'Polished Granite', 'Polished Diorite' } },
	['тюльпан'] = { 'м', { 'Red Tulip', 'Orange Tulip', 'White Tulip', 'Pink Tulip' } },
	['призмарин'] = { 'м', { { title = 'Prismarine', name = 'Prismarine.gif' }, 'Prismarine Bricks', 'Dark Prismarine' } },
	['руда'] = { 'ж', { 'Coal Ore', 'Iron Ore', 'Gold Ore', 'Lapis Lazuli Ore', 'Redstone Ore', 'Emerald Ore', 'Diamond Ore', 'Nether Quartz Ore', 'Nether Gold Ore' } },
	['блок мёртвого коралла'] = { 'м', { 'Dead Tube Coral Block', 'Dead Brain Coral Block', 'Dead Bubble Coral Block', 'Dead Fire Coral Block', 'Dead Horn Coral Block' } },
	['блок коралла'] = { 'м', { 'Tube Coral Block', 'Brain Coral Block', 'Bubble Coral Block', 'Fire Coral Block', 'Horn Coral Block' } },
	['мёртвый коралл'] = { 'м', { 'Dead Tube Coral', 'Dead Brain Coral', 'Dead Bubble Coral', 'Dead Fire Coral', 'Dead Horn Coral' } },
	['мёртвый веерный коралл'] = { 'м', { 'Dead Tube Coral Fan', 'Dead Brain Coral Fan', 'Dead Bubble Coral Fan', 'Dead Fire Coral Fan', 'Dead Horn Coral Fan' } },
	['коралл'] = { 'м', { 'Tube Coral', 'Brain Coral', 'Bubble Coral', 'Fire Coral', 'Horn Coral' } },
	['веерный коралл'] = { 'м', { 'Tube Coral Fan', 'Brain Coral Fan', 'Bubble Coral Fan', 'Fire Coral Fan', 'Horn Coral Fan' } },
	['стена'] = { 'ж', { 'Cobblestone Wall', 'Mossy Cobblestone Wall', 'Stone Brick Wall', 'Mossy Stone Brick Wall', 'Andesite Wall', 'Diorite Wall', 'Granite Wall', 'Sandstone Wall', 
		'Red Sandstone Wall', 'Brick Wall', { title = 'Prismarine Wall', name = 'Prismarine Wall.gif' }, 'Nether Brick Wall', 'Red Nether Brick Wall', 'End Stone Brick Wall', 'Blackstone Wall', 'Polished Blackstone Wall', 
		'Polished Blackstone Brick Wall' } },
	['факел'] = { 'м', { 'Torch', 'Soul Torch' } },
	['фонарь'] = { 'м', { 'Lantern', 'Soul Lantern' } },
	['Fungus'] = { 'м', { 'Crimson Fungus', 'Warped Fungus' } },
	['Fungi'] = { 'м', { 'Crimson Fungus', 'Warped Fungus' } },
	['Roots'] = { 'м', { 'Crimson Roots', 'Warped Roots' } },
	['нилий'] = { 'м', { 'Crimson Nylium', 'Warped Nylium' } },
	['песок душ'] = { 'м', { 'Soul Sand', 'Soul Soil' } },
	['костёр'] = { 'м', { 'Campfire', 'Soul Campfire' } },
	['чернокамень'] = { 'м', { 'Blackstone', 'Polished Blackstone', 'Chiseled Polished Blackstone', 'Polished Blackstone Bricks', 'Cracked Polished Blackstone Bricks' } },
	['каменная кнопка'] = { 'ж', { 'Stone Button', 'Polished Blackstone Button' } },
	['каменная нажимная пластина'] = { 'ж', { 'Stone Pressure Plate', 'Polished Blackstone Pressure Plate' } },
	['Nether Wood Pressure Plate'] = { 'м', { 'Crimson Pressure Plate', 'Warped Pressure Plate' } },
	['Nether Wood Fence'] = { 'м', { 'Crimson Fence', 'Warped Fence' } },
	['Nether Wood Trapdoor'] = { 'м', { 'Crimson Trapdoor', 'Warped Trapdoor' } },
	['Nether Wood Fence Gate'] = { 'м', { 'Crimson Fence Gate', 'Warped Fence Gate' } },
	['Nether Wood Stairs'] = { 'м', { 'Crimson Stairs', 'Warped Stairs' } },
	['Nether Wood Door'] = { 'м', { 'Crimson Door', 'Warped Door' } },
	['Nether Wood Sign'] = { 'м', { 'Crimson Sign', 'Warped Sign' } },
}
--table.insert( itemVariants['краситель'][2], 1, 'Белый краситель' )
for aliasName, aliasData in pairs( itemVariants ) do
	local form, aliasItems = unpack(aliasData)
	aliases[russian:ucfirst(any[form]['и']) .. ' ' .. aliasName] = aliasItems
	aliases[russian:ucfirst(matching[form]['и']) .. ' ' .. aliasName] = aliasItems
end

return aliases
Advertisement