Guest User

Untitled

a guest
Jan 19th, 2019
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.80 KB | None | 0 0
  1. local sizeX, sizeY = term.getSize()
  2. os.unloadAPI("sensorsUI")
  3. os.loadAPI("/rom/apis/sensorsUI")
  4. os.unloadAPI("sensors")
  5. os.loadAPI("/rom/apis/sensors")
  6. os.unloadAPI("sensorsData")
  7. os.loadAPI("/rom/apis/sensorsData")
  8.  
  9. local arg = {...};
  10.  
  11.  
  12.  
  13. --[[
  14.     Dashboard Parameters
  15. ]]--
  16. -- sensor name
  17. local sensor= arg[1] or "Sensor";
  18. -- dashboard title
  19. local title="Reactor Dashboard";
  20.  
  21. -- refresh timer
  22. local refresh=2
  23. -- probe name
  24. --local probe="Reactor";
  25.  
  26.  
  27. local side = sensors.getController()
  28. local monside="none",mon ; --= sensorsUI.getMonitor();
  29. local targets = sensors.getAvailableTargetsforProbe(side,sensor,"Reactor");
  30. local target = targets[1]
  31. local targets_mfsu = sensors.getAvailableTargetsforProbe(side,sensor,"EUStorage");
  32. --[[
  33. if #targets_mfsu>0 then
  34.     sensorsUI.printPaged ("[Probe:"..p.. "] [Available Targets:"..#targets_mfsu.."]");
  35.     for i,v in ipairs(targets_mfsu) do
  36.         sensorsUI.printPaged ("  "..v)
  37.     end
  38. end
  39. ]]--
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47. -- main program
  48.  
  49. if monside~="none" then
  50.     sensorsUI.writeAt(1,sizeY,"Press Spacebar to exit")
  51.     mon.setTextScale(1);
  52.     term.redirect(mon);
  53. end
  54.  
  55. local done=false;
  56. local e = sensorsData.getProbe("ic2","reactor");
  57. local eus =sensorsData.getProbe("ic2","eustorage");
  58. local reactor = sensors.getSensorReadingAsDict(side,sensor,target,"Reactor")
  59. local content = sensors.getSensorReadingAsDict(side,sensor,target,"ReactorContent")
  60. --for i,v in pairs(content) do
  61. --  print(v)
  62. --end
  63.  
  64.  
  65. local mfsu={};
  66.  
  67. for ind,tg in ipairs(targets_mfsu) do
  68.     mfsu[ind] = sensors.getSensorReadingAsDict(side,sensor,targets_mfsu[ind],"EUStorage")
  69. end
  70. --local mfsu1 = sensors.getSensorReadingAsDict(side,sensor,targets_mfsu[1],"EUStorage")
  71. local itemMap = sensors.getItemsInfo({"Coolant Cell","Uranium Cell","Integrated Heat Disperser","Integrated Reactor Plating","Ice","Water Bucket","Bucket"},content);
  72.  
  73.  
  74.  
  75. local timer1=os.startTimer(refresh)
  76. local count=1;
  77. local  progress={"-","\\","|","/"};
  78. term.clear()
  79. sensorsUI.writeAt(1,1,title)
  80. if monside=="none" then
  81.     sensorsUI.writeAt(1,sizeY,"Press Spacebar to exit")
  82. end
  83. local rate1=0;
  84. local rate2=0;
  85. local water_prev=itemMap["Water Bucket"].qty or 0;
  86. local ice_prev=itemMap["Ice"].qty or 0;
  87.  
  88. while not done do
  89.     sensorsUI.hr(2)
  90.     sensorsUI.hRadio(sizeX-23,1,"Chambers",reactor[e.size.val],{1,2,3,4,5,6});
  91.     sensorsUI.writeAt(1,3,e.energy.label.." : "..reactor[e.energy.val]);
  92.     sensorsUI.hBar(1,4,10,e.heat.label,reactor[e.heat.val],reactor[e.size.val]*1000+10000);
  93.     sensorsUI.vBar(sizeX-8,sizeY-1,12,"Fuel",itemMap["Uranium Cell"].qty*10000-itemMap["Uranium Cell"].dmg,itemMap["Uranium Cell"].qty*10000);
  94.    
  95.     sensorsUI.writeAt(1,6,"Reactor Components")
  96.     sensorsUI.hBar(1,7,10,"Coolant Cells",itemMap["Coolant Cell"].qty*10000-itemMap["Coolant Cell"].dmg,itemMap["Coolant Cell"].qty*10000);
  97.     sensorsUI.hBar(1,8,10,"Heat Dispersers",itemMap["Integrated Heat Disperser"].qty*10000-itemMap["Integrated Heat Disperser"].dmg,itemMap["Integrated Heat Disperser"].qty*10000);
  98.  -- sensorsUI.hBar(1,9,10,"Reactor Plating",itemMap["Integrated Reactor Plating"].qty*10000-itemMap["Integrated Reactor Plating"].dmg,itemMap["Integrated Reactor Plating"].qty*10000);
  99.     -- consumables
  100.     local freeSlots=(reactor[e.size.val] +3 ) *6 - itemMap.total;
  101.     -- totalSlots = itemMap.total
  102.     -- empty buckets:  itemMap["Bucket"].qty
  103.     -- water buckets:  itemMap["Water Bucket"].qty
  104.    
  105.     -- calc rate
  106.     --rate1 = itemMap["Water Bucket"].qty - water_prev ;
  107.     --water_prev = itemMap["Water Bucket"].qty;
  108.     --rate2 = itemMap["Ice"].qty - ice_prev;
  109.     --ice_prev=itemMap["Ice"].qty;
  110.    
  111.     --sensorsUI.writeAt(1,10,"Water       :"..itemMap["Water Bucket"].qty.. "  ["..rate1.."/"..refresh.."sec]");
  112.     --sensorsUI.writeAt(1,11,"Ice         :"..itemMap["Ice"].qty.." ["..rate2.."/"..refresh.."sec]");
  113.  
  114.     --sensorsUI.writeAt(1,12,rate1.."  Empty: [Slots:"..freeSlots.."] [Buckets:"..itemMap["Bucket"].qty.."]")
  115.    
  116.    
  117.     sensorsUI.writeAt(1,10,"EU Storage")
  118.     for ind,tg in ipairs(targets_mfsu) do
  119.         sensorsUI.hBar(1,10+ind,10,"MFSU-"..ind,mfsu[ind][eus.storage.val],mfsu[ind][eus.storage.maxval]);
  120.     end
  121.  
  122.    
  123.     evt,k = os.pullEvent()
  124.     if evt=="timer" and k == timer1 then
  125.         timer1=os.startTimer(refresh)
  126.         -- update readings
  127.         reactor = sensors.getSensorReadingAsDict(side,sensor,target,"Reactor")
  128.         content = sensors.getSensorReadingAsDict(side,sensor,target,"ReactorContent")
  129.         itemMap = sensors.getItemsInfo({"Coolant Cell","Uranium Cell","Integrated Heat Disperser","Integrated Reactor Plating","Ice","Water Bucket","Bucket"},content);
  130.         for ind,tg in ipairs(targets_mfsu) do
  131.             mfsu[ind] = sensors.getSensorReadingAsDict(side,sensor,targets_mfsu[ind],"EUStorage")
  132.         end
  133.        
  134.     elseif evt=="key" and (k == 28 or k ==57) then
  135.         done=true
  136.     end
  137.    
  138.     sensorsUI.writeAt(string.len(title)+2,1,progress[count])
  139.     count = count+1;
  140.     if count>3 then count=1 end
  141.  
  142. end
  143. term.restore();
  144. term.setCursorPos(1,sizeY)
Add Comment
Please, Sign In to add comment