Module:Block value: Difference between revisions

From Modded Wiki
Jump to navigation Jump to search
No edit summary
m strip trailing s only if not found otherwise
 
(24 intermediate revisions by 6 users not shown)
Line 1: Line 1:
local p = {}
local p = {}
p.hardness = function( f )
 
function p.value( f )
local args = f
local args = f
if f == mw.getCurrentFrame() then
if f == mw.getCurrentFrame() then  
args = f:getParent().args
args = require( 'Module:ProcessArgs' ).merge( true )
end
local block = ( args[1] or '' ):gsub( '%s+', '' ):lower()
 
-- Most of these transforms are unnecessary, but are kept for compatibility with original template
-- 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
}
if not keepS[block] then
block = block:gsub( 's$', '' )
end
end
local block = mw.text.trim( args[1] or '' ):lower()
local argType = args.type
-- Remove stuff in parens
local values = mw.loadData( 'Module:' .. argType .. ' values' )
block = block:gsub( '%s*%([^%)]+%)', '' )
local value = values[block]
-- Other transforms
block = block
:gsub( 'wooden', 'wood' )
:gsub( 'mossy', 'moss' )
:gsub( 'steps', 'stairs' )
:gsub( "['%-]", '' )
local value = mw.loadData( [[Module:Hardness values]] )[block]
local category = ''
local category = ''
if not value then
if not value then
value = '[[Template:Hardness values#Missing value|?]]'
value = values[block:gsub( 's$', '' )]
local title = mw.title.getCurrentTitle()
if not args.nocat and title.namespace == 0 and not title.isSubpage then
if not value then
category = '[[Category:Missing hardness]]'
value = '[[Template:' .. argType .. ' values#Missing value|?]]'
local title = mw.title.getCurrentTitle()
if not args.nocat and title.namespace == 0 and not title.isSubpage then
category = '[[Category:Missing ' .. argType:lower() .. ']]'
end
end
end
end
end
return value .. category
return value .. category
end
end
return p
return p

Latest revision as of 16:56, 2 March 2020

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

local p = {}

function p.value( 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 argType = args.type
	
	local values = mw.loadData( 'Module:' .. argType .. ' values' )
	local value = values[block]
	local category = ''
	if not value then
		value = values[block:gsub( 's$', '' )]
		
		if not value then
			value = '[[Template:' .. argType .. ' values#Missing value|?]]'
			local title = mw.title.getCurrentTitle()
			if not args.nocat and title.namespace == 0 and not title.isSubpage then
				category = '[[Category:Missing ' .. argType:lower() .. ']]'
			end
		end
	end
	return value .. category
end

return p