View difference between Paste ID: NsPPeKGF and kByQrXrF
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')
35+
36
monitor.write('Temperature:')
37-
monitor.write('Rod 5:  '..(100-(reactor.getControlRodLevel(4)))..'% Depth')
37+
38
monitor.setTextColor(colors.lightGray)
39
monitor.write('Casing: ')
40
if reactor.getCasingTemperature()>=650 then
41
    monitor.setTextColor(colors.purple)
42
    else if reactor.getCasingTemperature()>=950 then
43
        monitor.setTextColor(colors.red)
44
    else
45
        monitor.setTextColor(colors.green)
46
    end
47
end
48
monitor.write(reactor.getCasingTemperature()..'C')
49
 
50
monitor.setCursorPos(1,11)
51
monitor.setTextColor(colors.yellow)
52
monitor.write('Fuel: ')
53
if reactor.getFuelTemperature()>=650 then
54
  monitor.setTextColor(colors.purple)
55
  else if reactor.getFuelTemperature()>=950 then
56
    monitor.setTextColor(colors.red)
57
  else
58
 monitor.setTextColor(colors.green)
59
  end
60
end
61
monitor.write(reactor.getFuelTemperature()..'C')
62
 
63
monitor.setCursorPos(1,12)
64
monitor.setTextColor(colors.white)
65
monitor.write('Flux:')
66
monitor.setCursorPos(1,13)
67
monitor.setTextColor(colors.green)
68
monitor.write(reactor.getEnergyStored()..' RF Stored      ')
69
 
70-
monitor.setCursorPos(1,15)
70+
71
    monitor.setTextColor(colors.orange)
72
end
73
 
74
if reactor.getEnergyProducedLastTick()>=2000 then
75
    monitor.setTextColor(colors.red)
76
end
77
monitor.write((math.floor(reactor.getEnergyProducedLastTick()+0.5))..'RF/t')
78
 
79
monitor.setCursorPos(1,14)
80
monitor.setTextColor(colors.orange)
81
monitor.write('Warnings:')
82
 
83-
monitor.setCursorPos(1,16)
83+
84
  flashflag=1
85
  if offlineflag==1 then
86
    monitor.setCursorPos(1,15)
87
    monitor.setTextColor(colors.lightGray)
88
    monitor.write('OFFLINE - Manual Override')
89
  end
90
  if emptyflag==1 then
91
    monitor.setCursorPos(1,16)
92
    monitor.setTextColor(colors.pink)
93
    monitor.write('OFFLINE - Fuel Exhausted')
94
  end
95
  if emptyflag==0 and offlineflag==0 and reactor.getControlRodLevel(0)>75 then
96
    monitor.setCursorPos(1,17)
97
    monitor.setTextColor(colors.yellow)
98
    monitor.write('ONLINE - Low Power Mode')
99
  end
100-
    monitor.setCursorPos(1,19)
100+
101
    monitor.setCursorPos(1,18)
102
    monitor.setTextColor(colors.orange)
103
    monitor.write('ONLINE - High Power Mode')
104
  end
105-
    monitor.setCursorPos(1,20)
105+
106
  flashflag=0
107
  monitor.setCursorPos(1,19)
108
  monitor.clearLine()
109
end
110
 
111-
  monitor.setCursorPos(1,21)
111+
112
    reactor.setAllControlRodLevels(0+(math.floor(reactor.getEnergyStored()/100000)))
113
else
114
    reactor.setAllControlRodLevels(0)
115
end
116
 
117
if reactor.getFuelAmount()<=100 and offlineflag==0 then
118
    reactor.setAllControlRodLevels(100)
119
    reactor.setActive(false)
120
    emptyflag=1
121
else
122
    emptyflag=0
123
end
124
     
125
if rs.getInput('bottom')==false and emptyflag==0 then
126
    reactor.setActive(true)
127
    offlineflag=0
128
end
129
 
130
if rs.getInput('bottom')==true and emptyflag==0 then
131
    reactor.setActive(false)
132
    reactor.setAllControlRodLevels(100)
133
    offlineflag=1
134
end    
135
sleep(1)
136
end