Перейти к содержанию

Модуль:Флаги

Материал из LemonCraft Wiki
Версия от 20:53, 20 марта 2025; Spark108 (обсуждение | вклад) (Новая страница: «-- Список изображений на флагах и то, как грамотно их называть local p = {} -- Полный список узоров p.patterns = { 'нижне-правый крыж', 'нижне-левый крыж', 'верхне-правый крыж', 'верхне-левый крыж', 'основание', 'глава', 'правосторонний столб', 'левосторонний столб', 'столб'...»)

Для документации этого модуля может быть создана страница Модуль:Флаги/doc

-- Список изображений на флагах и то, как грамотно их называть

local p = {}

-- Полный список узоров
p.patterns = {
	'нижне-правый крыж', 'нижне-левый крыж', 'верхне-правый крыж', 'верхне-левый крыж', 'основание', 'глава',
	'правосторонний столб', 'левосторонний столб', 'столб', 'пояс', 'перевязь', 'левосторонняя перевязь',
	'столбы', 'косой крест', 'крест', 'остриё', 'опрокинутое остриё', 'зубчатое основание', 'зубчатая глава',   
	'скошение слева', 'опрокинутое скошение слева', 'опрокинутое скошение', 'скошение', 'круг', 'ромб',
	'правая половина', 'верхняя половина', 'левая половина', 'нижняя половина',
	'кайма', 'зубчатая кайма', 'градиент кверху', 'градиент книзу', 'муровка',
	'цветок', 'крипер', 'череп', 'нечто', 'глобус', 'рыло', 'поток', 'вихрь'
}

-- Узоры, которым не нужны шаблоны
p.notemplate = {
	'нижне-правый крыж', 'нижне-левый крыж', 'верхне-правый крыж', 'верхне-левый крыж', 'основание', 'глава',
	'правосторонний столб', 'левосторонний столб', 'столб', 'пояс', 'перевязь', 'левосторонняя перевязь',
	'столбы', 'косой крест', 'крест', 'остриё', 'опрокинутое остриё', 'зубчатое основание', 'зубчатая глава',   
	'скошение слева', 'опрокинутое скошение слева', 'опрокинутое скошение', 'скошение', 'круг', 'ромб',
	'правая половина', 'верхняя половина', 'левая половина', 'нижняя половина',
	'кайма', 'градиент кверху', 'градиент книзу'
}
-- Узоры, для которых шаблоны нужны
p.templated = { 'зубчатая кайма', 'муровка', 'цветок', 'крипер', 'череп', 'нечто', 'глобус', 'рыло', 'поток', 'вихрь' }

-- Цвет выделения названия шаблона в Инвентарном слоте
p.templateSlotFormat = {
--	["зубчатая кайма"] = '&f',
--	["муровка"] = '&f',
--	["цветок"] = '&f',
	["крипер"] = '&e',
	["череп"] = '&b',
	["нечто"] = '&b',
--	["глобус"] = '&f',
	["рыло"] = '&e',
	["поток"] = '&b',
	["вихрь"] = '&b',
}

-- Построение грамматически корректного названия флага с цветным узором
function p.bannerName(pattern, color)
	-- Все варианты склонений цветов
	local colors = mw.loadData([[Модуль:Склонение прилагательных]])
	
	-- Все варианты узоров
	local patterns = mw.loadData([[Модуль:Флаги/Узоры]])
	
	local with_pattern = assert(patterns[pattern][1], ("Неизвестный узор «%s»"):format(pattern)) -- ищем подходящее словосочетание
	local with_colored_pattern = with_pattern:format(assert(colors[color][patterns[pattern][2]]['т'], "Неизвестный цвет: " .. color)) -- подстановка цвета
	local name = 'Флаг с '
	if mw.ustring.match(color, '^с[^аоуыеяёюие]') then
		-- Если цвет начинается со звука «с», за которым нет гласного, то используем предлог «со»
		name = 'Флаг со '
	end
	return name .. with_colored_pattern
end

return p