Advertisement
Unh0ly_Tigg

OpenPeripheral MFSU Monitor

Sep 22nd, 2013
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 22.44 KB | None | 0 0
  1. local mfsu = peripheral.wrap("batbox_0")
  2. local bridge = peripheral.wrap("terminal_glasses_bridge_0")
  3.  
  4. -- Face on view of the defualt mfsu output side texture
  5. local img = {{0x7E8489,0x9BA4A8,0x9EA8AB,0x9FA9AC,0x9EA8AB,0x9EA8AB,0x9FA9AC,0x9EA8AB,0x9FA9AC,0x9FAAAD,0x9FAAAD,0xA0ABAE,0xA0ABAE,0xA0ABAE,0xA0ABAE,0xB0BCBF},
  6.              {0x7B8186,0xABB7BA,0x9B0000,0xB0BCBF,0x9E0000,0xB2BEC1,0x9B0000,0xB3BFC2,0x9D0000,0xB1BDC0,0x9F0000,0xB4C1C3,0xA00000,0xB3BFC2,0x9D0000,0xACB8BB},
  7.              {0x80868B,0xABB7BA,0x9B0000,0xB1BDC0,0x9A0000,0xB3BFC2,0xA60000,0xC1CFD1,0xC5D4D6,0xC0CED0,0xA60000,0xB4C1C3,0x9F0000,0xB2BEC1,0x9B0000,0xAAB6B9},
  8.              {0x899195,0xADB9BC,0x9A0000,0xB1BDC0,0xA90000,0xC6D5D7,0xD4E5E6,0xDAECED,0xD9EBEC,0xD7E8E9,0xD8E9EA,0xC8D7D9,0xA60000,0xB1BDC0,0x9A0000,0xA8B3B6},
  9.              {0x929A9E,0xB0BCBF,0xA10000,0xC1CFD1,0xD4E5E6,0xD6E7E8,0xDBEDEE,0xD8E9EA,0xDFF1F2,0xDEF0F1,0xE0F3F3,0xDEF0F1,0xD4E5E6,0xC6D5D7,0xA90000,0xADB9BC},
  10.              {0x9FA9AC,0xC4D3D5,0xD0E1E2,0xD7E8E9,0xDEF0F1,0xDBEDEE,0xD9EAEB,0x4F4F4F,0x4F4F4F,0xDEF0F1,0xDFF1F2,0xDD858A,0xE0F3F3,0xDCEEEF,0xD6E7E8,0xC4D3D5},
  11.              {0xB9C7C9,0xD8E9EA,0xDAECED,0xD9646A,0xDCEEEF,0xDBEDEE,0x4F4F4F,0x87501D,0x87501D,0x393939,0xE0F3F3,0xE1F4F4,0xDC7A7F,0xDFF1F2,0xDAECED,0xC8D7D9},
  12.              {0xC3D2D4,0xDBEDEE,0xD6444A,0xDEF0F1,0xDCEEEF,0x4F4F4F,0x87501D,0x93571D,0x93571D,0x87501D,0x393939,0xE0F3F3,0xDFF1F2,0xDA6F75,0xD9EBEC,0xC3D2D4},
  13.              {0xC2D0D2,0xDAECED,0xD74E55,0xDCEEEF,0xDCEEEF,0x4F4F4F,0x87501D,0x93571D,0x93571D,0x87501D,0x393939,0xE0F3F3,0xDDEFF0,0xD74E55,0xD9EBEC,0xC4D3D5},
  14.              {0xC1CFD1,0xDAECED,0xDCEEEF,0xD6444A,0xDDEFF0,0xDBEDEE,0x393939,0x87501D,0x87501D,0x393939,0xE0F3F3,0xDFF1F2,0xD6444A,0xD9EAEB,0xD6E7E8,0xBECCCE},
  15.              {0xBECCCE,0xD5E6E7,0xD8E9EA,0xDAECED,0xD6444A,0xDBEDEE,0xDAECED,0x393939,0x393939,0xDFF1F2,0xDEF0F1,0xDFF1F2,0xD3E4E5,0xC7D6D8,0xB8C6C8,0xA3AEB1},
  16.              {0xA8B3B6,0xA90000,0xC2D1D3,0xCFE0E1,0xD7E8E9,0xDBEDEE,0xDBEDEE,0xD9EBEC,0xD7E8E9,0xDFF1F2,0xDFF1F2,0xD4E5E6,0xBAC8CA,0x930000,0xA3AEB1,0x9FAAAD},
  17.              {0xA1ACAF,0x9A0000,0xAFBBBE,0xA10000,0xC2D1D3,0xD4E5E6,0xD8E9EA,0xDAECED,0xD7E8E9,0xD7E8E9,0xCCDCDD,0xA00000,0xA4AFB2,0x8B0000,0x9FA9AC,0x9FA9AC},
  18.              {0xA3AEB1,0x980000,0xACB8BB,0x9A0000,0xAEBABD,0x9F0000,0xBBC9CB,0xBFCDCF,0xBAC8CA,0xA50000,0xB2BEC1,0x900000,0xA0ABAE,0x880000,0x9DA7AA,0x9DA7AA},
  19.              {0xA4AFB2,0x970000,0xABB7BA,0x9A0000,0xAEBABD,0x980000,0xACB8BB,0x930000,0xA8B3B6,0x9A0000,0xABB7BA,0x8B0000,0xA0ABAE,0x880000,0x9DA7AA,0x9DA7AA},
  20.              {0xA9B4B7,0x9DA7AA,0x9CA5A9,0x9CA5A9,0x9EA8AB,0x9EA8AB,0x9DA7AA,0x9CA5A9,0x99A2A6,0x9DA7AA,0x98A1A5,0x959EA2,0x959EA2,0x949DA1,0x929A9E,0x99A2A6}}
  21.  
  22. -- in-game block render of default mfsu texture (the 0x8B8B8B's were transparent in my editor, I didn't use transparent requirements in this program)
  23. --drawData(img, 22, 5, 1, 3, 0x000000) -- Draw face-on texture
  24. drawData(img2, 5,5, 1, 3, 0x8B8B8B) -- Draw block render
  25. local baseY = 60
  26. local baseX = 13
  27. local bg_0 = bridge.addBox(baseX - 4,baseY - 4,28,108,0x000000,0.4)
  28. bg_0.setZIndex(0)
  29. local bg_1 = bridge.addBox(baseX - 2,baseY - 2,24,104,0x000000,0.6)
  30. bg_1.setZIndex(1)
  31. local bg_2 = bridge.addBox(baseX,baseY,20,100,0x000000,0.8)
  32. bg_2.setZIndex(2)
  33. local overlay = bridge.addGradientBox(baseX,baseY,20,0,0xDD0000,0.8,0x00FF00,0.8,1)
  34. overlay.setZIndex(3)
  35. local defColor = 0x1111FF
  36. local txt = bridge.addText(baseX + 2,baseY + 110,"",defColor)
  37. local cap = bridge.addText(baseX,baseY + 120,"",defColor)
  38. local sto = bridge.addText(baseX,baseY + 130,"",defColor)
  39. local last = 0
  40. while true do
  41.   local capacity = mfsu.getCapacity()
  42.   local stored = mfsu.getStored()
  43.   local ratio = stored / capacity
  44.   local height = ratio * 100
  45.   txt.setText(tostring(math.floor(100 * ratio)).."%")
  46.   if stored > last then
  47.     cap.setColor(0x00DD00)
  48.     txt.setColor(0x00DD00)
  49.   end
  50.   if stored < last then
  51.     cap.setColor(0xDD0000)
  52.     txt.setColor(0xDD0000)
  53.   end
  54.   if stored == last then
  55.     cap.setColor(defColor)
  56.     txt.setColor(defColor)
  57.   end
  58.   cap.setText("S:"..tostring(stored))
  59.   sto.setText("C:"..tostring(capacity))
  60.   overlay.setY(baseY + 100 - height)
  61.   overlay.setHeight(height)
  62.   last = stored
  63.   sleep(0.01)
  64. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement