View difference between Paste ID: ap6Ju3pP and 4B9YpT37
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
13
reactor = peripheral.wrap("back")
14-
monitor = peripheral.wrap("monitor_0")
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(4,1)
40+
 monitor.setCursorPos(9,1)
41
 monitor.setTextColor(colors.white)
42-
 monitor.write('Main Reactor System Monitor')
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:')
55
monitor.setCursorPos(13,3)
56
monitor.setTextColor(colors.green)
57
monitor.write('Power Level: '..reactor.getEnergyStored()..' RF')
58
59-
if reactor.getEnergyProducedLastTick()>=25000 and reactor.getEnergyProducedLastTick()<2000 then
59+
if reactor.getEnergyProducedLastTick()>=500 and reactor.getEnergyProducedLastTick()<2000 then
60
    monitor.setTextColor(colors.orange)
61
end
62
 
63-
if reactor.getEnergyProducedLastTick()>=50000 then
63+
if reactor.getEnergyProducedLastTick()>=2000 then
64
    monitor.setTextColor(colors.red)
65
end
66
monitor.setCursorPos(13,4)
67-
monitor.write(Energy Generation: math.floor(reactor.getEnergyProducedLastTick()+0.5))..'RF/t')
67+
monitor.write((math.floor(reactor.getEnergyProducedLastTick()+0.5))..'RF/t')
68
 
69
 
70
 monitor.setCursorPos(1,6)
71
 monitor.setTextColor(colors.white)
72
  monitor.setTextColor(colors.white)
73
 monitor.write('Temperature:')
74
 monitor.setCursorPos(1,7)
75-
  if reactor.getFuelTemperature()>=650 then
75+
  if reactor.getTemperature()>=650 then
76
    monitor.setTextColor(colors.purple)
77
    else if reactor.getFuelTemperature()>=1000 then
78
        monitor.setTextColor(colors.red)
79
    else
80
        monitor.setTextColor(colors.green)
81
    end
82
 end
83
 monitor.write('Fuel: '..reactor.getFuelTemperature()..'C    Casing: '..reactor.getCasingTemperature()..'C')
84
 
85
 monitor.setCursorPos(1,9)
86
 monitor.setTextColor(colors.white)
87
 monitor.write('Control Rod Levels:')
88
 monitor.setTextColor(colors.green)
89
 monitor.setCursorPos(1,10)
90-
 monitor.write('Rods 1-24: '..(100-(reactor.getControlRodLevel(0)))..'% Depth')
90+
 monitor.write('Rods  1-24:  '..(100-(reactor.getControlRodLevel(0)))..'%')
91
 
92
 monitor.setCursorPos(20,10)
93-
 monitor.write('Rods 24-48:  '..(100-(reactor.getControlRodLevel(1)))..'% Depth')
93+
 monitor.write('Rods   24-48:  '..(100-(reactor.getControlRodLevel(1)))..'%')
94
 
95
 monitor.setCursorPos(1,11)
96-
 monitor.write('Rods 72-96:  '..(100-(reactor.getControlRodLevel(2)))..'% Depth')
96+
 monitor.write('Rods 72-96:  '..(100-(reactor.getControlRodLevel(2)))..'%')
97
 
98
 monitor.setCursorPos(20,11)
99-
 monitor.write('Rods 120-144:  '..(100-(reactor.getControlRodLevel(3)))..'% Depth')
99+
 monitor.write('Rods 120-144:  '..(100-(reactor.getControlRodLevel(3)))..'%')
100
 
101
 monitor.setCursorPos(1,14)
102
 monitor.setTextColor(colors.white)
103
 monitor.write('Reactor Radioactivity')
104
 
105
 monitor.setCursorPos(24,14)
106
 monitor.write('Fuel Usage')
107
 
108
 monitor.setTextColor(colors.green)
109
 monitor.setCursorPos(1,15)
110
 monitor.write(''..reactor.getFuelReactivity()..'%')
111-
 monitor.write(''..reactor.getFuelReactivity..'%')
111+
112
 monitor.write(''..reactor.getFuelConsumedLastTick()..' mb/t')
113-
 monitor.write(''..reactor.getFuelConsumedLastTick..' mb/t')
113+
114
 monitor.setCursorPos(1,16)
115
monitor.setTextColor(colors.orange)
116
monitor.write('Status:')
117
 
118
if flashflag==0 then
119
  flashflag=1
120
  if offlineflag==1 then
121
    monitor.setCursorPos(1,17)
122
    monitor.setTextColor(colors.lightGray)
123
    monitor.write('OFFLINE - Manual Override')
124
  end
125
  if emptyflag==1 then
126
    monitor.setCursorPos(1,17)
127
    monitor.setTextColor(colors.pink)
128
    monitor.write('OFFLINE - Fuel Exhausted')
129
  end
130
  if emptyflag==0 and offlineflag==0 and reactor.getControlRodLevel(0)>75 then
131
    monitor.setCursorPos(1,17)
132
    monitor.setTextColor(colors.yellow)
133
    monitor.write('ONLINE - Low Power Mode')
134
  end
135
  if emptyflag==0 and offlineflag==0 and reactor.getControlRodLevel(0)<=75 then
136
    monitor.setCursorPos(1,17)
137
    monitor.setTextColor(colors.orange)
138
    monitor.write('ONLINE - High Power Mode')
139
  end
140
else
141
  flashflag=0
142
  monitor.setCursorPos(1,17)
143
  monitor.clearLine()
144
end
145
146
if reactor.getEnergyStored()<=10000000 and reactor.getEnergyStored()>100 then
147
    reactor.setAllControlRodLevels(0+(math.floor(reactor.getEnergyStored()/100000)))
148
else
149
    reactor.setAllControlRodLevels(0)
150
end
151
152
if (reactor.getFuelAmount()<=100) and offlineflag==0 then
153
    reactor.setAllControlRodLevels(100)
154
    reactor.setActive(false)
155
    emptyflag=1
156
else
157
    emptyflag=0
158
end
159
160
if rs.getInput('bottom')==false and emptyflag==0 then
161
    reactor.setActive(true)
162
    offlineflag=0
163
end
164
165
if rs.getInput('bottom')==true and emptyflag==0 then
166
    reactor.setActive(false)
167
    reactor.setAllControlRodLevels(100)
168
    offlineflag=1
169
end    
170
sleep(1)
171
end