View difference between Paste ID: kByQrXrF and F4rcQTFj
SHOW: | | - or go back to the newest paste.
1
print('Kiaba ReactorControl Engaged. View Monitor.')
2
 
3
emptyflag=0
4
offlineflag=0
5
flashflag=0
6
 
7
reactor=peripheral.wrap('left')
8
monitor=peripheral.wrap('right')
9
 
10
monitor.setTextScale(1)
11
monitor.setBackgroundColor(colors.black)
12
 
13
while true do
14
monitor.clear()
15
monitor.setCursorPos(1,1)
16
monitor.setTextColor(colors.white)
17
monitor.write('Fuel Level:')
18
monitor.setCursorPos(1,2)
19
monitor.setTextColor(colors.yellow)
20
monitor.write(math.floor(((reactor.getFuelAmount()/reactor.getFuelAmountMax())*100)+0.5)..'% Fuel')
21
monitor.setCursorPos(1,3)
22
monitor.setTextColor(colors.lightBlue)
23
monitor.write(math.floor(((reactor.getWasteAmount()/reactor.getFuelAmountMax())*100)+0.5)..'% Waste')
24
monitor.setCursorPos(1,5)
25
monitor.setTextColor(colors.white)
26
monitor.write('Control Rod Levels:')
27
monitor.setTextColor(colors.green)
28
monitor.setCursorPos(1,6)
29
monitor.write('Rod 1:  '..(100-(reactor.getControlRodLevel(0)))..'% Depth')
30
monitor.setCursorPos(1,7)
31
monitor.write('Rod 2:  '..(100-(reactor.getControlRodLevel(1)))..'% Depth')
32
monitor.setCursorPos(1,8)
33
monitor.write('Rod 3:  '..(100-(reactor.getControlRodLevel(2)))..'% Depth')
34
monitor.setCursorPos(1,9)
35
monitor.write('Rod 4:  '..(100-(reactor.getControlRodLevel(3)))..'% Depth')
36
monitor.setCursorPos(1,10)
37
monitor.write('Rod 5:  '..(100-(reactor.getControlRodLevel(4)))..'% Depth')
38
monitor.setCursorPos(1,11)
39-
monitor.write('Rod 6:  '..(100-(reactor.getControlRodLevel(5)))..'% Depth')
39+
40
monitor.write('Temperature:')
41-
monitor.write('Rod 7:  '..(100-(reactor.getControlRodLevel(6)))..'% Depth')
41+
42
monitor.setTextColor(colors.lightGray)
43-
monitor.write('Rod 8:  '..(100-(reactor.getControlRodLevel(7)))..'% Depth')
43+
44
if reactor.getCasingTemperature()>=650 then
45-
monitor.write('Rod 9:  '..(100-(reactor.getControlRodLevel(8)))..'% Depth')
45+
46
    else if reactor.getCasingTemperature()>=950 then
47-
monitor.write('Rod 10:  '..(100-(reactor.getControlRodLevel(9)))..'% Depth')
47+
48
    else
49-
monitor.write('Rod 11:  '..(100-(reactor.getControlRodLevel(10)))..'% Depth')
49+
50-
monitor.setCursorPos(1,17)
50+
51-
monitor.write('Rod 12:  '..(100-(reactor.getControlRodLevel(11)))..'% Depth')
51+
52-
monitor.setCursorPos(1,18)
52+
53-
monitor.write('Rod 13:  '..(100-(reactor.getControlRodLevel(12)))..'% Depth')
53+
54-
monitor.setCursorPos(1,19)
54+
55
monitor.setTextColor(colors.yellow)
56
monitor.write('Fuel: ')
57-
monitor.setCursorPos(1,20)
57+
58
  monitor.setTextColor(colors.purple)
59
  else if reactor.getFuelTemperature()>=950 then
60
    monitor.setTextColor(colors.red)
61
  else
62
 monitor.setTextColor(colors.green)
63
  end
64
end
65
monitor.write(reactor.getFuelTemperature()..'C')
66
 
67
monitor.setCursorPos(1,14)
68
monitor.setTextColor(colors.white)
69
monitor.write('Flux:')
70-
monitor.setCursorPos(1,21)
70+
71
monitor.setTextColor(colors.green)
72
monitor.write(reactor.getEnergyStored()..' RF Stored      ')
73
 
74
if reactor.getEnergyProducedLastTick()>=500 and reactor.getEnergyProducedLastTick()<2000 then
75
    monitor.setTextColor(colors.orange)
76
end
77
 
78
if reactor.getEnergyProducedLastTick()>=2000 then
79
    monitor.setTextColor(colors.red)
80
end
81
monitor.write((math.floor(reactor.getEnergyProducedLastTick()+0.5))..'RF/t')
82
 
83-
monitor.setCursorPos(1,22)
83+
84
monitor.setTextColor(colors.orange)
85
monitor.write('Warnings:')
86-
monitor.setCursorPos(1,23)
86+
87
if flashflag==0 then
88
  flashflag=1
89
  if offlineflag==1 then
90
    monitor.setCursorPos(1,17)
91
    monitor.setTextColor(colors.lightGray)
92
    monitor.write('OFFLINE - Manual Override')
93
  end
94
  if emptyflag==1 then
95
    monitor.setCursorPos(1,18)
96
    monitor.setTextColor(colors.pink)
97
    monitor.write('OFFLINE - Fuel Exhausted')
98
  end
99-
monitor.setCursorPos(1,24)
99+
100
    monitor.setCursorPos(1,19)
101
    monitor.setTextColor(colors.yellow)
102
    monitor.write('ONLINE - Low Power Mode')
103
  end
104
  if emptyflag==0 and offlineflag==0 and reactor.getControlRodLevel(0)<=75 then
105
    monitor.setCursorPos(1,20)
106-
    monitor.setCursorPos(1,25)
106+
107
    monitor.write('ONLINE - High Power Mode')
108
  end
109
else
110
  flashflag=0
111-
    monitor.setCursorPos(1,26)
111+
  monitor.setCursorPos(1,21)
112
  monitor.clearLine()
113
end
114
 
115
if reactor.getEnergyStored()<=10000000 and reactor.getEnergyStored()>100 then
116-
    monitor.setCursorPos(1,26)
116+
117
else
118
    reactor.setAllControlRodLevels(0)
119
end
120
 
121-
    monitor.setCursorPos(1,26)
121+
122
    reactor.setAllControlRodLevels(100)
123
    reactor.setActive(false)
124
    emptyflag=1
125
else
126
    emptyflag=0
127-
  monitor.setCursorPos(1,26)
127+
128
     
129
if rs.getInput('bottom')==false and emptyflag==0 then
130
    reactor.setActive(true)
131
    offlineflag=0
132
end
133
 
134
if rs.getInput('bottom')==true and emptyflag==0 then
135
    reactor.setActive(false)
136
    reactor.setAllControlRodLevels(100)
137
    offlineflag=1
138
end    
139
sleep(1)
140
end