Minecraft Wiki
Advertisement
[Crear | Purgar]Documentación
Emódulo no tiene documentación. Si sabes cómo crear emódulo, por favor crea su página.
local p = {}

function p.normalizeUnit(u)
	local unit = u
	if u == 'tick' or u == 'ticks' or u == 'gt' or u == 'game ticks' then unit = 'game tick'
	elseif u == 'rt' or u == 'redstone ticks' then u = 'redstone tick'
	elseif u == 's' or u == 'sec' or u == 'secs' or u == 'seconds' then unit = 'second'
	elseif u == 'm' or u == 'min' or u == 'mins' or u == 'minutes' then unit = 'minute'
	elseif u == 'day' or u == 'days' or u == 'igd' or u == 'in game day' then unit = 'in-game day'
	end
	return unit
end

function p.convert(value, inputUnit, outputUnit)
	inputUnit = p.normalizeUnit(inputUnit or 'game tick') -- using default value of 'game tick'
	outputUnit = p.normalizeUnit(outputUnit or 'second') -- using default value of 'second'
	local convertedValue = value
	local conversions = {
		['second -> game tick'] = convertedValue * 20, ['game tick -> second'] = convertedValue / 20,
		['second -> redstone tick'] = convertedValue * 10, ['redstone tick -> second'] = convertedValue / 10,
		['minute -> second'] = convertedValue * 60, ['second -> minute'] = convertedValue / 60,
		['minute -> game tick'] = convertedValue * 20 * 60, ['game tick -> minute'] = convertedValue / 20 / 60,
		['minute -> redstone tick'] = convertedValue * 10 * 60, ['redstone tick -> minute'] = convertedValue / 10 / 60,
		['game tick -> redstone tick'] = convertedValue / 2, ['redstone tick -> game tick'] = convertedValue * 2,
		['in-game day -> minute'] = convertedValue * 20, ['minute -> in-game day'] = convertedValue / 20,
		['in-game day -> second'] = convertedValue * 20 * 60, ['second -> in-game day'] = convertedValue / 20 / 60,
		['in-game day -> game tick'] = convertedValue * 24000, ['game tick -> in-game day'] = convertedValue / 24000,
	}
	convertedValue = conversions[inputUnit .. ' -> ' .. outputUnit]
	return convertedValue
end

function p.output(f)

	local args = f
	if f == mw.getCurrentFrame() then 
		args = require('Module:ProcessArgs').merge(true)
	end
	
	local value = args[1]*1 or 1 -- using default value of 1
	local sourceUnit = args[2]
	
	if not args[2] then return 1 end
	if not args[3] then return value .. ' ' .. sourceUnit end
	
	local seperator = args['seperator'] or args['sep'] or args['s'] or '('
	local startSeperator = ' ' .. seperator .. ' '
	local endSeperator = ''
	if seperator == '(' then startSeperator = ' (' endSeperator = ')' end
	
	local fullOutput = ''
	for i,unit in ipairs(args) do
		if (i > 2 and args[i]) then
			unit = p.normalizeUnit(unit)
			local outputVal = p.convert(value, sourceUnit, unit)
			if unit == 'game tick' or unit == 'redstone tick' then unit = '[[' .. unit .. ']]' end
			if outputVal ~= 1 then unit = unit .. 's' end -- plural

			local midSeperator = startSeperator
			if i > 3 and midSeperator == ' (' then midSeperator = '; ' end

			fullOutput = fullOutput .. midSeperator .. outputVal .. ' ' .. unit
		end
	end
	
	sourceUnit = p.normalizeUnit(sourceUnit)
	if value ~= 1 then sourceUnit = sourceUnit .. 's' end
	return value .. ' ' .. sourceUnit .. fullOutput .. endSeperator

end

return p
Advertisement