random-stuff/computercraft/ncfroc.lua

45 lines
1.4 KiB
Lua

local component, computer = component, computer
if require then component = require "component" computer = require "computer" end
local wlan = component.proxy(component.list "modem"())
local computer_peripheral = component.proxy(component.list "computer"())
local reactor = component.proxy(component.list "nc_fusion_reactor"())
local gpu = component.proxy(component.list "gpu"())
local screen = component.list "screen"()
gpu.bind(screen)
wlan.setWakeMessage("poweron", true)
local function display(txt)
local w, h = gpu.getResolution()
gpu.set(1, 1, txt .. (" "):rep(w - #txt))
end
local function sleep(timeout)
local deadline = computer.uptime() + (timeout or 0)
repeat
computer.pullSignal(deadline - computer.uptime())
until computer.uptime() >= deadline
end
computer_peripheral.beep(400)
display "Initialized"
local NC_HEAT_CONSTANT = 1218.76
local last = nil
while true do
local target_temp = reactor.getFusionComboHeatVariable() * NC_HEAT_CONSTANT * 1000
local temp = reactor.getTemperature()
display(("%f %f"):format(temp / target_temp, reactor.getEfficiency()))
local too_high = temp > target_temp
if too_high then
if too_high ~= last then computer_peripheral.beep(800) end
reactor.deactivate()
else
if too_high ~= last then computer_peripheral.beep(500) end
reactor.activate()
end
last = too_high
wlan.broadcast(1111, "poweron")
sleep(0.5)
end