NeoGriever

Untitled

Jul 14th, 2024 (edited)
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.59 KB | None | 0 0
  1. local n_chest = "tile_extrautils_chestfull_name_0"
  2. local n_monit = "monitor_0"
  3. local n_grav1 = "peripheral_0"
  4. local n_grav2 = "peripheral_1"
  5. local n_grav3 = "peripheral_2"
  6. local n_grav4 = "peripheral_3"
  7. local n_grav5 = "peripheral_4"
  8.  
  9. local chest = {name = n_chest, peripheral = peripheral.wrap(n_chest)}
  10. local monit = {name = n_monit, peripheral = peripheral.wrap(n_monit)}
  11. local grav1 = {name = n_grav1, peripheral = peripheral.wrap(n_grav1)}
  12. local grav2 = {name = n_grav2, peripheral = peripheral.wrap(n_grav2)}
  13. local grav3 = {name = n_grav3, peripheral = peripheral.wrap(n_grav3)}
  14. local grav4 = {name = n_grav4, peripheral = peripheral.wrap(n_grav4)}
  15. local grav5 = {name = n_grav5, peripheral = peripheral.wrap(n_grav5)}
  16.  
  17. function moveItem(from, to, fromSlot, amount, toSlot)
  18.   local itemDetail = from.peripheral.getStackInSlot(fromSlot)
  19.   if itemDetail then
  20.     toSlot = toSlot or nil
  21.     amount = amount or 64
  22.     from.peripheral.pushItemIntoSlot(to.name, fromSlot, amount, toSlot)
  23.   end
  24. end
  25.  
  26. function checkAndMoveItems()
  27.   local gravMachines = {grav1, grav2, grav3, grav4}
  28.   local specialItems = {
  29.     ["enderio.silicon"] = "item.appliedenergistics2.itemmaterial.engprocessorpress",
  30.     ["item.appliedenergistics2.itemmaterial.purifiedcertusquartzcrystal"] = "item.appliedenergistics2.itemmaterial.logicprocessorpress",
  31.     ["item.diamond"] = "item.appliedenergistics2.itemmaterial.calcprocessorpress",
  32.     ["item.ingotgold"] = "item.appliedenergistics2.itemmaterial.siliconpress"
  33.   }
  34.  
  35.   for slot = 1, chest.peripheral.getInventorySize() do
  36.     local itemDetail = chest.peripheral.getStackInSlot(slot)
  37.     if itemDetail then
  38.       local itemName = itemDetail.raw_name
  39.       if specialItems[itemName] then
  40.         for _, grav in ipairs(gravMachines) do
  41.           local gravItem = grav.peripheral.getStackInSlot(1)
  42.           if gravItem and gravItem.raw_name == specialItems[itemName] then
  43.             moveItem(chest, grav, slot, 64, 2)
  44.             break
  45.           end
  46.         end
  47.       elseif itemName == "item.appliedenergistics2.itemmaterial.engprocessorprint" or
  48.              itemName == "item.appliedenergistics2.itemmaterial.logicprocessorprint" or
  49.              itemName == "item.appliedenergistics2.itemmaterial.calcprocessorprint" then
  50.         if not grav5.peripheral.getStackInSlot(1) then
  51.           moveItem(chest, grav5, slot, 64, 1)
  52.         end
  53.       elseif itemName == "item.appliedenergistics2.itemmaterial.siliconprint" then
  54.         if not grav5.peripheral.getStackInSlot(3) then
  55.           moveItem(chest, grav5, slot, 64, 3)
  56.         end
  57.       elseif itemName == "item.redstone" then
  58.         if not grav5.peripheral.getStackInSlot(2) then
  59.           moveItem(chest, grav5, slot, 64, 2)
  60.         end
  61.       end
  62.     end
  63.   end
  64.  
  65.   for _, grav in ipairs(gravMachines) do
  66.     local itemDetail = grav.peripheral.getStackInSlot(4)
  67.     if itemDetail then
  68.       local itemName = itemDetail.raw_name
  69.       if itemName == "item.appliedenergistics2.itemmaterial.engprocessorprint" or
  70.          itemName == "item.appliedenergistics2.itemmaterial.logicprocessorprint" or
  71.          itemName == "item.appliedenergistics2.itemmaterial.calcprocessorprint" or
  72.          itemName == "item.appliedenergistics2.itemmaterial.siliconprint" then
  73.         moveItem(grav, chest, 4, 64)
  74.       end
  75.     end
  76.   end
  77.  
  78.   local itemDetail = grav5.peripheral.getStackInSlot(4)
  79.   if itemDetail then
  80.     moveItem(grav5, chest, 4, 64)
  81.   end
  82. end
  83.  
  84. -- Kontinuierliches Scannen und Verschieben von Gegenständen
  85. while true do
  86.   checkAndMoveItems()
  87.   sleep(10) -- Wartezeit in Sekunden, bevor erneut gescannt wird
  88. end
  89.  
Advertisement
Add Comment
Please, Sign In to add comment