<?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%A1%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8F_%D0%B1%D0%BB%D0%BE%D0%BA%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%A1%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8F_%D0%B1%D0%BB%D0%BE%D0%BA%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%A1%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8F_%D0%B1%D0%BB%D0%BE%D0%BA%D0%B0&amp;action=history"/>
	<updated>2026-06-24T17:44:19Z</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%A1%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8F_%D0%B1%D0%BB%D0%BE%D0%BA%D0%B0&amp;diff=434&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%A1%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8F_%D0%B1%D0%BB%D0%BE%D0%BA%D0%B0&amp;diff=434&amp;oldid=prev"/>
		<updated>2025-03-26T10:50:53Z</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:50, 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%A1%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8F_%D0%B1%D0%BB%D0%BE%D0%BA%D0%B0&amp;diff=433&amp;oldid=prev</id>
		<title>minecraftwiki&gt;RDmitriyS в 15:21, 7 августа 2018</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%A1%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8F_%D0%B1%D0%BB%D0%BE%D0%BA%D0%B0&amp;diff=433&amp;oldid=prev"/>
		<updated>2018-08-07T15:21:53Z</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;
&lt;br /&gt;
--[[&lt;br /&gt;
Формат страниц Модуль:Состояния блока/minecraft:block следующий (пример для minecraft:log):&lt;br /&gt;
&lt;br /&gt;
return {&lt;br /&gt;
	{&amp;quot;axis&amp;quot;, {&lt;br /&gt;
--		[&amp;quot;тип&amp;quot;] = &amp;quot;TAG_String&amp;quot;, -- по умолчанию подразумевается TAG_String&lt;br /&gt;
		[&amp;quot;значения&amp;quot;] = {&lt;br /&gt;
			{&amp;quot;none&amp;quot;, &amp;quot;Все стороны древесины имеют «кору».&amp;quot;},&lt;br /&gt;
			{&amp;quot;x&amp;quot;, &amp;quot;Стороны блока без коры направлены на восток-запад.&amp;quot;},&lt;br /&gt;
			{&amp;quot;y&amp;quot;, &amp;quot;Стороны блока без коры направлены вверх или вниз.&amp;quot;},&lt;br /&gt;
			{&amp;quot;z&amp;quot;, &amp;quot;Стороны блока без коры направлены на север-юг.&amp;quot;},&lt;br /&gt;
		}&lt;br /&gt;
	}},&lt;br /&gt;
	{&amp;quot;variant&amp;quot;, {&lt;br /&gt;
		[&amp;quot;значения&amp;quot;] = {&lt;br /&gt;
			{&amp;quot;oak&amp;quot;, &amp;quot;{{Спрайт/Блок|древесина|текст=Дубовая}}&amp;quot;},&lt;br /&gt;
			{&amp;quot;spruce&amp;quot;, &amp;quot;{{Спрайт/Блок|еловая_древесина|текст=Хвойная}}&amp;quot;},&lt;br /&gt;
			{&amp;quot;birch&amp;quot;, &amp;quot;{{Спрайт/Блок|берёзовая_древесина|текст=Берёзовая}}&amp;quot;},&lt;br /&gt;
			{&amp;quot;jungle&amp;quot;, &amp;quot;{{Спрайт/Блок|джунглевая_древесина|текст=Джунглевая}}&amp;quot;}&lt;br /&gt;
		}&lt;br /&gt;
	}}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Если вместо описания поместить один символ &amp;amp;, то будет использоваться такое же описание, что и для предыдущего элемента.&lt;br /&gt;
Если поместить строку «&amp;amp;» сразу после названия тега, вместо таблицы с данными о теге, то тег будет сгруппирован с тегом, расположенным выше.&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- Создать одну таблицу (внутренняя функция)&lt;br /&gt;
function p.table(args)&lt;br /&gt;
	local thetable&lt;br /&gt;
	local f = mw.getCurrentFrame()&lt;br /&gt;
	&lt;br /&gt;
	-- Параметры&lt;br /&gt;
	local id = args[1]&lt;br /&gt;
	local nocat = args[&amp;quot;некат&amp;quot;] or &amp;quot;&amp;quot;&lt;br /&gt;
	local class = args[&amp;quot;класс&amp;quot;] or &amp;quot;&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	-- Данные по блоку&lt;br /&gt;
	local datatitle = &amp;quot;Модуль:Состояния блока/&amp;quot; .. id&lt;br /&gt;
	local datapage = mw.title.new(datatitle)&lt;br /&gt;
	&lt;br /&gt;
	-- Сначала проверим, есть ли они.&lt;br /&gt;
	if not datapage.exists then&lt;br /&gt;
		-- Их нет, выводим сообщение об ошибке и прекращаем работу.&lt;br /&gt;
		thetable = &amp;quot;&amp;lt;strong class=error&amp;gt;Страница [&amp;quot; .. datapage:fullUrl(&amp;quot;action=edit&amp;amp;editintro=Шаблон:Состояния_блока/editintro&amp;amp;preload=Модуль:Состояния_блока/preload&amp;amp;redlink=1&amp;quot;) .. &amp;#039; &amp;#039; .. datatitle .. &amp;quot;] не существует. Необходимо создать её.&amp;lt;/strong&amp;gt;&amp;quot;&lt;br /&gt;
		if nocat == &amp;quot;&amp;quot; then&lt;br /&gt;
			thetable = thetable .. &amp;quot;[[Категория:Страницы с отсутствующими данными о состоянии блока]]&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
		return thetable&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Они есть, значит можно загружать&lt;br /&gt;
	local data = mw.loadData(datatitle)&lt;br /&gt;
	&lt;br /&gt;
	local nbtsprite = require(&amp;quot;Модуль:NBT&amp;quot;).sprite -- для отображения типа NBT-тега&lt;br /&gt;
	&lt;br /&gt;
	thetable = mw.html.create(&amp;quot;table&amp;quot;):addClass(&amp;quot;wikitable&amp;quot;) -- создать стандартную таблицу&lt;br /&gt;
	if class ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		thetable:addClass(class)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Общий заголовок с ссылкой на редактирование&lt;br /&gt;
	local caption = id .. &amp;quot; &amp;lt;small&amp;gt;[ [&amp;quot; .. datapage:fullUrl(&amp;quot;action=edit&amp;amp;editintro=Шаблон:Состояния_блока/editintro&amp;quot;) .. &amp;#039; &amp;#039; .. f:preprocess(&amp;quot;{{lc:{{int:editlink}} }}&amp;quot;) .. &amp;quot;] ]&amp;lt;/small&amp;gt;&amp;quot;&lt;br /&gt;
	thetable:tag(&amp;quot;caption&amp;quot;):wikitext(caption)&lt;br /&gt;
	&lt;br /&gt;
	-- Заголовки таблицы&lt;br /&gt;
	local headers = thetable:tag(&amp;quot;tr&amp;quot;)&lt;br /&gt;
	headers:tag(&amp;quot;th&amp;quot;):wikitext(&amp;quot;[[Состояния блоков|Название]]&amp;quot;)&lt;br /&gt;
	headers:tag(&amp;quot;th&amp;quot;):wikitext(&amp;quot;Значение&amp;quot;)&lt;br /&gt;
	headers:tag(&amp;quot;th&amp;quot;):wikitext(&amp;quot;Описание&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	-- Первый ряд и его заголовок&lt;br /&gt;
	local row = thetable:tag(&amp;quot;tr&amp;quot;)&lt;br /&gt;
	local rhead = row:tag(&amp;quot;th&amp;quot;):cssText(&amp;quot;text-align: left&amp;quot;)&lt;br /&gt;
	local ttype = &amp;quot;TAG_String&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	-- Ряды таблицы&lt;br /&gt;
	for i, tag in ipairs(data) do&lt;br /&gt;
		local tdata = tag[2]&lt;br /&gt;
		&lt;br /&gt;
		-- Проводить ли группировку тегов?&lt;br /&gt;
		if i &amp;gt; 1 and tdata == &amp;quot;&amp;amp;&amp;quot; then&lt;br /&gt;
			rgrouping = true&lt;br /&gt;
			rhead:tag(&amp;quot;br&amp;quot;)&lt;br /&gt;
			rhead:wikitext(nbtsprite{ttype, tag[1], [&amp;quot;некат&amp;quot;] = nocat})&lt;br /&gt;
		elseif tdata ~= &amp;quot;&amp;amp;&amp;quot; then&lt;br /&gt;
			-- Группировку не производим&lt;br /&gt;
			if i &amp;gt; 1 then&lt;br /&gt;
				-- Создаём новый ряд, если не был подготовлен старый&lt;br /&gt;
				row = thetable:tag(&amp;quot;tr&amp;quot;)&lt;br /&gt;
				rhead = row:tag(&amp;quot;th&amp;quot;)&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			ttype = tdata[&amp;quot;тип&amp;quot;] or &amp;quot;TAG_String&amp;quot;&lt;br /&gt;
			rhead:wikitext(nbtsprite{ttype, tag[1], [&amp;quot;некат&amp;quot;] = nocat})&lt;br /&gt;
			&lt;br /&gt;
			-- переменные для группировки описаний тегов&lt;br /&gt;
			local subrow = row&lt;br /&gt;
			local gcount = 0&lt;br /&gt;
			local dgrouping = false&lt;br /&gt;
			local tvalue&lt;br /&gt;
			local tdesc&lt;br /&gt;
			&lt;br /&gt;
			for j, value in ipairs(tdata[&amp;quot;значения&amp;quot;]) do&lt;br /&gt;
				-- value[1] — название&lt;br /&gt;
				-- value[2] — описание&lt;br /&gt;
				gcount = gcount + 1&lt;br /&gt;
				&lt;br /&gt;
				-- Производить ли группировку значений?&lt;br /&gt;
				if gcount &amp;gt; 1 then&lt;br /&gt;
					if value[2] == &amp;quot;&amp;amp;&amp;quot; then&lt;br /&gt;
						-- начать группировку&lt;br /&gt;
						dgrouping = true&lt;br /&gt;
						gcount = gcount - 1&lt;br /&gt;
					else&lt;br /&gt;
						if dgrouping == true then&lt;br /&gt;
							-- заканчиваем группировку, начинаем новую строку&lt;br /&gt;
							dgrouping = false&lt;br /&gt;
						end&lt;br /&gt;
						subrow = thetable:tag(&amp;quot;tr&amp;quot;)&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				&lt;br /&gt;
				-- Если не группируем, создаём новые клетки для значения и описания.&lt;br /&gt;
				if dgrouping == false then&lt;br /&gt;
					tvalue = subrow:tag(&amp;quot;td&amp;quot;)&lt;br /&gt;
					tdesc = subrow:tag(&amp;quot;td&amp;quot;)&lt;br /&gt;
					tdesc:wikitext(f:preprocess(value[2]))&lt;br /&gt;
				else -- Если же нет, добавляем значение к старой клетке, а описание не трогаем.&lt;br /&gt;
					tvalue:tag(&amp;quot;br&amp;quot;)&lt;br /&gt;
				end&lt;br /&gt;
				tvalue:wikitext(&amp;quot;&amp;lt;code&amp;gt;&amp;quot; .. value[1] .. &amp;quot;&amp;lt;/code&amp;gt;&amp;quot;)&lt;br /&gt;
			end&lt;br /&gt;
		&lt;br /&gt;
			-- Указываем количество групп в строку о теге.&lt;br /&gt;
			rhead:attr(&amp;quot;rowspan&amp;quot;, gcount)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Собираем всё вместе и возвращаем результат.&lt;br /&gt;
	return tostring(thetable)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Создать таблицы (функция для общего использования). Используйте именно её, даже если таблица одна.&lt;br /&gt;
function p.tables(f)&lt;br /&gt;
	local args = f&lt;br /&gt;
	if f == mw.getCurrentFrame() then&lt;br /&gt;
		args = require(&amp;quot;Модуль:ProcessArgs&amp;quot;).merge(true)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Неименованные аргументы указывают на идентификаторы блоков (например, minecraft:stone). Можно указать несколько блоков.&lt;br /&gt;
	-- Именованные аргументы используются для настройки модуля.&lt;br /&gt;
	&lt;br /&gt;
	local alltables = &amp;quot;&amp;quot;&lt;br /&gt;
	local nocat = args[&amp;quot;некат&amp;quot;] or &amp;quot;&amp;quot; -- отключение категорий&lt;br /&gt;
	local class = args[&amp;quot;класс&amp;quot;] or &amp;quot;&amp;quot; -- дополнительный класс таблицы&lt;br /&gt;
	&lt;br /&gt;
	local ids = {}&lt;br /&gt;
	for i, id in ipairs(args) do&lt;br /&gt;
		table.insert(ids, mw.text.trim(id))&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Если идентификаторы указаны...&lt;br /&gt;
	if #ids &amp;gt; 0 then&lt;br /&gt;
		-- ...то обработаем их с помощью p.table().&lt;br /&gt;
		for i, id in ipairs(ids) do&lt;br /&gt;
			alltables = alltables .. p.table{id, [&amp;quot;некат&amp;quot;] = nocat, [&amp;quot;класс&amp;quot;] = class}&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		-- А иначе завершаем работу с ошибкой.&lt;br /&gt;
		alltables = &amp;quot;&amp;lt;strong class=error&amp;gt;Ошибка: Шаблону {{Состояния блока}} не переданы аргументы!&amp;lt;/strong&amp;gt;&amp;quot;&lt;br /&gt;
		if nocat == &amp;quot;&amp;quot; then&lt;br /&gt;
			alltables = alltables .. &amp;quot;[[Категория:Страницы с неправильным использованием шаблона Состояния блока]]&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Возвращаем результат&lt;br /&gt;
	return alltables&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>minecraftwiki&gt;RDmitriyS</name></author>
	</entry>
</feed>