From 6ff663bb444e8006312c4fd2e718358dbe33e6a9 Mon Sep 17 00:00:00 2001 From: brulijam Date: Sat, 22 Jun 2024 00:24:29 +0200 Subject: [PATCH] . --- src/brulijam/lib/tutel.lua | 102 ++++++++++++++++++++++++------------- 1 file changed, 66 insertions(+), 36 deletions(-) diff --git a/src/brulijam/lib/tutel.lua b/src/brulijam/lib/tutel.lua index 9ad7d5d..b5a6128 100644 --- a/src/brulijam/lib/tutel.lua +++ b/src/brulijam/lib/tutel.lua @@ -1,3 +1,5 @@ +local basic = require("basic") + --secure digging wrappers local function secureDig() while turtle.detect() do @@ -19,68 +21,96 @@ end --location returning move wrapper --https://www.youtube.com/watch?v=bZe5J8SVCYQ -local function forward(x, y, z, r) - if turtle.forward() then - sleep(1) - if r == 0 then - z = z + 1 - elseif r == 1 then - x = x - 1 - elseif r == 2 then - z = z - 1 - elseif r == 3 then - x = x + 1 - end - end - return x,y,z,r + +local function savePos() + basic.writeToFile("brulijam/files/pos.txt", textutils.serialize(state)) end -local function back(x, y, z, r) +local function getPos() + if not fs.exists "brulijam/files/pos.txt" then + basic.clearDisplay() + print("[Postion init]") + + write("x: ") + x = read() + write("y: ") + y = read() + write("z: ") + z = read() + write("r (S=0,W=1,N=2,E=3):") + r = read() + basic.clearDisplay() + + pos = {} + pos["x"] = x + pos["y"] = y + pos["z"] = z + pos["r"] = r + basic.writeToFile("brulijam/files/pos.txt", textutils.serialize(pos)) + else + pos = basic.readFileAll("brulijam/files/pos.txt") + pos = textutils.unserialize(pos) + end + return pos +end + +local function forward() + if turtle.forward() then + local pos = getPos() + sleep(1) + if pos["r"] == 0 then + pos["z"] = pos["z"] + 1 + elseif pos["r"] == 1 then + pos["x"] = pos["x"] - 1 + elseif pos["r"] == 2 then + pos["z"] = pos["z"] - 1 + elseif pos["r"] == 3 then + pos["x"] = pos["x"] + 1 + end + end +end + +local function back() sleep(1) if turtle.back() then - if r == 0 then - z = z - 1 - elseif r == 1 then - x = x + 1 - elseif r == 2 then - z = z + 1 - elseif r == 3 then - x = x - 1 + if pos["r"] == 0 then + pos["z"] = pos["z"] - 1 + elseif pos["r"] == 1 then + pos["x"] = pos["x"] + 1 + elseif pos["r"] == 2 then + pos["z"] = pos["z"] + 1 + elseif pos["r"] == 3 then + pos["x"] = pos["x"] - 1 end end - return x,y,z,r end -local function up(y) +local function up() sleep(1) if turtle.up() then - y = y + 1 + pos["y"] = pos["y"] + 1 end - return y end -local function down(y) +local function down() sleep(1) if turtle.down() then - y = y - 1 + pos["y"] = pos["y"] - 1 end - return y end -local function left(r) +local function left() sleep(1) if turtle.turnLeft() then - r = (r-1) % 4 + pos["r"] = (pos["r"]-1) % 4 end - return r end -local function right(r) +local function right() sleep(1) if turtle.turnRight() then - r = (r+1) % 4 + pos["r"] = (pos["r"]+1) % 4 end - return r end