<?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%A2%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0_%D1%80%D0%B0%D0%B7%D1%80%D1%83%D1%88%D0%B0%D0%B5%D0%BC%D0%BE%D1%81%D1%82%D0%B8</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%A2%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0_%D1%80%D0%B0%D0%B7%D1%80%D1%83%D1%88%D0%B0%D0%B5%D0%BC%D0%BE%D1%81%D1%82%D0%B8"/>
		<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%A2%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0_%D1%80%D0%B0%D0%B7%D1%80%D1%83%D1%88%D0%B0%D0%B5%D0%BC%D0%BE%D1%81%D1%82%D0%B8&amp;action=history"/>
		<updated>2026-05-09T09:22:45Z</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%A2%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0_%D1%80%D0%B0%D0%B7%D1%80%D1%83%D1%88%D0%B0%D0%B5%D0%BC%D0%BE%D1%81%D1%82%D0%B8&amp;diff=13420&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%A2%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0_%D1%80%D0%B0%D0%B7%D1%80%D1%83%D1%88%D0%B0%D0%B5%D0%BC%D0%BE%D1%81%D1%82%D0%B8&amp;diff=13420&amp;oldid=prev"/>
				<updated>2017-01-17T22:27:27Z</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%A2%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0_%D1%80%D0%B0%D0%B7%D1%80%D1%83%D1%88%D0%B0%D0%B5%D0%BC%D0%BE%D1%81%D1%82%D0%B8&amp;diff=13419&amp;oldid=prev</id>
		<title>Atributz в 21:14, 19 ноября 2016</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%A2%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0_%D1%80%D0%B0%D0%B7%D1%80%D1%83%D1%88%D0%B0%D0%B5%D0%BC%D0%BE%D1%81%D1%82%D0%B8&amp;diff=13419&amp;oldid=prev"/>
				<updated>2016-11-19T21:14:16Z</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;local p = {}&lt;br /&gt;
p.row = function( f )&lt;br /&gt;
	local args = require( [[Модуль:ProcessArgs]] ).norm()&lt;br /&gt;
	&lt;br /&gt;
	if (args[1] == '') or (args[1] == nil) then&lt;br /&gt;
		args[1] = mw.title.getCurrentTitle().text&lt;br /&gt;
		args[&amp;quot;встолбик&amp;quot;] = 1&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if (args[2] == '') or (args[2] == nil) then&lt;br /&gt;
		local firstblock = mw.ustring.gsub(mw.ustring.lower(mw.text.trim( mw.text.split(args[1],'[,;]')[1] or '' )), &amp;quot;[_%(%)%-%s]+&amp;quot;, '')&lt;br /&gt;
&lt;br /&gt;
		local deftool = f:callParserFunction( '#dplvar', 'blocktool' )&lt;br /&gt;
		if (deftool ~= nil) and (deftool ~= '') then&lt;br /&gt;
			local p = mw.text.split(mw.ustring.lower(deftool),'%s* %s*')&lt;br /&gt;
			if p[2] == nil then&lt;br /&gt;
				if p[1] == 'ножницы' then&lt;br /&gt;
					args[&amp;quot;ножницы&amp;quot;] = 1&lt;br /&gt;
				elseif p[1] == 'меч' then&lt;br /&gt;
					args[&amp;quot;меч&amp;quot;] = 1&lt;br /&gt;
				else&lt;br /&gt;
					args[2] = mw.ustring.upper(mw.ustring.sub( p[1], 1,1 ))..mw.ustring.sub( p[1], 2 )&lt;br /&gt;
					args[3] = 'Любое'&lt;br /&gt;
				end&lt;br /&gt;
			else&lt;br /&gt;
				args[2] = mw.ustring.upper(mw.ustring.sub( p[2], 1,1 ))..mw.ustring.sub( p[2], 2 )&lt;br /&gt;
				args[3] = mw.ustring.upper(mw.ustring.sub( p[1], 1,1 ))..mw.ustring.sub( p[1], 2 )&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local getDplVar = function( var )&lt;br /&gt;
		local val = f:callParserFunction( '#dplvar', 'breaking ' .. var )&lt;br /&gt;
		if val == '' then&lt;br /&gt;
			val = false&lt;br /&gt;
		end&lt;br /&gt;
		return val&lt;br /&gt;
	end&lt;br /&gt;
	local dplVars = {}&lt;br /&gt;
	local setDplVar = function( var, val )&lt;br /&gt;
		table.insert( dplVars, 'breaking ' .. var )&lt;br /&gt;
		table.insert( dplVars, val or '1' )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local breakingTimeHeader = 'Время [[Добыча|разрушения]]' .. f:preprocess( '&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;Время для незачарованных инструментов в секундах.&amp;lt;/ref&amp;gt;' )&lt;br /&gt;
	&lt;br /&gt;
	local rows = {}&lt;br /&gt;
	local tableParts = {}&lt;br /&gt;
	local categories = {}&lt;br /&gt;
	&lt;br /&gt;
	local horizontal&lt;br /&gt;
	if args[&amp;quot;встолбик&amp;quot;] or args[1]:match( ';' ) then&lt;br /&gt;
		horizontal = true&lt;br /&gt;
	end&lt;br /&gt;
	local showTool = true&lt;br /&gt;
	local showShears = true&lt;br /&gt;
	local showSword = true&lt;br /&gt;
	local header, sortable, simple&lt;br /&gt;
	if horizontal or not getDplVar( 'header' ) then&lt;br /&gt;
		if args[&amp;quot;скрытьинструмент&amp;quot;] or horizontal and ( not args[2] or mw.ustring.lower(args[2]) == 'любое' or mw.ustring.lower(args[2]) == 'нет' ) then&lt;br /&gt;
			showTool = false&lt;br /&gt;
			setDplVar( 'hidetool' )&lt;br /&gt;
		end&lt;br /&gt;
		if args[&amp;quot;скрытьножницы&amp;quot;] or horizontal and not args[&amp;quot;ножницы&amp;quot;] then&lt;br /&gt;
			showShears = false&lt;br /&gt;
			setDplVar( 'hideshears' )&lt;br /&gt;
		end&lt;br /&gt;
		if args[&amp;quot;скрытьмеч&amp;quot;] or horizontal and not args[&amp;quot;меч&amp;quot;] then&lt;br /&gt;
			showSword = false&lt;br /&gt;
			setDplVar( 'hidesword' )&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		sortable = not horizontal and args[&amp;quot;сортировка&amp;quot;]&lt;br /&gt;
		if sortable then&lt;br /&gt;
			setDplVar( 'sortable' )&lt;br /&gt;
		end&lt;br /&gt;
		simple = args[&amp;quot;простой&amp;quot;]&lt;br /&gt;
		if simple and not horizontal then&lt;br /&gt;
			setDplVar( 'simple' )&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		local tableClasses = { 'wikitable' }&lt;br /&gt;
		if sortable then&lt;br /&gt;
			table.insert( tableClasses, 'sortable' )&lt;br /&gt;
		end&lt;br /&gt;
		table.insert( rows, ' {| class=&amp;quot;' .. table.concat( tableClasses, ' ' ) .. '&amp;quot; style=&amp;quot;text-align:center&amp;quot;' )&lt;br /&gt;
		&lt;br /&gt;
		local sortType = ''&lt;br /&gt;
		if sortable then&lt;br /&gt;
			sortType = 'data-sort-type=&amp;quot;number&amp;quot;'&lt;br /&gt;
		end&lt;br /&gt;
		local rowspan = ''&lt;br /&gt;
		if not horizontal then&lt;br /&gt;
			rowspan = 'rowspan=&amp;quot;2&amp;quot; '&lt;br /&gt;
		end&lt;br /&gt;
		header = {&lt;br /&gt;
			'! ' .. rowspan .. ' | Блок'&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		if not simple then&lt;br /&gt;
			table.insert( header, '! ' .. rowspan .. sortType .. ' | Прочность' )&lt;br /&gt;
			if showTool then&lt;br /&gt;
				table.insert( header, '! ' .. rowspan .. ' | Инструмент' )&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		local toolColumns = {}&lt;br /&gt;
		if showTool then&lt;br /&gt;
			local firsttool = mw.text.trim( simple and 'Инструмент' or args[2] or 'Любое' ):gsub( '^%l', string.upper )&lt;br /&gt;
			firsttool = mw.text.split( firsttool, ';' )[1]&lt;br /&gt;
			if firsttool == 'Кирка' or firsttool == 'Лопата' then&lt;br /&gt;
				toolColumns = { 'Деревянная', 'Каменная', 'Железная', 'Алмазная', 'Золотая' }&lt;br /&gt;
			else&lt;br /&gt;
				toolColumns = { 'Деревянный', 'Каменный', 'Железный', 'Алмазный', 'Золотой' }&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		table.insert(&lt;br /&gt;
			toolColumns, 1,&lt;br /&gt;
			'&amp;lt;abbr title=&amp;quot;Сюда также относятся варианты, когда игрок использует неподходящие инструменты или предметы, не являющиеся инструментами.&amp;quot;&amp;gt;Рука&amp;lt;/abbr&amp;gt;'&lt;br /&gt;
		)&lt;br /&gt;
		if not simple then&lt;br /&gt;
			if showShears then&lt;br /&gt;
				table.insert( toolColumns, 'Ножницы' )&lt;br /&gt;
			end&lt;br /&gt;
			if showSword then&lt;br /&gt;
				table.insert( toolColumns, 'Меч' )&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		if not horizontal then&lt;br /&gt;
			table.insert( header, '! colspan=&amp;quot;' .. #toolColumns .. '&amp;quot; |' .. breakingTimeHeader )&lt;br /&gt;
			table.insert( header, '|-' )&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		for _, tool in ipairs( toolColumns ) do&lt;br /&gt;
			table.insert( header, '! ' .. sortType .. ' | ' .. tool )&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		if not horizontal then&lt;br /&gt;
			header = table.concat( header, '\n' )&lt;br /&gt;
			setDplVar( 'header', header )&lt;br /&gt;
		end&lt;br /&gt;
		table.insert( tableParts, header )&lt;br /&gt;
	else&lt;br /&gt;
		showTool = not getDplVar( 'hidetool' )&lt;br /&gt;
		showShears = not getDplVar( 'hideshears' )&lt;br /&gt;
		showSword = not getDplVar( 'hidesword' )&lt;br /&gt;
		sortable = getDplVar( 'sortable' )&lt;br /&gt;
		simple = getDplVar( 'simple' )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local sprite = require( [[Модуль:Спрайт]] )&lt;br /&gt;
	local hardness = require( [[Модуль:Значения блоков]] ).value&lt;br /&gt;
	&lt;br /&gt;
	local fillCells = function( cellsTable, text, num )&lt;br /&gt;
		for i = 1, num do&lt;br /&gt;
			table.insert( cellsTable, text )&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local materialGrade = {&lt;br /&gt;
		[&amp;quot;Любая&amp;quot;] = 0, [&amp;quot;Любой&amp;quot;] = 0, [&amp;quot;Любое&amp;quot;] = 0,&lt;br /&gt;
		[&amp;quot;Деревянная&amp;quot;] = 1, [&amp;quot;Деревянный&amp;quot;] = 1,&lt;br /&gt;
		[&amp;quot;Золотая&amp;quot;] = 1, [&amp;quot;Золотой&amp;quot;] = 1,&lt;br /&gt;
		[&amp;quot;Каменная&amp;quot;] = 2, [&amp;quot;Каменный&amp;quot;] = 2,&lt;br /&gt;
		[&amp;quot;Железная&amp;quot;] = 3, [&amp;quot;Железный&amp;quot;] = 3,&lt;br /&gt;
		[&amp;quot;Алмазная&amp;quot;] = 4, [&amp;quot;Алмазный&amp;quot;] = 4,&lt;br /&gt;
		[&amp;quot;Нет&amp;quot;] = 5&lt;br /&gt;
	}&lt;br /&gt;
	local materialSpeed = {&lt;br /&gt;
		[&amp;quot;Нет&amp;quot;] = 1,&lt;br /&gt;
		[&amp;quot;Любая&amp;quot;] = 1, [&amp;quot;Любой&amp;quot;] = 1, [&amp;quot;Любое&amp;quot;] = 1,&lt;br /&gt;
		[&amp;quot;Деревянная&amp;quot;] = 2, [&amp;quot;Деревянный&amp;quot;] = 2,&lt;br /&gt;
		[&amp;quot;Каменная&amp;quot;] = 4, [&amp;quot;Каменный&amp;quot;] = 4,&lt;br /&gt;
		[&amp;quot;Железная&amp;quot;] = 6, [&amp;quot;Железный&amp;quot;] = 6,&lt;br /&gt;
		[&amp;quot;Алмазная&amp;quot;] = 8, [&amp;quot;Алмазный&amp;quot;] = 8,&lt;br /&gt;
		[&amp;quot;Золотая&amp;quot;] = 12, [&amp;quot;Золотой&amp;quot;] = 12&lt;br /&gt;
	}&lt;br /&gt;
	local insertBlock = function( blockArgs )&lt;br /&gt;
		local cells = {}&lt;br /&gt;
		local blocks = mw.text.split( blockArgs[1], '%s*,%s*' )&lt;br /&gt;
		local hardnessVal = tonumber( hardness{ blocks[1], [&amp;quot;тип&amp;quot;] = 'прочности' } )&lt;br /&gt;
		if not hardnessVal then&lt;br /&gt;
			hardnessVal = '?'&lt;br /&gt;
		end&lt;br /&gt;
		local unbreakable&lt;br /&gt;
		if hardnessVal == -1 or blockArgs.liquid then&lt;br /&gt;
			unbreakable = true&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
&lt;br /&gt;
		local blockSprites = {}&lt;br /&gt;
		local links = mw.text.split( blockArgs[&amp;quot;ссылка&amp;quot;] or '', '%s*,%s*' )&lt;br /&gt;
		local ids = mw.text.split( blockArgs[&amp;quot;спрайт&amp;quot;] or '', '%s*,%s*' )&lt;br /&gt;
		local items = mw.text.split( blockArgs[&amp;quot;предмет&amp;quot;] or '', '%s*,%s*' )&lt;br /&gt;
		for i, block in ipairs( blocks ) do&lt;br /&gt;
			local link&lt;br /&gt;
			if not links[i] and links[1] ~= '' then&lt;br /&gt;
				link = links[1]&lt;br /&gt;
			elseif links[i] ~= '' then&lt;br /&gt;
				link = links[i]&lt;br /&gt;
			end&lt;br /&gt;
			local id&lt;br /&gt;
			if not ids[i] and ids[1] ~= '' then&lt;br /&gt;
				id = ids[1]&lt;br /&gt;
			elseif ids[i] ~= '' then&lt;br /&gt;
				id = ids[i]&lt;br /&gt;
			end&lt;br /&gt;
			local blockText&lt;br /&gt;
			if args[&amp;quot;сократить&amp;quot;] then&lt;br /&gt;
				blockText = block:gsub( args[&amp;quot;сократить&amp;quot;] .. '$', '' )&lt;br /&gt;
			else&lt;br /&gt;
				blockText = block&lt;br /&gt;
			end&lt;br /&gt;
			local blockSpriteArgs = {&lt;br /&gt;
				[&amp;quot;настройки&amp;quot;] = 'БлокСпрайт',&lt;br /&gt;
				block,&lt;br /&gt;
				[&amp;quot;текст&amp;quot;] = blockText,&lt;br /&gt;
				[&amp;quot;ссылка&amp;quot;] = link,&lt;br /&gt;
				[&amp;quot;ID&amp;quot;] = id&lt;br /&gt;
			}&lt;br /&gt;
			if items[i] == '1' or not items[i] and items[1] == '1' then&lt;br /&gt;
				blockSpriteArgs.settings = 'ПредметСпрайт'&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			local image, spriteCat = sprite.link( blockSpriteArgs )&lt;br /&gt;
			table.insert( blockSprites, image )&lt;br /&gt;
			table.insert( categories, spriteCat )&lt;br /&gt;
		end&lt;br /&gt;
		table.insert( cells,&lt;br /&gt;
			'! style=&amp;quot;text-align:left&amp;quot; | ' .. table.concat( blockSprites, '&amp;lt;br&amp;gt;' ) .. ( blockArgs[&amp;quot;прим&amp;quot;] or '' )&lt;br /&gt;
		)&lt;br /&gt;
&lt;br /&gt;
		local tool = mw.text.trim( simple and 'Инструмент' or blockArgs[2] or 'Любое' ):gsub( '^%l', string.upper )&lt;br /&gt;
		local material = mw.text.trim( simple and blockArgs[2] or blockArgs[3] or 'Любое' ):gsub( '^%l', string.upper )&lt;br /&gt;
		if tool == 'Нет' then&lt;br /&gt;
			material = tool&lt;br /&gt;
		end&lt;br /&gt;
		if not simple then&lt;br /&gt;
			local hardnessText = hardnessVal&lt;br /&gt;
			if hardnessVal == -1 then&lt;br /&gt;
				hardnessText = ( sortable and 'data-sort-value=&amp;quot;999&amp;quot; | ' or '' ) .. '∞'&lt;br /&gt;
			end&lt;br /&gt;
			table.insert( cells, '|' .. hardnessText )&lt;br /&gt;
			&lt;br /&gt;
			if showTool then&lt;br /&gt;
				local toolCell = '—'&lt;br /&gt;
				if tool ~= 'Любое' and tool ~= 'Нет' then&lt;br /&gt;
					local toolName = ( material ~= 'Любое' and material .. ' ' or '' ) .. tool&lt;br /&gt;
					local ftoolName = toolName&lt;br /&gt;
					if material == 'Любое' then&lt;br /&gt;
						if tool == 'Кирка' then&lt;br /&gt;
							ftoolName = 'Деревянная кирка'&lt;br /&gt;
						end&lt;br /&gt;
						if tool == 'Топор' then&lt;br /&gt;
							ftoolName = 'Деревянный топор'&lt;br /&gt;
						end&lt;br /&gt;
						if tool == 'Лопата' then&lt;br /&gt;
							ftoolName = 'Деревянная лопата'&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
					local image, spriteCat = sprite.sprite{&lt;br /&gt;
						[&amp;quot;настройки&amp;quot;] = 'ПредметСпрайт',&lt;br /&gt;
						ftoolName,&lt;br /&gt;
						[&amp;quot;назв&amp;quot;] = toolName,&lt;br /&gt;
						[&amp;quot;ссылка&amp;quot;] = tool&lt;br /&gt;
					}&lt;br /&gt;
					toolCell = ( sortable and 'data-sort-value=&amp;quot;' .. toolName .. '&amp;quot; |' or '' ) .. image&lt;br /&gt;
					table.insert( categories, spriteCat )&lt;br /&gt;
				end&lt;br /&gt;
				table.insert( cells, '|' .. toolCell )&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		local choices = {}&lt;br /&gt;
		local getChoice = function( choice, text )&lt;br /&gt;
			if not choices[choice] then&lt;br /&gt;
				choices[choice] = f:expandTemplate{ title = 'Таблица выбора', args = { choice, '' } }&lt;br /&gt;
			end&lt;br /&gt;
			return choices[choice] .. text&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		if hardnessVal == '?' then&lt;br /&gt;
			fillCells( cells, '|?', 6 )&lt;br /&gt;
		else&lt;br /&gt;
			local processTime = function( num )&lt;br /&gt;
				if num &amp;lt; 0.05 then		-- Blocks have a minimum breaking time of 1 game tick (0.05 seconds)&lt;br /&gt;
					num = 0.05&lt;br /&gt;
				else					-- And they must be broken in multiples of 1 game tick (0.05 seconds)&lt;br /&gt;
					num = math.ceil( num * 20 ) / 20&lt;br /&gt;
				end&lt;br /&gt;
				return num&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			if unbreakable then&lt;br /&gt;
				table.insert( cells, '| ' .. ( sortable and 'data-sort-value=&amp;quot;999&amp;quot; ' or '' ) .. getChoice( 'нет', '∞' ) )&lt;br /&gt;
				if showTool then&lt;br /&gt;
					fillCells( cells, '|—', 5 )&lt;br /&gt;
				end&lt;br /&gt;
			else&lt;br /&gt;
				local drop = 'да'&lt;br /&gt;
				if blockArgs[&amp;quot;дроп&amp;quot;] == '0' then&lt;br /&gt;
					drop = 'частично'&lt;br /&gt;
				end&lt;br /&gt;
				local requiredLevel = unbreakable and 999 or materialGrade[material]&lt;br /&gt;
				local insertMaterialCell = function( material )&lt;br /&gt;
					local willDrop = drop&lt;br /&gt;
					if materialGrade[material] &amp;lt; requiredLevel then&lt;br /&gt;
						willDrop = 'нет'&lt;br /&gt;
					end&lt;br /&gt;
					local breakTime = processTime( hardnessVal / materialSpeed[material] * ( willDrop == 'нет' and 5 or 1.5 ) )&lt;br /&gt;
					table.insert( cells, '|' .. getChoice( willDrop, breakTime ) )&lt;br /&gt;
				end&lt;br /&gt;
				&lt;br /&gt;
				if not showTool or tool == 'Любое' or tool == 'Нет' then&lt;br /&gt;
					insertMaterialCell( 'Любое' )&lt;br /&gt;
					if showTool then&lt;br /&gt;
						fillCells( cells, '|—', 5 )&lt;br /&gt;
					end&lt;br /&gt;
				else&lt;br /&gt;
					for _, material in ipairs{ 'Любое', 'Деревянный', 'Каменный', 'Железный', 'Алмазный', 'Золотой' } do&lt;br /&gt;
						insertMaterialCell( material )&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			if not simple and ( showShears or showSword ) then&lt;br /&gt;
				local tools = {}&lt;br /&gt;
				if showShears then&lt;br /&gt;
					table.insert( tools, 'Ножницы' )&lt;br /&gt;
				end&lt;br /&gt;
				if showSword then&lt;br /&gt;
					table.insert( tools, 'Меч' )&lt;br /&gt;
				end&lt;br /&gt;
				if hardnessVal == '?' then&lt;br /&gt;
					fillCells( cells, '|?', #tools )&lt;br /&gt;
				else&lt;br /&gt;
					local toolSpeed = {&lt;br /&gt;
						[&amp;quot;Ножницы&amp;quot;] = 1,&lt;br /&gt;
						[&amp;quot;Меч&amp;quot;] = 1.5&lt;br /&gt;
					}&lt;br /&gt;
					if blocks[1] == 'Шерсть' then&lt;br /&gt;
						toolSpeed[&amp;quot;Ножницы&amp;quot;] = 5&lt;br /&gt;
					elseif blocks[1] == 'Листва' then&lt;br /&gt;
						toolSpeed[&amp;quot;Ножницы&amp;quot;] = 15&lt;br /&gt;
					elseif blocks[1] == 'Паутина' then&lt;br /&gt;
						toolSpeed[&amp;quot;Меч&amp;quot;] = 15&lt;br /&gt;
						toolSpeed[&amp;quot;Ножницы&amp;quot;] = 15&lt;br /&gt;
					end&lt;br /&gt;
					&lt;br /&gt;
					for _, tool in ipairs( tools ) do&lt;br /&gt;
						local toolDrop = blockArgs[mw.ustring.lower( tool )]&lt;br /&gt;
						if not toolDrop then&lt;br /&gt;
							table.insert( cells, '|—' )&lt;br /&gt;
						else&lt;br /&gt;
							local willDrop = 'да'&lt;br /&gt;
							if toolDrop == '0' then&lt;br /&gt;
								willDrop = 'частично'&lt;br /&gt;
							end&lt;br /&gt;
							&lt;br /&gt;
							local breakTime = processTime( hardnessVal / toolSpeed[tool] * 1.5 )&lt;br /&gt;
							table.insert( cells, '|' .. getChoice( willDrop, breakTime ) )&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;
		if not horizontal then&lt;br /&gt;
			cells = table.concat( cells, '\n' )&lt;br /&gt;
		end&lt;br /&gt;
		table.insert( tableParts, cells )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if horizontal then&lt;br /&gt;
		local blocksArgs = {}&lt;br /&gt;
		for _, arg in ipairs{ 1, 'прим', 'спрайт', 'ссылка', 'предмет', 'дроп', 2, 3, 'ножницы', 'меч' } do&lt;br /&gt;
			if args[arg] then&lt;br /&gt;
				local col = 0&lt;br /&gt;
				for colVal in mw.text.gsplit( args[arg], '%s*;%s*' ) do&lt;br /&gt;
					col = col + 1&lt;br /&gt;
					if colVal ~= '' then&lt;br /&gt;
						if not blocksArgs[col] then&lt;br /&gt;
							blocksArgs[col] = {}&lt;br /&gt;
						end&lt;br /&gt;
						&lt;br /&gt;
						blocksArgs[col][arg] = colVal&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		for _, block in ipairs( blocksArgs ) do&lt;br /&gt;
			insertBlock( block )&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		local columns = #tableParts&lt;br /&gt;
		for row = 1, #tableParts[1] do&lt;br /&gt;
			local cells = {}&lt;br /&gt;
			for col = 1, columns do&lt;br /&gt;
				table.insert( cells, tableParts[col][row] )&lt;br /&gt;
			end&lt;br /&gt;
			table.insert( rows, table.concat( cells, '\n' ) )&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		-- Insert breaking time header after block row when simple, or after tool or hardness row when not&lt;br /&gt;
		table.insert( rows, simple and 3 or showTool and 5 or 4, '! colspan=&amp;quot;' .. columns + 1 .. '&amp;quot; |' .. breakingTimeHeader )&lt;br /&gt;
	else&lt;br /&gt;
		insertBlock( args )&lt;br /&gt;
		for _, row in ipairs( tableParts ) do&lt;br /&gt;
			table.insert( rows, row )&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	table.insert( rows, '' )&lt;br /&gt;
	&lt;br /&gt;
	local note = ''&lt;br /&gt;
	if args[&amp;quot;подвал&amp;quot;] or horizontal then&lt;br /&gt;
		note = f:preprocess( '&amp;lt;references group=&amp;quot;note&amp;quot;/&amp;gt;' )&lt;br /&gt;
		&lt;br /&gt;
		if args[&amp;quot;подвал&amp;quot;] == '2' then&lt;br /&gt;
			table.insert( rows, header or getDplVar( 'header' ) )&lt;br /&gt;
		end&lt;br /&gt;
		table.insert( rows, '|}' )&lt;br /&gt;
		&lt;br /&gt;
		if not horizontal then&lt;br /&gt;
			f:callParserFunction( '#dplvar:set',&lt;br /&gt;
				'breaking header', '',&lt;br /&gt;
				'breaking hidetool', '',&lt;br /&gt;
				'breaking hideshears', '',&lt;br /&gt;
				'breaking hidesword', '',&lt;br /&gt;
				'breaking simple', '',&lt;br /&gt;
				'breaking sortable', ''&lt;br /&gt;
			)&lt;br /&gt;
		end&lt;br /&gt;
	elseif #dplVars &amp;gt; 0 then&lt;br /&gt;
		f:callParserFunction( '#dplvar:set', dplVars )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return table.concat( rows, '\n|-\n' ) .. note .. table.concat( categories )&lt;br /&gt;
end&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Atributz</name></author>	</entry>

	</feed>