Этот Lua-модуль содержит общие данные по псевдонимам, которые можно использовать в инвентарных слотах вместо собственных названий предметов.
Большинство псевдонимов определяются для групп предметов. Это удобно, так как не приходится перечислять все предметы. Более того, группу предметов, для которой записан псевдоним можно изменять в одном месте (данном модуле), и тогда не придётся менять те страницы, где он используется.
Другие псевдонимы переопределяют отображаемый всплывающий текст. Он указывается в квадратных скобках. Это делается для того, чтобы он примерно соответствовал тому тексту, что используется в игре (но это возможно не до конца — поддержка форматирования текста и многострочного комментария на данный момент не реализована).
-- Список псевдонимов названий блоков и предметов, принимаемых модулем «Инвентарный слот».
russian = mw.language.new('ru')
-- «Цветные» красители
local coloredDyes = 'Оранжевый краситель; Сиреневый краситель; Светло-синий краситель; Жёлтый краситель; Лаймовый краситель; Розовый краситель; Серый краситель; Светло-серый краситель; Бирюзовый краситель; Фиолетовый краситель; Ультрамарин; Какао-бобы; Кактусовая зелень; Красный краситель; Чернильный мешок'
local aliases = {
-- Списки --
['Любой краситель'] = 'Костная мука;' .. coloredDyes,
['Любой цветной краситель'] = coloredDyes,
['Любая цветная шерсть'] = 'Оранжевая шерсть; Сиреневая шерсть; Светло-синяя шерсть; Жёлтая шерсть; Лаймовая шерсть; Розовая шерсть; Серая шерсть; Светло-серая шерсть; Бирюзовая шерсть; Фиолетовая шерсть; Синяя шерсть; Коричневая шерсть; Зелёная шерсть; Красная шерсть; Чёрная шерсть',
['Любое топливо'] = 'Уголь; Древесный уголь; Древесина; Доски',
['Любой гриб'] = '[Гриб]Красный гриб; [Гриб]Коричневый гриб',
['Любой кварцевый блок'] = 'Кварцевый блок; Резной кварцевый блок; Кварцевый пилон',
['Любой красный песчаник'] = 'Красный песчаник; Декоративный красный песчаник; Гладкий красный песчаник',
['Любой песчаник'] = 'Песчаник; Декоративный песчаник; Гладкий песчаник',
['Любой каменный кирпич'] = 'Каменный кирпич; Замшелый каменный кирпич; Потрескавшийся каменный кирпич; Резной каменный кирпич',
['Любая каменная плита'] = 'Каменная плита; Песчаниковая плита; Булыжниковая плита; Кирпичная плита; Плита из каменного кирпича; Плита из адского кирпича; Кварцевая плита',
-- Блоки и предметы с изменёнными отображаемыми названиями --
['Сломанные надкрылья'] = '[Надкрылья]Сломанные надкрылья',
['Коричневый гриб'] = '[Гриб]Коричневый гриб',
['Огромный коричневый гриб'] = '[Гриб]Огромный коричневый гриб',
['Глиняный блок'] = '[Глина]Глиняный блок',
--['Зачарованная книга'] = '[&e]Зачарованная книга', -- minetips не поддерживаются
--['Зачарованное золотое яблоко'] = '[&d]Золотое яблоко', -- minetips не поддерживаются
['Рамка портала Края'] = '[Портал (Край)]Рамка портала Края',
--['Золотое яблоко'] = '[&b]Золотое яблоко', -- minetips не поддерживаются
['Адский кирпич (предмет)'] = '[Адский кирпич]Адский кирпич (предмет)',
['Красный гриб'] = '[Гриб]Красный гриб',
['Огромный красный гриб'] = '[Гриб]Огромный красный гриб',
['Снег (слой)'] = '[Снег]Снег (слой)',
['Каменная кнопка'] = '[Кнопка]Каменная кнопка',
['Деревянная кнопка'] = '[Кнопка]Деревянная кнопка',
-- Зелья без эффектов --
--[[ minetips не поддерживаются
['Awkward Potion'] = 'Awkward Potion[&7No effects]',
['Water Bottle'] = 'Water Bottle[&7No effects]', -- колба воды тоже относится к зельям
['Thick Potion'] = 'Thick Potion[&7No effects]',
['Mundane Potion'] = 'Mundane Potion[&7No effects]'
]]
}
-- Пластинки --
--[[ minetips не поддерживаются
local discs = { '13', 'cat', 'blocks', 'chirp', 'far', 'mall', 'mellohi', 'stal', 'strad', 'ward', '11', 'wait' }
for _, disc in ipairs( discs ) do
local name = disc .. ' Disc'
aliases[name] = '[&bMusic Disc]' .. name .. '[&7C418 - ' .. disc .. ']'
end
]]
-- Повреждённая экипировка --
-- В отличие от английского языка в русском языке окончание прилагательных изменяется в зависимости
-- от числа и рода существительных, к которым они относятся. Поэтому элементами таблицы являются
-- подтаблицы из двух элементов — собственно названия и рода (в единственном числе) или показателя
-- множественного числа.
local damagedItems = {
{'лук', 'м'}, -- мужской род
{'кольчужный шлем', 'м'},
{'алмазный топор', 'м'},
{'алмазный шлем', 'м'},
{'алмазный меч', 'м'},
{'золотой топор', 'м'},
{'золотой шлем', 'м'},
{'золотой меч', 'м'},
{'железный топор', 'м'},
{'железный шлем', 'м'},
{'железный меч', 'м'},
{'щит', 'м'},
{'каменный топор', 'м'},
{'каменный меч', 'м'},
{'деревянный топор', 'м'},
{'деревянный меч', 'м'},
{'огниво', 'с'}, -- средний род
{"удочка с морковью", "ж"}, -- женский род
{"кольчужная кираса", "ж"},
{"алмазная кираса", "ж"},
{"алмазная мотыга", "ж"},
{"алмазная кирка", "ж"},
{"алмазная лопата", "ж"},
{"удочка", "ж"},
{"золотая кираса", "ж"},
{"золотая мотыга", "ж"},
{"золотая кирка", "ж"},
{"золотая лопата", "ж"},
{"железная кираса", "ж"},
{"железная мотыга", "ж"},
{"железная кирка", "ж"},
{"железная лопата", "ж"},
{"кожаная шапка", "ж"},
{"кожаная куртка", "ж"},
{"каменная мотыга", "ж"},
{"каменная кирка", "ж"},
{"каменная лопата", "ж"},
{"деревянная мотыга", "ж"},
{"деревянная кирка", "ж"},
{"деревянная лопата", "ж"},
{"кольчужные ботинки", "н"}, -- множественное число (н — от «несколько»)
{"кольчужные поножи", "н"},
{"алмазные ботинки", "н"},
{"алмазные поножи", "н"},
{"надкрылья", "н"},
{"золотые ботинки", "н"},
{"золотые поножи", "н"},
{"железные ботинки", "н"},
{"железные поножи", "н"},
{"кожаные сапоги", "н"},
{"кожаные штаны", "н"},
{"ножницы", "н"}
}
local damaged = {["м"] = "Повреждённый", ["ж"] = "Повреждённая", ["с"] = "Повреждённое", ["н"] = "Повреждённые"}
-- Добавление
for _, item in ipairs(damagedItems) do
local name = damaged[item[2]] .. item[1]
aliases[name] = '[' .. item[1] .. ']' .. name
end
-- Цветные предметы и флаги --
-- Все цвета в начальной форме
local colors = {
"белый",
"оранжевый",
"сиреневый",
"светло-синий",
"жёлтый",
"лаймовый",
"розовый",
"серый",
"светло-серый",
"бирюзовый",
"фиолетовый",
"синий",
"коричневый",
"зелёный",
"красный",
"чёрный"
}
-- Все склонения прилагательных
local colorsDeclensed = mw.loadData("Модуль:Склонение прилагательных")
-- Шаблоны названий фигур флагов в творительном падеже. %s — цвет (тоже в творительном).
-- Значения элементов таблицы сами являются таблицами: первое значение — собственно текст, второе — род или число названия фигуры.
local patterns = {
{'%s верхне-правым крыжем', 'м'},
{'%s верхне-левым крыжем', 'м'},
{'%s нижне-правым крыжем', 'м'},
{'%s нижне-левым крыжем', 'м'},
{'%s основанием', 'с'},
{'%s поясом', 'м'},
{'%s главой', 'ж'},
{'%s зубчатым основанием', 'с'},
{'%s зубчатой главой', 'ж'},
{'%s правосторонним столбом', 'м'},
{'%s столбом', 'м'},
{'%s левосторонним столбом', 'м'},
{'%s столбами', 'н'},
{'%s перевязью', 'ж'},
{'%s левой перевязью', 'ж'},
{'%s крестом', 'м'},
{'%s косым крестом', 'м'},
{'%s верхней половиной', 'ж'},
{'%s нижней половиной', 'ж'},
{'%s левой половиной', 'ж'},
{'%s правой половиной', 'ж'},
{'%s скошением', 'с'},
{'%s опрокинутым скошением', 'с'},
{'%s скошением слева', 'с'},
{'%s опрокинутым скошением слева', 'с'},
{'%s каймой', 'ж'},
{'%s зубчатой каймой', 'ж'},
{'%s муровкой', 'ж'},
{'%s книзу градиентом', 'м'},
{'%s кверху градиентом', 'м'},
{'%s остриём', 'с'},
{'%s опрокинутым остриём', 'с'},
{'%s ромбом', 'м'},
{'%s кругом', 'м'},
{'%s крипером', 'м'},
{'%s цветком', 'м'},
{'%s черепом', 'м'},
{'чем-то %s', 'с'},
}
aliases['Любая звёздочка'] = {}
for _, color in ipairs( colors ) do
local name = russian:ucfirst(colorsDeclensed[color]["ж"]["и"]) .. ' звёздочка'
--aliases[name] = '[Firework Star]' .. name .. '[&7' .. color .. ']' -- minetips не поддерживаются
table.insert( aliases['Любая звёздочка'], name ) -- было aliases[name], стало просто name
--[[ minetips не поддерживаются
for _, pattern in ipairs( patterns ) do
name = "Флаг с " .. mw.ustring.format(pattern.text, colorsDeclensed[color][pattern.gender]["т"])
aliases[name] = '[Banner]' .. name .. '[&7' .. color .. ' ' .. pattern .. ']'
end ]]
end
aliases['Любая звёздочка'] = table.concat( aliases['Любая звёздочка'], ';' )
-- Предметы, использующие все 16 цветов --
local coloredItems = {
{'ковёр', 'м'},
{'окрашенная глина', 'ж'},
{'окрашенное стекло', 'с'},
{'ркрашенная стеклянная панель', 'ж'},
{'флаг', 'м'},
{'шерсть', 'ж'},
{'щит', 'ж'}
}
local anyDeclensed = {["м"] = "Любой", ["ж"] = "Любая", ["с"] = "Любое", ["н"] = "Любые"}
for _, item in ipairs( coloredItems ) do
local name = anyDeclensed[item[2]] .. item[1]
aliases[name] = {}
for _, color in ipairs( colors ) do
table.insert( aliases[name], colorsDeclensed[color][item[2]]["и"] .. ' ' .. item[1] )
end
aliases[name] = table.concat( aliases[name], ';' )
end
-- Зелья --
-- Названия эффектов в родительном падеже
local effectsGenitive = {
"регенерации",
"скорость",
"огнестойкости",
"отравления",
"исцеления",
"ночного зрения",
"слабости",
"силы",
"замедления",
"прыгучести",
"урона",
"подводного дыхания",
"невидимости",
"удачи"
}
aliases['Любое зелье'] = {
"Колба воды",
"Грубое зелье",
"Густое зелье",
"Непримечательное зелье"
}
aliases['Любое взрывающееся зелье'] = {
"Взрывающаяся колба воды",
"Взрывающееся грубое зелье",
"Взрывающееся густое зелье",
"Взрывающееся непримечательное зелье"
}
aliases['Любое оседающее зелье'] = {
"Оседающая колба воды", -- хоть и звучит странно, но это так
"Оседающее грубое зелье",
"Оседающее густое зелье",
"Оседающее непримечательное зелье"
}
aliases['Любая стрела с эффектом'] = {
"Стрела с водой",
"Стрела с эффектом",
"Стрела с эффектом",
"Стрела с эффектом"
}
for _, ofEffect in ipairs( effectsGenitive ) do
table.insert( aliases['Любое зелье'], 'Зелье ' .. ofEffect )
table.insert( aliases['Любое взрывающееся зелье'], 'Взрывающееся зелье ' .. ofEffect )
table.insert( aliases['Любое оседающее зелье'], 'Оседающее зелье ' .. ofEffect )
table.insert( aliases['Любая стрела с эффектом'], 'Стрела ' .. ofEffect )
end
aliases['Любое зелье'] = table.concat( aliases['Любое зелье'], ';' )
aliases['Любое взрывающееся зелье'] = table.concat( aliases['Любое взрывающееся зелье'], ';' )
aliases['Любое оседающее зелье'] = table.concat( aliases['Любое оседающее зелье'], ';' )
aliases['Любая стрела с эффектом'] = table.concat( aliases['Любая стрела с эффектом'], ';' )
-- Древесина --
--- ИДУТ СТРОИТЕЛЬНЫЕ РАБОТЫ ---
-- Список сортов дерева
--[[
local woods = {
'Дуб',
'Сосна',
'Берёза',
'Джунглевое дерево',
'Акация',
'Тёмный дуб',
}
local woodItems = {
'%s доски',
'Древесина %s',
'дверь',
'
'Boat',
'wood Door',
'wood Fence',
'Fence Gate',
'Wood Slab',
'Wood Stairs',
}
-- used if the items use a different name than the alias
local woodNames = {
['wood Door'] = 'Door',
['wood Fence'] = 'Fence',
}
for _, item in ipairs( woodItems ) do
local itemName = woodNames[item] or item
local woodAliases = {}
for _, wood in ipairs( woods ) do
table.insert( woodAliases, wood .. ' ' .. itemName )
end
woodAliases = table.concat( woodAliases, ';' )
aliases['Any ' .. item] = woodAliases
aliases['Matching ' .. item] = woodAliases
end
]]
return aliases