Module:Block value: Difference between revisions

From Modded Wiki
Jump to navigation Jump to search
I don't think it is appropriate to remove S for Debris
m fix indentation and comment location
Line 10: Line 10:
-- Most of these transforms are unnecessary, but are kept for compatibility with original template
-- Most of these transforms are unnecessary, but are kept for compatibility with original template


-- Strip trailing "s" on everything but these
-- remove any of '()- or whitespace
if type=="blast resistance" then
if type == "blast resistance" then
block=block:gsub( "['%(%)%-%s]+", '' )
block = block:gsub( "['%(%)%-%s]+", '' )
else
else
local keepS = {
-- Strip trailing "s" on everything but these
glass = true,
local keepS = {
steps = true, stairs = true,
glass = true,
bars = true,
steps = true, stairs = true,
cactus = true,
bars = true,
leaves = true,
cactus = true,
grass = true,
leaves = true,
potatoes = true,
grass = true,
planks = true,
potatoes = true,
seagrass = true,
planks = true,
debris = true
seagrass = true,
}
debris = true
if not keepS[block:match( '%w+$' )] then
}
block = block:gsub( 's$', '' )
if not keepS[block:match( '%w+$' )] then
end
block = block:gsub( 's$', '' )
end
-- Other transforms
block = block
-- Other transforms
:gsub( 'wooden', 'wood' )
block = block
:gsub( 'mossy', 'moss' )
:gsub( 'wooden', 'wood' )
:gsub( 'steps', 'stairs' )
:gsub( 'mossy', 'moss' )
:gsub( "['%(%)%-%s]+", '' )
:gsub( 'steps', 'stairs' )
:gsub( "['%(%)%-%s]+", '' )
end
end
local value = mw.loadData( 'Module:' .. type .. ' values' )[block]
local value = mw.loadData( 'Module:' .. type .. ' values' )[block]

Revision as of 18:34, 18 February 2020

Documentation for this module may be created at Module:Block value/doc

local p = {}
p.value = function( f )
	local args = f
	if f == mw.getCurrentFrame() then 
		args = require( 'Module:ProcessArgs' ).merge( true )
	end
	local block = mw.text.trim( args[1] or '' ):lower()
	local type = args.type

	-- Most of these transforms are unnecessary, but are kept for compatibility with original template

	-- remove any of '()- or whitespace
	if type == "blast resistance" then
		block = block:gsub( "['%(%)%-%s]+", '' )
	else
		-- Strip trailing "s" on everything but these
		local keepS = {
			glass = true,
			steps = true, stairs = true,
			bars = true,
			cactus = true,
			leaves = true,
			grass = true,
			potatoes = true,
			planks = true,
			seagrass = true,
			debris = true
		}
		if not keepS[block:match( '%w+$' )] then
			block = block:gsub( 's$', '' )
		end
		
		-- Other transforms
		block = block
			:gsub( 'wooden', 'wood' )
			:gsub( 'mossy', 'moss' )
			:gsub( 'steps', 'stairs' )
			:gsub( "['%(%)%-%s]+", '' )
	end
	local value = mw.loadData( 'Module:' .. type .. ' values' )[block]
	local category = ''
	if not value then
		value = '[[Template:' .. type .. ' values#Missing value|?]]'
		local title = mw.title.getCurrentTitle()
		if not args.nocat and title.namespace == 0 and not title.isSubpage then
			category = '[[Category:Missing ' .. type:lower() .. ']]'
		end
	end
	return value .. category
end
return p