Repository navigation
Reactor Controller
Setting up a reactor controller peripheral you can do,
local reactor = peripheral.find("reactor_controller")or for a computer where you want to control multiple you can specify the ID directly.
local reactor_0 = peripheral.find("reactor_controller_0")
local reactor_1 = peripheral.find("reactor_controller_1")These are the new functions we have exposed for use with CC:Tweaked when connecting to a reactor controller block.
Most if not all of these functions won't have descriptions about what they do as they do exactly what they are called. e.g getkEff gets the kEff value that can be found somewhere in the Control Desk Block.
getAxialOffset -- returns number
local reactor = peripheral.find("reactor_controller")
local axialOffset = reactor.getAxialOffset()getAxialPower -- returns table containing 8 numbers
local reactor = peripheral.find("reactor_controller")
local axialPower = reactor.getAxialPower()getBeta -- returns number
local reactor = peripheral.find("reactor_controller")
local beta = reactor.getBeta()getBoron -- returns number
local reactor = peripheral.find("reactor_controller")
local boron = reactor.getBoron()getColdLegTemp -- returns number (degrees celcius)
local reactor = peripheral.find("reactor_controller")
local coldLegTemp = reactor.getColdLegTemp()getContainment -- returns number
local reactor = peripheral.find("reactor_controller")
local containment = reactor.getContainment()getCoolantTankLevel -- returns number (mB) (this is the amount of water in the cold leg intake block itself)
local reactor = peripheral.find("reactor_controller")
local coolantTankLevel = reactor.getCoolantTankLevel()getCoreMap -- returns 2d table matching dimensions of the reactor interior
local reactor = peripheral.find("reactor_controller")
local coreMap = reactor.getCoreMap()getDecayHeat -- returns number
local reactor = peripheral.find("reactor_controller")
local decayHeat = reactor.getDecayHeat()getDecayHeatAfterShutdown -- returns number -- takes an number value of the amount of hours you wish to calculate
local reactor = peripheral.find("reactor_controller")
local hours = 1
local decayHeatAfterShutdown = reactor.getDecayHeatAfterShutdown(hours)getDNBR -- returns number
local reactor = peripheral.find("reactor_controller")
local DNBR = reactor.getDNBR()getElectric -- returns number
local reactor = peripheral.find("reactor_controller")
local electric = reactor.getElectric()getEnrichment -- returns number
local reactor = peripheral.find("reactor_controller")
local enrichment = reactor.getEnrichment()getFlux -- returns number
local reactor = peripheral.find("reactor_controller")
local flux = reactor.getFlux()getFuelTankLevel -- returns number (mb) -- the amount of fuel in the reactor
local reactor = peripheral.find("reactor_controller")
local tankfuellevel = reactor.getFuelTankLevel()getHeatSink -- returns string -- either "legacy" or "steam line"
local reactor = peripheral.find("reactor_controller")
local heatsink = reactor.getHeatSink()getHotLegTemp -- returns number (degrees celcius)
local reactor = peripheral.find("reactor_controller")
local hotlegtemp = reactor.getHotLegTemp()getINES -- returns number (same number as the INES in control desk)
local reactor = peripheral.find("reactor_controller")
local INES = reactor.getINES()getInsertion -- returns number (rod insertion set point, 100% all in, 0% all out)
local reactor = peripheral.find("reactor_controller")
local insertion = reactor.getInsertion()getIodine -- returns number
local reactor = peripheral.find("reactor_controller")
local iodine = reactor.getIodine()getkEff -- returns number
local reactor = peripheral.find("reactor_controller")
local kEff = reactor.getkEff()getLambda -- returns number
local reactor = peripheral.find("reactor_controller")
local lambda = reactor.getLambda()getLeakage -- returns number
local reactor = peripheral.find("reactor_controller")
local leakage = reactor.getLeakage()getMaxClad -- returns number
local reactor = peripheral.find("reactor_controller")
local cladTemp = reactor.getMaxClad()getMaxFuel -- returns number
local reactor = peripheral.find("reactor_controller")
local fuelTemp = reactor.getMaxFuel()getMelt -- returns number
local reactor = peripheral.find("reactor_controller")
local melt = reactor.getMelt()getModeration -- returns number
local reactor = peripheral.find("reactor_controller")
local moderation = reactor.getModeration()getOutputSU -- returns number
local reactor = peripheral.find("reactor_controller")
local su = reactor.getOutputSU()getPeaking -- returns number
local reactor = peripheral.find("reactor_controller")
local peaking = reactor.getPeaking()getPeriod -- returns number
local reactor = peripheral.find("reactor_controller")
local period = reactor.getPeriod()getPower -- returns number
local reactor = peripheral.find("reactor_controller")
local power = reactor.getPower()getPressure -- returns number
local reactor = peripheral.find("reactor_controller")
local pressure = reactor.getPressure()getPrimaryCoolantLevel -- returns number
local reactor = peripheral.find("reactor_controller")
local coolantLevel = reactor.getPrimaryCoolantLevel()getRadiation -- returns number
local reactor = peripheral.find("reactor_controller")
local radiation = reactor.getRadiation()getReactivity -- returns number
local reactor = peripheral.find("reactor_controller")
local reactivity = reactor.getReactivity()getRodPosition -- returns number (current rod insertion if they haven't met the set point yet, 100% all in and 0% all out)
local reactor = peripheral.find("reactor_controller")
local rodPosition = reactor.getRodPosition()getRodReach -- returns number
local reactor = peripheral.find("reactor_controller")
local rodReach = reactor.getRodReach()getSGLevel -- returns number
local reactor = peripheral.find("reactor_controller")
local sgLevel = reactor.getSGLevel()getStartupRate -- returns number
local reactor = peripheral.find("reactor_controller")
local sur = reactor.getStartupRate()getState -- returns string (same value as the top right corner of the control desk "Cold", "Heating", "Critical", etc...)
local reactor = peripheral.find("reactor_controller")
local state = reactor.getState()getSteamOutput -- returns number (mB/s)
local reactor = peripheral.find("reactor_controller")
local steamOut = reactor.getSteamOutput()getSteamTankLevel -- returns number (the hot leg reactor port internal buffer level)
local reactor = peripheral.find("reactor_controller")
local steamLevel = reactor.getSteamTankLevel()getTemperature -- returns number (degrees celcius)
local reactor = peripheral.find("reactor_controller")
local temp = reactor.getTemperature()getThermalPower -- returns number
local reactor = peripheral.find("reactor_controller")
local thermalPower = reactor.getThermalPower()getTrips -- returns table containing all the current alarm names e.g {"FLUX HIGH", "PRESS LOW"}
local reactor = peripheral.find("reactor_controller")
local tripMap = reactor.getTrips()getType -- returns string (returns the type of peripheral, a little redundant to include it here but I will anyway)
local reactor = peripheral.find("reactor_controller")
local type = reactor.getType()getVoid -- returns number (percent)
local reactor = peripheral.find("reactor_controller")
local void = reactor.getVoid()getWasteTankLevel -- returns number (mB)
local reactor = peripheral.find("reactor_controller")
local wasteTankLevel = reactor.getWasteTankLevel()getXenonEq -- returns number (percent, level at which xenon poison will equalize at current power level)
local reactor = peripheral.find("reactor_controller")
local xenonEQ = reactor.getXenonEq()getXenonPeak -- returns number
local reactor = peripheral.find("reactor_controller")
local xenonPeak = reactor.getXenonPeak()getXenonPoison -- returns number
local reactor = peripheral.find("reactor_controller")
local xenonPoison = reactor.getXenonPoison()These functions all return booleans
isAlarm -- returns number
local reactor = peripheral.find("reactor_controller")
local alarm = reactor.isAlarm()isOn -- returns number (quick way to check if the rods are at 100% insertion which means the reactor is off and this returns false)
local reactor = peripheral.find("reactor_controller")
local on = reactor.isOn()isPumpActive -- returns number (is the pump (blue button labeled pump in control desk) on)
local reactor = peripheral.find("reactor_controller")
local pump = reactor.isPumpActive()isRodStop -- returns number (is rod stop stopping progression of control rods)
local reactor = peripheral.find("reactor_controller")
local rodStop = reactor.isRodStop()isScrammed -- returns number
local reactor = peripheral.find("reactor_controller")
local scrammed = reactor.isScrammed()isVenting -- returns number (is the relief valve open)
local reactor = peripheral.find("reactor_controller")
local venting = reactor.isVenting()These functions let you actually change something about the reactor, they all return nothing
off -- returns number (sets rods to 100% insertion)
local reactor = peripheral.find("reactor_controller")
reactor.off()on -- returns number (basically resets scram alarm)
local reactor = peripheral.find("reactor_controller")
reactor.on()scram -- returns number
local reactor = peripheral.find("reactor_controller")
reactor.scram()setInsertion -- returns number -- takes number (between 0-100) (100% all the way in, 0% all the way out)
local reactor = peripheral.find("reactor_controller")
local insertion = 50
-- Sets insertion to 50%
reactor.setInsertion(insertion)setPump -- returns number -- takes boolean
local reactor = peripheral.find("reactor_controller")
local turnOn = true
-- Turns on the pump
reactor.setPump(turnOn)setReliefValve -- returns number -- takes boolean
local reactor = peripheral.find("reactor_controller")
local open = true
-- Opens the valve
reactor.setReliefValve(open)There are no events yet...