<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.lemoncraft.su/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3A%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B4%D0%BB%D1%8F_%D0%BA%D1%80%D0%B0%D1%84%D1%82%D0%B0</id>
	<title>Модуль:Использование для крафта - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.lemoncraft.su/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3A%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B4%D0%BB%D1%8F_%D0%BA%D1%80%D0%B0%D1%84%D1%82%D0%B0"/>
	<link rel="alternate" type="text/html" href="https://wiki.lemoncraft.su/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B4%D0%BB%D1%8F_%D0%BA%D1%80%D0%B0%D1%84%D1%82%D0%B0&amp;action=history"/>
	<updated>2026-06-24T07:55:47Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://wiki.lemoncraft.su/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B4%D0%BB%D1%8F_%D0%BA%D1%80%D0%B0%D1%84%D1%82%D0%B0&amp;diff=180&amp;oldid=prev</id>
		<title>Spark108: 1 версия импортирована</title>
		<link rel="alternate" type="text/html" href="https://wiki.lemoncraft.su/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B4%D0%BB%D1%8F_%D0%BA%D1%80%D0%B0%D1%84%D1%82%D0%B0&amp;diff=180&amp;oldid=prev"/>
		<updated>2025-03-26T10:40:34Z</updated>

		<summary type="html">&lt;p&gt;1 версия импортирована&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 10:40, 26 марта 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ru&quot;&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>Spark108</name></author>
	</entry>
	<entry>
		<id>https://wiki.lemoncraft.su/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B4%D0%BB%D1%8F_%D0%BA%D1%80%D0%B0%D1%84%D1%82%D0%B0&amp;diff=179&amp;oldid=prev</id>
		<title>minecraftwiki&gt;BabylonAS в 13:41, 16 марта 2024</title>
		<link rel="alternate" type="text/html" href="https://wiki.lemoncraft.su/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B4%D0%BB%D1%8F_%D0%BA%D1%80%D0%B0%D1%84%D1%82%D0%B0&amp;diff=179&amp;oldid=prev"/>
		<updated>2024-03-16T13:41: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(&amp;quot;Модуль:Инвентарный слот&amp;quot;)&lt;br /&gt;
