Dispelnator

Untitled

Jan 4th, 2017
282
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.82 KB | None | 0 0
  1. os.loadAPI("ocs/apis/sensor")
  2.  
  3. DTData = {}
  4. LowFuelMode = 10
  5. TankLevel = 0
  6.  
  7. function initPeripherals()
  8.     local peripheralList = peripheral.getNames()
  9.     for i=1,#peripheralList do
  10.         -- Sensor Tanks
  11.         if peripheral.getType(peripheralList[i]) == "sensor" then
  12.             sensor = peripheral.wrap(peripheralList[i])
  13.         end
  14.         -- Modem
  15.         if peripheral.getType(peripheralList[i]) == "modem" then
  16.             modem = peripheral.wrap(peripheralList[i])
  17.         end
  18.     end
  19. end
  20.  
  21. function initTanks()
  22.     Data = {}
  23.     Data = sensor.getTargets()
  24.    
  25.     for k,v in pairs(Data) do
  26.         if v.Tanks[1].Name == "tritium" and v.Name == "Dynamic Valve" then
  27.             T = k
  28.         elseif v.Tanks[1].Name == "deuterium" and v.Name == "Dynamic Valve" then
  29.             D = k
  30.         end
  31.     end
  32. end
  33.  
  34. function getData()
  35.  
  36.     local T0 = sensor.getTargetDetails(T)
  37.     DTData["T"] = T0.Tanks[1]
  38.     local D0 = sensor.getTargetDetails(D)
  39.     DTData["D"] = D0.Tanks[1]
  40.  
  41.     for k,v in pairs(DTData) do
  42.         if v["PercentFull"] < LowFuelMode then
  43.             v["TankLevel"] = 1
  44.         elseif v["PercentFull"] >= LowFuelMode and v["PercentFull"] < 25 then
  45.             v["TankLevel"] = 2
  46.         elseif v["PercentFull"] >= 25 and v["PercentFull"] < 50 then
  47.             v["TankLevel"] = 3
  48.         elseif v["PercentFull"] >= 50 and v["PercentFull"] < 75 then
  49.             v["TankLevel"] = 4
  50.         elseif v["PercentFull"] >= 75 then
  51.             v["TankLevel"] = 5
  52.         end
  53.        
  54.         if v["Name"] == nil then
  55.             v["Name"] = "No Fluid"
  56.             v["RawName"] = "No Fluid"
  57.             v["Flow"] = 0
  58.             v["TankLevel"] = 0
  59.         end
  60.     end
  61. end
  62.  
  63. function getFlow()
  64.     for k,v in pairs(DTData) do
  65.         getData()
  66.         local A01 = DTData[k]["Amount"]
  67.         sleep(0.05)
  68.         getData()
  69.         local A02 = DTData[k]["Amount"]
  70.         DTData[k]["Flow"] = A02 -A01
  71.     end
  72. end
  73.  
  74. initPeripherals()
  75. initTanks()
  76. getData()
  77.  
  78. while true do
  79.     getFlow()
  80.     print(textutils.serialise(DTData["D"]))
  81.     print(textutils.serialise(DTData["T"]))
  82.     sleep(0.5)
  83. end
Advertisement
Add Comment
Please, Sign In to add comment