mirror of
https://github.com/minetest-mods/craftguide.git
synced 2025-06-30 15:10:38 +02:00
Compare commits
6 Commits
6e6ff93d29
...
1.14.2
Author | SHA1 | Date | |
---|---|---|---|
efe7434dd4 | |||
df26d31a2d | |||
50d19faa48 | |||
d93f5b0cf2 | |||
f83bc9cccf | |||
f88e0412fc |
58
init.lua
58
init.lua
@ -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
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user