Advertisement
Guest User

OC PreCraft system

a guest
Oct 12th, 2023
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.34 KB | None | 0 0
  1. local component = require("component")
  2. local me = component.me_interface
  3.  
  4. local items = {
  5.     {id = "IC2:reactorUraniumQuad", dmg = 1, size = 10}
  6. }
  7.  
  8. local function preCraft(item, dmg, amount, me)
  9.     local meCraftebles = me.getCraftables()
  10.     for k = 1, #meCraftebles do
  11.         local currentItem = meCraftebles[k].getItemStack()
  12.         if currentItem.name == item and currentItem.damage == dmg then
  13.             local isCrafting = meCraftebles[k].request(amount)
  14.  
  15.             print("Crafting running. Request size " .. tostring(amount) .. ".")
  16.  
  17.             while 1 do
  18.                 if isCrafting.isCanceled() == true then
  19.                     print("Request error.")
  20.                     return false
  21.                 end
  22.                 if isCrafting.isDone() == true then
  23.                   print("\t Exporting...")
  24.                   print("Craft done!")
  25.                   os.sleep(15)
  26.                   return true
  27.                 else
  28.                   print("\tExporting error: " .. er)
  29.                   return false
  30.                 end
  31.                 os.sleep(0)
  32.             end
  33.         end
  34.     end
  35. end
  36.  
  37. local function findInNetwork(main)
  38.     while 1 do
  39.         for i = 1, #items do
  40.             local fingerprint = {id = items[i].id, dmg = items[i].dmg}
  41.             print("Looking for " .. items[i].id)
  42.             local _, value = pcall(main.getItemDetail, fingerprint)
  43.             if value ~= nil then
  44.                 local itemDetails = value.basic()
  45.  
  46.                 print("Found " .. itemDetails.display_name .. ". Checking size...")
  47.                 if itemDetails.qty < items[i].size then
  48.                     print("Need to craft " .. tostring(items[i].size - itemDetails.qty) .. "!")
  49.                     preCraft(items[i].id, items[i].dmg, (items[i].size - itemDetails.qty), main)
  50.                 else
  51.                     print("There are " .. tostring(itemDetails.qty) .. " in system, no need to craft it!")
  52.                 end
  53.             else
  54.                 print("There is no " .. items[i].id .. ". Starting test craft")
  55.                 preCraft(items[i].id, items[i].dmg, 1, main)
  56.             end
  57.             print("-------------------------------------------------------------------------------")
  58.         end
  59.     end
  60.     os.sleep(0)
  61. end
  62.  
  63. ok, err = pcall(findInNetwork)
  64. print(ok, err)
  65. --computer.shutdown(true)
  66.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement