init
This commit is contained in:
commit
12ffbdc45d
76 changed files with 79368 additions and 0 deletions
116
disk/0/build
Normal file
116
disk/0/build
Normal file
|
@ -0,0 +1,116 @@
|
|||
sf = require("structure")
|
||||
local pf = require("pathfinding")
|
||||
local im = require("inventorymanager")
|
||||
local origin = vector.new(-15,235,120)
|
||||
function build(x,y,z)
|
||||
store = {height = 0}
|
||||
grocerylist = {}
|
||||
for h = 1,8 do
|
||||
store[h] = {width = 0}
|
||||
for w = 1,8 do
|
||||
store[h][w] = {depth = 0}
|
||||
for d = 1,8 do
|
||||
bool, data = sf.blockat(x+w,z+d,y+h)
|
||||
if bool then
|
||||
store[h][w][d] = data
|
||||
store[h][w].depth = d
|
||||
grocerylist[store[h][w][d]] =
|
||||
(grocerylist[store[h][w][d]] or 0)+1
|
||||
end
|
||||
end
|
||||
if store[h][w].depth>0 then
|
||||
store[h].width = w
|
||||
end
|
||||
end
|
||||
if store[h].width>0 then
|
||||
store.height = h
|
||||
end
|
||||
end
|
||||
if store.height==0 then
|
||||
--print("cell at",x,y,z,"is done")
|
||||
removechunk(x,y,z)
|
||||
return true
|
||||
|
||||
end
|
||||
flag = false
|
||||
for k,v in pairs(grocerylist) do
|
||||
if im.count(k) < v then
|
||||
print("not enough "..k.." need "..v.." of it")
|
||||
flag = true
|
||||
end
|
||||
end
|
||||
if turtle.getFuelLevel() < 2000 then
|
||||
print("too lazy for that")
|
||||
flag = true
|
||||
end
|
||||
if flag then
|
||||
pf.to(vector.new(pf.home.x,position.y+8,pf.home.z))
|
||||
pf.returnHome()
|
||||
return false
|
||||
end
|
||||
pf.to(origin + vector.new(x+1,y+8,z+1))
|
||||
for h = 1,8 do
|
||||
print(store[h].width)
|
||||
for w = 1,store[h].width do
|
||||
print(store[h][w].depth)
|
||||
for d = 1,store[h][w].depth do
|
||||
if store[h][w][d] then
|
||||
pf.to(origin+vector.new(x+w,y+h,z+d))
|
||||
im.select(store[h][w][d])
|
||||
turtle.placeDown()
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
removechunk(x,y,z)
|
||||
return true
|
||||
end
|
||||
|
||||
function removechunk(x,y,z)
|
||||
|
||||
--::success::
|
||||
local file = fs.open("tobuild","r")
|
||||
local rest = {}
|
||||
line = file.readLine()
|
||||
while line do
|
||||
table.insert(rest,line)
|
||||
line = file.readLine()
|
||||
end
|
||||
file.close()
|
||||
file = fs.open("tobuild","w")
|
||||
str = tostring(vector.new(x,y,z))
|
||||
for _,v in ipairs(rest) do
|
||||
if v ~= str then
|
||||
file.writeLine(v)
|
||||
end
|
||||
end
|
||||
file.close()
|
||||
end
|
||||
function stringtovec(str)
|
||||
parts = {}
|
||||
for part in string.gmatch(str, "([^,]+)") do
|
||||
table.insert(parts, part)
|
||||
end
|
||||
return vector.new(unpack(parts))
|
||||
end
|
||||
--pf.to(origin)
|
||||
file=fs.open("tobuild","r")
|
||||
chunk = file.readLine()
|
||||
file.close()
|
||||
print(chunk)
|
||||
vec = stringtovec(chunk)
|
||||
X1,Y1,Z1 = vec.x,vec.y,vec.z
|
||||
print(X1,Y1,Z1)
|
||||
while build(X1,Y1,Z1) do
|
||||
-- term.clear()
|
||||
print(X1,Y1,Z1)
|
||||
file = fs.open("tobuild","r")
|
||||
chunk = file.readLine()
|
||||
vec = stringtovec(chunk)
|
||||
X1,Y1,Z1 = vec.x,vec.y,vec.z
|
||||
file.close()
|
||||
--term.clear()
|
||||
sleep(0)
|
||||
end
|
||||
pf.returnHome()
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue