Compare commits

...

6 Commits

Author SHA1 Message Date
efe7434dd4 Fix replacement label 2020-07-27 18:22:45 +02:00
df26d31a2d Minor style 2020-07-27 18:13:25 +02:00
50d19faa48 Paranoid check 2020-07-27 04:04:51 +02:00
d93f5b0cf2 Minor style 2020-07-27 03:47:33 +02:00
f83bc9cccf Small correction 2020-07-27 03:39:12 +02:00
f88e0412fc Fix replacements 2020-07-26 16:25:29 +02:00

View File

@ -709,8 +709,20 @@ local function cache_recipes(item)
_recipes[#recipes + 1 - k] = v _recipes[#recipes + 1 - k] = v
end end
local shift = 0
local size_rpl = maxn(replacements[item])
local size_rcp = #_recipes
if size_rpl > size_rcp then
shift = size_rcp - size_rpl
end
for k, v in pairs(replacements[item]) do for k, v in pairs(replacements[item]) do
_recipes[k].replacements = v k = k + shift
if _recipes[k] then
_recipes[k].replacements = v
end
end end
recipes = _recipes recipes = _recipes
@ -872,13 +884,13 @@ local function get_tooltip(item, info, lang_code)
end end
if info.replace then if info.replace then
for i = 1, #info.replace do for i = 1, #info.replace.items do
local rpl = match(info.replace[i], "%S+") local rpl = match(info.replace.items[i], "%S+")
local desc = clr("#ff0", get_desc(rpl, lang_code)) local desc = clr("#ff0", get_desc(rpl, lang_code))
if info.cooktime then if info.replace.type == "cooking" then
tooltip = add(S("Replaced by @1 on smelting", desc)) tooltip = add(S("Replaced by @1 on smelting", desc))
elseif info.burntime then elseif info.replace.type == "fuel" then
tooltip = add(S("Replaced by @1 on burning", desc)) tooltip = add(S("Replaced by @1 on burning", desc))
else else
tooltip = add(S("Replaced by @1 on crafting", desc)) tooltip = add(S("Replaced by @1 on crafting", desc))
@ -1061,11 +1073,11 @@ local function get_grid_fs(lang_code, fs, rcp, spacing)
for j = 1, #(rcp.replacements or {}) do for j = 1, #(rcp.replacements or {}) do
local replacement = rcp.replacements[j] local replacement = rcp.replacements[j]
if replacement[1] == name then if replacement[1] == name then
replace = replace or {} replace = replace or {type = rcp.type, items = {}}
local added local added
for _, v in ipairs(replace) do for _, v in ipairs(replace.items) do
if replacement[2] == v then if replacement[2] == v then
added = true added = true
break break
@ -1074,7 +1086,7 @@ local function get_grid_fs(lang_code, fs, rcp, spacing)
if not added then if not added then
label = fmt("%s%s\nR", label ~= "" and "\n" or "", label) label = fmt("%s%s\nR", label ~= "" and "\n" or "", label)
replace[#replace + 1] = replacement[2] replace.items[#replace.items + 1] = replacement[2]
end end
end end
end end
@ -1211,11 +1223,11 @@ end
local function get_panels(lang_code, query_item, recipes, usages, show_usages, local function get_panels(lang_code, query_item, recipes, usages, show_usages,
favs, unum, rnum, fs) favs, unum, rnum, fs)
local _title = {name = "title", height = 1.2} local _title = {name = "title", height = 1.2}
local _favs = {name = "favs", height = 1.91} local _favs = {name = "favs", height = 1.91}
local _recipes = {name = "recipes", rcp = recipes, height = 3.5} local _recipes = {name = "recipes", rcp = recipes, height = 3.5}
local _usages = {name = "usages", rcp = usages, height = 3.5} local _usages = {name = "usages", rcp = usages, height = 3.5}
local panels = {_title, _recipes, _usages, _favs} local panels = {_title, _recipes, _usages, _favs}
if sfinv_only then if sfinv_only then
panels = {show_usages and _usages or _recipes} panels = {show_usages and _usages or _recipes}
@ -1498,15 +1510,15 @@ core.register_craft = function(def)
end end
for i = 1, #output do for i = 1, #output do
local name = output[i] local item = output[i]
rcp_num[name] = (rcp_num[name] or 0) + 1 rcp_num[item] = (rcp_num[item] or 0) + 1
if def.replacements then if def.replacements then
if def.type == "fuel" then if def.type == "fuel" then
replacements.fuel[name] = def.replacements replacements.fuel[item] = def.replacements
else else
replacements[name] = replacements[name] or {} replacements[item] = replacements[item] or {}
replacements[name][rcp_num[name]] = def.replacements replacements[item][rcp_num[item]] = def.replacements
end end
end end
end end
@ -2036,8 +2048,8 @@ if progressive_mode then
local players = get_players() local players = get_players()
for i = 1, #players do for i = 1, #players do
local player = players[i] local player = players[i]
local name = player:get_player_name() local name = player:get_player_name()
local data = pdata[name] local data = pdata[name]
local inv_items = get_inv_items(player) local inv_items = get_inv_items(player)
local diff = array_diff(inv_items, data.inv_items) local diff = array_diff(inv_items, data.inv_items)
@ -2071,8 +2083,8 @@ if progressive_mode then
local players = get_players() local players = get_players()
for i = 1, #players do for i = 1, #players do
local player = players[i] local player = players[i]
local name = player:get_player_name() local name = player:get_player_name()
local data = pdata[name] local data = pdata[name]
if data.show_hud ~= nil and singleplayer then if data.show_hud ~= nil and singleplayer then
show_hud_success(player, data) show_hud_success(player, data)
@ -2125,7 +2137,7 @@ on_leaveplayer(function(player)
end) end)
function craftguide.show(name, item, show_usages) function craftguide.show(name, item, show_usages)
if not true_str(name)then if not true_str(name) then
return err "craftguide.show(): player name missing" return err "craftguide.show(): player name missing"
end end