Refactor progressive_show_recipe
This commit is contained in:
parent
48856e0d23
commit
caa9e65ba6
33
init.lua
33
init.lua
|
@ -493,32 +493,22 @@ local function get_inv_items(player)
|
|||
return inv_items
|
||||
end
|
||||
|
||||
local function progressive_show_recipe(recipe, inv_items)
|
||||
local inv_items_size = #inv_items
|
||||
for _, item in pairs(recipe.items) do
|
||||
local item_in_inv
|
||||
local function item_in_inv(item, inv_items)
|
||||
if item:sub(1,6) == "group:" then
|
||||
local groups = extract_groups(item)
|
||||
for i = 1, inv_items_size do
|
||||
for i = 1, #inv_items do
|
||||
local item_groups = reg_items[inv_items[i]].groups
|
||||
if item_has_groups(item_groups, groups) then
|
||||
item_in_inv = true
|
||||
return true
|
||||
end
|
||||
end
|
||||
else
|
||||
for i = 1, inv_items_size do
|
||||
for i = 1, #inv_items do
|
||||
if inv_items[i] == item then
|
||||
item_in_inv = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if not item_in_inv then
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
return true
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function progressive_default_filter(recipes, player)
|
||||
|
@ -530,7 +520,14 @@ local function progressive_default_filter(recipes, player)
|
|||
local filtered = {}
|
||||
for i = 1, #recipes do
|
||||
local recipe = recipes[i]
|
||||
if progressive_show_recipe(recipe, inv_items) then
|
||||
local recipe_in_inv = true
|
||||
for _, item in pairs(recipe.items) do
|
||||
if not item_in_inv(item, inv_items) then
|
||||
recipe_in_inv = false
|
||||
end
|
||||
end
|
||||
|
||||
if recipe_in_inv then
|
||||
filtered[#filtered + 1] = recipe
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue