brewing station auto learn
This commit is contained in:
@@ -1,21 +1,61 @@
|
||||
local Milo = require('milo')
|
||||
local Craft = require('turtle.craft')
|
||||
local Milo = require('milo')
|
||||
|
||||
local device = _G.device
|
||||
|
||||
local PotionImportTask = {
|
||||
name = 'potions',
|
||||
priority = 30,
|
||||
brewQueue = { },
|
||||
}
|
||||
|
||||
function PotionImportTask:cycle(context)
|
||||
for _, v in pairs(device) do
|
||||
if v.type == 'minecraft:brewing_stand' and v.getBrewTime() == 0 then
|
||||
local list = v.list()
|
||||
if not list[4] then
|
||||
for slot = 1, 3 do
|
||||
if list[slot] then
|
||||
context.storage:import(v.name, slot, 1, list[slot])
|
||||
if v.type == 'minecraft:brewing_stand' then
|
||||
if v.getBrewTime() == 0 then
|
||||
local list = v.list()
|
||||
|
||||
if list[1] and not list[4] then
|
||||
-- brewing has completd
|
||||
|
||||
if self.brewQueue[v.name] and list[1] then
|
||||
local key = Milo:uniqueKey(list[1])
|
||||
if not Craft.findRecipe(key) then
|
||||
debug('saving new recipe')
|
||||
Milo:saveMachineRecipe(self.brewQueue[v.name], list[1], v.name)
|
||||
end
|
||||
end
|
||||
for slot = 1, 3 do
|
||||
if list[slot] then
|
||||
context.storage:import(v.name, slot, 1, list[slot])
|
||||
end
|
||||
end
|
||||
end
|
||||
self.brewQueue[v.name] = nil
|
||||
|
||||
elseif not self.brewQueue[v.name] then
|
||||
local recipe = {
|
||||
count = 3,
|
||||
ingredients = { },
|
||||
maxCount = 3,
|
||||
}
|
||||
local list = v.list()
|
||||
|
||||
local function valid()
|
||||
for i = 1, 4 do
|
||||
if not list[i] then
|
||||
return false
|
||||
end
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
if valid() then
|
||||
for i = 1, 4 do
|
||||
recipe.ingredients[i] = Milo:uniqueKey(list[i])
|
||||
end
|
||||
|
||||
self.brewQueue[v.name] = recipe
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user