| local node = ThreadNode:extend('node.currency', { |
| threadFile = 'nodes/currency_thread.lua', |
| threadChannel = 'currency', |
| |
| updateInterval = 10, |
| state = { |
| values = {}, |
| changes = {}, |
| }, |
| }) |
| |
| local inspect = require('vendor.inspect') |
| |
| local textFont = love.graphics.newFont('fonts/Lato-Light.ttf', 90) |
| local headFont = love.graphics.newFont('fonts/Lato-Regular.ttf', 90) |
| local smallFont = love.graphics.newFont('fonts/Lato-Light.ttf', 30) |
| |
| function node:render() |
| love.graphics.setColor( 0, 0, 0 ) |
| love.graphics.rectangle("fill", 0, 0, love.graphics.getWidth(), love.graphics.getHeight()) |
| |
| if self.state.values and self.state.values[2] then |
| local pad = 20 |
| love.graphics.setColor( 1.0, 1.0, 1.0 ) |
| love.graphics.setFont(headFont) |
| love.graphics.printf("BTCPLN", 0, 180, love.graphics.getWidth()/2, 'right') |
| love.graphics.printf("TRYIDR", 0, 350, love.graphics.getWidth()/2, 'right') |
| love.graphics.setFont(textFont) |
| if self.state.changes[1] then |
| love.graphics.setColor( 0, 1.0, 0 ) |
| else |
| love.graphics.setColor( 1.0, 0, 0 ) |
| end |
| love.graphics.printf(self.state.values[1], love.graphics.getWidth()/2 + 2*pad, 180, love.graphics.getWidth()/2 - 2*pad, 'left') |
| |
| if self.state.changes[2] then |
| love.graphics.setColor( 0, 1.0, 0 ) |
| else |
| love.graphics.setColor( 1.0, 0, 0 ) |
| end |
| love.graphics.printf(self.state.values[2], love.graphics.getWidth()/2 + 2*pad, 350, love.graphics.getWidth()/2 - 2*pad, 'left') |
| else |
| love.graphics.setColor( 1.0, 1.0, 1.0, 0.4 ) |
| |
| love.graphics.setFont(smallFont) |
| love.graphics.printf("Loading currency...", 0, love.graphics.getHeight() - 200, love.graphics.getWidth(), 'center') |
| end |
| end |
| |
| function node:onUpdate(v) |
| for n in ipairs(v.values) do |
| if self.state.values[n] then |
| if self.state.values[n] ~= v.values[n] then |
| self.state.changes[n] = self.state.values[n] > v.values[n] |
| end |
| else |
| self.state.changes[n] = true |
| end |
| end |
| |
| self.state.values = v.values |
| end |
| |
| return node |