Advertisement
demon012

Minecraft-Computercraft-buildcraftEnergyMonitorReader

Sep 9th, 2013
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.11 KB | None | 0 0
  1. EnergyReader = {
  2.     cell = nil,
  3.     controllerCompID = 89,
  4.     modem = nil,
  5. }
  6. function EnergyReader:findRedstoneCell()
  7.     for _, side in pairs(rs.getSides()) do
  8.         if peripheral.getType(side) == "redstone_energy_cell" then
  9.             self.cell = peripheral.wrap(side)
  10.             return true
  11.         end
  12.     end
  13.  
  14.     return false
  15. end
  16. function EnergyReader:findWirelessModem()
  17.     for _, side in pairs(rs.getSides()) do
  18.         if peripheral.getType(side) == "modem" then
  19.             self.modem = rednet.open(side)
  20.             return true
  21.         end
  22.     end
  23.  
  24.     return false
  25. end
  26. function EnergyReader:readEnergy()
  27.     return self.cell.getEnergyStored()
  28. end
  29. function EnergyReader:updateController(energy)
  30.     local message = "energyStored:" .. tostring(energy)
  31.     rednet.send(self.controllerCompID, message)
  32. end
  33. function EnergyReader:mainLoop()
  34.     os.startTimer(30)
  35.     while true do
  36.         event, param1, param2, param3 = os.pullEvent()
  37.         if event == 'timer' then
  38.             print("Updating controller")
  39.             local stored = self:readEnergy()
  40.             self:updateController(stored)
  41.             os.startTimer(30)
  42.         end
  43.     end
  44. end
  45.  
  46. er = EnergyReader
  47. er:findRedstoneCell()
  48. er:findWirelessModem()
  49. er:mainLoop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement