CCCPaste

460db09c52623

local component = require('component')
local computer = require('computer')
local fs = require ('filesystem')
local bridge = component.openperipheral_bridge
local sensor = component.openperipheral_sensor
local chest = component.diamond
local me_controller = component.me_controller
local average_counter = component.average_counter

TPS = 0

db = {}

db.sens = {}

db.team = {
    ["sashenka97"] = false,
    ["Ordrex"] = false,
    ["BlackCatBaam"] = false,
    ["Voin_Dragon"] = false,
    ["HeAdolix"] = false,
    ["6"] = false,
    ["7"] = false,
    ["8"] = false,
    ["9"] = false,
    ["0"] = false,
}

function online_checker()
    for nick, _ in pairs(db.team) do
        if (computer.addUser(nick)) then
            db.team[nick] = 0x00ff00
        else
            db.team[nick] = 0x444444
        end
        computer.removeUser(nick)
    end
end

function time()
    local f = io.open("/tmp/timeFile","w")
    f:write("test")
    f:close()
    return(fs.lastModified("/tmp/timeFile"))
end

function check_TPS()
    local avgTPS = 0
    for i = 1, 5 do
        realTimeOld = time()
        os.sleep(1)
        realTimeNew = time()
        realTimeDiff = realTimeNew-realTimeOld
        avgTPS = avgTPS + 20000/realTimeDiff
    end
    TPS = avgTPS/5
end

function draw()
    check_TPS()
    online_checker()
    db.sens = sensor.getPlayers()
    voltage = average_counter.getAverage()
    bridge.addText(5, 5, 'TPS: '..string.format("%.1f", TPS), 0xffffff)
    bridge.addText(5, 5, 'Voltage: '..tostring(voltage), 0xffffff)
    local y = 20
    for nick, status in pairs(db.team) do
        bridge.addText(5, y, nick, status)
        y = y + 10
    end
    y = y + 5
    for player = 1, #db.sens do
        bridge.addText(5, y, db.sens[player].name, 0xffffaa)
        y = y + 10
    end
    y = y + 7
    local chest_items = chest.getAllStacks(false)
    for _, item in pairs(chest_items) do
        if item then
            local me_item = me_controller.getItemsInNetwork({name=item.id, damage=item.dmg})
            if me_item.n ~= 0 then
                bridge.addIcon(3, y, item.id, item.dmg)
                bridge.addText(23, y+5, tostring(me_item[1].size), 0xffffff)
                y = y + 16
            end
        end
    end
end

while true do
    bridge.clear()
    draw()
    bridge.sync()
    os.sleep(1)
end