View difference between Paste ID: BfnmYS5q and CJ5iY7G0
SHOW: | | - or go back to the newest paste.
1-
--Tunnel Simple Script v1
1+
--Hollow Simple Script v1
2
--Turtle Program Computer Craft
3
--by SemlerPDX(July2021)
4
5-
--pastebin get CJ5iY7G0 Tunnel
5+
--pastebin get BfnmYS5q Hollow
6
7
--COMMENT SYNTAX EXPLAINATION
8-
--torches must be in slot 1 (one for every 8th block, 2nd row high)
8+
--torches must be in slot 1 (one for every 8th block, every 5th row)
9
10-
--Tunnel 20 (length in increments of 10)
10+
--example:  Hollow 22 31 (makes empty room 22 blocks deep and 31 blocks wide, with full torch coverage)
11-
--example:  Tunnel 20 (makes tunnel 20 deep with torches)
11+
12
13
-- Variables --
14
local args = {...}
15
local d = args[1] or 0
16
local w = args[2] or 0
17
local r = 0 + d
18
local dLit = 4
19
local wLit = 0
20
local t = turtle
21-
if #args ~= 1 then
21+
22
-- F-ACK --
23-
  print("<ex: Tunnel 20 (starts digging tunnel 20 blocks deep)>")
23+
if #args ~= 2 then
24
  print("<error420: syntax>")
25
  print("<ex: Hollow 20 10 (starts digging hollow 20 blocks deep and 10 blocks wide)>")
26
  return
27
end
28-
  print("<error421: missing length>")
28+
  
29-
  print("<ex: Tunnel 20 (starts digging tunnel 20 blocks deep)>")
29+
30
  print("<error421: missing depth>")
31
  print("<ex: Hollow 20 10 (starts digging hollow 20 blocks deep and 10 blocks wide)>")
32
  return
33
end
34
35
--if d <= 6 then
36
--  print("<error421: depth too small>")
37
--  print("<ex: Hollow 10 10 (starts digging hollow 10 blocks deep and 10 blocks wide)>")
38
--  return
39
--end
40
41
-- Functions --
42
--force forward function by CCCode
43
local function forceForward()
44
  while not t.forward() do
45
    t.dig()
46
  end
47
end
48
49
--dig down, decrement lit variable
50
local function fDown()
51
  t.digDown()
52
  t.down()
53
end
54
55
--dig up, turn around
56
local function fUp()
57-
    for s=1,10 do
57+
58-
      if v == 3 and s == 5 then
58+
59-
		t.placeUp()
59+
60
61
local function fRow()
62
  fUp()
63
  fUp()
64
  for v=1,3 do
65
    for s=1,d do
66
      if v == 3 then
67-
	end
67+
      if dLit == 0 and wLit == 0 then
68
      dLit = 8
69
      fUp()
70
      t.placeDown()
71
      forceForward()
72
      fDown()
73
      else
74
          forceForward()
75
      end
76
    if wLit == 0 then
77
        dLit = dLit - 1
78
    end
79
    else
80
        forceForward()
81
    end
82
    end
83
    if v ~= 3 then
84
      t.turnLeft()
85
      t.turnLeft()
86
      fDown()
87
  end
88
  end
89-
print("Beginning Tunnel "..tostring(d).." blocks long...")
89+
90-
--t.up()
90+
91-
--t.down()
91+
local function fTurn()
92
  t.turnLeft()
93
  forceForward()
94
  t.turnLeft()
95-
while d ~= 0 do
95+
96
97
98
--return home
99
local function fHome()
100
  fUp()
101
  t.turnLeft()
102
  t.turnLeft()
103-
    d = d - 10
103+
  r = 0 + d
104
  while r ~=0 do
105
    forceForward()
106
    r = r -1
107
  end
108
  fDown()
109-
    textutils.slowPrint("Cancelling Tunnel...", 15)
109+
110
111
--clear display screen
112
local function fset()
113
  term.clear()
114
  term.setCursorPos(1,1)
115
end
116
117
-- Pre-fire scripts --
118
fset()
119-
  print("Tunnel Cancelled by user")
119+
print("Beginning Hollow "..tostring(d).." blocks deep and "..tostring(w).." blocks wide...")
120
sleep(1)
121
print(" -press any key to cancel-")
122-
  print("Tunnel Completed")
122+
123-
  print("Returning home...")
123+
124
---- Main Loop ----
125-
  t.select(1)
125+
while w ~= 0 do
126
127
  local function fcancel()
128
    local event, key = os.pullEvent("key")
129
  end
130
131
  local function fmain()
132
    fRow()
133
  fHome()
134
  fTurn()
135
    w = w - 1
136
  if wLit == 0 then
137
    wLit = 5
138
  end
139
  wLit = wLit - 1
140
  dLit = 4
141
  end
142
143
  FunctionEnabled = parallel.waitForAny(fcancel,fmain)
144
145
  if FunctionEnabled == 1 then
146
    textutils.slowPrint("Cancelling Hollow...", 15)
147
    sleep(1.65)
148
    break
149
  end
150
151
end
152
153
-- Evaluate Ending --
154
if FunctionEnabled == 1 then    --(1 = functions cancelled, 2 = standard function looped)
155
  fset()
156
  print("Hollow Cancelled by user")
157
else
158
  fset()
159
  print("Hollow "..tostring(args[1]).." "..tostring(args[2]).." Finished")
160
  fset()
161
  print("...program complete")
162
end