FailedFace

MCTerminalGlassesv5

Mar 29th, 2014
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 6.01 KB | None | 0 0
  1. --Variables
  2. -- peripherals
  3. local bridge = peripheral.wrap("left")
  4. -- modem names
  5. local mfe = "mfe_0"
  6. local meSys = "appeng_me_tilecontroller_0"
  7. local honeyTank = "rcirontankvalvetile_1"
  8. local essenceTank = "rcirontankvalvetile_2"
  9. local creosoteTank = "rcirontankvalvetile_3"
  10. local seedOilTank = "rcirontankvalvetile_4"
  11. -- AE
  12. local itemID = 3 -- initialize to dirt
  13. local itemName = "Dirt"
  14. -- colors
  15. local red = 0xFF0000
  16. local yellow = 0xFFFF00
  17. local black = 0x000000
  18. -- update delay(lower the more updates)
  19. local delay = 1 --1 second
  20.  
  21. -- Functions
  22. function IC2Box()
  23.   ic2Box = bridge.addBox(5, 25, 100, 30, black, 0.5)
  24.   ic2TextHeader = bridge.addText(48, 25, "IC2", red)
  25.   ic2Text1 = bridge.addText(5, 35, "", yellow)
  26.   ic2Text2 = bridge.addText(5, 45, "", yellow)
  27. end
  28.  
  29. function IC2Clear()
  30.   ic2Text1.setText("")
  31.   ic2Text2.setText("")
  32.   ic2TextHeader.setText("")
  33.   ic2Box.setOpacity(0)
  34. end
  35.  
  36. function AEBox()
  37.   aeBox = bridge.addBox(5, 65, 100, 40, black, 0.5)
  38.   aeTextHeader = bridge.addText(49, 65, "AE", red)
  39.   aeText1 = bridge.addText(5, 75, "", yellow)
  40.   aeText2 = bridge.addText(5, 85, "", yellow)
  41.   aeText3 = bridge.addText(5, 95, "", yellow)
  42. end
  43.  
  44. function AEClear()
  45.   aeText1.setText("")
  46.   aeText2.setText("")
  47.   aeText3.setText("")
  48.   aeTextHeader.setText("")
  49.   aeBox.setOpacity(0)
  50. end
  51.  
  52. function calcIC2()
  53.   local currentEU = peripheral.call(mfe, "getEUStored")
  54.   local maxEU = peripheral.call(mfe, "getEUCapacity")
  55.   ic2Box.setOpacity(0.5)
  56.   ic2TextHeader.setText("IC2")
  57.   ic2Text1.setText(currentEU.." EU")
  58.   ic2Text2.setText(maxEU.." EU Max")
  59. end
  60.  
  61. function calcAE()
  62.   local storedItemCount = peripheral.call(meSys, "getStoredItemCount")
  63.   local itemCount = peripheral.call(meSys, "countOfItemType",itemID,"0")
  64.   local bytesFree = peripheral.call(meSys, "getFreeBytes")
  65.   aeBox.setOpacity(0.5)
  66.   aeTextHeader.setText("AE")
  67.   aeText1.setText(storedItemCount.." Items")
  68.   aeText2.setText(itemCount.." "..itemName)
  69.   aeText3.setText(bytesFree.." bytes free")
  70. end
  71.  
  72. function helpBox()
  73.   helpBox = bridge.addBox(5, 185, 220, 90, black, 0.5)
  74.   helpTextHeader = bridge.addText(95, 185, "HELP", red)
  75.   helpText1 = bridge.addText(5, 195, "", yellow)
  76.   helpText2 = bridge.addText(5, 205, "", yellow)
  77.   helpText3 = bridge.addText(5, 215, "", yellow)
  78.   helpText4 = bridge.addText(5, 225, "", yellow)
  79.   helpText5 = bridge.addText(5, 235, "", yellow)
  80.   helpText6 = bridge.addText(5, 245, "", yellow)
  81.   helpText7 = bridge.addText(5, 255, "", yellow)
  82.   helpText8 = bridge.addText(5, 265, "", yellow)
  83. end
  84.  
  85. function displayHelp()
  86.   helpBox.setOpacity(0.5)
  87.   helpTextHeader.setText("HELP")
  88.   helpText1.setText("help      - List This Help")
  89.   helpText2.setText("helpoff  - Remove This Help")
  90.   helpText3.setText("aeon     - Show AE Status Window")
  91.   helpText4.setText("aeoff    - Remove AE Status Window")
  92.   helpText5.setText("ic2on    - Show IC2 Status Window")
  93.   helpText6.setText("ic2off   - Remove IC2 Status Window")
  94.   helpText7.setText("tankson  - Show RC Tanks Status Window")
  95.   helpText8.setText("tanksoff - Remove RC Tanks Status Window")
  96. end
  97.  
  98. function removeHelp()
  99.   helpBox.setOpacity(0)
  100.   helpTextHeader.setText("")
  101.   helpText1.setText("")
  102.   helpText2.setText("")
  103.   helpText3.setText("")
  104.   helpText4.setText("")
  105.   helpText5.setText("")
  106.   helpText6.setText("")
  107.   helpText7.setText("")
  108.   helpText8.setText("")
  109. end
  110.  
  111. function tanksBox()
  112.   tanksBox = bridge.addBox(5, 125, 125, 50, black, 0.5)
  113.   tanksTextHeader = bridge.addText(45, 125, "RC Tanks", red)
  114.   tanksText1 = bridge.addText(5, 135, "", yellow)
  115.   tanksText2 = bridge.addText(5, 145, "", yellow)
  116.   tanksText3 = bridge.addText(5, 155, "", yellow)
  117.   tanksText4 = bridge.addText(5, 165, "", yellow)
  118. end
  119.  
  120. function displayTanks()
  121.   local honeyLevel = peripheral.call(honeyTank,"getTankInfo", "unknown")
  122.   local seedOilLevel = peripheral.call(seedOilTank,"getTankInfo", "unknown")
  123.   local essenceLevel = peripheral.call(essenceTank,"getTankInfo", "unknown")
  124.   local creosoteLevel = peripheral.call(creosoteTank,"getTankInfo", "unknown")
  125.   tanksBox.setOpacity(0.5)
  126.   tanksTextHeader.setText("RC Tanks")
  127.   tanksText1.setText(tostring(honeyLevel[1].amount).." mB Honey")
  128.   tanksText2.setText(tostring(seedOilLevel[1].amount).." mB Seed Oil")
  129.   tanksText3.setText(tostring(essenceLevel[1].amount).." mB Experience")
  130.   tanksText4.setText(tostring(creosoteLevel[1].amount).." mB Creosote Oil")
  131. end
  132.  
  133. function removeTanks()
  134.   tanksBox.setOpacity(0)
  135.   tanksTextHeader.setText("")
  136.   tanksText1.setText("")
  137.   tanksText2.setText("")
  138.   tanksText3.setText("")
  139.   tanksText4.setText("")
  140. end
  141.  
  142. -- initialize
  143. local ic2HUD = true
  144. local aeHUD = true
  145. local helpHUD = true
  146. local tanksHUD = true
  147. bridge.clear()
  148. AEBox()
  149. IC2Box()
  150. helpBox()
  151. tanksBox()
  152.  
  153. -- loop
  154. while true do
  155.   local myTimer = os.startTimer(delay)
  156.   local event, message = os.pullEvent()
  157.   local firstParam = string.match(message, '[a-z]+')
  158.   local secondParam = string.match(message, '%d+')
  159.   local thirdParam = string.match(message, '[a-zA-Z]-$')
  160.  
  161.   if ic2HUD == true then calcIC2() end
  162.   if aeHUD == true then calcAE() end
  163.   if helpHUD == true then displayHelp() end
  164.   if tanksHUD == true then displayTanks() end
  165.  
  166.   if event == "chat_command" then
  167.     if message == "ic2off" then
  168.       IC2Clear()
  169.       ic2HUD = false
  170.     -- Help
  171.     elseif message == "help" then
  172.       displayHelp()
  173.     elseif message == "helpoff" then
  174.       removeHelp()
  175.       helpHUD = false
  176.      
  177.     -- HUD ON / OFF
  178.     elseif message == "aeoff" then
  179.       AEClear()
  180.       aeHUD = false
  181.  
  182.     elseif message == "ic2on" then
  183.       calcIC2()
  184.       ic2HUD = true
  185.  
  186.     elseif message == "aeon" then
  187.       calcAE()
  188.       aeHUD = true
  189.    
  190.     -- AE Commands      
  191.     elseif firstParam == "aeitemcount" then
  192.       itemID = secondParam
  193.       itemName = thirdParam
  194.       calcAE()
  195.      
  196.     --RC Commands
  197.     elseif message == "tankson" then
  198.       displayTanks()
  199.     elseif message == "tanksoff" then
  200.       removeTanks()
  201.       tanksHUD = false
  202.     else
  203.       -- Do Nothing
  204.     end
  205.   end
  206. end
Advertisement
Add Comment
Please, Sign In to add comment