Advertisement
amsarge

Early Mine Script

Feb 24th, 2022 (edited)
819
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.69 KB | None | 0 0
  1. local SLOT_COUNT = 16
  2. local d = "north"
  3. local width, depth, height = 10, 10, 1
  4.  
  5. if (#arg == 2) then
  6.     width = tonumber(arg[1])
  7.     depth = tonumber(arg[2])
  8.   else
  9.     print('No arguments given using defaults 10 x 10') -- asks for number input
  10. end
  11.  
  12.  
  13.  
  14. DROPPED_ITEMS = { -- Gets items to drop
  15.     "minecraft:stone",
  16.     "minecraft:dirt",
  17.     "minecraft:cobblestone",
  18.     "minecraft:diorite",
  19.     "minecraft:andesite",
  20.     "minecraft:granite",
  21.     "minecraft:sand",
  22.     "minecraft:gravel",
  23.     "minecraft:redstone",
  24.     "minecraft:lapis_lazuli",
  25.     "minecraft:flint",
  26.     "railcraft:ore_metal",
  27.     "extrautils2:ingredients",
  28.     "minecraft:dye",
  29.     "thaumcraft:nugget",
  30.     "thaumcraft:crystal_essence",
  31.     "thermalfoundation:material",
  32.     "projectred-core:resource_item",
  33.     "thaumcraft:ore_cinnabar",
  34.     "deepresonance:resonating_ore",
  35.     "forestry:apatite",
  36.     "quark:jasper",
  37.     "quark:cobbled_deepslate",
  38.     "create:gabbro_cobblestone",
  39.     "create:scoria",
  40.     "create:scoria_cobblestone",
  41.     "quark:slate",
  42.     "undergarden:deepsoil",
  43.     "undergarden:depthrock",
  44.     "quark:marble",
  45.     "astralsorcery:marble_raw",
  46.     "create:limestone_cobblestone",
  47.     "create:weathered_limestone_cobblestone",
  48.     "emendatusenigmatica:fluorite_gem",
  49.     "extcaves:lavastone",
  50.     "thermal:cinnabar",
  51.     "tetra:geode",
  52.     "mana-and-artifice:vinteum_ore",
  53.     "minecraft:cobbled_deepslate",
  54.     "twigs:rhyolite",
  55.     "minecraft:tuff",
  56.     "blockus:bluestone",
  57.     "blockus:viridite",
  58.     "blockus:marble",
  59.     "bluckus:limestone",
  60.     "minecraft:raw_copper",
  61.     "lightestlamp:glow_lichen_fiber",
  62.     "soul_ice:lightstone"
  63.  
  64.  
  65.  
  66. }
  67. function dropItems() -- drops items
  68.     print("Purging Inventory...")
  69.     for slot = 1, SLOT_COUNT, 1 do
  70.         local item = turtle.getItemDetail(slot) --gets details on item, if it's = to items to drop it will drop items
  71.         if(item ~= nil) then
  72.             for filterIndex = 1, #DROPPED_ITEMS, 1 do
  73.                 if(item["name"] == DROPPED_ITEMS[filterIndex]) then
  74.                     print("Dropping - " .. item["name"])
  75.                     turtle.select(slot)
  76.                     turtle.dropDown()
  77.                 end
  78.             end
  79.         end
  80.     end
  81. end
  82.  
  83. function manageInventory()
  84.   dropItems()
  85.   turtle.digUp()
  86.   turtle.digDown()
  87. end
  88.  
  89. function checkFuel()
  90.     turtle.select(1)
  91.  
  92.     if(turtle.getFuelLevel() < 50) then
  93.         print("Attempting Refuel...")
  94.         for slot = 1, SLOT_COUNT, 1 do
  95.             turtle.select(slot)
  96.             if(turtle.refuel(1)) then
  97.                 return true
  98.             end
  99.         end
  100.  
  101.         return false
  102.     else
  103.         return true
  104.     end
  105. end
  106.  
  107. function DigUp()
  108.     while(turtle.detectUp()) do
  109.       turtle.digUp()
  110.       turtle.digDown()
  111.       turtle.dig()
  112.  
  113.   end
  114. end
  115.  
  116. function DigDown()
  117.   while(turtle.detectDown()) do
  118.     turtle.digUp()
  119.     turtle.digDown()
  120.     turtle.dig()
  121.  
  122.   end
  123. end
  124.  
  125. function Dig()
  126.     while(turtle.detect()) do
  127.         turtle.digUp()
  128.         turtle.digDown()
  129.         turtle.dig()
  130.  
  131.     end
  132.   end
  133.  
  134.   function detectAndDig()
  135.     Dig()
  136.     DigDown()
  137.     DigUp()
  138.   end
  139.  
  140.  
  141.   function forward()
  142.     detectAndDig()
  143.     turtle.forward()
  144.   end
  145.  
  146.  
  147. function rightTurn()
  148.   turtle.turnRight()
  149.   detectAndDig()
  150.   turtle.forward()
  151.   turtle.turnRight()
  152.   detectAndDig()
  153. end
  154.  
  155.  
  156. function leftTurn()
  157.   turtle.turnLeft()
  158.   detectAndDig()
  159.   turtle.forward()
  160.   turtle.turnLeft()
  161.   detectAndDig()
  162. end
  163.  
  164. function flipDirection()
  165.     if(d == "north") then
  166.         d = "south"
  167.     elseif(d == "south") then
  168.         d = "north"
  169.     elseif(d == "west") then
  170.         d = "east"
  171.     elseif(d == "east") then
  172.         d = "west"
  173.     end
  174.  
  175. end
  176.  
  177. function turnAround(tier)
  178.     if(tier % 2 == 1) then
  179.         if(d == "north" or d == "east") then
  180.             rightTurn()
  181.         elseif(d == "south" or d == "west") then
  182.             leftTurn()
  183.         end
  184.     else
  185.         if(d == "north" or d == "east") then
  186.             leftTurn()
  187.         elseif(d == "south" or d == "west") then
  188.             rightTurn()
  189.         end
  190.     end
  191.     flipDirection()
  192. end
  193.  
  194. function start() --Function order loop
  195.     for tier = 1, height, 1 do
  196.         for col = 1, width, 1 do
  197.             for row = 1, depth - 1, 1 do
  198.                 if(not checkFuel()) then
  199.                     print("Turtle is out of fuel, Powering Down...")
  200.                     return
  201.                 end
  202.                 forward()
  203.                 print(string.format("Row: %d   Col: %d", row, col))
  204.             end
  205.             if(col ~= width) then
  206.                 turnAround(tier)
  207.             end
  208.               manageInventory()
  209.             end
  210.  
  211.         end
  212.  
  213.     end
  214.  
  215. start()
  216.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement