<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.runerealm.org/index.php?action=history&amp;feed=atom&amp;title=Module%3AInfobox_Room</id>
	<title>Module:Infobox Room - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.runerealm.org/index.php?action=history&amp;feed=atom&amp;title=Module%3AInfobox_Room"/>
	<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=Module:Infobox_Room&amp;action=history"/>
	<updated>2026-05-01T20:46:00Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://wiki.runerealm.org/index.php?title=Module:Infobox_Room&amp;diff=35002&amp;oldid=prev</id>
		<title>Alex: Created page with &quot;-------------------------- -- Module for Template:Infobox Room ------------------------ local p = {}  local onmain = require(&#039;Module:Mainonly&#039;).on_main local infobox = require(&#039;Module:Infobox&#039;) local coins = require(&#039;Module:Coins&#039;)._amount  function p.main(frame) 	local args = frame:getParent().args 	local ret = infobox.new(args)  	ret:defineParams{ 		{ name = &#039;name&#039;, func = &#039;name&#039; }, 		{ name = &#039;image&#039;, func = &#039;image&#039; }, 		{ name = &#039;release&#039;, func = &#039;release&#039; }, 		{...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=Module:Infobox_Room&amp;diff=35002&amp;oldid=prev"/>
		<updated>2024-10-16T23:12:21Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;-------------------------- -- Module for &lt;a href=&quot;/w/Template:Infobox_Room&quot; title=&quot;Template:Infobox Room&quot;&gt;Template:Infobox Room&lt;/a&gt; ------------------------ local p = {}  local onmain = require(&amp;#039;Module:Mainonly&amp;#039;).on_main local infobox = require(&amp;#039;Module:Infobox&amp;#039;) local coins = require(&amp;#039;Module:Coins&amp;#039;)._amount  function p.main(frame) 	local args = frame:getParent().args 	local ret = infobox.new(args)  	ret:defineParams{ 		{ name = &amp;#039;name&amp;#039;, func = &amp;#039;name&amp;#039; }, 		{ name = &amp;#039;image&amp;#039;, func = &amp;#039;image&amp;#039; }, 		{ name = &amp;#039;release&amp;#039;, func = &amp;#039;release&amp;#039; }, 		{...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--------------------------&lt;br /&gt;
-- Module for [[Template:Infobox Room]]&lt;br /&gt;
------------------------&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local onmain = require(&amp;#039;Module:Mainonly&amp;#039;).on_main&lt;br /&gt;
local infobox = require(&amp;#039;Module:Infobox&amp;#039;)&lt;br /&gt;
local coins = require(&amp;#039;Module:Coins&amp;#039;)._amount&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = frame:getParent().args&lt;br /&gt;
	local ret = infobox.new(args)&lt;br /&gt;
&lt;br /&gt;
	ret:defineParams{&lt;br /&gt;
		{ name = &amp;#039;name&amp;#039;, func = &amp;#039;name&amp;#039; },&lt;br /&gt;
		{ name = &amp;#039;image&amp;#039;, func = &amp;#039;image&amp;#039; },&lt;br /&gt;
		{ name = &amp;#039;release&amp;#039;, func = &amp;#039;release&amp;#039; },&lt;br /&gt;
		{ name = &amp;#039;aka&amp;#039;, func = &amp;#039;has_content&amp;#039; },&lt;br /&gt;
		{ name = &amp;#039;icon&amp;#039;, func = &amp;#039;has_content&amp;#039; },&lt;br /&gt;
		{ name = &amp;#039;level&amp;#039;, func = &amp;#039;has_content&amp;#039; },&lt;br /&gt;
		{ name = &amp;#039;cost&amp;#039;, func = costarg },&lt;br /&gt;
		{ name = &amp;#039;doors&amp;#039;, func = { name = doorsarg, params = { &amp;#039;doors&amp;#039;, &amp;#039;name&amp;#039; } } },&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	ret:defineLinks({ hide = true })&lt;br /&gt;
&lt;br /&gt;
	ret:create()&lt;br /&gt;
	ret:cleanParams()&lt;br /&gt;
&lt;br /&gt;
	ret:customButtonPlacement(true)&lt;br /&gt;
	ret:addButtonsCaption()&lt;br /&gt;
&lt;br /&gt;
	ret:defineName(&amp;#039;Infobox Room&amp;#039;)&lt;br /&gt;
	ret:addClass(&amp;#039;infobox-room&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	ret:addRow{&lt;br /&gt;
		{ tag = &amp;#039;argh&amp;#039;, content = &amp;#039;name&amp;#039;, class=&amp;#039;infobox-header&amp;#039;, colspan = &amp;#039;5&amp;#039; }&lt;br /&gt;
	}&lt;br /&gt;
	:addRow{&lt;br /&gt;
		{ tag = &amp;#039;argd&amp;#039;, content = &amp;#039;image&amp;#039;, colspan = &amp;#039;5&amp;#039;, class = &amp;#039;infobox-full-width-content&amp;#039; }&lt;br /&gt;
	}&lt;br /&gt;
	:pad(5)&lt;br /&gt;
	ret:addRow{&lt;br /&gt;
		{ tag = &amp;#039;th&amp;#039;, content = &amp;#039;Released&amp;#039;, colspan = &amp;#039;2&amp;#039; },&lt;br /&gt;
		{ tag = &amp;#039;argd&amp;#039;, content = &amp;#039;release&amp;#039;, colspan = &amp;#039;3&amp;#039; }&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	if ret:paramDefined(&amp;#039;aka&amp;#039;) then&lt;br /&gt;
		ret:addRow{&lt;br /&gt;
			{ tag = &amp;#039;th&amp;#039;, content = &amp;#039;Also called&amp;#039;, colspan = &amp;#039;2&amp;#039; },&lt;br /&gt;
			{ tag = &amp;#039;argd&amp;#039;, content = &amp;#039;aka&amp;#039;, colspan = &amp;#039;3&amp;#039; }&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	ret:addRow{&lt;br /&gt;
		{ tag = &amp;#039;th&amp;#039;, content = &amp;#039;Icon&amp;#039;, colspan = &amp;#039;2&amp;#039; },&lt;br /&gt;
		{ tag = &amp;#039;argd&amp;#039;, content = &amp;#039;icon&amp;#039;, colspan = &amp;#039;3&amp;#039; }&lt;br /&gt;
	}&lt;br /&gt;
	:addRow{&lt;br /&gt;
		{ tag = &amp;#039;th&amp;#039;, content = &amp;#039;[[Construction]] level&amp;#039;, colspan = &amp;#039;2&amp;#039; },&lt;br /&gt;
		{ tag = &amp;#039;argd&amp;#039;, content = &amp;#039;level&amp;#039;, colspan = &amp;#039;3&amp;#039; }&lt;br /&gt;
	}&lt;br /&gt;
	:addRow{&lt;br /&gt;
		{ tag = &amp;#039;th&amp;#039;, content = &amp;#039;Cost&amp;#039;, colspan = &amp;#039;2&amp;#039; },&lt;br /&gt;
		{ tag = &amp;#039;argd&amp;#039;, content = &amp;#039;cost&amp;#039;, colspan = &amp;#039;3&amp;#039; }&lt;br /&gt;
	}&lt;br /&gt;
	:pad(5)&lt;br /&gt;
&lt;br /&gt;
	if ret:paramDefined(&amp;#039;doors&amp;#039;) then&lt;br /&gt;
		ret:addRow{&lt;br /&gt;
			{ tag = &amp;#039;th&amp;#039;, content = &amp;#039;Door layout&amp;#039;, class = &amp;#039;infobox-subheader&amp;#039;, colspan = &amp;#039;5&amp;#039; }&lt;br /&gt;
		}&lt;br /&gt;
		:pad(5)&lt;br /&gt;
		:addRow{&lt;br /&gt;
			{ tag = &amp;#039;argd&amp;#039;, content = &amp;#039;doors&amp;#039;, colspan = &amp;#039;5&amp;#039;, class = &amp;#039;infobox-full-width-content&amp;#039; }&lt;br /&gt;
		}&lt;br /&gt;
		:pad(5)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if onmain() then&lt;br /&gt;
		local a1 = ret:param(&amp;#039;all&amp;#039;)&lt;br /&gt;
		local a2 = ret:categoryData()&lt;br /&gt;
		ret:wikitext(addcategories(a1, a2))&lt;br /&gt;
	end&lt;br /&gt;
	return ret:tostring()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function costarg(arg)&lt;br /&gt;
	if not infobox.isDefined(arg) then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	return coins(arg)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function doorsarg(arg, room_name)&lt;br /&gt;
	if not infobox.isDefined(arg) then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local n_type = string.match(arg, &amp;#039;n&amp;#039;) and &amp;#039;door&amp;#039; or &amp;#039;wall&amp;#039;&lt;br /&gt;
	local w_type = string.match(arg, &amp;#039;w&amp;#039;) and &amp;#039;door&amp;#039; or &amp;#039;wall&amp;#039;&lt;br /&gt;
	local e_type = string.match(arg, &amp;#039;e&amp;#039;) and &amp;#039;door&amp;#039; or &amp;#039;wall&amp;#039;&lt;br /&gt;
	local s_type = string.match(arg, &amp;#039;s&amp;#039;) and &amp;#039;door&amp;#039; or &amp;#039;wall&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	local doors = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
		:addClass(&amp;#039;poh-room&amp;#039;)&lt;br /&gt;
		:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
			:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
			:wikitext(&amp;#039;[[File:House h&amp;#039;..n_type..&amp;#039;.png|link=]]&amp;#039;)&lt;br /&gt;
			:done()&lt;br /&gt;
		:done()&lt;br /&gt;
		:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
			:addClass(&amp;#039;poh-room-row&amp;#039;)&lt;br /&gt;
			:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
			:wikitext(&amp;#039;[[File:House v&amp;#039;..w_type..&amp;#039;.png|link=]]&amp;#039;)&lt;br /&gt;
			:done()&lt;br /&gt;
			:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
			:addClass(&amp;#039;poh-room-text&amp;#039;)&lt;br /&gt;
			:wikitext(room_name or &amp;#039;&amp;#039;)&lt;br /&gt;
			:done()&lt;br /&gt;
			:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
			:wikitext(&amp;#039;[[File:House v&amp;#039;..e_type..&amp;#039;.png|link=]]&amp;#039;)&lt;br /&gt;
			:done()&lt;br /&gt;
		:done()&lt;br /&gt;
		:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
			:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
			:wikitext(&amp;#039;[[File:House h2&amp;#039;..s_type..&amp;#039;.png|link=]]&amp;#039;)&lt;br /&gt;
			:done()&lt;br /&gt;
		:done()&lt;br /&gt;
		:done()&lt;br /&gt;
&lt;br /&gt;
	return tostring(doors)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function addcategories(args, catargs)&lt;br /&gt;
	local ret = { &amp;#039;Player-owned house room&amp;#039; }&lt;br /&gt;
&lt;br /&gt;
	-- Add the associated category if the parameter has content&lt;br /&gt;
	local defined_args = {&lt;br /&gt;
		aka = &amp;#039;Pages with AKA&amp;#039;,&lt;br /&gt;
	}&lt;br /&gt;
	for n, v in pairs(defined_args) do&lt;br /&gt;
		if catargs[n] and catargs[n].one_defined then&lt;br /&gt;
			table.insert(ret, v)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add the associated category if the parameter doesn&amp;#039;t have content&lt;br /&gt;
	local notdefined_args = {&lt;br /&gt;
		image = &amp;#039;Needs image&amp;#039;,&lt;br /&gt;
		release = &amp;#039;Needs release date&amp;#039;,&lt;br /&gt;
	}&lt;br /&gt;
	for n, v in pairs(notdefined_args) do&lt;br /&gt;
		if catargs[n] and catargs[n].all_defined == false then&lt;br /&gt;
			table.insert(ret, v)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- combine table and format category wikicode&lt;br /&gt;
	for i, v in ipairs(ret) do&lt;br /&gt;
		if (v ~= &amp;#039;&amp;#039;) then&lt;br /&gt;
			ret[i] = string.format(&amp;#039;[[Category:%s]]&amp;#039;, v)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return table.concat(ret, &amp;#039;&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
	</entry>
</feed>