Add grinder bugfix from Micu

This commit is contained in:
Joachim Stolberg 2021-06-14 23:23:56 +02:00
parent 288472d20d
commit 60487a232f

View File

@ -99,7 +99,7 @@ local function src_to_dst(src_stack, idx, src_name, num_items, inp_num, inv, dst
end end
local function grinding(pos, crd, nvm, inv) local function grinding(pos, crd, nvm, inv)
local num_items = 0 local blocked = false -- idle
for idx,stack in ipairs(inv:get_list("src")) do for idx,stack in ipairs(inv:get_list("src")) do
if not stack:is_empty() then if not stack:is_empty() then
local name = stack:get_name() local name = stack:get_name()
@ -107,16 +107,21 @@ local function grinding(pos, crd, nvm, inv)
local recipe = Recipes[name] local recipe = Recipes[name]
if src_to_dst(stack, idx, name, crd.num_items, recipe.inp_num, inv, recipe.output) then if src_to_dst(stack, idx, name, crd.num_items, recipe.inp_num, inv, recipe.output) then
crd.State:keep_running(pos, nvm, COUNTDOWN_TICKS) crd.State:keep_running(pos, nvm, COUNTDOWN_TICKS)
return
else else
crd.State:blocked(pos, nvm) blocked = true
end end
else else
crd.State:fault(pos, nvm) crd.State:fault(pos, nvm)
return
end end
return
end end
end end
crd.State:idle(pos, nvm) if blocked then
crd.State:blocked(pos, nvm)
else
crd.State:idle(pos, nvm)
end
end end
local function keep_running(pos, elapsed) local function keep_running(pos, elapsed)