Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local r = require( "robot" )
- local term = require( "term" )
- local event = require( "event" )
- local computer = require( "computer" )
- local sides = require( "sides" )
- local well = 1
- local pwr = 2
- local charger = 3
- local dirt = 4
- local waste = 5
- local chunksWide = 1
- local chunksDeep = 1
- local maxEnergy = computer.maxEnergy() * 0.9
- local minEnergy = maxEnergy * 0.1
- local swingFunc = { [sides.forward] = r.swing, [sides.up] = r.swingUp, [sides.down] = r.swingDown }
- local moveFunc = { [sides.forward] = r.forward, [sides.up] = r.up, [sides.down] = r.down }
- local detectFunc = { [sides.forward] = r.detect, [sides.up] = r.detectUp, [sides.down] = r.detectDown }
- local placeFunc = { [sides.forward] = r.place, [sides.up] = r.placeUp, [sides.down] = r.placeDown }
- local phase =
- {
- turn =
- {
- r.turnRight,
- r.turnRight,
- r.turnLeft,
- r.turnLeft
- },
- steps =
- {
- chunksDeep * 16, 1, chunksDeep * 16, 1
- }
- }
- local function dig( slot, side )
- if side == nil then side = sides.forward end
- if slot ~= nil then r.select( slot ) end
- if detectFunc[side]() then swingFunc[side]() end
- end
- local function place( slot, side )
- if side == nil then side = sides.forward end
- dig( waste, side )
- r.select( slot )
- placeFunc[side]()
- end
- local function move( side )
- if side == nil then side = sides.forward end
- dig( waste, side )
- a, b = moveFunc[side]()
- if a == nil then
- print( "Move failed: "..b )
- end
- end
- local function loadSlot( str )
- print( "Shift click "..str )
- event.pull( "inventory_changed" )
- end
- term.clear()
- term.setCursor( 1, 1 )
- print( "WellMaster (1.0)\n" )
- loadSlot( "pickaxe then mining well" )
- loadSlot( "dimensional transceiver" )
- loadSlot( "charger")
- loadSlot( "dirt stack" )
- print( "Mining!!!" )
- for x = 1, chunksWide * 8 do
- for p = 1, 4 do
- for i = 1, phase.steps[p] do
- r.select( dirt )
- r.placeDown()
- place( well )
- move( sides.up )
- place( pwr )
- if computer.energy() < minEnergy then
- move( sides.up )
- place( charger )
- while computer.energy() < maxEnergy() do os.sleep( 1 ) end
- dig( charger )
- move( sides.down )
- else
- os.sleep( 10 )
- end
- dig( pwr )
- move( sides.down )
- dig( well )
- move( sides.forward )
- end
- phase.turn[p]()
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment