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