alesandreo

altar_automation.lua

Apr 19th, 2024 (edited)
58
0
349 days
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.85 KB | Gaming | 0 0
  1. -- 24cFX3C1
  2. --
  3. -- Created by IntelliJ IDEA.
  4. -- User: amcco
  5. -- Date: 1/18/2021
  6. -- Time: 3:03 PM
  7. -- To change this template use File | Settings | File Templates.
  8. --
  9.  
  10. blood_values = {}
  11. blood_values['bloodmagic:blankslate'] = 1000
  12. blood_values['bloodmagic:reinforcedslate'] = 3000
  13. blood_values['bloodmagic:infusedslate'] = 8000
  14. blood_values['bloodmagic:demonslate'] = 23000
  15. blood_values['bloodmagic:etherealslate'] = 53000
  16.  
  17.  
  18. if not peripheral.isPresent("front") then
  19.     error("Blood Altar must be placed in front of this turtle.")
  20.     exit()
  21. end
  22. altar = peripheral.wrap("front")
  23.  
  24. turtle.select(16)
  25. source_item = turtle.getItemDetail(1)["name"]
  26. target_craft = turtle.getItemDetail(16)["name"]
  27.  
  28. function getBloodLevel()
  29.     if #altar.tanks() == 0 then
  30.         return 0
  31.     end
  32.     return altar.tanks()[1]["amount"]
  33. end
  34.  
  35. function checkContent()
  36.     if #altar.list() == 0 then
  37.         return "empty"
  38.     end
  39.     return altar.getItemDetail(1)["name"]
  40. end
  41.  
  42. function getRequiredBlood()
  43.     if blood_values[source_item] == nil then
  44.         return blood_values[target_craft]
  45.     else
  46.         return blood_values[target_craft] - blood_values[source_item]
  47.     end
  48. end
  49.  
  50. run_program = true
  51. while run_program do
  52.     while getBloodLevel() < blood_values[target_craft] do
  53.         os.sleep(10)
  54.     end
  55.     turtle.select(1)
  56.     item_count = math.floor(getBloodLevel()/blood_values[target_craft])
  57.     source_count = turtle.getItemCount(1)
  58.     if item_count > source_count then
  59.         item_count = source_count
  60.     end
  61.     turtle.drop(item_count)
  62.     turtle.select(13)
  63.     while not (altar.getItemDetail(1)["name"] == target_craft) do
  64.         os.sleep(10)
  65.     end
  66.     turtle.suck()
  67.     if turtle.getItemCount(1) < 1 then
  68.         run_program = false
  69.     end
  70. end
  71. if checkContent() == 'empty' then
  72.     turtle.select(12)
  73.     turtle.drop()
  74. end
  75.  
  76.  
Add Comment
Please, Sign In to add comment