local splitOnUnenclosedSemicolons = slot.splitOnUnenclosedSemicolons&lt;br /&gt;
&lt;br /&gt;
function p.dpl( f )&lt;br /&gt;
	local args = f:getParent().args&lt;br /&gt;
	local ingredients = args[1] and mw.text.split( args[1], &amp;#039;%s*,%s*&amp;#039; ) or { mw.title.getCurrentTitle().text }&lt;br /&gt;
	local matchTypes = args[&amp;quot;фрагмент&amp;quot;] and mw.ustring.find(args[&amp;quot;фрагмент&amp;quot;], &amp;#039;,&amp;#039; ) and mw.text.split( args[&amp;quot;фрагмент&amp;quot;], &amp;#039;%s*,%s*&amp;#039; ) or args[&amp;quot;фрагмент&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
	local argList = {&lt;br /&gt;
		&amp;#039;игнорировать&amp;#039;, &amp;#039;запланированное&amp;#039;, &amp;#039;имя&amp;#039;, &amp;#039;ингредиенты&amp;#039;, &amp;#039;группыарг&amp;#039;,&lt;br /&gt;
		1, 2, 3, 4, 5, 6, 7, 8, 9,&lt;br /&gt;
		&amp;#039;A1&amp;#039;, &amp;#039;B1&amp;#039;, &amp;#039;C1&amp;#039;, &amp;#039;A2&amp;#039;, &amp;#039;B2&amp;#039;, &amp;#039;C2&amp;#039;, &amp;#039;A3&amp;#039;, &amp;#039;B3&amp;#039;, &amp;#039;C3&amp;#039;,&lt;br /&gt;
		&amp;#039;Выход&amp;#039;, &amp;#039;описание&amp;#039;, &amp;#039;фиксированный&amp;#039;, &amp;#039;нефиксировано&amp;#039;&lt;br /&gt;
	}&lt;br /&gt;
	local anonToShaped = { &amp;#039;A1&amp;#039;, &amp;#039;B1&amp;#039;, &amp;#039;C1&amp;#039;, &amp;#039;A2&amp;#039;, &amp;#039;B2&amp;#039;, &amp;#039;C2&amp;#039;, &amp;#039;A3&amp;#039;, &amp;#039;B3&amp;#039;, &amp;#039;C3&amp;#039; }&lt;br /&gt;
	local shapedToAnon = { A1 = 1, B1 = 2, C1 = 3, A2 = 4, B2 = 5, C2 = 6, A3 = 7, B3 = 8, C3 = 9 }&lt;br /&gt;
&lt;br /&gt;
	local data = &amp;#039;&amp;#039;&lt;br /&gt;
	if args[&amp;quot;категория&amp;quot;] then&lt;br /&gt;
		data = f:callParserFunction( &amp;#039;#dpl:&amp;#039;, {&lt;br /&gt;
			category = args[&amp;quot;категория&amp;quot;],&lt;br /&gt;
			nottitleregexp = args[&amp;quot;игнорировать&amp;quot;],&lt;br /&gt;
			include = &amp;#039;{Крафт}:&amp;#039; .. table.concat( argList, &amp;#039;:&amp;#039; ),&lt;br /&gt;
			mode = &amp;#039;userformat&amp;#039;,&lt;br /&gt;
			secseparators = &amp;#039;====&amp;#039;,&lt;br /&gt;
			multisecseparators = &amp;#039;====&amp;#039;,&lt;br /&gt;
		} )&lt;br /&gt;
	else&lt;br /&gt;
		-- #dpl может обрабатывать максимум 4 категории сразу, поэтому обрабатываем группами по 4&lt;br /&gt;
		for i = 1, #ingredients, 4 do&lt;br /&gt;
			data = data .. f:callParserFunction( &amp;#039;#dpl:&amp;#039;, {&lt;br /&gt;
				category = table.concat( ingredients, &amp;#039; как ингредиент для крафта|&amp;#039;, i, math.min( i + 3, #ingredients ) ) .. &amp;#039; как ингредиент для крафта&amp;#039;,&lt;br /&gt;
				nottitleregexp = args[&amp;quot;игнорировать&amp;quot;],&lt;br /&gt;
				include = &amp;#039;{Крафт}:&amp;#039; .. table.concat( argList, &amp;#039;:&amp;#039; ),&lt;br /&gt;
				mode = &amp;#039;userformat&amp;#039;,&lt;br /&gt;
				secseparators = &amp;#039;====&amp;#039;,&lt;br /&gt;
				multisecseparators = &amp;#039;====&amp;#039;,&lt;br /&gt;
			} )&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Закомментируйте следующую строку, если псевдонимы не поддерживаются&lt;br /&gt;
	local aliases = mw.loadData( &amp;#039;Модуль:Инвентарный слот/Псевдонимы&amp;#039; )&lt;br /&gt;
	&lt;br /&gt;
	local function matchPattern( ingredient, ingredientNum )&lt;br /&gt;
		local matchType = matchTypes&lt;br /&gt;
		if type( matchType ) == &amp;#039;table&amp;#039; then&lt;br /&gt;
			matchType = matchTypes[ingredientNum]&lt;br /&gt;
		end&lt;br /&gt;
		local pattern&lt;br /&gt;
		local escaped = mw.ustring.lower(mw.ustring.gsub(ingredient, &amp;#039;([()%[%]])&amp;#039;, &amp;#039;%%%1&amp;#039; ))&lt;br /&gt;
		if matchType == &amp;#039;начало&amp;#039; then&lt;br /&gt;
			pattern = &amp;#039;[;:%]]%s*&amp;#039; .. escaped&lt;br /&gt;
		elseif matchType == &amp;#039;конец&amp;#039; then&lt;br /&gt;
			pattern = escaped .. &amp;#039;%s*[,;%[]&amp;#039;&lt;br /&gt;
		elseif matchType == &amp;#039;любое&amp;#039; then&lt;br /&gt;
			pattern = escaped&lt;br /&gt;
		else&lt;br /&gt;
			pattern = &amp;#039;[;:%]]%s*&amp;#039; .. escaped .. &amp;#039;%s*[,;%[]&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		return pattern&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local function compareTables( a, b )&lt;br /&gt;
		for k, v in pairs( a ) do&lt;br /&gt;
			if type( b[k] ) ~= type( v ) then&lt;br /&gt;
				return false&lt;br /&gt;
			end&lt;br /&gt;
			if type( v ) == &amp;#039;table&amp;#039; then&lt;br /&gt;
				if not compareTables( v, b[k] ) then&lt;br /&gt;
					return false&lt;br /&gt;
				end&lt;br /&gt;
			elseif v ~= b[k] then&lt;br /&gt;
				return false&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		for k, v in pairs( b ) do&lt;br /&gt;
			if a[k] == nil then&lt;br /&gt;
				return false&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		return true&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local out = {}&lt;br /&gt;
	local showDesciption&lt;br /&gt;
	local templates = {}&lt;br /&gt;
	for template in mw.text.gsplit( data, &amp;#039;====&amp;#039; ) do&lt;br /&gt;
		-- Если параметр «игнорировать» не установлен...&lt;br /&gt;
		if mw.ustring.find(template, &amp;#039;^%s*|&amp;#039; ) then&lt;br /&gt;
			local tArgs = {}&lt;br /&gt;
			local i = 0&lt;br /&gt;
			-- Разбор аргументов из запроса DPL&lt;br /&gt;
			for tArg in mw.text.gsplit( template, &amp;#039;\n|&amp;#039; ) do&lt;br /&gt;
				i = i + 1&lt;br /&gt;
				if tArg ~= &amp;#039;&amp;#039; then&lt;br /&gt;
					local key = argList[i]&lt;br /&gt;
					tArgs[key] = tArg&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			local craftingArgs = {&lt;br /&gt;
				tArgs[1] or tArgs.A1 or &amp;#039;&amp;#039;, tArgs[2] or tArgs.B1 or &amp;#039;&amp;#039;, tArgs[3] or tArgs.C1 or &amp;#039;&amp;#039;,&lt;br /&gt;
				tArgs[4] or tArgs.A2 or &amp;#039;&amp;#039;, tArgs[5] or tArgs.B2 or &amp;#039;&amp;#039;, tArgs[6] or tArgs.C2 or &amp;#039;&amp;#039;,&lt;br /&gt;
				tArgs[7] or tArgs.A3 or &amp;#039;&amp;#039;, tArgs[8] or tArgs.B3 or &amp;#039;&amp;#039;, tArgs[9] or tArgs.C3 or &amp;#039;&amp;#039;,&lt;br /&gt;
				[&amp;quot;Выход&amp;quot;] = tArgs[&amp;quot;Выход&amp;quot;]&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			local expandedFrames = {}&lt;br /&gt;
			local hasIngredient&lt;br /&gt;
			local argsWithIngredient = {}&lt;br /&gt;
			local argGroups = {}&lt;br /&gt;
			for i, v in pairs( craftingArgs ) do&lt;br /&gt;
				if v ~= &amp;#039;&amp;#039; then&lt;br /&gt;
					if aliases then&lt;br /&gt;
						expandedFrames[i] = {}&lt;br /&gt;
						local expandedFrame = {}&lt;br /&gt;
						for _, frameText in ipairs(splitOnUnenclosedSemicolons(v)) do&lt;br /&gt;
							local frame = slot.getParts( frameText )&lt;br /&gt;
							local alias = aliases[frame.name]&lt;br /&gt;
							if alias then&lt;br /&gt;
								local expandedAlias = slot.expandAlias( frame, alias )&lt;br /&gt;
								if type(expandedAlias) == &amp;#039;table&amp;#039; then&lt;br /&gt;
									-- Псевдоним в новом формате, временно преобразуем его&lt;br /&gt;
									-- в старый текстовый формат&lt;br /&gt;
									expandedAlias = slot.stringifyFrames(expandedAlias)&lt;br /&gt;
								end&lt;br /&gt;
								local expandedFramePart = mw.ustring.gsub(expandedAlias, &amp;#039;([()%[%]])&amp;#039;, &amp;#039;%%%1&amp;#039; )&lt;br /&gt;
								expandedFramePart = mw.ustring.gsub(expandedAlias, &amp;#039;,?%[%]&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
								expandedFrames[i][frame] = expandedFramePart&lt;br /&gt;
								table.insert( expandedFrame, expandedAlias )&lt;br /&gt;
							else&lt;br /&gt;
								table.insert( expandedFrame, frameText )&lt;br /&gt;
							end&lt;br /&gt;
						end&lt;br /&gt;
						&lt;br /&gt;
						v = table.concat( expandedFrame, &amp;#039;;&amp;#039; )&lt;br /&gt;
						craftingArgs[i] = v&lt;br /&gt;
					end&lt;br /&gt;
					if i ~= &amp;#039;Выход&amp;#039; then&lt;br /&gt;
						local delimitedFrames = &amp;#039;;&amp;#039; .. mw.ustring.lower(v) .. &amp;#039;;&amp;#039;&lt;br /&gt;
						for ingredientNum, ingredient in pairs( ingredients ) do&lt;br /&gt;
							if mw.ustring.find(delimitedFrames, matchPattern( ingredient, ingredientNum ) ) then&lt;br /&gt;
								if not mw.ustring.find(v, &amp;#039;;&amp;#039; ) then&lt;br /&gt;
									hasIngredient = &amp;#039;static&amp;#039;&lt;br /&gt;
								elseif not hasIngredient then&lt;br /&gt;
									hasIngredient = &amp;#039;animated&amp;#039;&lt;br /&gt;
								end&lt;br /&gt;
								&lt;br /&gt;
								argsWithIngredient[i] = true&lt;br /&gt;
							end&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
					&lt;br /&gt;
					if not tArgs[&amp;quot;группыарг&amp;quot;] and hasIngredient ~= &amp;#039;static&amp;#039; then&lt;br /&gt;
						local _, frameCount = v:gsub( &amp;#039;;&amp;#039;, &amp;#039;&amp;#039; )&lt;br /&gt;
						if frameCount &amp;gt; 0 then&lt;br /&gt;
							frameCount = frameCount + 1&lt;br /&gt;
							local group = argGroups[frameCount]&lt;br /&gt;
							if not group then&lt;br /&gt;
								group = { args = {} }&lt;br /&gt;
								argGroups[frameCount] = group&lt;br /&gt;
							end&lt;br /&gt;
							group.count = frameCount&lt;br /&gt;
							group.args[i] = true&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			if hasIngredient then&lt;br /&gt;
				if tArgs[&amp;quot;описание&amp;quot;] then&lt;br /&gt;
					showDescription = true&lt;br /&gt;
				end&lt;br /&gt;
				&lt;br /&gt;
				if hasIngredient == &amp;#039;animated&amp;#039; then&lt;br /&gt;
					if tArgs[&amp;quot;группыарг&amp;quot;] then&lt;br /&gt;
						for _, argGroup in ipairs(splitOnUnenclosedSemicolons(tArgs[&amp;quot;группыарг&amp;quot;])) do&lt;br /&gt;
							local group = {}&lt;br /&gt;
							local _, frameCount&lt;br /&gt;
							for arg in mw.text.gsplit( argGroup, &amp;#039;%s*,%s*&amp;#039; ) do&lt;br /&gt;
								if not tArgs[1] then&lt;br /&gt;
									arg = shapedToAnon[arg]&lt;br /&gt;
								end&lt;br /&gt;
								if not frameCount then&lt;br /&gt;
									_, frameCount = mw.ustring.gsub(craftingArgs[arg], &amp;#039;;&amp;#039;, &amp;#039;&amp;#039; )&lt;br /&gt;
								end&lt;br /&gt;
								group[arg] = true&lt;br /&gt;
							end&lt;br /&gt;
							table.insert( argGroups, { count = frameCount + 1, args = group } )&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
					&lt;br /&gt;
					for _, groupData in pairs( argGroups ) do&lt;br /&gt;
						local frameCount = groupData.count&lt;br /&gt;
						local group = groupData.args&lt;br /&gt;
						local requiredFrames = {}&lt;br /&gt;
						local requiredFramesCount = 0&lt;br /&gt;
						for arg in pairs( group ) do&lt;br /&gt;
							if argsWithIngredient[arg] then&lt;br /&gt;
								local frames = craftingArgs[arg]&lt;br /&gt;
								local frameNum = 0&lt;br /&gt;
								for _, frame in ipairs(splitOnUnenclosedSemicolons(frames)) do&lt;br /&gt;
									frameNum = frameNum + 1&lt;br /&gt;
									if not requiredFrames[frameNum] then&lt;br /&gt;
										local delimitedFrame = &amp;#039;;&amp;#039; .. frame .. &amp;#039;;&amp;#039;&lt;br /&gt;
										for ingredientNum, ingredient in pairs( ingredients ) do&lt;br /&gt;
											if mw.ustring.find(delimitedFrame, matchPattern( ingredient, ingredientNum ) ) then&lt;br /&gt;
												requiredFrames[frameNum] = true&lt;br /&gt;
												requiredFramesCount = requiredFramesCount + 1&lt;br /&gt;
											end&lt;br /&gt;
										end&lt;br /&gt;
									end&lt;br /&gt;
								end&lt;br /&gt;
							end&lt;br /&gt;
						end&lt;br /&gt;
						&lt;br /&gt;
						-- Будут показаны не все фреймы...&lt;br /&gt;
						if requiredFramesCount &amp;gt; 0 and requiredFramesCount &amp;lt; frameCount then&lt;br /&gt;
							for arg in pairs( group ) do&lt;br /&gt;
								local frames = craftingArgs[arg]&lt;br /&gt;
								local newFrames = {}&lt;br /&gt;
								local frameNum = 0&lt;br /&gt;
								for _, frame in ipairs(splitOnUnenclosedSemicolons(frames)) do&lt;br /&gt;
									frameNum = frameNum + 1&lt;br /&gt;
									if requiredFrames[frameNum] then&lt;br /&gt;
										table.insert( newFrames, frame )&lt;br /&gt;
									end&lt;br /&gt;
								end&lt;br /&gt;
								newFrames = table.concat( newFrames, &amp;#039;;&amp;#039; )&lt;br /&gt;
								&lt;br /&gt;
								-- Если весь разобранный псевдоним остался, заново соберём его&lt;br /&gt;
								if expandedFrames[arg] then&lt;br /&gt;
									for frame, expandedAlias in pairs( expandedFrames[arg] ) do&lt;br /&gt;
										--newFrames = &amp;#039;blah&amp;#039; .. expandedAlias&lt;br /&gt;
										newFrames = mw.ustring.gsub(newFrames, expandedAlias, frame )&lt;br /&gt;
									end&lt;br /&gt;
								end&lt;br /&gt;
								&lt;br /&gt;
								local tArg = arg&lt;br /&gt;
								if arg ~= &amp;#039;Выход&amp;#039; and not tArgs[1] then&lt;br /&gt;
									tArg = anonToShaped[arg]&lt;br /&gt;
								end&lt;br /&gt;
								tArgs[tArg] = newFrames&lt;br /&gt;
							end&lt;br /&gt;
							&lt;br /&gt;
							-- Заботу о колонках имени и ингредиентов возложим на модуль Крафт&lt;br /&gt;
							tArgs[&amp;quot;имя&amp;quot;] = nil&lt;br /&gt;
							tArgs[&amp;quot;ингредиенты&amp;quot;] = nil&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				&lt;br /&gt;
				tArgs[&amp;quot;некат&amp;quot;] = &amp;#039;1&amp;#039;&lt;br /&gt;
&lt;br /&gt;
				local found = false&lt;br /&gt;
				for i, v in ipairs( templates ) do&lt;br /&gt;
					if compareTables( v, tArgs ) then&lt;br /&gt;
						found = true&lt;br /&gt;
						break&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				if not found then&lt;br /&gt;
					table.insert( templates, tArgs )&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if #templates == 0 then&lt;br /&gt;
		return &amp;#039;[[Категория:Пустые перечисления использования для крафта]]&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	templates[1][&amp;quot;глава&amp;quot;] = &amp;#039;1&amp;#039;&lt;br /&gt;
	templates[1][&amp;quot;показатьимя&amp;quot;] = &amp;#039;1&amp;#039;&lt;br /&gt;
	if showDescription and args[&amp;quot;показатьописание&amp;quot;] ~= &amp;#039;0&amp;#039; or args[&amp;quot;показатьописание&amp;quot;] == &amp;#039;1&amp;#039; then&lt;br /&gt;
		templates[1][&amp;quot;показатьописание&amp;quot;] = &amp;#039;1&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	if not args[&amp;quot;продолжить&amp;quot;] then&lt;br /&gt;
		templates[#templates][&amp;quot;подвал&amp;quot;] = &amp;#039;1&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local crafting = require( &amp;#039;Модуль:Крафт&amp;#039; )&lt;br /&gt;
	local out = {}&lt;br /&gt;
	for i, v in ipairs( templates ) do&lt;br /&gt;
		table.insert( out, &amp;#039;\n&amp;#039; .. crafting.table( v ) )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return table.concat( out, &amp;#039;\n&amp;#039; )&lt;br /&gt;
end&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>minecraftwiki&gt;BabylonAS</name></author>
	</entry>
</feed>