sironin

orebars

Feb 19th, 2022
1,475
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 14.38 KB | None | 0 0
  1. local hubVolume = 768000 --volume of all hubs, they're just attached to an xxl
  2. --T1
  3. --[[measure 1L mass of each thing by getting another programming board
  4. link that board to a container, then put this in unit start
  5. system.print(slot1.getItemsMass())
  6. put 1L of a given item in the container
  7. activate the board to get that density value
  8. fill it in here
  9. repeat for each one you want to track]]
  10. local hematiteDensity = 3.78 --mass of 1L of hematite in a placed hub
  11. local hematiteMax = hematiteDensity * hubVolume -- max mass of hematite in hub
  12. local hematiteFull = 0 --init'ing the Full % value so we don't get a nil later
  13. local quartzDensity = 1.9875
  14. local quartzMax = quartzDensity * hubVolume
  15. local quartzFull = 0
  16. local coalDensity = 1.0095
  17. local coalMax = coalDensity * hubVolume
  18. local coalFull = 0
  19. local bauxiteDensity = 0.96075
  20. local bauxiteMax = bauxiteDensity * hubVolume
  21. local bauxiteFull = 0
  22. --T2
  23. local chromiteDensity = 3.405
  24. local chromiteMax = chromiteDensity * hubVolume
  25. local chromiteFull = 0
  26. local malachiteDensity = 3.0
  27. local malachiteMax = malachiteDensity * hubVolume
  28. local malchiteFull =0
  29. local limestoneDensity = 2.03325
  30. local limestoneMax = limestoneDensity * hubVolume
  31. local limestoneFull = 0
  32. local natronDensity = 1.1625
  33. local natronMax = natronDensity * hubVolume
  34. local natronFull = 0
  35. --T3
  36. local acanthiteDensity = 5.4
  37. local acanthiteMax = acanthiteDensity * hubVolume
  38. local acanthiteFull =0
  39. local petaliteDensity = 1.809
  40. local petaliteMax = petaliteDensity * hubVolume
  41. local petaliteFull = 0
  42. local pyriteDensity = 3.7575
  43. local pyriteMax = pyriteDensity * hubVolume
  44. local pyriteFull = 0
  45. local garnieriteDensity = 1.95
  46. local garnieriteMax = garnieriteDensity * hubVolume
  47. local garnieriteFull =0
  48. --T4
  49. local cobaltiteDensity = 4.7475
  50. local cobaltiteMax = cobaltiteDensity * hubVolume
  51. local cobaltiteFull = 0
  52. local goldnuggsDensity = 14.475
  53. local goldnuggsMax = goldnuggsDensity * hubVolume
  54. local goldnuggsFull = 0
  55. local kolbeckiteDensity = 1.7775
  56. local kolbeckiteMax = kolbeckiteDensity * hubVolume
  57. local kolbeckiteFull = 0
  58. local cryoliteDensity = 2.2125
  59. local cryoliteMax = cryoliteDensity * hubVolume
  60. local cryoliteFull = 0
  61. --T5
  62. local rhodoniteDensity = 1
  63. local rhodoniteMax = rhodoniteDensity * hubVolume
  64. local rhodoniteFull = 0
  65. local columbiteDensity = 1
  66. local columbiteMax = columbiteDensity * hubVolume
  67. local columbiteFull = 0
  68. local ilmeniteDensity = 1
  69. local ilmeniteMax = ilmeniteDensity * hubVolume
  70. local ilmeniteFull = 0
  71. local vanadiniteDensity = 1
  72. local vanadiniteMax = vanadiniteDensity * hubVolume
  73. local vanadiniteFull = 0
  74. --T6
  75. local thoramineDensity = 1
  76. local thoramineMax = thoramineDensity * hubVolume
  77. local thoramineFull = 0
  78. --[[extra lines for easy copy/paste
  79. local Density =
  80. local Max = Density * hubVolume
  81. local Density =
  82. local Max = Density * hubVolume
  83. local Density =
  84. local Max = Density * hubVolume]]
  85. --Oxy/Hydrogen
  86. local oxygenDensity = 0.75
  87. local oxygenMax = oxygenDensity * hubVolume*2 --this one is two xxl's
  88. local oxygenFull = 0
  89. local hydrogenDensity = 0.0525
  90. local hydrogenMax = hydrogenDensity * hubVolume
  91. local hydrogenFull = 0
  92.  
  93. function tablelength(T)
  94.   local count = 0
  95.   for _ in pairs(T) do count = count + 1 end
  96.   return count
  97. end
  98. local machineList = Core.getElementIdList()
  99. local tLength = tablelength(machineList)
  100. --co = coroutine.create(function ()
  101. for i=1, tLength do
  102.     local test = Core.getElementNameById(machineList[i])
  103.     if(test=="Hematite Hub") then
  104.         local hubMass = Core.getElementMassById(machineList[i])
  105.         hematiteFull = hubMass / hematiteMax
  106.     end
  107.     if(test=="Quartz Hub") then
  108.         local hubMass = Core.getElementMassById(machineList[i])
  109.         quartzFull = hubMass / quartzMax
  110.     end
  111.     if(test=="Coal Hub") then
  112.         local hubMass = Core.getElementMassById(machineList[i])
  113.         coalFull = hubMass / coalMax
  114.     end        
  115.     if(test=="Bauxite Hub") then
  116.         local hubMass = Core.getElementMassById(machineList[i])
  117.         bauxiteFull = hubMass / bauxiteMax
  118.     end
  119.     if(test=="Chromite Hub") then
  120.         local hubMass = Core.getElementMassById(machineList[i])
  121.         chromiteFull = hubMass / chromiteMax
  122.     end
  123.     if(test=="Malachite Hub") then
  124.         local hubMass = Core.getElementMassById(machineList[i])
  125.         malachiteFull = hubMass / malachiteMax
  126.     end
  127.     if(test=="Limestone Hub") then
  128.         local hubMass = Core.getElementMassById(machineList[i])
  129.         limestoneFull = hubMass / limestoneMax
  130.     end
  131.     if(test=="Natron Hub") then
  132.         local hubMass = Core.getElementMassById(machineList[i])
  133.         natronFull = hubMass / natronMax
  134.     end
  135.     if(test=="Acanthite Hub") then
  136.         local hubMass = Core.getElementMassById(machineList[i])
  137.         acanthiteFull = hubMass / acanthiteMax
  138.     end
  139.     if(test=="Petalite Hub") then
  140.         local hubMass = Core.getElementMassById(machineList[i])
  141.         petaliteFull = hubMass / petaliteMax
  142.     end
  143.     if(test=="Pyrite Hub") then
  144.         local hubMass = Core.getElementMassById(machineList[i])
  145.         pyriteFull = hubMass / pyriteMax
  146.     end
  147.     if(test=="Garnierite Hub") then
  148.         local hubMass = Core.getElementMassById(machineList[i])
  149.         garnieriteFull = hubMass / garnieriteMax
  150.     end
  151.     if(test=="Cobaltite Hub") then
  152.         local hubMass = Core.getElementMassById(machineList[i])
  153.         cobaltiteFull = hubMass / cobaltiteMax
  154.     end
  155.     if(test=="Gold Nuggets Hub") then
  156.         local hubMass = Core.getElementMassById(machineList[i])
  157.         goldnuggsFull = hubMass / goldnuggsMax
  158.     end
  159.     if(test=="Kolbeckite Hub") then
  160.         local hubMass = Core.getElementMassById(machineList[i])
  161.         kolbeckiteFull = hubMass / kolbeckiteMax
  162.     end
  163.     if(test=="Cryolite Hub") then
  164.         local hubMass = Core.getElementMassById(machineList[i])
  165.         cryoliteFull = hubMass / cryoliteMax
  166.     end
  167.     if(test=="Rhodonite Hub") then
  168.         local hubMass = Core.getElementMassById(machineList[i])
  169.         rhodoniteFull = hubMass / rhodoniteMax
  170.     end
  171.     if(test=="Columbite Hub") then
  172.         local hubMass = Core.getElementMassById(machineList[i])
  173.         columbiteFull = hubMass / columbiteMax
  174.     end
  175.     if(test=="Ilmenite Hub") then
  176.         local hubMass = Core.getElementMassById(machineList[i])
  177.         ilmeniteFull = hubMass / ilmeniteMax
  178.     end
  179.     if(test=="Vanadinite Hub") then
  180.         local hubMass = Core.getElementMassById(machineList[i])
  181.         vanadiniteFull = hubMass / vanadiniteMax
  182.     end
  183.     if(test=="Thoramine Hub") then
  184.         local hubMass = Core.getElementMassById(machineList[i])
  185.         thoramineFull = hubMass / thoramineMax
  186.     end
  187.     if(test=="Oxygen Hub") then
  188.         local hubMass = Core.getElementMassById(machineList[i])
  189.         oxygenFull = hubMass / oxygenMax
  190.     end
  191.     if(test=="Hydrogen Hub") then
  192.         local hubMass = Core.getElementMassById(machineList[i])
  193.         hydrogenFull = hubMass / hydrogenMax
  194.     end
  195. end
  196. compileScreen1 = [[
  197. local Text1 = "T1 Hematite"
  198. local Text2 = "T1 Quartz"
  199. local Text3 = "T1 Coal"
  200. local Text4 = "T1 Bauxite"
  201. local Text5 = "T2 Chromite"
  202. local Text6 = "T2 Malachite"
  203. local rx, ry = getResolution()
  204. local layer1 = createLayer()
  205. local fontsize = 90
  206. local font = loadFont("RobotoMono-Bold", fontsize)
  207. setBackgroundColor(0,0,0)
  208. setDefaultStrokeColor(layer1, Shape_Box, 0, .5, 0, 1)
  209. setDefaultStrokeWidth(layer1, Shape_Box, 5)
  210. setNextFillColor(layer1, 0, 1, 0, 1)
  211. addBox(layer1, 0, 0, ]].. hematiteFull ..[[*rx, fontsize)
  212. setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
  213. addText(layer1, font, Text1, rx/2-fontsize*3, fontsize/2)
  214. setNextFillColor(layer1, 0, 1, 0, 1)
  215. addBox(layer1, 0, fontsize, ]].. quartzFull ..[[*rx, fontsize)
  216. setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
  217. addText(layer1, font, Text2, rx/2-fontsize*3, fontsize/2+fontsize)
  218. setNextFillColor(layer1, 0, 1, 0, 1)
  219. addBox(layer1, 0, fontsize*2, ]]..coalFull..[[*rx, fontsize)
  220. setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
  221. addText(layer1, font, Text3, rx/2-fontsize*3, fontsize/2+fontsize*2)
  222. setNextFillColor(layer1, 0, 1, 0, 1)
  223. addBox(layer1, 0, fontsize*3, ]]..bauxiteFull..[[*rx, fontsize)
  224. setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
  225. addText(layer1, font, Text4, rx/2-fontsize*3, fontsize/2+fontsize*3)
  226. setNextFillColor(layer1, 0, 1, 0, 1)
  227. addBox(layer1, 0, fontsize*4, ]]..chromiteFull..[[*rx, fontsize)
  228. setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
  229. addText(layer1, font, Text5, rx/2-fontsize*3, fontsize/2+fontsize*4)
  230. setNextFillColor(layer1, 0, 1, 0, 1)
  231. addBox(layer1, 0, fontsize*5, ]]..malachiteFull..[[*rx, fontsize)
  232. setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
  233. addText(layer1, font, Text6, rx/2-fontsize*3, fontsize/2+fontsize*5)]]
  234. compileScreen2 = [[
  235. local Text1 = "T2 Limestone"
  236. local Text2 = "T2 Natron"
  237. local Text3 = "T3 Acanthite"
  238. local Text4 = "T3 Petalite"
  239. local Text5 = "T3 Pyrite"
  240. local Text6 = "T3 Garnierite"
  241. local rx, ry = getResolution()
  242. local layer1 = createLayer()
  243. local fontsize = 90
  244. local font = loadFont("RobotoMono-Bold", fontsize)
  245. setBackgroundColor(0,0,0)
  246. setDefaultStrokeColor(layer1, Shape_Box, 0, .5, 0, 1)
  247. setDefaultStrokeWidth(layer1, Shape_Box, 5)
  248. setNextFillColor(layer1, 0, 1, 0, 1)
  249. addBox(layer1, 0, 0, ]]..limestoneFull..[[*rx, fontsize)
  250. setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
  251. addText(layer1, font, Text1, rx/2-fontsize*3, fontsize/2)
  252. setNextFillColor(layer1, 0, 1, 0, 1)
  253. addBox(layer1, 0, fontsize, ]]..natronFull..[[*rx, fontsize)
  254. setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
  255. addText(layer1, font, Text2, rx/2-fontsize*3, fontsize/2+fontsize)
  256. setNextFillColor(layer1, 0, 1, 0, 1)
  257. addBox(layer1, 0, fontsize*2, ]]..acanthiteFull..[[*rx, fontsize)
  258. setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
  259. addText(layer1, font, Text3, rx/2-fontsize*3, fontsize/2+fontsize*2)
  260. setNextFillColor(layer1, 0, 1, 0, 1)
  261. addBox(layer1, 0, fontsize*3, ]]..petaliteFull..[[*rx, fontsize)
  262. setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
  263. addText(layer1, font, Text4, rx/2-fontsize*3, fontsize/2+fontsize*3)
  264. setNextFillColor(layer1, 0, 1, 0, 1)
  265. addBox(layer1, 0, fontsize*4, ]]..pyriteFull..[[*rx, fontsize)
  266. setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
  267. addText(layer1, font, Text5, rx/2-fontsize*3, fontsize/2+fontsize*4)
  268. setNextFillColor(layer1, 0, 1, 0, 1)
  269. addBox(layer1, 0, fontsize*5, ]]..garnieriteFull..[[*rx, fontsize)
  270. setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
  271. addText(layer1, font, Text6, rx/2-fontsize*3, fontsize/2+fontsize*5)        
  272.         ]]
  273. compileScreen3 = [[
  274. local Text1 = "T4 Cobaltite"
  275. local Text2 = "T4 Gold Nuggs"
  276. local Text3 = "T4 Kolbeckite"
  277. local Text4 = "T4 Cryolite"
  278. local Text5 = "T5 Rhodonite"
  279. local Text6 = "T5 Columbite"
  280. local rx, ry = getResolution()
  281. local layer1 = createLayer()
  282. local fontsize = 90
  283. local font = loadFont("RobotoMono-Bold", fontsize)
  284. setBackgroundColor(0,0,0)
  285. setDefaultStrokeColor(layer1, Shape_Box, 0, .5, 0, 1)
  286. setDefaultStrokeWidth(layer1, Shape_Box, 5)
  287. setNextFillColor(layer1, 0, 1, 0, 1)
  288. addBox(layer1, 0, 0, ]]..cobaltiteFull..[[*rx, fontsize)
  289. setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
  290. addText(layer1, font, Text1, rx/2-fontsize*3, fontsize/2)
  291. setNextFillColor(layer1, 0, 1, 0, 1)
  292. addBox(layer1, 0, fontsize, ]]..goldnuggsFull..[[*rx, fontsize)
  293. setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
  294. addText(layer1, font, Text2, rx/2-fontsize*3, fontsize/2+fontsize)
  295. setNextFillColor(layer1, 0, 1, 0, 1)
  296. addBox(layer1, 0, fontsize*2, ]]..kolbeckiteFull..[[*rx, fontsize)
  297. setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
  298. addText(layer1, font, Text3, rx/2-fontsize*3, fontsize/2+fontsize*2)
  299. setNextFillColor(layer1, 0, 1, 0, 1)
  300. addBox(layer1, 0, fontsize*3, ]]..cryoliteFull..[[*rx, fontsize)
  301. setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
  302. addText(layer1, font, Text4, rx/2-fontsize*3, fontsize/2+fontsize*3)
  303. setNextFillColor(layer1, 0, 1, 0, 1)
  304. addBox(layer1, 0, fontsize*4, ]]..rhodoniteFull..[[*rx, fontsize)
  305. setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
  306. addText(layer1, font, Text5, rx/2-fontsize*3, fontsize/2+fontsize*4)
  307. setNextFillColor(layer1, 0, 1, 0, 1)
  308. addBox(layer1, 0, fontsize*5, ]]..columbiteFull..[[*rx, fontsize)
  309. setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
  310. addText(layer1, font, Text6, rx/2-fontsize*3, fontsize/2+fontsize*5)
  311.         ]]
  312. compileScreen4 = [[
  313. local Text1 = "T5 Ilmenite"
  314. local Text2 = "T5 Vanadinite"
  315. local Text3 = "T? Thoramine"
  316. local Text4 = "Oxygen"
  317. local Text5 = "Hydrogen"
  318. local Text6 = " "
  319. local rx, ry = getResolution()
  320. local layer1 = createLayer()
  321. local fontsize = 90
  322. local font = loadFont("RobotoMono-Bold", fontsize)
  323. setBackgroundColor(0,0,0) --black background
  324. setDefaultStrokeColor(layer1, Shape_Box, 0, .5, 0, 1)
  325. setDefaultStrokeWidth(layer1, Shape_Box, 5)
  326. setNextFillColor(layer1, 0, 1, 0, 1)
  327. addBox(layer1, 0, 0, ]]..ilmeniteFull..[[*rx, fontsize)
  328. setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
  329. addText(layer1, font, Text1, rx/2-fontsize*3, fontsize/2)
  330. setNextFillColor(layer1, 0, 1, 0, 1)
  331. addBox(layer1, 0, fontsize, ]]..vanadiniteFull..[[*rx, fontsize)
  332. setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
  333. addText(layer1, font, Text2, rx/2-fontsize*3, fontsize/2+fontsize)
  334. setNextFillColor(layer1, 0, 1, 0, 1)
  335. addBox(layer1, 0, fontsize*2, ]]..thoramineFull..[[*rx, fontsize)
  336. setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
  337. addText(layer1, font, Text3, rx/2-fontsize*3, fontsize/2+fontsize*2)
  338. setNextFillColor(layer1, 0, 1, 0, 1)
  339. addBox(layer1, 0, fontsize*3, ]]..oxygenFull..[[*rx, fontsize)
  340. setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
  341. addText(layer1, font, Text4, rx/2-fontsize*3, fontsize/2+fontsize*3)
  342. setNextFillColor(layer1, 0, 1, 0, 1)
  343. addBox(layer1, 0, fontsize*4, ]]..hydrogenFull..[[*rx, fontsize)
  344. setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
  345. addText(layer1, font, Text5, rx/2-fontsize*3, fontsize/2+fontsize*4)
  346. setNextFillColor(layer1, 0, 1, 0, 1)
  347. addBox(layer1, 0, fontsize*5, 0*rx, fontsize)
  348. setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
  349. addText(layer1, font, Text6, rx/2-fontsize*3, fontsize/2+fontsize*5)
  350.         ]]
  351. Screen1.setRenderScript(compileScreen1)
  352. Screen2.setRenderScript(compileScreen2)
  353. Screen3.setRenderScript(compileScreen3)
  354. Screen4.setRenderScript(compileScreen4)
  355. --[[Feel free to go fancy with this
  356. This is pretty basic but does the job and isn't too complicated
  357. This project happened because I didn't feel like linking up 3 boards]]
Advertisement
Add Comment
Please, Sign In to add comment