Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- CONFIG
- local whitelist = {
- ["minecraft:coal_ore"] = true,
- ["minecraft:iron_ore"] = true,
- ["minecraft:gold_ore"] = true,
- ["minecraft:diamond_ore"] = true,
- ["minecraft:redstone_ore"] = true,
- ["minecraft:lapis_ore"] = true
- }
- local branchLength = 30
- local branchesPerSide = 5
- local fuelThreshold = 100
- -- UTILS
- function refuelIfNeeded()
- if turtle.getFuelLevel() < fuelThreshold then
- for i = 1, 16 do
- turtle.select(i)
- if turtle.refuel(1) then
- print("Refueled")
- break
- end
- end
- end
- end
- function inventoryFull()
- for i = 1, 16 do
- if turtle.getItemCount(i) == 0 then
- return false
- end
- end
- return true
- end
- function emptyInventory()
- print("Déchargement...")
- for i = 1, 16 do
- turtle.select(i)
- turtle.drop()
- end
- end
- function isValuable()
- local success, data = turtle.inspect()
- if success and whitelist[data.name] then
- return true
- end
- return false
- end
- function digSafe()
- if turtle.detect() then
- local success, data = turtle.inspect()
- if data and data.name == "minecraft:lava" then
- print("Lave détectée, évitée.")
- return false
- end
- turtle.dig()
- end
- return true
- end
- function mineForward()
- if digSafe() then
- turtle.forward()
- end
- end
- -- MINING LOGIC
- function mineBranch()
- for i = 1, branchLength do
- if inventoryFull() then
- goBack(i)
- emptyInventory()
- returnToBranch(i)
- end
- if isValuable() then
- turtle.dig()
- end
- mineForward()
- turtle.digUp()
- turtle.digDown()
- end
- -- Retour à la galerie principale
- turtle.turnLeft()
- turtle.turnLeft()
- for i = 1, branchLength do
- turtle.forward()
- end
- turtle.turnRight()
- end
- function goBack(steps)
- turtle.turnLeft()
- turtle.turnLeft()
- for i = 1, steps do
- turtle.forward()
- end
- turtle.turnRight()
- turtle.turnRight()
- end
- function returnToBranch(steps)
- for i = 1, steps do
- mineForward()
- end
- end
- -- MAIN PROGRAM
- refuelIfNeeded()
- for side = 1, 2 do
- for b = 1, branchesPerSide do
- print("Branche "..b.." côté "..side)
- turtle.turnRight()
- mineForward()
- turtle.turnLeft()
- mineBranch()
- end
- -- Changement de côté
- turtle.turnLeft()
- turtle.turnLeft()
- end
- print("Minage terminé.")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement