Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local hubVolume = 768000 --volume of all hubs, they're just attached to an xxl
- --T1
- --[[measure 1L mass of each thing by getting another programming board
- link that board to a container, then put this in unit start
- system.print(slot1.getItemsMass())
- put 1L of a given item in the container
- activate the board to get that density value
- fill it in here
- repeat for each one you want to track]]
- local hematiteDensity = 3.78 --mass of 1L of hematite in a placed hub
- local hematiteMax = hematiteDensity * hubVolume -- max mass of hematite in hub
- local hematiteFull = 0 --init'ing the Full % value so we don't get a nil later
- local quartzDensity = 1.9875
- local quartzMax = quartzDensity * hubVolume
- local quartzFull = 0
- local coalDensity = 1.0095
- local coalMax = coalDensity * hubVolume
- local coalFull = 0
- local bauxiteDensity = 0.96075
- local bauxiteMax = bauxiteDensity * hubVolume
- local bauxiteFull = 0
- --T2
- local chromiteDensity = 3.405
- local chromiteMax = chromiteDensity * hubVolume
- local chromiteFull = 0
- local malachiteDensity = 3.0
- local malachiteMax = malachiteDensity * hubVolume
- local malchiteFull =0
- local limestoneDensity = 2.03325
- local limestoneMax = limestoneDensity * hubVolume
- local limestoneFull = 0
- local natronDensity = 1.1625
- local natronMax = natronDensity * hubVolume
- local natronFull = 0
- --T3
- local acanthiteDensity = 5.4
- local acanthiteMax = acanthiteDensity * hubVolume
- local acanthiteFull =0
- local petaliteDensity = 1.809
- local petaliteMax = petaliteDensity * hubVolume
- local petaliteFull = 0
- local pyriteDensity = 3.7575
- local pyriteMax = pyriteDensity * hubVolume
- local pyriteFull = 0
- local garnieriteDensity = 1.95
- local garnieriteMax = garnieriteDensity * hubVolume
- local garnieriteFull =0
- --T4
- local cobaltiteDensity = 4.7475
- local cobaltiteMax = cobaltiteDensity * hubVolume
- local cobaltiteFull = 0
- local goldnuggsDensity = 14.475
- local goldnuggsMax = goldnuggsDensity * hubVolume
- local goldnuggsFull = 0
- local kolbeckiteDensity = 1.7775
- local kolbeckiteMax = kolbeckiteDensity * hubVolume
- local kolbeckiteFull = 0
- local cryoliteDensity = 2.2125
- local cryoliteMax = cryoliteDensity * hubVolume
- local cryoliteFull = 0
- --T5
- local rhodoniteDensity = 1
- local rhodoniteMax = rhodoniteDensity * hubVolume
- local rhodoniteFull = 0
- local columbiteDensity = 1
- local columbiteMax = columbiteDensity * hubVolume
- local columbiteFull = 0
- local ilmeniteDensity = 1
- local ilmeniteMax = ilmeniteDensity * hubVolume
- local ilmeniteFull = 0
- local vanadiniteDensity = 1
- local vanadiniteMax = vanadiniteDensity * hubVolume
- local vanadiniteFull = 0
- --T6
- local thoramineDensity = 1
- local thoramineMax = thoramineDensity * hubVolume
- local thoramineFull = 0
- --[[extra lines for easy copy/paste
- local Density =
- local Max = Density * hubVolume
- local Density =
- local Max = Density * hubVolume
- local Density =
- local Max = Density * hubVolume]]
- --Oxy/Hydrogen
- local oxygenDensity = 0.75
- local oxygenMax = oxygenDensity * hubVolume*2 --this one is two xxl's
- local oxygenFull = 0
- local hydrogenDensity = 0.0525
- local hydrogenMax = hydrogenDensity * hubVolume
- local hydrogenFull = 0
- function tablelength(T)
- local count = 0
- for _ in pairs(T) do count = count + 1 end
- return count
- end
- local machineList = Core.getElementIdList()
- local tLength = tablelength(machineList)
- --co = coroutine.create(function ()
- for i=1, tLength do
- local test = Core.getElementNameById(machineList[i])
- if(test=="Hematite Hub") then
- local hubMass = Core.getElementMassById(machineList[i])
- hematiteFull = hubMass / hematiteMax
- end
- if(test=="Quartz Hub") then
- local hubMass = Core.getElementMassById(machineList[i])
- quartzFull = hubMass / quartzMax
- end
- if(test=="Coal Hub") then
- local hubMass = Core.getElementMassById(machineList[i])
- coalFull = hubMass / coalMax
- end
- if(test=="Bauxite Hub") then
- local hubMass = Core.getElementMassById(machineList[i])
- bauxiteFull = hubMass / bauxiteMax
- end
- if(test=="Chromite Hub") then
- local hubMass = Core.getElementMassById(machineList[i])
- chromiteFull = hubMass / chromiteMax
- end
- if(test=="Malachite Hub") then
- local hubMass = Core.getElementMassById(machineList[i])
- malachiteFull = hubMass / malachiteMax
- end
- if(test=="Limestone Hub") then
- local hubMass = Core.getElementMassById(machineList[i])
- limestoneFull = hubMass / limestoneMax
- end
- if(test=="Natron Hub") then
- local hubMass = Core.getElementMassById(machineList[i])
- natronFull = hubMass / natronMax
- end
- if(test=="Acanthite Hub") then
- local hubMass = Core.getElementMassById(machineList[i])
- acanthiteFull = hubMass / acanthiteMax
- end
- if(test=="Petalite Hub") then
- local hubMass = Core.getElementMassById(machineList[i])
- petaliteFull = hubMass / petaliteMax
- end
- if(test=="Pyrite Hub") then
- local hubMass = Core.getElementMassById(machineList[i])
- pyriteFull = hubMass / pyriteMax
- end
- if(test=="Garnierite Hub") then
- local hubMass = Core.getElementMassById(machineList[i])
- garnieriteFull = hubMass / garnieriteMax
- end
- if(test=="Cobaltite Hub") then
- local hubMass = Core.getElementMassById(machineList[i])
- cobaltiteFull = hubMass / cobaltiteMax
- end
- if(test=="Gold Nuggets Hub") then
- local hubMass = Core.getElementMassById(machineList[i])
- goldnuggsFull = hubMass / goldnuggsMax
- end
- if(test=="Kolbeckite Hub") then
- local hubMass = Core.getElementMassById(machineList[i])
- kolbeckiteFull = hubMass / kolbeckiteMax
- end
- if(test=="Cryolite Hub") then
- local hubMass = Core.getElementMassById(machineList[i])
- cryoliteFull = hubMass / cryoliteMax
- end
- if(test=="Rhodonite Hub") then
- local hubMass = Core.getElementMassById(machineList[i])
- rhodoniteFull = hubMass / rhodoniteMax
- end
- if(test=="Columbite Hub") then
- local hubMass = Core.getElementMassById(machineList[i])
- columbiteFull = hubMass / columbiteMax
- end
- if(test=="Ilmenite Hub") then
- local hubMass = Core.getElementMassById(machineList[i])
- ilmeniteFull = hubMass / ilmeniteMax
- end
- if(test=="Vanadinite Hub") then
- local hubMass = Core.getElementMassById(machineList[i])
- vanadiniteFull = hubMass / vanadiniteMax
- end
- if(test=="Thoramine Hub") then
- local hubMass = Core.getElementMassById(machineList[i])
- thoramineFull = hubMass / thoramineMax
- end
- if(test=="Oxygen Hub") then
- local hubMass = Core.getElementMassById(machineList[i])
- oxygenFull = hubMass / oxygenMax
- end
- if(test=="Hydrogen Hub") then
- local hubMass = Core.getElementMassById(machineList[i])
- hydrogenFull = hubMass / hydrogenMax
- end
- end
- compileScreen1 = [[
- local Text1 = "T1 Hematite"
- local Text2 = "T1 Quartz"
- local Text3 = "T1 Coal"
- local Text4 = "T1 Bauxite"
- local Text5 = "T2 Chromite"
- local Text6 = "T2 Malachite"
- local rx, ry = getResolution()
- local layer1 = createLayer()
- local fontsize = 90
- local font = loadFont("RobotoMono-Bold", fontsize)
- setBackgroundColor(0,0,0)
- setDefaultStrokeColor(layer1, Shape_Box, 0, .5, 0, 1)
- setDefaultStrokeWidth(layer1, Shape_Box, 5)
- setNextFillColor(layer1, 0, 1, 0, 1)
- addBox(layer1, 0, 0, ]].. hematiteFull ..[[*rx, fontsize)
- setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
- addText(layer1, font, Text1, rx/2-fontsize*3, fontsize/2)
- setNextFillColor(layer1, 0, 1, 0, 1)
- addBox(layer1, 0, fontsize, ]].. quartzFull ..[[*rx, fontsize)
- setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
- addText(layer1, font, Text2, rx/2-fontsize*3, fontsize/2+fontsize)
- setNextFillColor(layer1, 0, 1, 0, 1)
- addBox(layer1, 0, fontsize*2, ]]..coalFull..[[*rx, fontsize)
- setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
- addText(layer1, font, Text3, rx/2-fontsize*3, fontsize/2+fontsize*2)
- setNextFillColor(layer1, 0, 1, 0, 1)
- addBox(layer1, 0, fontsize*3, ]]..bauxiteFull..[[*rx, fontsize)
- setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
- addText(layer1, font, Text4, rx/2-fontsize*3, fontsize/2+fontsize*3)
- setNextFillColor(layer1, 0, 1, 0, 1)
- addBox(layer1, 0, fontsize*4, ]]..chromiteFull..[[*rx, fontsize)
- setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
- addText(layer1, font, Text5, rx/2-fontsize*3, fontsize/2+fontsize*4)
- setNextFillColor(layer1, 0, 1, 0, 1)
- addBox(layer1, 0, fontsize*5, ]]..malachiteFull..[[*rx, fontsize)
- setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
- addText(layer1, font, Text6, rx/2-fontsize*3, fontsize/2+fontsize*5)]]
- compileScreen2 = [[
- local Text1 = "T2 Limestone"
- local Text2 = "T2 Natron"
- local Text3 = "T3 Acanthite"
- local Text4 = "T3 Petalite"
- local Text5 = "T3 Pyrite"
- local Text6 = "T3 Garnierite"
- local rx, ry = getResolution()
- local layer1 = createLayer()
- local fontsize = 90
- local font = loadFont("RobotoMono-Bold", fontsize)
- setBackgroundColor(0,0,0)
- setDefaultStrokeColor(layer1, Shape_Box, 0, .5, 0, 1)
- setDefaultStrokeWidth(layer1, Shape_Box, 5)
- setNextFillColor(layer1, 0, 1, 0, 1)
- addBox(layer1, 0, 0, ]]..limestoneFull..[[*rx, fontsize)
- setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
- addText(layer1, font, Text1, rx/2-fontsize*3, fontsize/2)
- setNextFillColor(layer1, 0, 1, 0, 1)
- addBox(layer1, 0, fontsize, ]]..natronFull..[[*rx, fontsize)
- setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
- addText(layer1, font, Text2, rx/2-fontsize*3, fontsize/2+fontsize)
- setNextFillColor(layer1, 0, 1, 0, 1)
- addBox(layer1, 0, fontsize*2, ]]..acanthiteFull..[[*rx, fontsize)
- setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
- addText(layer1, font, Text3, rx/2-fontsize*3, fontsize/2+fontsize*2)
- setNextFillColor(layer1, 0, 1, 0, 1)
- addBox(layer1, 0, fontsize*3, ]]..petaliteFull..[[*rx, fontsize)
- setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
- addText(layer1, font, Text4, rx/2-fontsize*3, fontsize/2+fontsize*3)
- setNextFillColor(layer1, 0, 1, 0, 1)
- addBox(layer1, 0, fontsize*4, ]]..pyriteFull..[[*rx, fontsize)
- setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
- addText(layer1, font, Text5, rx/2-fontsize*3, fontsize/2+fontsize*4)
- setNextFillColor(layer1, 0, 1, 0, 1)
- addBox(layer1, 0, fontsize*5, ]]..garnieriteFull..[[*rx, fontsize)
- setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
- addText(layer1, font, Text6, rx/2-fontsize*3, fontsize/2+fontsize*5)
- ]]
- compileScreen3 = [[
- local Text1 = "T4 Cobaltite"
- local Text2 = "T4 Gold Nuggs"
- local Text3 = "T4 Kolbeckite"
- local Text4 = "T4 Cryolite"
- local Text5 = "T5 Rhodonite"
- local Text6 = "T5 Columbite"
- local rx, ry = getResolution()
- local layer1 = createLayer()
- local fontsize = 90
- local font = loadFont("RobotoMono-Bold", fontsize)
- setBackgroundColor(0,0,0)
- setDefaultStrokeColor(layer1, Shape_Box, 0, .5, 0, 1)
- setDefaultStrokeWidth(layer1, Shape_Box, 5)
- setNextFillColor(layer1, 0, 1, 0, 1)
- addBox(layer1, 0, 0, ]]..cobaltiteFull..[[*rx, fontsize)
- setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
- addText(layer1, font, Text1, rx/2-fontsize*3, fontsize/2)
- setNextFillColor(layer1, 0, 1, 0, 1)
- addBox(layer1, 0, fontsize, ]]..goldnuggsFull..[[*rx, fontsize)
- setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
- addText(layer1, font, Text2, rx/2-fontsize*3, fontsize/2+fontsize)
- setNextFillColor(layer1, 0, 1, 0, 1)
- addBox(layer1, 0, fontsize*2, ]]..kolbeckiteFull..[[*rx, fontsize)
- setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
- addText(layer1, font, Text3, rx/2-fontsize*3, fontsize/2+fontsize*2)
- setNextFillColor(layer1, 0, 1, 0, 1)
- addBox(layer1, 0, fontsize*3, ]]..cryoliteFull..[[*rx, fontsize)
- setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
- addText(layer1, font, Text4, rx/2-fontsize*3, fontsize/2+fontsize*3)
- setNextFillColor(layer1, 0, 1, 0, 1)
- addBox(layer1, 0, fontsize*4, ]]..rhodoniteFull..[[*rx, fontsize)
- setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
- addText(layer1, font, Text5, rx/2-fontsize*3, fontsize/2+fontsize*4)
- setNextFillColor(layer1, 0, 1, 0, 1)
- addBox(layer1, 0, fontsize*5, ]]..columbiteFull..[[*rx, fontsize)
- setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
- addText(layer1, font, Text6, rx/2-fontsize*3, fontsize/2+fontsize*5)
- ]]
- compileScreen4 = [[
- local Text1 = "T5 Ilmenite"
- local Text2 = "T5 Vanadinite"
- local Text3 = "T? Thoramine"
- local Text4 = "Oxygen"
- local Text5 = "Hydrogen"
- local Text6 = " "
- local rx, ry = getResolution()
- local layer1 = createLayer()
- local fontsize = 90
- local font = loadFont("RobotoMono-Bold", fontsize)
- setBackgroundColor(0,0,0) --black background
- setDefaultStrokeColor(layer1, Shape_Box, 0, .5, 0, 1)
- setDefaultStrokeWidth(layer1, Shape_Box, 5)
- setNextFillColor(layer1, 0, 1, 0, 1)
- addBox(layer1, 0, 0, ]]..ilmeniteFull..[[*rx, fontsize)
- setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
- addText(layer1, font, Text1, rx/2-fontsize*3, fontsize/2)
- setNextFillColor(layer1, 0, 1, 0, 1)
- addBox(layer1, 0, fontsize, ]]..vanadiniteFull..[[*rx, fontsize)
- setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
- addText(layer1, font, Text2, rx/2-fontsize*3, fontsize/2+fontsize)
- setNextFillColor(layer1, 0, 1, 0, 1)
- addBox(layer1, 0, fontsize*2, ]]..thoramineFull..[[*rx, fontsize)
- setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
- addText(layer1, font, Text3, rx/2-fontsize*3, fontsize/2+fontsize*2)
- setNextFillColor(layer1, 0, 1, 0, 1)
- addBox(layer1, 0, fontsize*3, ]]..oxygenFull..[[*rx, fontsize)
- setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
- addText(layer1, font, Text4, rx/2-fontsize*3, fontsize/2+fontsize*3)
- setNextFillColor(layer1, 0, 1, 0, 1)
- addBox(layer1, 0, fontsize*4, ]]..hydrogenFull..[[*rx, fontsize)
- setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
- addText(layer1, font, Text5, rx/2-fontsize*3, fontsize/2+fontsize*4)
- setNextFillColor(layer1, 0, 1, 0, 1)
- addBox(layer1, 0, fontsize*5, 0*rx, fontsize)
- setNextTextAlign(layer1, AlignH_Left, AlignV_Middle)
- addText(layer1, font, Text6, rx/2-fontsize*3, fontsize/2+fontsize*5)
- ]]
- Screen1.setRenderScript(compileScreen1)
- Screen2.setRenderScript(compileScreen2)
- Screen3.setRenderScript(compileScreen3)
- Screen4.setRenderScript(compileScreen4)
- --[[Feel free to go fancy with this
- This is pretty basic but does the job and isn't too complicated
- This project happened because I didn't feel like linking up 3 boards]]
Advertisement
Add Comment
Please, Sign In to add comment