View difference between Paste ID: RQwebYAH and 85FjmeZK
SHOW: | | - or go back to the newest paste.
1
local idleStep = 8
2-
local target = 12
2+
local rechargeStep = 2
3
--mana
4
local target = 14 --/15
5
--comparator
6
local compSide = "front"
7-
local reverse = "south"
7+
8
local chestSide = "back"
9
local reverse = "north"
10
--turtle
11
local buffer = 16
12
local cakeSlot = 1
13
14
local chest = peripheral.wrap(chestSide)
15
print(chest.getInventoryName().." found.")
16
17
function lowCake()
18
  return turtle.getItemCount(cakeSlot) < (buffer/2)
19
end
20
21
function round(n)
22
  return n % 1 >= 0.5 and math.ceil(n) or math.floor(n)
23
end  
24-
    local as = chest.getAllStacks()
24+
25-
    for i=1,#as do
25+
26-
      if as[i].name == "cake" and lowCake() then
26+
27-
        chest.pushItem(reverse,i,(buffer-turtle.getItemCount(cakeSlot)),cakeSlot)
27+
    print("Cake level is low(inf. "..(buffer/2)..")")
28
    local as = chest.getAllStacks(false)
29
    for i,slot in pairs(as) do
30
      if slot ~= nil and slot.name == "cake" and lowCake() then
31
        print(chest.pushItem(reverse,i,(buffer-turtle.getItemCount(cakeSlot)),cakeSlot).." cakes retrieved from slot "..i..".")
32
      end
33
    end
34
  end  
35
end
36
37
function getLevel()
38
  local lvl = rs.getAnalogInput(compSide)
39-
refillCake()
39+
40
  return lvl
41
end
42
43
while true do
44
  
45-
      if turtle.placeUp() then
45+
46-
        refillCake()
46+
47-
      else
47+
48
      turtle.select(cakeSlot)
49
      refillCake()
50
      if not turtle.placeUp() then
51
        print("Error placing cake!")
52
      end
53-
    sleep(8)
53+
54
      print("Previous cake still present!")
55-
  sleep(8)
55+
56
    sleep(rechargeStep)
57
  end
58
59
  print("IDLE")
60
  sleep(idleStep)
61
62
end