mathiasbarentsen

Power system - FTB

Dec 5th, 2015
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.08 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"] = "tile_thermalexpansion_cell_resonant_name_0",
  13.         ["name"] = "Main#1"
  14.     },
  15.     {
  16.         ["id"] = "tile_thermalexpansion_cell_resonant_name_1",
  17.         ["name"] = "Main#2"
  18.     },
  19.     {
  20.         ["id"] = "tile_thermalexpansion_cell_resonant_name_2",
  21.         ["name"] = "Main#3"
  22.     }
  23. }
  24.  
  25. local offset = 0
  26. for key, storageUnit in pairs(storageUnits) do
  27.     if net.getTypeRemote(storageUnit["id"]) == "tile_thermalexpansion_cell_resonant_name" then
  28.         pxOffset = offset * 20
  29.         storageUnit["label"] = bridge.addText(4, 4 + pxOffset, storageUnit["name"], 0xffffff)
  30.         storageUnit["bar"] = bridge.addBox(4, 14 + pxOffset, 0, 5, 0xCC0000, 0.9)
  31.         storageUnit["bar"].setZ(2)
  32.         storageUnit["bg"] = bridge.addBox(4, 14 + pxOffset, width, 5, 0x000000, 0.5)
  33.         storageUnit["num"] = bridge.addText(4, 24 + pxOffset, "0/0", 0xffffff)
  34.         storageUnit["percent"] = bridge.addText(0 + bridge.getStringWidth(storageUnit["name"]), 4 + pxOffset, "##%", 0xffffff)
  35.         offset = offset + 2
  36.     end
  37. end
  38.  
  39. while true do
  40.     for i=#storageUnits,1,-1 do
  41.         storageUnit = storageUnits[i]
  42.         if net.isPresentRemote(storageUnit["id"]) then
  43.             if net.getTypeRemote(storageUnit["id"]) == "tile_thermalexpansion_cell_resonant_name" then
  44.                 t = peripheral.wrap(storageUnit["id"])
  45.                 capacity = t.getMaxEnergyStored("")
  46.                 amount = t.getEnergyStored("")
  47.                 storageUnit["bar"].setWidth(width / capacity * amount)
  48.                 perc = math.floor(amount/capacity * 100)
  49.                 tCap = tostring(capacity)
  50.                 tAmt = tostring(amount)
  51.                 tPerc = tostring(perc)
  52.                 storageUnit["num"].setText(tAmt.."/"..tCap)
  53.                 storageUnit["percent"].setText(tPerc.."%")
  54.             end
  55.         else
  56.             if net.getTypeRemote(storageUnit["id"]) == "tile_thermalexpansion_cell_resonant_name" then
  57.                 storageUnit["bar"].delete()
  58.                 storageUnit["bg"].delete()
  59.                 storageUnit["label"].delete()
  60.                 storageUnit["num"].delete()
  61.                 storageUnit["percent"].delte()
  62.                 table.remove(storageUnits, i)
  63.             end
  64.         end
  65.     end
  66.     sleep(0.5)
  67. end
Advertisement
Add Comment
Please, Sign In to add comment