Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- print("Running obsidian generator")
- local function find(name, damage)
- for i = 1, 16 do
- local item = turtle.getItemDetail(i)
- if item then
- if item.name == name and (item.damage == damage or item.metadata == damage) then
- return i
- end
- end
- end
- return false
- end
- local function face(name, meta, using, altname)
- using = using or turtle.turnRight
- for i = 1, 4 do
- local ok, block = turtle.inspect()
- if ok then
- if (block.name == name or block.name == altname) and block.metadata == meta then
- return true
- else
- print(block and block.name, block.metadata)
- end
- end
- using()
- end
- return false
- end
- local tries = 0
- while true do
- -- determine stage we are on
- local findBucket = find("minecraft:bucket", 0)
- local findLava = find("minecraft:lava_bucket", 0)
- if findBucket then
- print("Got a bucket.")
- tries = 0
- -- get lava
- turtle.select(findBucket)
- turtle.dropUp()
- turtle.select(1)
- elseif findLava then
- print("Got a lava bucket.")
- tries = 0
- -- place lava, dig, turn right, drop
- if face("minecraft:water", 1, nil, "minecraft:flowing_water") then
- turtle.select(findLava)
- turtle.place()
- turtle.dig()
- else
- error("Could not find water!")
- end
- else
- -- either waiting for lava bucket, or something went wrong.
- term.clear()
- term.setCursorPos(1, 1)
- tries = tries + 1
- print(string.format("Waiting for lava bucket... %d", tries))
- if tries >= 100 then
- printError("We've probably run out of lava.")
- os.sleep(5)
- os.shutdown()
- end
- end
- os.sleep(0.1)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement