From 2d067612807414eb73d57ce898a5c51363c9b3c1 Mon Sep 17 00:00:00 2001 From: Navid Sassan Date: Thu, 23 Nov 2023 00:07:33 +0100 Subject: [PATCH] add lava-collector --- lava-collector | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 lava-collector diff --git a/lava-collector b/lava-collector new file mode 100644 index 0000000..527bd6b --- /dev/null +++ b/lava-collector @@ -0,0 +1,77 @@ +-- vi: ft=lua +-- Goal: collect lava using buckets in the nether, deposit the buckets into a fluid transposer that extracts the lava and sends it to a power generator + +local function isEmptyBucket() + return turtle.getItemDetail().name == "minecraft:bucket" +end + +local function isLavaBucket() + return turtle.getItemDetail().name == "minecraft:lava_bucket" +end + +local function findFirstEmptyBucket() + for i=1,16 do + if isEmptyBucket() then + print('Slot' .. i .. 'is an empty bucket') + return i + end + end + return nil +end + +local function findFirstLavaBucket() + for i=1,16 do + if isLavaBucket() then + print('Slot' .. i .. 'is an lava bucket') + return i + end + end + return nil +end + +local function returnToBase() + print(ForwardCounter) +end + +local function despositRefill() +end + +local function refuel() + local lava_bucket = findFirstLavaBucket() + if lava_bucket == nil then + return nil + end + + turtle.select(lava_bucket) + turtle.refuel() +end + + +ForwardCounter = 0 + +while true do + if turtle.getFuelLevel() < 1000 then + if refuel() == nil then + print('refulling failed. probably the end of the lava lake. returning to base') + returnToBase() + break + end + end + + local bucket = findFirstEmptyBucket() + + if bucket == nil then + print('could not find any empty buckets. returning and refilling') + returnToBase() + despositRefill() + end + + turtle.select(bucket) + -- try to fill it + turtle.placeDown() + if isEmptyBucket() then + if turtle.forward() then + ForwardCounter = ForwardCounter + 1 + end + end +end