Advertisement
Te-ki

CCDECClient

Mar 8th, 2016
586
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.34 KB | None | 0 0
  1. --ComputerCraft Draconic Energy Core Client by Teki 0.1
  2.  
  3. local monitor = peripheral.wrap("right")
  4.     monitor.setTextScale(1)
  5. local sizeX,sizeY = monitor.getSize()
  6.  
  7. rednet.open("back")
  8.  
  9. local id, msg = nil
  10. local getEnergyStored = 0
  11. local getMaxEnergyStored = 0
  12.  
  13. local lastEnergyStored = 0
  14. local energyFluctuation = 0
  15. local energyRatio = 0
  16. local length = 0
  17.  
  18. local mult = 1
  19. local function roundTo(num, n)
  20.   mult = 10^(n or 0)
  21.   return math.floor(num * mult + 0.5) / mult
  22. end
  23.  
  24. function catchData()
  25.    
  26.     -- Querry All ?
  27.     rednet.broadcast("getAll", "CCDECClient")
  28.     id, msg = rednet.receive("CCDECServeur")
  29.    
  30.     -- Energy Stored ?
  31.     getEnergyStored = msg[1]
  32.     -- Max Energy Stored ?
  33.     getMaxEnergyStored = msg[2]
  34.    
  35.     energyFluctuation = (getEnergyStored - lastEnergyStored)/20
  36.     lastEnergyStored = getEnergyStored
  37.     energyRatio = (getEnergyStored/getMaxEnergyStored)
  38.    
  39.     -- Energy Stored Rounded Milliards
  40.     getEnergyStored = math.floor(getEnergyStored/1000000000)
  41.     -- Max Energy Rounded Milliards
  42.     getMaxEnergyStored = math.floor(getMaxEnergyStored/1000000000)
  43.    
  44. end
  45.  
  46. function drawData()
  47.     -- MONITORING SCREEN
  48.    
  49.     term.redirect(monitor)
  50.     term.clear()
  51.     term.setCursorPos(1,1)
  52.    
  53.     paintutils.drawBox(3, 7, sizeX-2, 10, colors.green)
  54.     length = (sizeX-6)*energyRatio
  55.     paintutils.drawBox(4, 8, 4+length, 9, colors.red)
  56.    
  57.     monitor.setBackgroundColour(colors.black)
  58.     --if getActive == "ACTIVE" then
  59.     --  paintutils.drawBox(1, 1, 39, 19, colors.green)
  60.     --else
  61.     --  paintutils.drawBox(1, 1, 39, 19, colors.orange)
  62.     --end
  63.    
  64.     monitor.setTextColor(colors.white)
  65.     term.setCursorPos(3,3)
  66.     print(getEnergyStored .. "/" .. getMaxEnergyStored .. " MRF (" .. roundTo(energyRatio*100, 3) .. "%)")
  67.     term.setCursorPos(3,5)
  68.     if energyFluctuation > 0 then
  69.         monitor.setTextColor(colors.green)
  70.         print("+" .. energyFluctuation .. " RF/t")
  71.     else
  72.         monitor.setTextColor(colors.red)
  73.         print(energyFluctuation .. " RF/t")
  74.     end
  75.    
  76.     os.queueEvent("monitor_touch", "right", 1, 1)
  77. end
  78.  
  79. function catchEvents()
  80.    
  81.     -- EVENTS
  82.     event, side, xPos, yPos = os.pullEvent("monitor_touch")
  83.    
  84.     if (side == "right") then
  85.         sleep(1)
  86.     end
  87.    
  88. end
  89.  
  90. function drawAll()
  91.  
  92.     while true do
  93.         catchData()
  94.         drawData()
  95.         sleep(1)
  96.     end
  97.    
  98.     os.queueEvent("monitor_touch", "right", 1, 1)
  99. end
  100.  
  101. while true do
  102.        
  103.        
  104.     parallel.waitForAny(drawAll, catchEvents)
  105.     sleep(0)
  106.    
  107. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement