Fix non-shown recipes

This commit is contained in:
Jean-Patrick Guerrero 2019-09-18 20:09:03 +02:00
parent 768e06e2d0
commit a936452e21

View File

@ -23,6 +23,7 @@ local globalstep = core.register_globalstep
local on_shutdown = core.register_on_shutdown local on_shutdown = core.register_on_shutdown
local get_players = core.get_connected_players local get_players = core.get_connected_players
local on_joinplayer = core.register_on_joinplayer local on_joinplayer = core.register_on_joinplayer
local get_all_recipes = core.get_all_craft_recipes
local register_command = core.register_chatcommand local register_command = core.register_chatcommand
local get_player_by_name = core.get_player_by_name local get_player_by_name = core.get_player_by_name
local on_mods_loaded = core.register_on_mods_loaded local on_mods_loaded = core.register_on_mods_loaded
@ -382,6 +383,21 @@ local function cache_usages(item)
end end
end end
local function cache_recipes(output)
local recipes = get_all_recipes(output) or {}
local num = #recipes
if num > 0 then
if recipes_cache[output] then
for i = 1, num do
insert(recipes_cache[output], 1, recipes[i])
end
else
recipes_cache[output] = recipes
end
end
end
local function get_recipes(item, data, player) local function get_recipes(item, data, player)
local recipes = recipes_cache[item] local recipes = recipes_cache[item]
local usages = usages_cache[item] local usages = usages_cache[item]
@ -935,6 +951,10 @@ local function get_init_items()
if show_item(def) then if show_item(def) then
cache_usages(name) cache_usages(name)
if not recipes_cache[name] then
cache_recipes(name)
end
if recipes_cache[name] or usages_cache[name] then if recipes_cache[name] or usages_cache[name] then
init_items[c] = name init_items[c] = name
c = c + 1 c = c + 1