iconmaster

runicaltar.lua

Jan 3rd, 2022 (edited)
716
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.69 KB | None | 0 0
  1. local RECIPES = {
  2.     {"minecraft:iron_ingot", "minecraft:gold_ingot"}, {"minecraft:blaze_rod"},
  3.     {"minecraft:diamond"}, {"minecraft:emerald"}, {
  4.         "minecraft:nether_star", "minecraft:redstone_block",
  5.         "minecraft:redstone_block", "powah:blazing_crystal_block"
  6.     }
  7. }
  8.  
  9. local function logMsg(text) print("[" .. os.date("%T") .. "] " .. text) end
  10.  
  11. local function selectItem(id)
  12.     -- match exact
  13.     for i = 1, 16 do
  14.         local data = turtle.getItemDetail(i)
  15.         if data and data.name == id then
  16.             turtle.select(i)
  17.             return true
  18.         end
  19.     end
  20.     -- match by tags
  21.     for i = 1, 16 do
  22.         local data = turtle.getItemDetail(i, true)
  23.         if data then
  24.             for tag, _ in pairs(data.tags) do
  25.                 if tag == id then
  26.                     turtle.select(i)
  27.                     return true
  28.                 end
  29.             end
  30.         end
  31.     end
  32.     -- no match
  33.     return false
  34. end
  35.  
  36. local function nKeys(t)
  37.     local i = 0
  38.     for _,_ in pairs(t) do
  39.         i = i + 1
  40.     end
  41.     return i
  42. end
  43.  
  44. local energizer = peripheral.find("powah:energizing_orb")
  45.  
  46. logMsg("Energizer crafter started up")
  47. while true do
  48.     for _, recipe in ipairs(RECIPES) do
  49.         if selectItem(recipe[1]) then
  50.             logMsg("Recipe found")
  51.             while nKeys(energizer.list()) ~= 0 do os.sleep(0.1) end
  52.             logMsg("Crafting started")
  53.             for _, item in ipairs(recipe) do
  54.                 logMsg("Adding " .. item)
  55.                 while not selectItem(item) do os.sleep(0.1) end
  56.                 turtle.drop(1)
  57.             end
  58.             logMsg("Crafting complete")
  59.         end
  60.     end
  61.     os.sleep(0.1)
  62. end
  63.  
Advertisement
Add Comment
Please, Sign In to add comment