Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local component = require("component")
- local event = require("event")
- local fs = require("filesystem")
- local computer = require("computer")
- local gpu = component.gpu
- local items = {
- {"dwcity:Materia", 0},
- {"minecraft:iron_ingot", 0},
- {"IC2:itemIngot", 0},
- {"IC2:itemIngot", 1},
- {"IC2:itemRubber", 0},
- {"minecraft:gold_ingot", 0},
- {"minecraft:redstone", 0},
- {"minecraft:coal", 0},
- }
- --------------------------------------------------------------
- local colors= {
- blue = 0x05F5F0,
- black = 0x000000,
- bred = 0xFF2400,
- green = 0x99FF33,
- sun = 0xFFFF00,
- red = 0x0052A3,
- orange = 0xFFA500,
- mem = 0xFFFFFF, -- память
- gray = 0x939393,
- hex = 0xC522A9,
- pur = 0x00FF00,
- red1 = 0xFF2400,
- }
- -----------------------------------------------------------------------
- local friendList = { "punak" }
- local players = {
- {"punak",false}
- }
- local blackList = {
- "krissss",
- "combomaster",
- "AliceWay",
- "sima21",
- "SkyDrive_",
- "Phenomenoon",
- "jewiven",
- "_Desert_Eagle_",
- "Samaya",
- }
- --------------------------------------------------------------------
- local chat_box, me, sensor, counter, bridge
- local euWorking, average, cb, me_a, s, bridgeCom, allow_mem = true, false, false, false, false,
- false, false
- -------------{OPTIONS}------------------
- local TIME_ZONE = 3
- local widthBox = 90
- local transBox = 0.3
- local timeConstant = 1
- local getY = 24
- ---------------------------------------------
- local TC, RO, RN, RD, TPS = 2, 0, 0, 0, 0
- local strTPS = ""
- ---------------------------------------------
- local t_correction = TIME_ZONE * 3600
- local chat_box_name = "§8[§4Малышка§8]"
- local adm = "punak" -- Ник админа компа
- local allow_mem = false -- Отображать на экране кол-во памяти или нет
- --------------------------------------------------ENERGY-PROXY-----------------------------------------------------
- ---------------------------------------------------------------------------------------------------------------------------------
- local localize = {
- join_in_game = " §7вошел в игру!",
- left_from_game = " §7покинул игру!",
- }
- ---------------------VISUAL----------------------------------------VISUAL-------------------------------------------------------------
- local function addBox(x, y, w, h, color, tran)
- return bridge.addBox(x, y, w, h, color, tran)
- end
- local function addText(x, y, text, color)
- return bridge.addText(x, y, text, color)
- end
- local function addIcon(x, y, name, meta)
- return bridge.addIcon(x, y, name, meta)
- end
- function gui()
- w, h = gpu.maxResolution()
- gpu.fill(1, 1, w, h, " ")
- end
- ------------------------------------------------------------CHECK-COM---------------------------------------------------
- local function digital(n)
- local text=''
- for f in string.gmatch(n,'%d') do text=text..f end
- return text
- end
- function check()
- if component.isAvailable("average_counter") then
- average = true
- counter = component.average_counter
- end
- if component.isAvailable("chat_box") then
- cb = true
- chat_box = component.chat_box
- chat_box.setName(chat_box_name)
- end
- if component.isAvailable("me_interface") then
- me_a = true
- me = component.me_interface
- end
- if component.isAvailable("openperipheral_sensor") then
- s = true
- sensor = component.openperipheral_sensor
- end
- if component.isAvailable("openperipheral_bridge") then
- bridgeCom = true
- bridge = component.openperipheral_bridge
- end
- componentsOnScreen()
- return false
- end
- ------------------------------------------------------------TIME----------------------------------------------------------
- local function getTime()
- local f = io.open("/tmp/TF", "w")
- f:write("test")
- f:close()
- return (fs.lastModified("/tmp/TF"))
- end
- local function drawTime()
- local time = getTime()
- local lastmod = tonumber(string.sub(time, 1, -4)) + TIME_ZONE * 3600
- local dt = os.date('%H:%M', lastmod)
- local x = 1
- local y = getY + 16
- local width = widthBox
- local height = 17
- local backgroundColor = colors.black
- local transparency = transBox
- addBox(x, y, width, height, backgroundColor, transparency)
- local textX = x + 10
- local textY = y + 5
- local textColor = colors.sun
- addText(textX, textY, "Время " .. dt, textColor)
- end
- --------------------------------------------
- --------------------------------------------
- function componentsOnScreen()
- gpu.set(1, 1, "Chat-box: " .. tostring(cb))
- gpu.set(1, 2, "ME: " .. tostring(me_a))
- gpu.set(1, 3, "radar: " .. tostring(s))
- gpu.set(1, 4, "Counter: " .. tostring(average))
- end
- function getSize(name,dmg)
- for _, item in ipairs(me.getItemsInNetwork()) do
- if item.name == name and item.damage == dmg then
- return item.size
- end
- end
- return 0
- end
- local function string_number(num)
- local answer = ""
- local reverse_num = {}
- local num = tostring(num):gsub(".", function(c)
- table.insert(reverse_num, c)
- end)
- for index, _ in pairs(reverse_num) do
- answer = answer .. reverse_num[#reverse_num - index + 1]
- if index % 3 == 0 and index ~= #reverse_num then
- answer = answer .. " "
- end
- end
- return answer:reverse()
- end
- -------------------------------------------------------------------ITEMS-------------------------------------------------------
- local function formatNumber(num)
- if num >= 1000000 then
- return string.format("%.1fM", num / 1000000)
- elseif num >= 1000 then
- return string.format("%.fK", num / 1000)
- else
- return tostring(num)
- end
- end
- local function drawItems()
- if me_a then
- local y = getY + 100
- local columnWidth = widthBox / 2 -- Ширина каждого столбца
- local itemsPerColumn = math.ceil(#items / 2) -- Количество элементов в каждом столбце
- addBox(1, y - 5, columnWidth, itemsPerColumn * 19, colors.black, transBox) -- Первый столбец
- addBox(columnWidth + 1, y - 5, columnWidth, itemsPerColumn * 19, colors.black, transBox) -- Второй столбец
- for i = 1, #items do
- local column = math.ceil(i / itemsPerColumn) -- Определение текущего столбца
- local offsetX = (column - 1) * columnWidth -- Смещение по горизонтали в зависимости от текущего столбца
- local itemIndex = i % itemsPerColumn -- Индекс элемента в текущем столбце
- if itemIndex == 0 then
- itemIndex = itemsPerColumn
- end
- local itemY = y + (itemIndex - 1) * 18 -- Рассчитываем позицию Y для текущего элемента
- addIcon(offsetX + 3, itemY - 4, items[i][1], items[i][2])
- local formattedNumber = formatNumber(getSize(items[i][1], items[i][2]))
- addText(offsetX + 21, itemY, formattedNumber, colors.blue)
- end
- end
- end
- ----------------------------------------------------------------TICK-PER-SECOND-------------------------------------------------------
- local function drawTPS()
- local TPS = {}
- local avgTPS = 0
- for tSlot=1, 3 do
- TPS[tSlot] = 0
- end
- for tSlot = 1, 3 do
- local realTimeOld = getTime()
- os.sleep(timeConstant)
- local realTimeNew = getTime()
- local realTimeDiff = realTimeNew - realTimeOld
- TPS[tSlot] = 20000 * timeConstant / realTimeDiff
- avgTPS = (TPS[1] + TPS[2] + TPS[3]) / 3
- end
- local color
- if avgTPS > 18 then
- color = 0x00FF00
- elseif avgTPS > 16 then
- color = 0xAAFF00
- elseif avgTPS > 14 then
- color = 0xFFFF00
- elseif avgTPS > 12 then
- color = 0xFFAA00
- else
- color = 0xFF4400
- end
- local x = 1
- local y = getY -3
- local width = widthBox
- local height = 17
- addBox(x, y, width, height, colors.black, transBox)
- local textOffsetX = 15
- local textX = x + textOffsetX
- local textY = y + 5
- addText(textX, textY, string.format("TPS: %.1f", avgTPS), color)
- return avgTPS
- end
- -----------------------------------------------------------------------
- check()
- bridge.clear()
- addText(10, 150, "Инициализация", colors.blue)
- bridge.sync()
- gui()
- while true do
- check()
- computer.addUser(adm)
- bridge.clear()
- drawItems()
- drawTPS()
- drawTime()
- os.sleep(0.1)
- bridge.sync()
- end
Advertisement
Add Comment
Please, Sign In to add comment