Module:ComponentFields: Difference between revisions

From Resonite Wiki
Trim newline from description
Add ability to literally pass through type string. Gonna use this for more advanced strings for generics and stuff.
Line 1: Line 1:
-- test in console:
-- 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."}}: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 = {}
local p = {}
Line 16: 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]


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

Revision as of 23:36, 29 February 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["TypeStringAdvanced"..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