Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local statsDisp = require("statisticDisplayAPI")
- local buttonAPI = require("buttonAPI")
- local component = require("component")
- local event = require("event")
- local thread = require("thread")
- local gpuAPI = require("gpuAPI")
- local gpu = component.gpu
- local reac = component.reactor_logic_adapter
- local barDisplays = statsDisp()
- local buttons = buttonAPI()
- function energyOut()
- return (reac.getProducing()*0.4/1000000)
- end
- function injectRate()
- return reac.getInjectionRate()
- end
- function internalBuffer()
- return (reac.getEnergy()*0.4)/1000000
- end
- function minusInjRate()
- local currentRate = reac.getInjectionRate()
- if currentRate > 0 then
- reac.setInjectionRate(currentRate -1)
- end
- return true
- end
- function addInjRate()
- local currentRate = reac.getInjectionRate()
- if currentRate < 150 then
- reac.setInjectionRate(reac.getInjectionRate() + 1)
- end
- return true
- end
- function deutAmount()
- return reac.getDeuterium()
- end
- function tritAmount()
- return reac.getTritium()
- end
- function plasmaHeat()
- return reac.getPlasmaHeat()/1000000000
- end
- function caseHeat()
- return reac.getCaseHeat()/1000000000
- end
- function injectRateStr()
- return tostring(reac.getInjectionRate())
- end
- function energyOutStr()
- return tostring((reac.getProducing()*0.4)/1000000)
- end
- function waterAmount()
- return reac.getWater()
- end
- function steamAmount()
- return reac.getSteam()
- end
- function status()
- if reac.isIgnited() then
- return "Running"
- else
- return "Halted "
- end
- end
- function ignitionStatus()
- if reac.canIgnite() then
- return "Reached ignition temperature"
- else
- return "Below ignition temperature"
- end
- end
- function maxPlasmaHeat()
- return tostring(reac.getMaxPlasmaHeat())
- end
- function maxCaseHeat()
- return tostring(reac.getMaxCaseHeat())
- end
- function energyOutStr()
- return tostring(reac.getProducing()*0.4/1000000)
- end
- gpuAPI.clear(0x1E1E1E)
- --ENERGY BOX--
- gpuAPI.fill(36, 2, 49, 2, 0x878787) -- Energy Box outside
- gpuAPI.fill(34, 4, 48, 3, 0x2D2D2D) -- Energy box inside
- gpuAPI.write(6, 2, 0x009900, 0x2D2D2D, " ENERGY ") -- Energy box label
- gpuAPI.write(10, 45, 0x009900, 0x2D2D2D, "Buffer")
- gpuAPI.write(19, 45, 0x009900, 0x2D2D2D, "Energy Output")
- gpuAPI.write(10, 5, 0x009900, 0x2D2D2D, "400MRF")
- barDisplays:addGraph(1, 15, 10, 45, 6, 0x000000, 0x009900, internalBuffer, 0, 400)
- barDisplays:addGraph(1, 28, 23, 45, 6, 0x000000, 0x009900, energyOut, 0, 18)
- --ENERGY BOX--
- --FUEL BOX--
- gpuAPI.fill(159, 39, 22, 2, 0x878787)
- gpuAPI.fill(157, 41, 21, 3, 0x2D2D2D)
- gpuAPI.write(43, 2, 0x990080, 0x2D2D2D, " FUEL ")
- gpuAPI.write(49, 6, 0x990080, 0x2D2D2D, "Injection Rate:")
- gpuAPI.write(47, 12, 0xFF2480, 0x2D2D2D, "Deuterium")
- gpuAPI.write(47, 15, 0x00FF00, 0x2D2D2D, "Tritium")
- barDisplays:addGraph(0, 149, 49, 10, 7, 0x000000 , 0x990080, injectRate, 0, 150)
- barDisplays:addGraph(0, 151, 47, 14, 13, 0x000000, 0xFF2480, deutAmount, 0, 1000)
- barDisplays:addGraph(0, 151, 47, 17, 16, 0x000000, 0x00FF00, tritAmount, 0, 1000)
- barDisplays:addText(65, 6, 0x990080, 0x2D2D2D, injectRateStr)
- buttons:add("-", 0, 48, 43, 10, 7, 0x696969, 0xB4B4B4, 0.1, minusInjRate)
- buttons:add("+", 0, 155, 150, 10, 7, 0x696969, 0xB4B4B4, 0.1, addInjRate)
- --FUEL BOX--
- --HEAT -BOX--
- gpuAPI.fill(97, 43, 34, 24, 0x878787)
- gpuAPI.fill(95, 45, 33, 25, 0x2D2D2D)
- gpuAPI.write(47, 24, 0xFF6D00, 0x2D2D2D, " HEAT ")
- gpuAPI.write(47, 26, 0xFF6D00, 0x2D2D2D, "Case Heat")
- gpuAPI.write(47, 29, 0xFF6D00, 0x2D2D2D, "Plasma Heat")
- barDisplays:addGraph(0, 93, 47, 28, 27, 0x000000, 0xFF6D00, caseHeat, 0, 10)
- barDisplays:addGraph(0, 93, 47, 31, 30, 0x000000, 0xFF6D00, plasmaHeat, 0, 15)
- --HEAT BOX--
- --WATER BOX--
- gpuAPI.fill(155, 101, 34, 24, 0x878787)
- gpuAPI.fill(153, 103, 33, 25, 0x2D2D2D)
- gpuAPI.write(105, 24, 0x3349FF, 0x2D2D2D, " WATER ")
- gpuAPI.write(105, 26, 0x3349FF, 0x2D2D2D, "Water")
- gpuAPI.write(105, 29, 0xE1E1E1, 0x2D2D2D, "Steam")
- barDisplays:addGraph(0, 152, 105, 28, 27, 0x000000, 0x3349FF, waterAmount, 0, 1000000000)
- barDisplays:addGraph(0, 152, 105, 31, 30, 0x000000, 0xE1E1E1, steamAmount, 0, 1000000000)
- --WATER BOX
- --STATISTICS BOX--
- gpuAPI.fill(159, 39, 49, 36, 0x878787)
- gpuAPI.fill(157, 41, 48, 37, 0x2D2D2D)
- gpuAPI.write(43, 36, 0xFFFFFF, 0x2D2D2D, " STATISTIC ")
- gpuAPI.write(43, 38, 0xFFFFFF, 0x2D2D2D, "Reactor Status:")
- gpuAPI.write(43, 40, 0xFFFFFF, 0x2D2D2D, "Ignition Status:")
- gpuAPI.write(43, 42, 0xFFFFFF, 0x2D2D2D, "Energy Production:")
- gpuAPI.write(43, 44, 0xFFFFFF, 0x2D2D2D, "Max Casing Heat:")
- gpuAPI.write(43, 46, 0xFFFFFF, 0x2D2D2D, "Max Plasma Heat:")
- barDisplays:addText(59, 38, 0xCC6D80, 0x2D2D2D, status)
- barDisplays:addText(60, 40, 0xCC6D80, 0x2D2D2D, ignitionStatus)
- barDisplays:addText(62, 42, 0xCC6D80, 0x2D2D2D, energyOutStr)
- gpuAPI.write(77, 42, 0xCC6D80, 0x2D2D2D, "MRF/t")
- barDisplays:addText(60, 44, 0xCC6D80, 0x2D2D2D, maxCaseHeat)
- barDisplays:addText(60, 46, 0xCC6D80, 0x2D2D2D, maxPlasmaHeat)
- --STATISTICS BOX--
- --[[
- function temp()
- while true do
- local t, v, x, y = event.pull("touch")
- gpu.fill(x,y, 1, 1, "X")
- print(x,y,t,v)
- end
- end
- thread.create(temp)
- --]]
- function buttonListener()
- while true do
- local _, _, x, y = event.pull("touch")
- buttons:click(x,y)
- end
- end
- thread.create(buttonListener)
- barDisplays:start(0.5)
Advertisement
Add Comment
Please, Sign In to add comment