InfOS/Programs/energyControl.lua
Gabriel Moreira Minossi a3dd881119 Formatting files
2020-12-19 16:24:16 -03:00

57 lines
1.3 KiB
Lua

comp = require("component")
event = require("event")
screen = require("term")
computer = require("computer")
thread = require("thread")
uc = require("unicode")
local LSC = comp.gt_machine
local engaged = false
local function machine(address)
machineAddress = comp.get(address)
if (machineAddress ~= nil) then
return comp.proxy(machineAddress)
else
return nil
end
end
local function getPercentage()
local currentEU = math.floor(string.gsub(LSC.getSensorInformation()[2], "([^0-9]+)", "") + 0)
local maxEU = math.floor(string.gsub(LSC.getSensorInformation()[3], "([^0-9]+)", "") + 0)
return currentEU / maxEU
end
local turbineRedstone = {
[1] = machine("928880ed")
}
local function disengage()
for i = 1, #turbineRedstone do
turbineRedstone[i].setOutput(4, 0)
end
engaged = false
end
local function engage()
for i = 1, #turbineRedstone do
turbineRedstone[i].setOutput(4, 15)
end
engaged = true
end
local function checkLevels()
local fill = getPercentage()
if fill < 0.15 then
if not engaged then
engage()
end
elseif fill > 0.95 then
if engaged then
disengage()
end
end
end
disengage()
while true do
checkLevels()
os.sleep(5)
end