View difference between Paste ID: 1iiqNmmv and PrX0SseC
SHOW: | | - or go back to the newest paste.
1
local sn = 0	--state number			back
2
local sh = false --horizontal shaft		top
3
local gh = false --horizontal gearshift	bottom
4
local sv = false --vertical shaft		left
5
local gv = false --vertical gearshift	right
6
local sg = false --drill bearing		front
7
local function drillpulse()
8
	os.sleep(0.1)
9
	redstone.setOutput("front", true)
10
	os.sleep(0.1)
11
	redstone.setOutput("front", false)
12
	os.sleep(0.5)
13
end
14
15
while true do
16
	
17
    os.sleep(0.1) --every 2 ticks
18
	sn = redstone.getAnalogInput("back")
19
	if sn == 3 then	
20
		if sh and not sv and gv then			--state 3
21
			sh = true
22
			sv = false 
23
			gv = true
24
			redstone.setOutput("top", sh)
25
			redstone.setOutput("left", sv)
26
			redstone.setOutput("right", gv)
27
			os.sleep(0.4)
28
			print("state 3")
29
		elseif sh and not sv and not gv then		--state 9
30
			sh = true
31
			sv = false 
32
			gv = false		
33
			redstone.setOutput("top", sh)
34
			redstone.setOutput("left", sv)
35
			redstone.setOutput("right", gv)		
36
			print("state 9")
37
			
38
		elseif not sh and not sv and not gv then	-- state 12
39
			sh = true
40
			sv = false
41
			gv = true
42
			redstone.setOutput("top", sh)
43
			redstone.setOutput("left", sv)
44
			redstone.setOutput("right", gv)	
45
			os.sleep(2)
46
			sh = true
47
			sv = false 
48
			gv = false
49
			redstone.setOutput("top", sh)
50
			redstone.setOutput("left", sv)
51
			redstone.setOutput("right", gv)
52
			os.sleep(4)
53
			print("state 12")
54
		
55
		
56-
	elseif sn == 6 then						--state 6 			
56+
57
	elseif sn == 7 then						--state 7 
58
		sh = true
59-
		os.sleep(1)					--only being executed if its already at the horizontal end
59+
60
		gv = false
61
		redstone.setOutput("top", sh)
62
		redstone.setOutput("left", sv)
63
		redstone.setOutput("right", gv)
64
		drillpulse()
65
		os.sleep(1)		
66
		print("state"..sn)
67
	elseif sn == 11 then					--state 11  
68-
		print("state 6")
68+
69
		sv = true
70
		gv = true
71
		redstone.setOutput("top", sh)
72
		redstone.setOutput("left", sv)
73
		redstone.setOutput("right", gv)
74
		drillpulse()
75
		os.sleep(1)
76
		print("state"..sn)
77
	elseif sn == 5 then						--state 5 
78
		sh = true
79
		sv = true
80
		gv = false
81
		redstone.setOutput("top", sh)
82
		redstone.setOutput("left", sv)
83
		redstone.setOutput("right", gv)
84
		drillpulse()
85
		os.sleep(1)		
86
		print("state"..sn)
87
	elseif sn == 4 then						--state 4 
88
		sh = true
89
		sv = false 
90
		gv = false
91
		redstone.setOutput("top", sh)
92
		redstone.setOutput("left", sv)
93
		redstone.setOutput("right", gv)
94
		os.sleep(2)
95
		sh = true
96
		sv = false 
97
		gv = true
98
		redstone.setOutput("top", sh)
99
		redstone.setOutput("left", sv)
100
		redstone.setOutput("right", gv)
101
		os.sleep(4)
102
		print("state"..sn)
103
	elseif sn == 8 then						--state 8 
104
		sh = true
105
		sv = false
106
		gv = false
107
		redstone.setOutput("top", sh)
108
		redstone.setOutput("left", sv)
109
		redstone.setOutput("right", gv)
110
		os.sleep(0.3)
111
		print("state"..sn)
112
	elseif sn == 2 then						--state 2
113
		sh = true
114
		sv = false
115
		gv = true
116
		redstone.setOutput("top", sh)
117
		redstone.setOutput("left", sv)
118
		redstone.setOutput("right", gv)	
119
		print("state"..sn)
120
	elseif sn == 1 then						--state 1 
121
		sh = false
122
		redstone.setOutput("top", sh)
123
		os.sleep(0.3)					--only being executed if its already at the end
124
		sh = true
125
		sv = false
126
		gv = true
127
		redstone.setOutput("top", sh)
128
		redstone.setOutput("left", sv)
129
		redstone.setOutput("right", gv)
130
		os.sleep(1)
131
		print("state"..sn)
132
	elseif sn == 10 and not (sh and not sv and gv) then					--state 10 
133
		sh = true
134
		sv = true
135
		gv = true
136
		redstone.setOutput("top", sh)
137
		redstone.setOutput("left", sv)
138
		redstone.setOutput("right", gv)
139
		drillpulse()
140
		os.sleep(1)
141
		print("state"..sn)
142
	elseif sn == 0 then						--manual control for all inputs
143-
	elseif sn == 10 then					--state 10 
143+
144
		gh = false
145
		sv = false
146
		gv = false
147
		sg = false
148
		redstone.setOutput("top", sh)
149
		redstone.setOutput("bottom", gh)
150
		redstone.setOutput("left", sv)
151
		redstone.setOutput("right", gv)		
152
		redstone.setOutput("front", sg)
153
	elseif sn == 13 then
154
			sh = true
155
			sv = false
156
			gv = true
157
			redstone.setOutput("top", sh)
158
			redstone.setOutput("left", sv)
159
			redstone.setOutput("right", gv)	
160
			os.sleep(2)
161
			sh = true
162
			sv = false 
163
			gv = false
164
			redstone.setOutput("top", sh)
165
			redstone.setOutput("left", sv)
166
			redstone.setOutput("right", gv)
167
			os.sleep(4)
168
		print("state"..sn)
169
	elseif sn == 15 then					--inventory full, drill go up and stop
170
		sh = true
171
		sv = false
172
		gv = false
173
		redstone.setOutput("top", sh)
174
		redstone.setOutput("left", sv)
175
		redstone.setOutput("right", gv)		
176
		print("state"..sn)
177
178
	
179
	
180
	end
181
end