<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>https://playzone.in.ua/wiki/mc//index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3A%D0%9A%D1%80%D0%B0%D1%84%D1%82</id>
		<title>Модуль:Крафт - История изменений</title>
		<link rel="self" type="application/atom+xml" href="https://playzone.in.ua/wiki/mc//index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3A%D0%9A%D1%80%D0%B0%D1%84%D1%82"/>
		<link rel="alternate" type="text/html" href="https://playzone.in.ua/wiki/mc//index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%9A%D1%80%D0%B0%D1%84%D1%82&amp;action=history"/>
		<updated>2026-04-09T18:24:54Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.28.3</generator>

	<entry>
		<id>https://playzone.in.ua/wiki/mc//index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%9A%D1%80%D0%B0%D1%84%D1%82&amp;diff=13308&amp;oldid=prev</id>
		<title>Softer: 1 версия импортирована</title>
		<link rel="alternate" type="text/html" href="https://playzone.in.ua/wiki/mc//index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%9A%D1%80%D0%B0%D1%84%D1%82&amp;diff=13308&amp;oldid=prev"/>
				<updated>2017-01-17T22:27:17Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия импортирована&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style='vertical-align: top;' lang='ru'&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 22:27, 17 января 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan='2' style='text-align: center;' lang='ru'&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Softer</name></author>	</entry>

	<entry>
		<id>https://playzone.in.ua/wiki/mc//index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%9A%D1%80%D0%B0%D1%84%D1%82&amp;diff=13307&amp;oldid=prev</id>
		<title>Atributz: Если указан Мод, то будет написано не Рецепты крафта, а Процесс.</title>
		<link rel="alternate" type="text/html" href="https://playzone.in.ua/wiki/mc//index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%9A%D1%80%D0%B0%D1%84%D1%82&amp;diff=13307&amp;oldid=prev"/>
				<updated>2016-11-06T01:53:19Z</updated>
		
		<summary type="html">&lt;p&gt;Если указан Мод, то будет написано не Рецепты крафта, а Процесс.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- Модуль для создания таблиц с рецептами для крафта.&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
local slot = require( [[Модуль:Инвентарный слот]] )&lt;br /&gt;
local getParts = slot.getParts&lt;br /&gt;
local prefixes = slot.prefixes&lt;br /&gt;
&lt;br /&gt;
-- Сервисная функция&lt;br /&gt;
local function prefixedLink( name, mod )&lt;br /&gt;
	local prefix = ''&lt;br /&gt;
	for _, thisPrefix in pairs( prefixes ) do&lt;br /&gt;
		if mw.ustring.find(name, '^' .. thisPrefix .. ' ' ) then&lt;br /&gt;
			prefix = thisPrefix .. ' '&lt;br /&gt;
			name = mw.ustring.gsub(name, '^' .. prefix, '' )&lt;br /&gt;
			break&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local page = ''&lt;br /&gt;
	if mod and mod ~= '' then&lt;br /&gt;
		page = mod .. '/'&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return prefix .. '[[' .. page .. name .. '|' .. name .. ']]'&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Строительство таблицы&lt;br /&gt;
