Advertisement
Bendix

Inscriber bedienen

Apr 3rd, 2016
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 5.27 KB | None | 0 0
  1. --script noch etwas fehlerhaft, aber es läuft und die fehler werden erkannt und beseitigt
  2. --aufbau I= inscriber i=interface T=Turtle C=chest P=import
  3.  
  4. --CP
  5. --T
  6. --Ii
  7.  
  8. insc = peripheral.wrap("bottom")
  9. ---was ist im Slot x des Inscribers
  10. function getInscriberInv(x)
  11.    iSlot= insc.getStackInSlot(x)
  12.    if iSlot then
  13.       return (iSlot.display_name)
  14.    else
  15.       return ("kein Item im Slot")
  16.    end
  17. end
  18.  
  19. ---Turtle inventory ausräumen (außer den Pressplatten) (fertige Elemente in die Kiste drüber räumen)
  20. function invClear()
  21.    for x=1,16 do
  22.       Item= turtle.getItemDetail(x)
  23.       if Item then
  24.          if  Item.damage ~= 13 and Item.damage ~= 14 and Item.damage ~= 15 and Item.damage ~= 19 then
  25.             turtle.select(x)
  26.             --turtle.dropUp()
  27.          end
  28.       end
  29.    end
  30. end
  31.  
  32.  
  33. --nur Information für CopyPaste
  34. --Silicon
  35. --Item.name == "appliedenergistics2:item.ItemMultiMaterial" and
  36. --damage 13,14,15,19
  37. --tSlot1= "Inscriber Calculation Press:13"
  38. --tSlot2= "Inscriber Engineering Press:14"
  39. --tSlot3= "Inscriber Logic Press:15"
  40. --tSlot4= "Inscriber Silicon Press:19"
  41. --tSlot1=turtle.getItemDetail(1)
  42. --tSlot2=turtle.getItemDetail(2)
  43. --tSlot3=turtle.getItemDetail(3)
  44. --tSlot4=turtle.getItemDetail(4)
  45.  
  46.  
  47. --Welche Pllatte wird reingeworfen damit die Ressourcen verarbeitet werden
  48. function Wasistdrin()
  49.    print(getInscriberInv(3)) --Testweise ausgeben was in Slot3 ist
  50.    if getInscriberInv(3) == "Diamond" then --wenn im slot3 Diamanten sind
  51.       turtle.select(2) -- zweites Inventarfeld vom Turtle auswählen
  52.       insc.pullItem("UP",2)  --den insciber das InventarFeld 2 des oberen Storages (Turtle) nehmen lassen
  53.    elseif getInscriberInv(3) == "Pure Certus Quartz Crystal" then -- gleiches wie die 3 zeilen drüber nur mit Certus
  54.       turtle.select(1)
  55.       insc.pullItem("UP",1)
  56.    elseif getInscriberInv(3) == "Gold Ingot" then --siehe Zeile 50-52
  57.       turtle.select(3)
  58.       insc.pullItem("UP",3)
  59.    elseif getInscriberInv(3) == "Silicon -" then --das spar ich mir jetzt
  60.       turtle.select(4)
  61.       insc.pullItem("UP",4)
  62.    else
  63.       print ("warte auf Futter") --wenn nichts drin ist, ausgeben
  64.    end
  65. end
  66.  
  67. -- insciber leeren; wird nur am anfang benötigt falls was drin ist)
  68. function inscriberleeren()
  69.    for x=1,3 do --für x= 1 bis 4 (die 4 slots aus dem Inscriber)
  70.       insc.pushItem("UP",x) --schmeiß nach oben in den Turtle
  71.    end
  72.    if insc.getStackInSlot(4) then --wenn etwas in slot 4 ist,
  73.       insc.pushItem("UP",1) --dann drück Slot 1 (Platten) nach oben in den turtle
  74.       --insc.pushItem("UP",4) --und die endprodukte auch
  75.     end
  76. end
  77.  
  78.  
  79. function sort() -- Inventory des Turtles sortieren, damit die platten an der gewünschten Position sind
  80.    for x=1,16 do
  81.       Item= turtle.getItemDetail(x)
  82.       turtle.select(x)
  83.       if Item then
  84.          --else
  85.          if Item.damage == 13 then -- schadenswerte müssen genommen werden, da die platten alle den gleichen namen haben
  86.             turtle.transferTo(5)   -- und der display_name nicht angezeigt wird
  87.          elseif Item.damage == 14 then
  88.             turtle.transferTo(6)
  89.          elseif Item.damage ==15 then
  90.             turtle.transferTo(7)
  91.          elseif Item.damage ==19 then
  92.             turtle.transferTo(8)
  93.           else
  94.           --turtle.dropUp()
  95.          end
  96.       end
  97.    end
  98.    turtle.select(5)
  99.    turtle.transferTo(1)
  100.    turtle.select(6)
  101.    turtle.transferTo(2)
  102.    turtle.select(7)
  103.    turtle.transferTo(3)
  104.    turtle.select(8)
  105.    turtle.transferTo(4)
  106.    turtle.select(1)
  107. end
  108.  
  109.  
  110. sort() -- inventory sortieren
  111. sort() -- das ganze 2x da einmal nicht reicht wenn einige slots schon belegt sind
  112. Wasistdrin() --wenn ressourcen im Inscriber sind, erst mal umwandeln
  113. inscriberleeren() -- und leer machen
  114.  
  115. timer = 1 --Sicherheits-Timer um einen Fehler abzufangen bei dem eine Falsche platte zur Ressource drin ist -> Endlosschleife
  116. while true do
  117.  
  118.    invClear() --erstmal den turtle leer machen
  119.    while insc.getStackInSlot(1) and insc.getStackInSlot(3) do --solange im Inscriber Slot1 (Platten) und Slot(3) Resourcen belegt ist
  120.       sleep(1)                                                --warten
  121.       timer=timer+1           --timer hochzählen
  122.       --insc.pushItem("UP",4)                                   --und fertige Produkte aus Slot4 holen
  123.       if  timer ==10 then                                      --wenn der Timer 5 erreicht hat
  124.          insc.pushItem("UP",1)                                --vorsichtshalber die Platte mal rausnehmen
  125.          print(timer)            -- sollte funktionieren, kann man aber schlecht nachstellen
  126.          timer=1
  127.       end
  128.    end
  129.  
  130.    inscriberleeren()
  131.    Wasistdrin()
  132.    print("Warte..")
  133.    ---leider kann man von Oben keine Items Pushen :(
  134.    --for x=5,16 do -- diamanten des inventars in den inscriber schicken
  135.       --rohItem = turtle.getItemDetail(x)
  136.       --if rohItem then
  137.          --if rohItem.name == Diamond then
  138.             --insc.pullItem("North",1,1,3)
  139.          --end
  140.       --end
  141.    --end
  142.    ---Item-Push ende
  143.    sleep(2)
  144. end
  145.  
  146.  
  147. --copy paste und gedangen beim programmieren
  148. --insc.pushItem("UP",2,1,5)
  149. --UP in das obere Storage
  150. --2 aus slot 2
  151. --1 ein Item
  152. --5 in slot 5 (des oberen Storages)
  153. --
  154. --diamand = engineering = 2
  155. --pure certus =  calculation
  156. --gold  = Logic
  157. --Silicon = Silicon
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement