Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local tArgs = { ... }
- local reactor
- local reactorSettings = {}
- local monitors = {}
- local modem
- function get(setting)
- return reactorSettings[setting]
- end
- function updateReactorSettings()
- if (reactor ~= nil) then
- reactorSettings = {}
- reactorSettings["isConnected"] = reactor.getConnected()
- reactorSettings["isActive"] = reactor.getActive()
- reactorSettings["energyStored"] = reactor.getEnergyStored()
- reactorSettings["fuelTemp"] = reactor.getFuelTemperature()
- reactorSettings["casingTemp"] = reactor.getCasingTemperature()
- reactorSettings["fuelAmount"] = reactor.getFuelAmount()
- reactorSettings["wasteAmount"] = reactor.getWasteAmount()
- reactorSettings["fuelAmountMax"] = reactor.getFuelAmountMax()
- reactorSettings["rfPerTick"] = reactor.getEnergyProducedLastTick()
- reactorSettings["hotFluidProduced"] = reactor.getHotFluidProducedLastTick()
- reactorSettings["coolantType"] = reactor.getCoolantType()
- reactorSettings["coolantAmount"] = reactor.getCoolantAmount()
- reactorSettings["coolantAmountMax"] = reactor.getCoolantAmountMax()
- reactorSettings["hotFluidType"] = reactor.getHotFluidType
- reactorSettings["fuelReactivity"] = reactor.getFuelReactivity()
- reactorSettings["fuelConsumedPerTick"] = reactor.getFuelConsumedLastTick()
- reactorSettings["isActivelyCooled"] = reactor.isActivelyCooled()
- else
- print("Reactor not Set! use bindReactor(side)")
- shell.exit()
- end
- end
- function bindReactor(side)
- reactor = peripheral.wrap(side)
- if(reactor.getConnected()) then
- updateReactorSettings()
- else
- print("Reactor not found at the " .. side .. " side")
- sleep(5)
- shell.exit()
- end
- end
- function bindReactorOnNetwork(name, modemSide)
- modem = peripheral.wrap(modemSide)
- bindReactor(name)
- end
- function monitorReactor()
- while true do
- updateReactorSettings()
- term.clear()
- term.setCursorPos(1, 1)
- drawReactorInfo()
- sleep(1)
- end
- end
- function drawValues()
- end
- function drawReactorInfo()
- print("Reactor:")
- print("Active: " .. tostring(reactorSettings["isActive"]))
- if(getReactorType() == "RF") then
- print("RF per tick: " .. tostring(reactorSettings["rfPerTick"]))
- else
- print("Hot Fluid per tick: " .. tostring(reactorSettings["hotFluidProduced"]))
- end
- print("Energy Stored: " .. tostring(reactorSettings["energyStored"]))
- print("Casing Temp: " .. tostring(reactorSettings["casingTemp"]))
- print("Fuel Temp: " .. tostring(reactorSettings["fuelTemp"]))
- print("Reactivity: " .. tostring(reactorSettings["fuelReactivity"]))
- print("Fuel per tick: " .. tostring(reactorSettings["fuelConsumedPerTick"]))
- end
- function getReactorType()
- if(reactor == nil) then
- return nil
- end
- if(reactorSettings["isActivelyCooled"]) then
- return "HF"
- else
- return "RF"
- end
- end
- function bindModem(side)
- type = peripheral.getType(side)
- if(type == "modem") then
- modem = side
- else
- print("No Modem Found at the " .. side .. " side!")
- shell.exit()
- end
- end
- function receiveUpdate()
- rednet.open(modem)
- senderid, message = rednet.receive()
- print("Recieved Message: {" .. message[1] .. ", " .. tostring(message[2]) .. "}")
- rednet.close(modem)
- decodeMessage(message)
- end
- function decodeMessage(message)
- print("Decoding message {" .. messages[1] .. ", " .. tostring(messages[2]) .. "}")
- reactorSettings[message[1]] = message[2]
- end
- function sendUpdates()
- rednet.open(modem)
- for key, value in pairs(reactorSettings) do
- rednet.broadcast({key, value})
- end
- rednet.close(modem)
- end
- if(tArgs[1] == "monitor") then
- if(tArgs[2] == nil) then
- print("Usage: monitor <Reactor Side>")
- else
- bindReactor(tArgs[2])
- monitorReactor()
- end
- end
- if(tArgs[1] == "values") then
- if(tArgs[2] == nil) then
- print("Usage: values <Reactor Side>")
- else
- bindReactor(tArgs[2])
- for key, value in pairs(reactorSettings) do
- print(key)
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement