Module:Ticks: Difference between revisions

Created page with "local p = {} function p.display(frame) local args = frame:getParent().args local amount = tonumber(args["amount"]) or 0 local seconds = amount * 0.6 local roundedSeconds = math.floor(seconds + 0.5) -- round to nearest whole number return string.format("%d Ticks (%ds)", amount, roundedSeconds) end return p"
 
No edit summary
 
(8 intermediate revisions by the same user not shown)
Line 3: Line 3:
function p.display(frame)
function p.display(frame)
     local args = frame:getParent().args
     local args = frame:getParent().args
     local amount = tonumber(args["amount"]) or 0
     local amount = tonumber(args[1] or args["amount"]) or 0
     local seconds = amount * 0.6
     local seconds = amount * 0.6
     local roundedSeconds = math.floor(seconds + 0.5) -- round to nearest whole number
 
     return string.format("%d [[Ticks]] (%ds)", amount, roundedSeconds)
     local timeDisplay
    local minutes = seconds / 60
 
    if seconds >= 120 then
        if minutes == math.floor(minutes) then
            timeDisplay = string.format('<abbr title="Time in minutes">%.0fm</abbr>', minutes)
        elseif (minutes * 10) % 5 == 0 then  -- divisible by 0.5
            timeDisplay = string.format('<abbr title="Time in minutes">%.1fm</abbr>', minutes)
        end
    end
 
    if not timeDisplay then
        -- Fall back to seconds with 1 decimal place, strip .0 if present
        local secondsFormatted = string.format("%.1f", seconds):gsub("%.0$", "")
        timeDisplay = string.format('<abbr title="Time in seconds">%ss</abbr>', secondsFormatted)
    end
 
     return string.format("%s [[Ticks]] <small>(%s)</small>", tostring(amount):reverse():gsub("(%d%d%d)", "%1,"):reverse():gsub("^,", ""), timeDisplay)
end
end


return p
return p