View difference between Paste ID: eVELdtFs and t6xzhasv
SHOW: | | - or go back to the newest paste.
1
-- Title: ComputerCraft BigReactor automatic throttling software for Active reactors.
2
-- Author: MyrddinE
3
--
4
-- Throttles the reactor based on the level of hot fluid. Because the hot fluid buffer
5
-- is small compared to the generation speed, it updates several times a second to 
6
-- maintain the proper temperature.
7
8
-- Update this to match your reactor's steam volume.
9-
maxSteam = 9800
9+
maxSteam = 17200
10
11
-- Set this to the side your monitor is on, or blank for no monitor. If the monitor is
12
-- connected via a wired modem, set this to the full name of the monitor.
13-
monitor = ''
13+
monitor = 'top'
14
-- monitor = 'right'
15
16
-- Stick the computer right on the port. If the reactor is attached via a wired modem,
17
-- change the wrap to the full name of the Reactor.
18
reactor = peripheral.wrap('back')
19
20
-- Sets the monitor to a wrapped peripheral if you have one.
21
if #monitor > 0 then
22
  monitor = peripheral.wrap(monitor)
23
  width,height = monitor.getSize()
24
  monitor.setCursorPos(1,height)
25
else
26
  monitor = false
27
end
28
29
local rod = 70
30
targetSteam = math.ceil(maxSteam*0.5)
31
32
-- Run forever.
33-
  rod = math.ceil(100*steam/maxSteam)
33+
34-
  reactor.setAllControlRodLevels(rod)
34+
35
  steam = reactor.getHotFluidAmount()
36
	rod = (reactor.getControlRodLevel(1) - 1/targetSteam*(targetSteam - steam))
37
	reactor.setAllControlRodLevels(rod)
38
39
40
41
  -- Everything below just drives a scrolling monitor display.
42
  if monitor then
43
    temp = math.floor(reactor.getCasingTemperature()).."C"
44
    monitor.scroll(2)
45
    monitor.setCursorPos(1,height)
46
    monitor.write(rod.."%")
47
    monitor.scroll(1)
48-
  sleep(.2)
48+
49
    monitor.write(temp)
50
  end
51
  
52
  -- Sleep for a moment.
53
 sleep(1)
54
end