View difference between Paste ID: 8rrEAcUi and ap6Ju3pP
SHOW: | | - or go back to the newest paste.
1
--Initialize Variables
2
3
local reactor
4
local monitor
5
local State
6
local Temp
7
local Fuel
8
local Waste
9
emptyflag=0
10
offlineflag=0
11
flashflag=0
12
turbine = peripheral.wrap("BigReactors-Turbine_0")
13
reactor = peripheral.wrap("back")
14
monitor = peripheral.wrap("monitor_2")
15
16
monitor.setTextScale(1)
17
monitor.setBackgroundColor(colors.black)
18
19
--Functions
20
21
function wipeScreen()
22
   term.clear()
23
   term.setCursorPos(1, 1)
24
end
25
26
function delayPrint(pause,msg)
27
   print(msg)
28
   sleep(pause)
29
end
30
31
--Program
32
33
wipeScreen()
34
print("System Control Startup")
35
sleep(1)
36
while true do
37
 reactor.getConnected()
38
 
39
monitor.clear()
40
 monitor.setCursorPos(9,1)
41
 monitor.setTextColor(colors.white)
42
 monitor.write('Reactor System Monitor')
43
 monitor.setCursorPos(1,2)
44
 monitor.write('Fuel Level:')
45
 monitor.setCursorPos(1,3)
46
 monitor.setTextColor(colors.yellow)
47
 monitor.write(math.floor((((reactor.getFuelAmount())/(reactor.getFuelAmountMax()))*100)+0.5)..'% Fuel')
48
 monitor.setCursorPos(1,4)
49
 monitor.setTextColor(colors.lightBlue)
50
 monitor.write(math.floor((((reactor.getWasteAmount())/(reactor.getFuelAmountMax()))*100)+0.5)..'% Waste')
51
 
52
 monitor.setCursorPos(15,2)
53
monitor.setTextColor(colors.white)
54-
monitor.write('Flux:')
54+
monitor.write('Steam:')
55
monitor.setCursorPos(13,3)
56
monitor.setTextColor(colors.green)
57-
monitor.write('Power Level: '..reactor.getEnergyStored()..' RF')
57+
monitor.write('Steam Pressure: '..reactor.getHotFluidAmount()..' mb')
58
59-
if reactor.getEnergyProducedLastTick()>=500 and reactor.getEnergyProducedLastTick()<2000 then
59+
if reactor.getHotFluidAmount()>=30000 and reactor.getHotFluidAmount()<20000 then
60
    monitor.setTextColor(colors.orange)
61
end
62
 
63-
if reactor.getEnergyProducedLastTick()>=2000 then
63+
if reactor.getHotFluidAmount()>=40000 then
64
    monitor.setTextColor(colors.red)
65
end
66-
monitor.setCursorPos(13,4)
66+
67-
monitor.write((math.floor(reactor.getEnergyProducedLastTick()+0.5))..'RF/t')
67+
68
 
69
 monitor.setCursorPos(1,6)
70
 monitor.setTextColor(colors.white)
71
  monitor.setTextColor(colors.white)
72
 monitor.write('Temperature:')
73
 monitor.setCursorPos(1,7)
74
  if reactor.getFuelTemperature()>=650 then
75-
  if reactor.getTemperature()>=650 then
75+
76
    else if reactor.getFuelTemperature()>=1000 then
77
        monitor.setTextColor(colors.red)
78
    else
79
        monitor.setTextColor(colors.green)
80
    end
81
 end
82
 monitor.write('Fuel: '..reactor.getFuelTemperature()..'C    Casing: '..reactor.getCasingTemperature()..'C')
83
 
84
 monitor.setCursorPos(1,9)
85
 monitor.setTextColor(colors.white)
86
 monitor.write('Control Rod Levels:')
87
 monitor.setTextColor(colors.green)
88
 monitor.setCursorPos(1,10)
89
 monitor.write('Rods  1-24:  '..(100-(reactor.getControlRodLevel(0)))..'%')
90
 
91
 monitor.setCursorPos(20,10)
92
 monitor.write('Rods   24-48:  '..(100-(reactor.getControlRodLevel(1)))..'%')
93
 
94
 monitor.setCursorPos(1,11)
95
 monitor.write('Rods 72-96:  '..(100-(reactor.getControlRodLevel(2)))..'%')
96
 
97
 monitor.setCursorPos(20,11)
98
 monitor.write('Rods 120-144:  '..(100-(reactor.getControlRodLevel(3)))..'%')
99
 
100
 monitor.setCursorPos(1,14)
101
 monitor.setTextColor(colors.white)
102
 monitor.write('Reactor Radioactivity')
103
 
104
 monitor.setCursorPos(24,14)
105
 monitor.write('Fuel Usage')
106
 
107
 monitor.setTextColor(colors.green)
108
 monitor.setCursorPos(1,15)
109
 monitor.write(''..reactor.getFuelReactivity()..'%')
110
 monitor.setCursorPos(24,15)
111
 monitor.write(''..reactor.getFuelConsumedLastTick()..' mb/t')
112
 
113
 monitor.setCursorPos(1,16)
114
monitor.setTextColor(colors.orange)
115
monitor.write('Status:')
116
 
117
if flashflag==0 then
118
  flashflag=1
119
  if offlineflag==1 then
120
    monitor.setCursorPos(1,17)
121
    monitor.setTextColor(colors.lightGray)
122
    monitor.write('OFFLINE - Manual Override')
123
  end
124
  if emptyflag==1 then
125
    monitor.setCursorPos(1,17)
126
    monitor.setTextColor(colors.pink)
127
    monitor.write('OFFLINE - Fuel Exhausted')
128
  end
129
  if emptyflag==0 and offlineflag==0 and reactor.getControlRodLevel(0)>75 then
130
    monitor.setCursorPos(1,17)
131
    monitor.setTextColor(colors.yellow)
132
    monitor.write('ONLINE - Low Power Mode')
133
  end
134
  if emptyflag==0 and offlineflag==0 and reactor.getControlRodLevel(0)<=75 then
135
    monitor.setCursorPos(1,17)
136
    monitor.setTextColor(colors.orange)
137
    monitor.write('ONLINE - High Power Mode')
138
  end
139
else
140
  flashflag=0
141
  monitor.setCursorPos(1,17)
142
  monitor.clearLine()
143
end
144
145
if reactor.getHotFluidAmount()<=50000 and reactor.getCoolantAmount()>100 then
146-
if reactor.getEnergyStored()<=10000000 and reactor.getEnergyStored()>100 then
146+
    reactor.setAllControlRodLevels(0+(math.floor(reactor.getHotFluidAmount()/50000)))
147-
    reactor.setAllControlRodLevels(0+(math.floor(reactor.getEnergyStored()/100000)))
147+
148
    reactor.setAllControlRodLevels(0)
149
end
150
151
if (reactor.getFuelAmount()<=100) and offlineflag==0 then
152
    reactor.setAllControlRodLevels(100)
153
    reactor.setActive(false)
154
    emptyflag=1
155
else
156
    emptyflag=0
157
end
158
159
if rs.getInput('bottom')==false and emptyflag==0 then
160
    reactor.setActive(true)
161
    offlineflag=0
162
end
163
164
if rs.getInput('bottom')==true and emptyflag==0 then
165
    reactor.setActive(false)
166
    reactor.setAllControlRodLevels(100)
167
    offlineflag=1
168
end    
169
sleep(1)
170
end