Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local fackelabstand = 8
- local fackelzaehler = 0
- local invposfackel = 0
- local invposchest = 0
- local invposcoal = 0
- function vor()
- while not turtle.forward() do
- turtle.dig()
- end
- while turtle.detectUp() do
- turtle.digUp()
- end
- turtle.digDown()
- if turtle.getFuelLevel() < 10 then
- turtle.select(invposcoal)
- turtle.refuel()
- turtle.select(1)
- end
- end
- function fackel()
- if (fackelzaehler>=fackelabstand) and (invposfackel ~=0) then
- turtle.turnRight()
- turtle.turnRight()
- turtle.down()
- turtle.select(invposfackel)
- if turtle.place() then
- fackelzaehler = 0
- if turtle.getItemCount(invposfackel) == 0 then
- invposfackel = 0
- end
- else
- fackelzaehler = fackelzaehler-2
- end
- turtle.select(1)
- turtle.up()
- turtle.turnRight()
- turtle.turnRight()
- else
- fackelzaehler = fackelzaehler+1
- end
- end
- function gang()
- for j=1,laenge do
- vor()
- fackel()
- end
- end
- function abladen()
- for q=1,16 do
- if (q ~= invposchest) and (q ~= invposcoal) and (q ~= invposfackel) then
- turtle.select(q)
- turtle.drop()
- end
- end
- end
- function voll()
- if (turtle.getItemCount(13)>0) and (invposchest ~= 0) then
- turtle.dig()
- turtle.down()
- turtle.dig()
- turtle.select(invposchest)
- turtle.place()
- abladen()
- turtle.up()
- turtle.select(1)
- end
- end
- function quer()
- for k=1,abstand do
- vor()
- fackel()
- end
- end
- function drehen(currentGang)
- if richtung == "r" then
- turtle.turnRight()
- quer()
- turtle.turnRight()
- richtung = "l"
- if currentGang > 0 then
- write("Gang ")
- write(currentGang)
- write(" fertig.\n")
- end
- else
- turtle.turnLeft()
- quer()
- turtle.turnLeft()
- richtung = "r"
- if currentGang > 0 then
- write("Gang ")
- write(currentGang)
- write(" fertig.\n")
- end
- end
- end
- function invcheck()
- for l=1,16 do
- data = turtle.getItemDetail(l)
- if data then
- if data.name == "minecraft:torch" then
- invposfackel = l
- elseif data.name == "minecraft:chest" then
- invposchest = l
- elseif data.name == "minecraft:coal" then
- invposcoal = l
- end
- end
- end
- end
- function invsort()
- if (invposcoal ~= 0) and (invposcoal ~= 1) then
- turtle.select(invposcoal)
- if turtle.transferTo(1) then
- invposcoal = 1
- end
- end
- if (invposfackel ~= 0) and (invposfackel ~= 2) then
- turtle.select(invposfackel)
- if turtle.transferTo(2) then
- invposfackel = 2
- end
- end
- if (invposchest ~= 0) and (invposchest ~= 3) then
- turtle.select(invposchest)
- if turtle.transferTo(3) then
- invposchest = 3
- end
- end
- turtle.select(1)
- end
- function fuelcheck()
- needed = (laenge+abstand)*anzahl*2
- if turtle.getFuelLevel() < needed then
- if invposcoal == 0 then
- write("[Fuelcheck] !!!ACHTUNG!!! Treibstoff nicht ausreichend\n")
- else
- diff = needed - turtle.getFuelLevel()
- if turtle.getItemCount(invposcoal) >= (diff/80) then
- turtle.select(invposcoal)
- while turtle.getFuelLevel() < needed do
- turtle.refuel()
- end
- write("[Fuelcheck] Treibstoff nachgefüllt\n")
- else
- write("[Fuelcheck] !!!ACHTUNG!!! Treibstoff nicht ausreichend\n")
- end
- end
- else
- write("[Fuelcheck] Treibstoff ausreichend\n")
- end
- write("Abbrechen mit 'x', sonst start... ")
- auswahl = io.read()
- if auswahl == "x" then
- error()
- end
- end
- -- MAIN
- term.clear()
- write("Im Hauptgang links oder rechts in Kopfhöhe an die Wand setzen\n")
- write("Fackeln, Kisten, Kohle ins Inventar\n")
- write("!!!UNTERSTE REIHE BLEIBT FREI!!!\n")
- write("\nLaenge der Gänge: ")
- laenge = io.read()
- write("Abstand der Gänge: ")
- abstand = io.read()
- abstand = abstand+1
- --abstand = 3
- if abstand <= 0 then
- fackelabstand = (((laenge*2)/100)*70)
- end
- write("Anzahl der Gangpaare (hin-zurück): ")
- anzahl = io.read()
- write("\nIn welche Richtung fortfahren?\n")
- write("rechts (r) oder links (l): ")
- richtung = read()
- term.clear()
- fuelcheck()
- for i=1,anzahl do
- invcheck()
- invsort()
- gang()
- voll()
- invcheck()
- invsort()
- drehen(0)
- gang()
- voll()
- drehen(i)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement