Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local slates = {Blank, Reinforced, Imbued, Demonic, Ethereal}
- local stoneAmount = 0
- local slatesAmount = {}
- local waitingTimes = {13, 0, 0, 0, 0}
- local defaultSlot = 16
- local fuelUse = 15
- function init()
- -- count stone
- stone = turtle.getItemCount(9)
- -- count slates
- for i = 0, 4 do
- slatesAmount[i] = turtle.getItemCount(i + 1)
- end
- -- open rednet
- rednet.open("right")
- end
- function getStone(amount)
- turtle.select(9)
- turtle.down()
- turtle.turnLeft()
- turtle.forward()
- turtle.forward()
- turtle.suckUp(amount)
- turtle.back()
- turtle.back()
- turtle.up()
- turtle.turnRight()
- selectDefault()
- end
- function selectDefault()
- turtle.select(defaultSlot)
- end
- function makeSlate(amount, wait, type)
- if stoneAmount < amount then
- getStone(amount - stoneAmount)
- end
- term.clear()
- term.setCursorPos(1,1)
- for i = 1, amount do
- -- select stone
- turtle.select(9)
- turtle.dropUp(1)
- for j = 0, wait - 1 do
- term.clear()
- term.setCursorPos(1,1)
- term.write("Making slate #" .. tostring(i))
- term.setCursorPos(1,2)
- term.write("Waiting: " .. tostring(wait - j))
- os.sleep(1)
- end
- turtle.select(type)
- turtle.suckUp()
- selectDefault()
- end
- end
- function dropOff()
- -- move to position
- turtle.down()
- turtle.turnRight()
- turtle.forward()
- turtle.forward()
- -- drop off items
- for i = 1, 5 do
- turtle.select(i)
- turtle.dropUp()
- end
- -- move back
- turtle.back()
- turtle.back()
- turtle.turnLeft()
- turtle.up()
- end
- function checkFuel()
- return turtle.getFuelLevel() >= fuelUse
- end
- init()
- while true do
- term.write("Waiting on message...")
- id, msg, prot = rednet.receive("bloodaltar")
- term.clear()
- term.setCursorPos(1,1)
- term.write("Message received, executing...")
- if checkFuel() then
- local amountToMake = tonumber(msg[0])
- local slateToMake = msg[1]
- local timerToWait = waitingTimes[msg[1]]
- stoneAmount = turtle.getItemCount(9)
- makeSlate(amountToMake, timerToWait, slateToMake)
- item = turtle.getItemCount(slateToMake)
- if item == amountToMake then
- rednet.broadcast("succes", "bloodaltar")
- dropOff()
- else
- rednet.broadcast("failure", "bloodaltar")
- end
- else
- rednet.broadcast("no_fuel", "bloodaltar")
- end
- term.clear()
- term.setCursorPos(1,1)
- end
Add Comment
Please, Sign In to add comment