function p.table( f )&lt;br /&gt;
	local args = f&lt;br /&gt;
	if f == mw.getCurrentFrame() then&lt;br /&gt;
		args = require( 'Модуль:ProcessArgs' ).merge()&lt;br /&gt;
	else&lt;br /&gt;
		f = mw.getCurrentFrame()&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Начинать таблицу при необходимости&lt;br /&gt;
	local multirow = f:callParserFunction( '#dplvar', 'multirow' )&lt;br /&gt;
	if multirow ~= '1' then&lt;br /&gt;
		multirow = nil&lt;br /&gt;
	end&lt;br /&gt;
	local head = args[&amp;quot;глава&amp;quot;] or ''&lt;br /&gt;
	if multirow then&lt;br /&gt;
		head = ''&lt;br /&gt;
	elseif head ~= '' then&lt;br /&gt;
		multirow = 1&lt;br /&gt;
		f:callParserFunction( '#dplvar:set', 'multirow', '1' )&lt;br /&gt;
	else&lt;br /&gt;
		head = 1&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Заканчивать таблицу при необходимости&lt;br /&gt;
	local foot = args[&amp;quot;подвал&amp;quot;] or ''&lt;br /&gt;
	if multirow then&lt;br /&gt;
		if foot ~= '' then&lt;br /&gt;
			multirow = nil&lt;br /&gt;
			f:callParserFunction( '#dplvar:set', 'multirow', '0' )&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		foot = 1&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local header = ''&lt;br /&gt;
	if head ~= '' then&lt;br /&gt;
		local name = ''&lt;br /&gt;
		local description = ''&lt;br /&gt;
		if args[&amp;quot;показатьимя&amp;quot;] == '1' or multirow and args[&amp;quot;показатьимя&amp;quot;] ~= '0' then&lt;br /&gt;
			name = '!! Результат'&lt;br /&gt;
			f:callParserFunction( '#dplvar:set', 'resultname', '1' )&lt;br /&gt;
		end&lt;br /&gt;
		if args[&amp;quot;показатьописание&amp;quot;] == '1' then&lt;br /&gt;
			description = ' !! class=&amp;quot;unsortable&amp;quot; | Описание'&lt;br /&gt;
			f:callParserFunction( '#dplvar:set', 'craftingdescription', '1' )&lt;br /&gt;
		end&lt;br /&gt;
		local class = args[&amp;quot;класс&amp;quot;] or ''&lt;br /&gt;
		local recipeClass = ''&lt;br /&gt;
		if multirow then&lt;br /&gt;
			class = 'sortable collapsible ' .. class&lt;br /&gt;
			recipeClass = 'class=&amp;quot;unsortable&amp;quot; |'&lt;br /&gt;
		end&lt;br /&gt;
		if args[&amp;quot;Мод&amp;quot;] then&lt;br /&gt;
		header = table.concat( {&lt;br /&gt;
			' {| style=&amp;quot;text-align:center&amp;quot; class=&amp;quot;wikitable ' .. class .. '&amp;quot; data-description=&amp;quot;Рецепты крафта&amp;quot;',&lt;br /&gt;
			'! ' .. 'Ингредиенты !! ' .. recipeClass .. ' Процесс' .. name .. description,&lt;br /&gt;
			'|-'&lt;br /&gt;
		}, '\n' )&lt;br /&gt;
		else&lt;br /&gt;
		header = table.concat( {&lt;br /&gt;
			' {| style=&amp;quot;text-align:center&amp;quot; class=&amp;quot;wikitable ' .. class .. '&amp;quot; data-description=&amp;quot;Рецепты крафта&amp;quot;',&lt;br /&gt;
			'! ' .. 'Ингредиенты !! ' .. recipeClass .. ' Рецепты [[крафт]]а' .. name .. description,&lt;br /&gt;
			'|-'&lt;br /&gt;
		}, '\n' )&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Ячейка с названием&lt;br /&gt;
	local nameCell&lt;br /&gt;
	if f:callParserFunction( '#dplvar', 'resultname' ) == '1' then&lt;br /&gt;
		if args[&amp;quot;название&amp;quot;] or '' ~= '' then&lt;br /&gt;
			nameCell = args[&amp;quot;название&amp;quot;]&lt;br /&gt;
		else&lt;br /&gt;
			local names = {}&lt;br /&gt;
			local links = {}&lt;br /&gt;
			for v in mw.text.gsplit( args[&amp;quot;Выход&amp;quot;] or '', '%s*;%s*' ) do&lt;br /&gt;
				parts = getParts( v, args[&amp;quot;Мод&amp;quot;] )&lt;br /&gt;
				parts.mod = parts.mod or ''&lt;br /&gt;
				if not names[parts.mod .. ':' .. parts.name] then&lt;br /&gt;
					table.insert( links, prefixedLink( parts.name, parts.mod ) )&lt;br /&gt;
					names[parts.mod .. ':' .. parts.name] = 1&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			nameCell = table.concat( links, '&amp;amp;nbsp;или&amp;lt;br&amp;gt;' )&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if nameCell and args[&amp;quot;запланированное&amp;quot;] then&lt;br /&gt;
		nameCell = nameCell .. '&amp;lt;br&amp;gt;([[' .. args[&amp;quot;запланированное&amp;quot;] .. ']])'&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Создать список ингредиентов&lt;br /&gt;
	local ingredients = {}&lt;br /&gt;
	local ingredientKeys = {}&lt;br /&gt;
	local animatedIngredients = {}&lt;br /&gt;
	local animatedKeys = {}&lt;br /&gt;
	for k, v in pairs( args ) do&lt;br /&gt;
		v = mw.text.trim( v )&lt;br /&gt;
		if v ~= '' and mw.ustring.find(tostring( k ), '^%u?%d%d?$' ) then&lt;br /&gt;
			if mw.ustring.find(v, ';' ) then&lt;br /&gt;
				table.insert( animatedKeys, v )&lt;br /&gt;
			else&lt;br /&gt;
				local parts = getParts( v, args[&amp;quot;Мод&amp;quot;] )&lt;br /&gt;
				parts.mod = parts.mod or ''&lt;br /&gt;
				local fullName = parts.mod .. ':' .. parts.name&lt;br /&gt;
				if not ingredients[fullName] then&lt;br /&gt;
					table.insert( ingredientKeys, fullName )&lt;br /&gt;
					ingredients[fullName] = { mod = parts.mod, name = parts.name }&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	for k, v in ipairs( animatedKeys ) do&lt;br /&gt;
		local frames = mw.text.split( v, '%s*;%s*' )&lt;br /&gt;
		local length = #frames&lt;br /&gt;
		for k2, v2 in ipairs( frames ) do&lt;br /&gt;
			local parts = getParts( v2, args[&amp;quot;Мод&amp;quot;] )&lt;br /&gt;
			parts.mod = parts.mod or ''&lt;br /&gt;
			local fullName = parts.mod .. ':' .. parts.name&lt;br /&gt;
			if v2 ~= '' and not ingredients[fullName] and not animatedIngredients[fullName] then&lt;br /&gt;
				table.insert( ingredientKeys, fullName )&lt;br /&gt;
				animatedIngredients[fullName] = { mod = parts.mod, name = parts.name, final = k2 == length }&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Ячейка с ингредиентами&lt;br /&gt;
	local ingredientsCell&lt;br /&gt;
	if args[&amp;quot;ингредиенты&amp;quot;] or '' ~= '' then&lt;br /&gt;
		ingredientsCell = args[&amp;quot;ингредиенты&amp;quot;]&lt;br /&gt;
	else&lt;br /&gt;
		ingredientsCell = {}&lt;br /&gt;
		for k, v in ipairs( ingredientKeys ) do&lt;br /&gt;
			local separator = '&amp;amp;nbsp;+'&lt;br /&gt;
			if k == #ingredientKeys then&lt;br /&gt;
				separator = ''&lt;br /&gt;
			elseif animatedIngredients[v] and not animatedIngredients[v].final then&lt;br /&gt;
				separator = '&amp;amp;nbsp;или'&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			local mod = ( ingredients[v] or animatedIngredients[v] ).mod&lt;br /&gt;
			local name = ( ingredients[v] or animatedIngredients[v] ).name&lt;br /&gt;
			table.insert( ingredientsCell, prefixedLink( name, mod ) .. separator )&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		ingredientsCell = table.concat( ingredientsCell, '&amp;lt;br&amp;gt;\n' )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Автоматическое расположение ингредиентов в бесформенном рецепте&lt;br /&gt;
	local newArgs = {}&lt;br /&gt;
	if args[1] then&lt;br /&gt;
		newArgs[&amp;quot;бесформенный&amp;quot;] = 1&lt;br /&gt;
		if args[7] then&lt;br /&gt;
			newArgs.A1 = args[1]&lt;br /&gt;
			newArgs.B1 = args[2]&lt;br /&gt;
			newArgs.C1 = args[3]&lt;br /&gt;
			newArgs.A2 = args[4]&lt;br /&gt;
			newArgs.B2 = args[5]&lt;br /&gt;
			newArgs.C2 = args[6]&lt;br /&gt;
			if args[8] then&lt;br /&gt;
				-- ◼◼◼      ◼◼◼&lt;br /&gt;
				-- ◼◼◼  OR  ◼◼◼&lt;br /&gt;
				-- ◼◼◼      ◼◼◻&lt;br /&gt;
				newArgs.A3 = args[7]&lt;br /&gt;
				newArgs.B3 = args[8]&lt;br /&gt;
				newArgs.C3 = args[9]&lt;br /&gt;
				if args[9] then&lt;br /&gt;
					local identical = true&lt;br /&gt;
					for i = 1, 8 do&lt;br /&gt;
						if args[i] ~= args[i + 1] then&lt;br /&gt;
							identical = false&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
					if identical then&lt;br /&gt;
						newArgs[&amp;quot;бесформенный&amp;quot;] = nil&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			else&lt;br /&gt;
				-- ◼◼◼&lt;br /&gt;
				-- ◼◼◼&lt;br /&gt;
				-- ◻◼◻&lt;br /&gt;
				newArgs.B3 = args[7]&lt;br /&gt;
			end&lt;br /&gt;
		elseif args[2] then&lt;br /&gt;
			newArgs.A2 = args[1]&lt;br /&gt;
			newArgs.B2 = args[2]&lt;br /&gt;
			if args[5] then&lt;br /&gt;
				-- ◻◻◻      ◻◻◻&lt;br /&gt;
				-- ◼◼◼  OR  ◼◼◼&lt;br /&gt;
				-- ◼◼◼      ◼◼◻&lt;br /&gt;
				newArgs.C2 = args[3]&lt;br /&gt;
				newArgs.A3 = args[4]&lt;br /&gt;
				newArgs.B3 = args[5]&lt;br /&gt;
				newArgs.C3 = args[6]&lt;br /&gt;
			elseif args[4] then&lt;br /&gt;
				-- ◻◻◻&lt;br /&gt;
				-- ◼◼◻&lt;br /&gt;
				-- ◼◼◻&lt;br /&gt;
				newArgs.A3 = args[3]&lt;br /&gt;
				newArgs.B3 = args[4]&lt;br /&gt;
			else&lt;br /&gt;
				-- ◻◻◻      ◻◻◻&lt;br /&gt;
				-- ◼◼◻  OR  ◼◼◻&lt;br /&gt;
				-- ◻◼◻      ◻◻◻&lt;br /&gt;
				newArgs.B3 = args[3]&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			-- ◻◻◻&lt;br /&gt;
			-- ◻◼◻&lt;br /&gt;
			-- ◻◻◻&lt;br /&gt;
			newArgs.B2 = args[1]&lt;br /&gt;
			newArgs[&amp;quot;бесформенный&amp;quot;] = nil&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		newArgs.A1 = args.A1&lt;br /&gt;
		newArgs.B1 = args.B1&lt;br /&gt;
		newArgs.C1 = args.C1&lt;br /&gt;
		newArgs.A2 = args.A2&lt;br /&gt;
		newArgs.B2 = args.B2&lt;br /&gt;
		newArgs.C2 = args.C2&lt;br /&gt;
		newArgs.A3 = args.A3&lt;br /&gt;
		newArgs.B3 = args.B3&lt;br /&gt;
		newArgs.C3 = args.C3&lt;br /&gt;
		newArgs[&amp;quot;фиксированный&amp;quot;] = args[&amp;quot;фиксированный&amp;quot;]&lt;br /&gt;
		newArgs[&amp;quot;нефиксировано&amp;quot;] = args[&amp;quot;нефиксировано&amp;quot;]&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Остальные аргументы&lt;br /&gt;
	newArgs[&amp;quot;Мод&amp;quot;] = args[&amp;quot;Мод&amp;quot;]&lt;br /&gt;
	newArgs[&amp;quot;Выход&amp;quot;] = args[&amp;quot;Выход&amp;quot;]&lt;br /&gt;
	newArgs[&amp;quot;ВНазв&amp;quot;] = args[&amp;quot;ВНазв&amp;quot;]&lt;br /&gt;
	newArgs[&amp;quot;ВСсылка&amp;quot;] = args[&amp;quot;ВСсылка&amp;quot;]&lt;br /&gt;
	&lt;br /&gt;
	-- Ячейка с рецептом&lt;br /&gt;
	local recipeCell = require( 'Модуль:Интерфейс' ).craftingTable( newArgs )&lt;br /&gt;
	&lt;br /&gt;
	local row = {&lt;br /&gt;
		'|\n' .. ingredientsCell,&lt;br /&gt;
		'style=&amp;quot;padding:1px&amp;quot; |\n' .. recipeCell&lt;br /&gt;
	}&lt;br /&gt;
	if nameCell then&lt;br /&gt;
		table.insert( row, 3, '&amp;lt;b&amp;gt;' .. nameCell .. '&amp;lt;/b&amp;gt;' )&lt;br /&gt;
	end&lt;br /&gt;
	if f:callParserFunction( '#dplvar', 'craftingdescription' ) == '1' then&lt;br /&gt;
		table.insert( row, args[&amp;quot;описание&amp;quot;] or '' )&lt;br /&gt;
	end&lt;br /&gt;
	row = table.concat( row, '\n|' )&lt;br /&gt;
&lt;br /&gt;
	local footer = ''&lt;br /&gt;
	if foot ~= '' then&lt;br /&gt;
		footer = '|}'&lt;br /&gt;
		f:callParserFunction( '#dplvar:set', 'resultname', '0', 'craftingdescription', '0' )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Создание различных категорий для DPL&lt;br /&gt;
	local title = mw.title.getCurrentTitle()&lt;br /&gt;
	local categories = ''&lt;br /&gt;
	if args[&amp;quot;некат&amp;quot;] ~= '1' and title.namespace == 0 and not title.isSubpage then&lt;br /&gt;
		categories = {}&lt;br /&gt;
		&lt;br /&gt;
		if args[&amp;quot;запланированное&amp;quot;] then&lt;br /&gt;
			table.insert( categories, '[[Категория:Запланированные материалы]]' )&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		if args[&amp;quot;тип&amp;quot;] then&lt;br /&gt;
			table.insert( categories, '[[Категория:Рецепты/' .. args[&amp;quot;тип&amp;quot;] .. ']]' )&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		if args[&amp;quot;игнорировать&amp;quot;] ~= '1' then&lt;br /&gt;
			local dyes = {&lt;br /&gt;
				'Оранжевый краситель', 'Сиреневый краситель', 'Светло-синий краситель', 'Жёлтый краситель', 'Лаймовый краситель',&lt;br /&gt;
				'Розовый краситель', 'Серый краситель', 'Светло-серый краситель', 'Бирюзовый краситель', 'Фиолетовый краситель',&lt;br /&gt;
				'Лазурит', 'Какао-бобы', 'Кактусовая зелень', 'Красный краситель', 'Чернильный мешок'&lt;br /&gt;
			}&lt;br /&gt;
			-- Названия в следующем списке должны писаться ОБЯЗАТЕЛЬНО со строчной буквы, так как встречаются в середине названия:&lt;br /&gt;
			local variants = {&lt;br /&gt;
				'древесина', 'доски', 'окрашенное стекло', 'окрашенная стеклянная панель', 'шерсть',&lt;br /&gt;
				'песчаник', 'ступени', 'плита', 'нажимная пластина', 'звёздочка',&lt;br /&gt;
				'каменный кирпич', 'андезит', 'диорит', 'гранит', 'щит', 'ящик шалкера'&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			for k, v in ipairs( ingredientKeys ) do&lt;br /&gt;
				v = mw.ustring.sub(v, 2 )&lt;br /&gt;
				if not mw.ustring.find(v, ':' ) then&lt;br /&gt;
					if v == 'Любой краситель' or v == 'Любой цветной краситель' then&lt;br /&gt;
						if v == 'Любой краситель' then&lt;br /&gt;
							table.insert( dyes, 1, 'Костная мука' )&lt;br /&gt;
						end&lt;br /&gt;
						&lt;br /&gt;
						for _, dye in ipairs( dyes ) do&lt;br /&gt;
							-- В оригинале название категории имеет формат «Recipe using &amp;lt;предмет&amp;gt;». Прямо переводится&lt;br /&gt;
							-- эта конструкция как «Рецепт, использующий &amp;lt;предмет&amp;gt;». При этом название предмета должно&lt;br /&gt;
							-- было быть в винительном падеже, но на данный момент быстро склонять название предметов&lt;br /&gt;
							-- в именительном падеже с помощью модулей не представляется возможным. Поэтому в качестве&lt;br /&gt;
							-- перевода используется близкая по смыслу конструкция, не требующая склонения.&lt;br /&gt;
							table.insert( categories, '[[Категория:' .. dye .. ' как ингредиент для крафта]]' )&lt;br /&gt;
						end&lt;br /&gt;
					else&lt;br /&gt;
						if v == 'Липкий поршень' then v = 'Поршень'&lt;br /&gt;
						elseif v == 'Любой гриб' or v == 'Красный гриб' or v == 'Коричневый гриб' then v = 'Гриб'&lt;br /&gt;
						elseif v == 'Красный песок' then v = 'Песок'&lt;br /&gt;
						elseif v == 'Древесный уголь' then v = 'Уголь'&lt;br /&gt;
						elseif mw.ustring.find(v, 'красный песчаник$' ) then v = 'Песчаник'&lt;br /&gt;
						elseif mw.ustring.find(v, '^Флаг ') or mw.ustring.find(v, ' флаг$') then v = 'Флаг'&lt;br /&gt;
						elseif v == 'Кварцевый пилон' or v == 'Резной кварцевый блок' then v = 'Кварцевый блок'&lt;br /&gt;
						else&lt;br /&gt;
							-- Объединить категории вариантов, описываемых на единой странице&lt;br /&gt;
							for _, variant in pairs( variants ) do&lt;br /&gt;
								if mw.ustring.find(v, ' ' .. variant .. '$' ) then&lt;br /&gt;
									v = variant&lt;br /&gt;
									break&lt;br /&gt;
								end&lt;br /&gt;
							end&lt;br /&gt;
							&lt;br /&gt;
							-- Убрать приставки&lt;br /&gt;
							for _, prefix in pairs( prefixes ) do&lt;br /&gt;
								if mw.ustring.find(v, '^' .. prefix .. ' ' ) then&lt;br /&gt;
									v = mw.ustring.gsub(v, '^' .. prefix .. ' ', '' )&lt;br /&gt;
									break&lt;br /&gt;
								end&lt;br /&gt;
							end&lt;br /&gt;
						end&lt;br /&gt;
						&lt;br /&gt;
						table.insert( categories, '[[Категория:' .. v .. ' как ингредиент для крафта]]' )&lt;br /&gt;
 					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		categories = table.concat( categories, '' )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if args[&amp;quot;отладка&amp;quot;] == '1' then&lt;br /&gt;
		return '&amp;lt;pre&amp;gt;' .. header .. '\n' .. row .. '\n|-\n' .. footer .. categories .. '&amp;lt;/pre&amp;gt;'&lt;br /&gt;
	else&lt;br /&gt;
		return header .. '\n' .. row .. '\n|-\n' .. footer .. categories&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Atributz</name></author>	</entry>

	</feed>