Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- write("Loading Enderage module... ")
- Enderage = {}
- Enderage.item = 0
- Enderage.chest = 0
- Enderage.pullFunc = nil
- Enderage.BreakFunc = nil
- Enderage.turns = 0
- Enderage.count = 0
- function Enderage:new(item, chest)
- local o = {}
- setmetatable(o, self)
- self.__index = self
- o.item = item
- o.chest = chest
- o.count = turtle.getItemCount(item)
- return o
- end
- function Enderage:prepare()
- turtle.select(self.chest)
- self.turns = 0
- local ret
- if not turtle.detectUp() and turtle.placeUp() then
- self.breakFunc = turtle.digUp
- self.pullFunc = turtle.suckUp
- elseif not turtle.detectDown() and turtle.placeDown() then
- self.breakFunc = turtle.digDown
- self.pullFunc = turtle.suckDown
- elseif not turtle.detect() and turtle.place() then
- self.breakFunc = turtle.dig
- self.pullFunc = turtle.suck
- else
- while true do
- sleep(0)
- if turns >= 3 then
- Panic.panic("Gassy: No space to refuel!")
- error("That's really bad, not sure how to recover.")
- end
- turtle.turnRight()
- self.turns = self.turns + 1
- if not turtle.detect() and turtle.place() then
- break
- end
- end
- self.breakFunc = turtle.dig
- self.pullFunc = turtle.suck
- end
- end
- function Enderage:pull()
- turtle.select(self.item)
- while not self.pullFunc() do
- Panic.panic("No more items!")
- end
- self.count = turtle.getItemCount(self.item)
- end
- function Enderage:clean()
- turtle.select(self.chest)
- while not self.breakFunc() do
- Panic.panic("Could not break chest! (Can I dig?)")
- end
- while self.turns > 0 do
- turtle.turnLeft()
- self.turns = self.turns - 1
- end
- end
- function Enderage:refill()
- local slot = turtle.getItemCount(self.item)
- if slot ~= 0 then
- self.count = slot
- else
- self:prepare()
- self:pull()
- self:clean()
- end
- end
- function Enderage:sel()
- turtle.select(self.item)
- end
- function Enderage:safePlace(func)
- if self.count <= 0 then
- self:refill()
- self:sel()
- end
- if not func() and self.count ~= 0 and turtle.getItemCount(self.item) == 0 then
- self:refill()
- func()
- end
- self.count = self.count - 1
- end
- function Enderage:place()
- self:safePlace(turtle.place)
- end
- function Enderage:placeUp()
- self:safePlace(turtle.placeUp)
- end
- function Enderage:placeDown()
- self:safePlace(turtle.placeDown)
- end
- print("Done.")
Advertisement
Add Comment
Please, Sign In to add comment