test
This commit is contained in:
parent
5238e31018
commit
15ae824816
28
libs/behavior.lua
Normal file
28
libs/behavior.lua
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
local M = {}
|
||||||
|
|
||||||
|
local logger = require("logger")
|
||||||
|
local currentStatus = "idle"
|
||||||
|
|
||||||
|
function M.getStatus()
|
||||||
|
return currentStatus
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.run()
|
||||||
|
while true do
|
||||||
|
currentStatus = "moving backward"
|
||||||
|
logger.log("Started moving backward")
|
||||||
|
for i = 1, 10 do
|
||||||
|
turtle.back()
|
||||||
|
sleep(0.5)
|
||||||
|
end
|
||||||
|
|
||||||
|
currentStatus = "moving forward"
|
||||||
|
logger.log("Started moving forward")
|
||||||
|
for i = 1, 10 do
|
||||||
|
turtle.forward()
|
||||||
|
sleep(0.5)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
||||||
29
libs/logger.lua
Normal file
29
libs/logger.lua
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
local M = {}
|
||||||
|
|
||||||
|
local logLines = {}
|
||||||
|
local maxLines = 5
|
||||||
|
|
||||||
|
function M.log(msg)
|
||||||
|
local time = textutils.formatTime(os.time(), true)
|
||||||
|
local entry = string.format("[%s] %s", time, msg)
|
||||||
|
|
||||||
|
table.insert(logLines, entry)
|
||||||
|
if #logLines > maxLines then
|
||||||
|
table.remove(logLines, 1)
|
||||||
|
end
|
||||||
|
|
||||||
|
M.draw()
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.draw()
|
||||||
|
local w, h = term.getSize()
|
||||||
|
for i = 1, maxLines do
|
||||||
|
term.setCursorPos(1, h - maxLines + i)
|
||||||
|
term.clearLine()
|
||||||
|
if logLines[i] then
|
||||||
|
term.write(logLines[i])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
||||||
93
libs/turtleutils.lua
Normal file
93
libs/turtleutils.lua
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
local M = {}
|
||||||
|
|
||||||
|
-- Helper: retry turtle action up to N times
|
||||||
|
local function try(actionFn, times)
|
||||||
|
times = times or 5
|
||||||
|
for i = 1, times do
|
||||||
|
if actionFn() then return true end
|
||||||
|
sleep(0.5)
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Basic movement
|
||||||
|
function M.forward()
|
||||||
|
return try(turtle.forward)
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.back()
|
||||||
|
return try(turtle.back)
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.up()
|
||||||
|
return try(turtle.up)
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.down()
|
||||||
|
return try(turtle.down)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Digging with movement
|
||||||
|
function M.digForward()
|
||||||
|
while turtle.detect() do
|
||||||
|
turtle.dig()
|
||||||
|
sleep(0.3)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.digUp()
|
||||||
|
while turtle.detectUp() do
|
||||||
|
turtle.digUp()
|
||||||
|
sleep(0.3)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.digDown()
|
||||||
|
while turtle.detectDown() do
|
||||||
|
turtle.digDown()
|
||||||
|
sleep(0.3)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Move forward, clearing blocks if necessary
|
||||||
|
function M.moveUntilClearForward()
|
||||||
|
while not turtle.forward() do
|
||||||
|
if turtle.detect() then
|
||||||
|
turtle.dig()
|
||||||
|
else
|
||||||
|
sleep(0.5)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Inspection
|
||||||
|
function M.inspectForward()
|
||||||
|
local success, data = turtle.inspect()
|
||||||
|
if success then return data else return nil end
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.inspectUp()
|
||||||
|
local success, data = turtle.inspectUp()
|
||||||
|
if success then return data else return nil end
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.inspectDown()
|
||||||
|
local success, data = turtle.inspectDown()
|
||||||
|
if success then return data else return nil end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Turning
|
||||||
|
function M.turnLeft()
|
||||||
|
turtle.turnLeft()
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.turnRight()
|
||||||
|
turtle.turnRight()
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.turnAround()
|
||||||
|
turtle.turnLeft()
|
||||||
|
turtle.turnLeft()
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
||||||
Loading…
Reference in New Issue
Block a user