local node = Node:extend('nodes.countdown', { target = 1498780800, description = 'to get the fuck out of here', precision = 3, }) local textFont = love.graphics.newFont('fonts/Lato-Thin.ttf', 100) local smallFont = love.graphics.newFont('fonts/Lato-Light.ttf', 60) function node:init(config) node.super.init(self, config) end function timefmt(time, precision) precision = precision or 3 local p = { {60, "seconds"}, {60, "minutes"}, {24, "hours"}, {7, "days"}, {nil, "weeks"}, } local parts = {} local v for i, e in ipairs(p) do if e[1] == nil then v = time else v = time % e[1] time = math.floor(time / e[1]) end if v ~= 0 then table.insert(parts, 1, tostring(v) .. " " .. e[2]) end end return table.concat(lume.slice(parts, 1, precision), " ") end function node:render() love.graphics.setColor( 0, 0, 0 ) love.graphics.rectangle("fill", 0, 0, love.graphics.getWidth(), love.graphics.getHeight()) love.graphics.setColor( 1.0, 1.0, 1.0 ) love.graphics.setFont(textFont); love.graphics.printf(timefmt(math.abs(self.target - os.time()), self.precision), 0, 0.3*love.graphics.getHeight(), love.graphics.getWidth(), 'center'); love.graphics.setFont(smallFont); love.graphics.printf(self.description, 0, 0.7*love.graphics.getHeight(), love.graphics.getWidth(), 'center'); end return node