feat: add more fail-safes
This commit is contained in:
parent
03213c3ab7
commit
8e07f8adc9
1 changed files with 44 additions and 34 deletions
78
code.fnl
78
code.fnl
|
@ -1,45 +1,55 @@
|
|||
(local depth 60)
|
||||
(local cable-dir "left")
|
||||
(local outputs {
|
||||
:right 1
|
||||
:left 2
|
||||
:up 4
|
||||
:down 8
|
||||
:break 16
|
||||
:rejuv 32})
|
||||
(local cable-dir :left)
|
||||
(local outputs {:right 1
|
||||
:left 2
|
||||
:up 4
|
||||
:down 8
|
||||
:break 16
|
||||
:rejuv 32
|
||||
:error 64
|
||||
:check 128})
|
||||
|
||||
(fn pulse-signal [output]
|
||||
(local id (. outputs output))
|
||||
|
||||
(redstone.setBundledOutput cable-dir id)
|
||||
(os.sleep 1)
|
||||
(redstone.setBundledOutput cable-dir 0)
|
||||
(os.sleep 1))
|
||||
|
||||
(fn check-gantry []
|
||||
(print "Checking gantry position")
|
||||
(redstone.setBundledOutput cable-dir (. outputs :break))
|
||||
(os.sleep 2)
|
||||
(when (not (= (redstone.getBundledInput cable-dir)
|
||||
(+ (. outputs :break) (. outputs :check))))
|
||||
(error "Incorrect gantry position!")))
|
||||
|
||||
(print "Moving gantry into chunk")
|
||||
(for [_ 1 16]
|
||||
(pulse-signal :right))
|
||||
(fn run []
|
||||
(check-gantry)
|
||||
(print "Moving gantry into chunk")
|
||||
(for [_ 1 16]
|
||||
(pulse-signal :right))
|
||||
(print :Mining)
|
||||
(for [_ 1 depth]
|
||||
(pulse-signal :down)
|
||||
(pulse-signal :break))
|
||||
;; Wait for items to go into chest
|
||||
(print "Waiting for items")
|
||||
(os.sleep 60)
|
||||
(print "Resetting gantry")
|
||||
(for [_ 1 depth]
|
||||
(pulse-signal :up))
|
||||
(for [_ 1 16]
|
||||
(pulse-signal :left))
|
||||
(os.sleep 3)
|
||||
(check-gantry)
|
||||
(print "Activating rejuvenator")
|
||||
(redstone.setBundledOutput cable-dir (. outputs :rejuv))
|
||||
(os.sleep 20)
|
||||
(redstone.setBundledOutput cable-dir 0)
|
||||
nil)
|
||||
|
||||
(print "Mining")
|
||||
(for [_ 1 depth]
|
||||
(pulse-signal :down)
|
||||
(pulse-signal :break))
|
||||
|
||||
;; Wait for items to go into chest
|
||||
(print "Waiting for items")
|
||||
(os.sleep 60)
|
||||
|
||||
(print "Resetting gantry")
|
||||
(for [_ 1 depth]
|
||||
(pulse-signal :up))
|
||||
|
||||
(for [_ 1 16]
|
||||
(pulse-signal :left))
|
||||
|
||||
(os.sleep 3)
|
||||
|
||||
(print "Activating rejuvenator")
|
||||
(redstone.setBundledOutput cable-dir (. outputs :rejuv))
|
||||
(os.sleep 20)
|
||||
(redstone.setBundledOutput cable-dir 0)
|
||||
(local (_ err) (pcall run []))
|
||||
(when err
|
||||
(print err)
|
||||
(redstone.setBundledOutput cable-dir (. outputs :error)))
|
||||
|
|
Loading…
Reference in a new issue