druidbruce

CC tweaked create miner output control 1D

Nov 21st, 2021 (edited)
1,192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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.         end
  57.     elseif sn == 7 then                     --state 7
  58.         sh = true
  59.         sv = true
  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.         sh = true
  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.         sh = false
  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
Advertisement
Add Comment
Please, Sign In to add comment