Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local args = { . . . }
- if #args ~= 3 then
- print("Verwendung: <Skriptname> <Breite> <Höhe> <Länge>")
- zurück
- Ende
- lokale maxWidth = args[1]
- lokale maxHeight = args[2]
- lokale maxLength = args[3]
- örtliche Höhe = 0
- lokal entladen = 0
- lokal erhoben = 0
- lokal xPos,zPos = 0,0
- lokal xDir,zDir = 0,1
- local goTo -- Weiter unten ausgefüllt
- Lokales Auftanken -- weiter unten aufgefüllt
- shell. run («pastebin get BgrVUJyh kapi»)
- os. loadAPI («kapi»)
- lokale Funktion entladen (_bKeepOneFuelStack)
- print («Laden von Gegenständen. . . » )
- für n=1,16 do
- lokal nCount = turtle. getItemCount (n)
- wenn nCount > 0 dann
- turtle. select (n)
- lokal bDrop = true
- if _bKeepOneFuelStack und turtle. refuel (0) dann
- bDrop = false
- _bKeepOneFuelStack = false
- Ende
- wenn bDrop dann
- turtle. drop ()
- entladen = entladen + nCount
- Ende
- Ende
- Ende
- erhoben = 0
- turtle. select (1)
- Ende
- local function returnSupplies ()
- lokal x,y,z,xd,zd = xPos,Höhe,zPos,xDir,zDir
- print («Rückkehr an die Oberfläche. . . » )
- goTo (0,0,0,-1)
- Lokaler KraftstoffBenötigt = 2* (x+y+z) + 1
- wenn nicht tanken (fuelNeeded) dann
- Entladen (wahr)
- print («Warten auf Treibstoff»)
- während nicht tanken (fuelNeeded) tun
- os. pullEvent («turtle_inventory»)
- Ende
- Sonstiges
- Entladen (wahr)
- Ende
- print («Wiederaufnahme des Bergbaus. . . » )
- goTo (x,y,z,xd,zd)
- Ende
- lokale Funktion collect ()
- lokal bFull = true
- Lokal nTotalItems = 0
- für n=1,16 do
- lokal nCount = turtle. getItemCount (n)
- wenn nCount == 0 dann
- bFull = false
- Ende
- nTotalItems = nTotalItems + nCount
- Ende
- wenn nTotalItems > erfasst wird, dann
- erhoben = nGesamtposten
- if math. fmod (gesammelt + entladen, 50) == 0 dann
- kapi. notify («Mined «. . (erhoben + entladen). . » Artikel. » )
- Ende
- Ende
- wenn bFull dann
- kapi. notify («Keine freien Slots übrig». )
- returnSupplies ()
- kapi. notify («Rücklieferungen»)
- Rückgabe false
- Ende
- zurückgeben true
- Ende
- Funktion tanken (Betrag)
- local fuelLevel = turtle. getFuelLevel ()
- wenn fuelLevel == «unbegrenzt» dann
- zurückgeben true
- ende
- local needed = ammount oder (maxWidth - xPos + maxLength - zPos + maxHeight - height + 2)
- kapi. notify("Kraftstoff: ". . . turtle. getFuelLevel())
- wenn turtle. getFuelLevel() < benötigt dann
- kapi. notify("Tanken: ". . benötigt)
- local fueled = false
- for n=1,16 do
- wenn turtle. getItemCount(n) > 0 dann
- turtle. select(n)
- if turtle. refuel(1) then
- while turtle. getItemCount(n) > 0 und turtle. getFuelLevel() < benötigt do
- turtle. refuel(1)
- Ende
- wenn turtle. getFuelLevel () >= benötigt wird, dann
- turtle. select (1)
- zurückgeben true
- Ende
- Ende
- Ende
- Ende
- turtle. select (1)
- Rückgabe false
- Ende
- zurückgeben true
- Ende
- lokale Funktion tryForwards ()
- wenn nicht tanken () dann
- print («Nicht genug Treibstoff»)
- returnSupplies ()
- Ende
- während turtle. forward () nicht
- wenn turtle. detect () dann
- wenn turtle. dig () dann
- wenn nicht collect () dann
- returnSupplies ()
- Ende
- Sonstiges
- Rückgabe false
- Ende
- elseif turtle. attack () dann
- wenn nicht collect () dann
- returnSupplies ()
- Ende
- Sonstiges
- Schlaf (0,5)
- Ende
- Ende
- xPos = xPos + xDir
- zPos = zPos + zDir
- zurückgeben true
- Ende
- lokale Funktion tryDown ()
- wenn nicht tanken () dann
- kapi. notify («Nicht genug Treibstoff»)
- returnSupplies ()
- Ende
- während turtle. down () nicht
- wenn turtle. detectDown () dann
- wenn turtle. digDown () dann
- wenn nicht collect () dann
- returnSupplies ()
- Ende
- Sonstiges
- Rückgabe false
- Ende
- elseif turtle. attackDown () dann
- wenn nicht collect () dann
- returnSupplies ()
- Ende
- Sonstiges
- Schlaf (0,5)
- Ende
- Ende
- Höhe = Höhe – 1
- if math. fmod (Höhe, 10) == 0 dann
- print («Descended «. . height. . » Meter. » )
- Ende
- zurückgeben true
- Ende
- lokale Funktion tryUp ()
- wenn nicht tanken () dann
- kapi. notify («Nicht genug Treibstoff»)
- returnSupplies ()
- Ende
- während turtle. up () nicht
- wenn turtle. detectUp () dann
- wenn turtle. digUp () dann
- wenn nicht collect () dann
- returnSupplies ()
- Ende
- Sonstiges
- Rückgabe false
- Ende
- elseif turtle. attackUp () dann
- wenn nicht sammeln() dann
- return
Add Comment
Please, Sign In to add comment