Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ---------------------------------------------
- -- Vrill's melon/pumpkin/sugar_cane farmer --
- -- v 1.1 (size: 16 + 16) --
- -- --
- -- 1. edit startup --
- -- 2. shell.run("melon") --
- -- 3. save --
- ---------------------------------------------
- function isnumber(myvar)
- local num
- if type(myvar)=="number" then return true end
- if type(myvar)~="string" then return false end
- num=tonumber(myvar)
- if num~=nil then return true end
- return false
- end
- function move(n)
- local can_move=true
- local i
- if n<0 then
- n=-n
- for i=1,n do
- can_move=turtle.back()
- while not can_move do
- print("There is a something on my way!")
- sleep(2)
- turtle.attack()
- can_move=turtle.back()
- end
- end
- else
- for i=1,n do
- can_move=turtle.forward()
- while not can_move do
- print("There is a something on my way!")
- sleep(2)
- turtle.attack()
- can_move=turtle.forward()
- end
- end
- end
- end
- function moveUp(n)
- local can_move=true
- local i
- if n<0 then
- n=-n
- for i=1,n do
- can_move=turtle.down()
- while not can_move do
- print("There is a something on my way!")
- sleep(2)
- turtle.attackDown()
- can_move=turtle.down()
- end
- end
- else
- for i=1,n do
- can_move=turtle.up()
- while not can_move do
- print("There is a something on my way!")
- sleep(2)
- turtle.attackUp()
- can_move=turtle.up()
- end
- end
- end
- end
- function itemsInInventory()
- local itmsum=0
- local i
- for i=1,16 do
- itmsum=itmsum+turtle.getItemCount(i)
- end
- if itmsum>0 then
- return true
- end
- return false
- end
- function dropAll()
- local i=1
- local dropcnt=0
- for i=16,1,-1 do
- dropcnt=turtle.getItemCount(i)
- if dropcnt > 0 then
- turtle.select(i)
- turtle.drop(dropcnt)
- end
- end
- end
- function refuelMe()
- local i=1
- local fuelcnt=0
- for i=16,1,-1 do
- turtle.select(i)
- fuelcnt=turtle.getItemCount(i)
- turtle.refuel(fuelcnt)
- end
- if itemsInInventory() then
- turtle.turnRight()
- turtle.turnRight()
- dropAll()
- turtle.turnLeft()
- turtle.turnLeft()
- end
- end
- function GUI(posX,posY,flevel)
- local i
- term.clear()
- term.setCursorPos(1+posX, 1+posY)
- term.write("+-melon/pumpkin/sugar_cane farmer-+")
- for i=2,5 do
- term.setCursorPos(1+posX, i+posY)
- term.write("| |")
- end
- term.setCursorPos(1+posX, 6+posY)
- term.write("+---------------------------------+")
- term.setCursorPos(3+posX, 3+posY)
- print(" <Label> ",os.getComputerLabel())
- term.setCursorPos(3+posX, 4+posY)
- print(" <Fuel Level> ",turtle.getFuelLevel())
- if turtle.getFuelLevel() < flevel then
- for i=5,8 do
- term.setCursorPos(1+posX, i+posY)
- term.write("| |")
- end
- term.setCursorPos(1+posX, 9+posY)
- term.write("+---------------------------------+")
- term.setCursorPos(10+posX, 6+posY)
- print("Not enough fuel!")
- term.setCursorPos(6+posX, 7+posY)
- print("Please feed me with fuel.")
- end
- end
- --------------------------------
- --Locals:
- local i
- local need_work=false
- local fuelneed=80
- local aisle_width=1
- local field_length=16
- fuelneed=field_length*2 + 2 + (aisle_width+1)*2 + 10
- while true do
- need_work=false
- if itemsInInventory() then
- refuelMe()
- end
- GUI(2,2,fuelneed)
- if turtle.detect() then need_work=true end
- if turtle.getFuelLevel() < fuelneed then need_work=false end
- if need_work then
- moveUp(1)
- for i=1,field_length do
- turtle.dig()
- move(1)
- if turtle.detectDown() then
- turtle.digDown()
- end
- end
- turtle.turnRight()
- --
- move(aisle_width)
- --
- turtle.dig()
- move(1)
- turtle.turnRight()
- if turtle.detectDown() then
- turtle.digDown()
- end
- for i=1,field_length do
- turtle.dig()
- move(1)
- if turtle.detectDown() then
- turtle.digDown()
- end
- end
- turtle.turnRight()
- --
- move(aisle_width+1)
- --
- turtle.turnLeft()
- moveUp(-1)
- dropAll()
- turtle.turnLeft()
- turtle.turnLeft()
- end
- sleep(10)
- end
- ------------------
- --shell.run("melon")
- ------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement