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
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
_recipes[k].replacements = v
k = k + shift
if _recipes[k] then
_recipes[k].replacements = v
end
end
recipes = _recipes
@ -872,13 +884,13 @@ local function get_tooltip(item, info, lang_code)
end
if info.replace then
for i = 1, #info.replace do
local rpl = match(info.replace[i], "%S+")
for i = 1, #info.replace.items do
local rpl = match(info.replace.items[i], "%S+")
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))
elseif info.burntime then
elseif info.replace.type == "fuel" then
tooltip = add(S("Replaced by @1 on burning", desc))
else
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
local replacement = rcp.replacements[j]
if replacement[1] == name then
replace = replace or {}
replace = replace or {type = rcp.type, items = {}}
local added
for _, v in ipairs(replace) do
for _, v in ipairs(replace.items) do
if replacement[2] == v then
added = true
break
@ -1074,7 +1086,7 @@ local function get_grid_fs(lang_code, fs, rcp, spacing)
if not added then
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
@ -1211,11 +1223,11 @@ end
local function get_panels(lang_code, query_item, recipes, usages, show_usages,
favs, unum, rnum, fs)
local _title = {name = "title", height = 1.2}
local _favs = {name = "favs", height = 1.91}
local _recipes = {name = "recipes", rcp = recipes, height = 3.5}
local _usages = {name = "usages", rcp = usages, height = 3.5}
local panels = {_title, _recipes, _usages, _favs}
local _title = {name = "title", height = 1.2}
local _favs = {name = "favs", height = 1.91}
local _recipes = {name = "recipes", rcp = recipes, height = 3.5}
local _usages = {name = "usages", rcp = usages, height = 3.5}
local panels = {_title, _recipes, _usages, _favs}
if sfinv_only then
panels = {show_usages and _usages or _recipes}
@ -1498,15 +1510,15 @@ core.register_craft = function(def)
end
for i = 1, #output do
local name = output[i]
rcp_num[name] = (rcp_num[name] or 0) + 1
local item = output[i]
rcp_num[item] = (rcp_num[item] or 0) + 1
if def.replacements then
if def.type == "fuel" then
replacements.fuel[name] = def.replacements
replacements.fuel[item] = def.replacements
else
replacements[name] = replacements[name] or {}
replacements[name][rcp_num[name]] = def.replacements
replacements[item] = replacements[item] or {}
replacements[item][rcp_num[item]] = def.replacements
end
end
end
@ -2036,8 +2048,8 @@ if progressive_mode then
local players = get_players()
for i = 1, #players do
local player = players[i]
local name = player:get_player_name()
local data = pdata[name]
local name = player:get_player_name()
local data = pdata[name]
local inv_items = get_inv_items(player)
local diff = array_diff(inv_items, data.inv_items)
@ -2071,8 +2083,8 @@ if progressive_mode then
local players = get_players()
for i = 1, #players do
local player = players[i]
local name = player:get_player_name()
local data = pdata[name]
local name = player:get_player_name()
local data = pdata[name]
if data.show_hud ~= nil and singleplayer then
show_hud_success(player, data)
@ -2125,7 +2137,7 @@ on_leaveplayer(function(player)
end)
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"
end