Advertisement
Vodka51200

Terminal Glasses RF Monitor

Dec 2nd, 2014
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.44 KB | None | 0 0
  1. --pastebin code: G47j7rDW
  2.      
  3.     local bridge = peripheral.wrap("left")
  4.     local net = peripheral.wrap("back")
  5.      
  6.     bridge.clear()
  7.      
  8.     local width = 100
  9.      
  10.     local storageUnits = {
  11.        {
  12.              ["id"] = "cofh_thermalexpansion_energycell_0",
  13.              ["name"] = "Main"
  14.        },
  15.        {
  16.              ["id"] = "cofh_thermalexpansion_energycell_1",
  17.              ["name"] = "Backup"
  18.        },
  19.        {  
  20.              ["id"] = "harvester_0",
  21.              ["name"] = "Tree Farm"
  22.        },
  23.        {
  24.              ["id"] = "planter_0",
  25.              ["name"] = "Planter"
  26.      
  27.        }
  28.     }
  29.      
  30.     local offset = 0
  31.     for key, storageUnit in pairs(storageUnits) do
  32.       if net.getTypeRemote(storageUnit["id"]) == "cofh_thermalexpansion_energycell" then
  33.        pxOffset = offset * 20
  34.        storageUnit["label"] = bridge.addText(4, 4 + pxOffset, storageUnit["name"], 0xffffff)
  35.        storageUnit["bar"] = bridge.addBox(4, 14 + pxOffset, 0, 5, 0xCC0000, 0.9)
  36.        storageUnit["bar"].setZ(2)
  37.        storageUnit["bg"] = bridge.addBox(4, 14 + pxOffset, width, 5, 0x000000, 0.5)
  38.        storageUnit["num"] = bridge.addText(4, 24 + pxOffset, "0/0", 0xffffff)
  39.        storageUnit["percent"] = bridge.addText(0 + bridge.getStringWidth(storageUnit["name"]), 4 + pxOffset, "##%", 0xffffff)
  40.        offset = offset + 2
  41.       elseif net.getTypeRemote(storageUnit["id"]) == "harvester" then
  42.        pxOffset = offset * 10  
  43.        storageUnit["label"] = bridge.addText(4, 34 + pxOffset, storageUnit["name"].." :", 0xffffff)
  44.        storageUnit["run"] = bridge.addText(0 + bridge.getStringWidth(storageUnit["name"]), 34 + pxOffset, "", 0xffffff)
  45.        offset = offset + 1
  46.       elseif net.getTypeRemote(storageUnit["id"]) == "planter" then
  47.        pxOffset = offset * 10
  48.        storageUnit["label"] = bridge.addText(4, 44 + pxOffset, storageUnit["name"].." :", 0xffffff)
  49.        storageUnit["run"] = bridge.addText(0 + bridge.getStringWidth(storageUnit["name"]), 44 + pxOffset, "", 0xffffff)
  50.        offset = offset + 1  
  51.       end
  52.     end
  53.      
  54.     while true do
  55.       for i=#storageUnits,1,-1 do
  56.             storageUnit = storageUnits[i]
  57.             if net.isPresentRemote(storageUnit["id"]) then
  58.               if net.getTypeRemote(storageUnit["id"]) == "cofh_thermalexpansion_energycell" then
  59.                 t = peripheral.wrap(storageUnit["id"])
  60.                 capacity = t.getMaxEnergyStored("")
  61.                 amount = t.getEnergyStored("")
  62.                 storageUnit["bar"].setWidth(width / capacity * amount)
  63.                 perc = math.floor(amount/capacity * 100)
  64.                 tCap = tostring(capacity)
  65.                 tAmt = tostring(amount)
  66.                 tPerc = tostring(perc)
  67.                 storageUnit["num"].setText(tAmt.."/"..tCap)
  68.                 storageUnit["percent"].setText(tPerc.."%")
  69.               elseif net.getTypeRemote(storageUnit["id"]) == "harvester" or net.getTypeRemote(storageUnit["id"]) == "planter" then
  70.                 t = peripheral.wrap(storageUnit["id"])
  71.                             running = t.isActive()
  72.                                   if running == true then
  73.                                     storageUnit["run"].setText("Running")
  74.                   storageUnit["run"].setColor(0x33cc33)
  75.                   --storageUnit["label"].setText(storageUnit["name"]..": Running")
  76.        
  77.                                   else
  78.                                     storageUnit["run"].setText("Not Running")
  79.                   storageUnit["run"].setColor(0xff0000)
  80.                                     --storageUnit["label"].setText(storageUnit["name"]..": Not Running")
  81.                 end
  82.                     end
  83.             else
  84.              if net.getTypeRemote(storageUnit["id"]) == "cofh_thermalexpansion_energycell" then
  85.                           storageUnit["bar"].delete()
  86.               storageUnit["bg"].delete()
  87.               storageUnit["label"].delete()
  88.               storageUnit["num"].delete()
  89.               storageUnit["percent"].delte()
  90.                           table.remove(storageUnits, i)
  91.                         elseif net.getTypeRemote(storageUnit["id"]) == "harvester" or net.getTypeRemote(storageUnit["id"]) == "planter" then
  92.                           storageUnit["label"].delete()
  93.                           storageUnit["run"].delete()
  94.                           table.remove(storageUnits, i)
  95.                          end
  96.             end
  97.       end
  98.       sleep(0.5)
  99.     end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement