Module:ComponentFields: Difference between revisions

From Resonite Wiki
Add ability to literally pass through type string. Gonna use this for more advanced strings for generics and stuff.
Don't bold for advanced types
 
(One intermediate revision by the same user not shown)
Line 17: Line 17:
local description = templateFrame.args[argI + 2]
local description = templateFrame.args[argI + 2]
local typeString = templateFrame.args["TypeString"..i] or type
local typeString = templateFrame.args["TypeString"..i] or type
local typeStringAdvanced = templateFrame.args["TypeStringAdvanced"..i]
local typeStringAdvanced = templateFrame.args["TypeAdv"..i]


if name == nil then
if name == nil then
Line 28: Line 28:
body = body.."|<code>"..name.."</code>\n"
body = body.."|<code>"..name.."</code>\n"
if typeStringAdvanced == "true" then
if typeStringAdvanced == "true" then
body = body.."|'''"..typeString.."'''\n"
body = body.."|"..typeString.."\n"
else
else
body = body.."|'''[[Type:"..type.."|"..typeString.."]]'''\n"
body = body.."|'''[[Type:"..type.."|"..typeString.."]]'''\n"

Latest revision as of 03:32, 1 March 2024

This module is used to implement the logic of Template:Table ComponentFields and Template:Table TypeFields. Don't use it anywhere else please thank.


-- test in console:
-- =p.main(mw.getCurrentFrame():newChild{title="Template:Table ComponentFields",args={"FixTransformsEnabled", "Bool", "Clamps IK transforms to reasonable values and Resets IK every update."}}:newChild{title="Module:Test",args={}})
-- =p.main(mw.getCurrentFrame():newChild{title="Template:Table ComponentFields",args={"FixTransformsEnabled", "Bool", "Clamps IK transforms to reasonable values and Resets IK every update.", ["TypeStringAdvanced0"] = "true"}}:newChild{title="Module:Test",args={}})

local p = {}

function p.main(frame)
	local body = ""
	
	local templateFrame = frame:getParent()
	local i = 0

	while true do
		local argI = i * 3 + 1
		local name = templateFrame.args[argI]
		local type = templateFrame.args[argI + 1]
		local description = templateFrame.args[argI + 2]
		local typeString = templateFrame.args["TypeString"..i] or type
		local typeStringAdvanced = templateFrame.args["TypeAdv"..i]

		if name == nil then
			break
		end

		description = mw.text.trim(description)

		body = body.."|-\n"
		body = body.."|<code>"..name.."</code>\n"
		if typeStringAdvanced == "true" then
			body = body.."|"..typeString.."\n"
		else
			body = body.."|'''[[Type:"..type.."|"..typeString.."]]'''\n"
		end
		body = body.."|"..description.."\n"
		i = i + 1
	end
	
	return body
end

return p