mirror of
https://github.com/minetest-mods/craftguide.git
synced 2024-11-22 19:03:43 +01:00
Add fallback background is not -dev version
This commit is contained in:
parent
22787e41e3
commit
bf616f5d21
105
init.lua
105
init.lua
@ -48,7 +48,27 @@ local vec_add, vec_mul = vector.add, vector.multiply
|
||||
local ROWS = sfinv_only and 9 or 11
|
||||
local LINES = 5
|
||||
local IPP = ROWS * LINES
|
||||
local GRID_LIMIT = 8
|
||||
local WH_LIMIT = 8
|
||||
|
||||
local XOFFSET = sfinv_only and 3.83 or 4.66
|
||||
local YOFFSET = sfinv_only and 6 or 6.6
|
||||
|
||||
local DEV_CORE = sub(core.get_version().string, -3) == "dev"
|
||||
|
||||
craftguide.background = "craftguide_bg_full.png"
|
||||
|
||||
local PNG = {
|
||||
bg = "craftguide_bg.png",
|
||||
bg_full = craftguide.background,
|
||||
search = "craftguide_search_icon.png",
|
||||
clear = "craftguide_clear_icon.png",
|
||||
prev = "craftguide_next_icon.png^\\[transformFX",
|
||||
next = "craftguide_next_icon.png",
|
||||
arrow = "craftguide_arrow.png",
|
||||
fire = "craftguide_fire.png",
|
||||
book = "craftguide_book.png",
|
||||
sign = "craftguide_sign.png",
|
||||
}
|
||||
|
||||
local FMT = {
|
||||
box = "box[%f,%f;%f,%f;%s]",
|
||||
@ -71,8 +91,6 @@ craftguide.group_stereotypes = {
|
||||
mesecon_conductor_craftable = "mesecons:wire_00000000_off",
|
||||
}
|
||||
|
||||
craftguide.background = "craftguide_bg_full.png"
|
||||
|
||||
local function table_replace(t, val, new)
|
||||
for k, v in pairs(t) do
|
||||
if v == val then
|
||||
@ -385,7 +403,7 @@ local function groups_to_item(groups)
|
||||
return ""
|
||||
end
|
||||
|
||||
local function get_tooltip(item, groups, cooktime, burntime)
|
||||
local function get_tooltip(item, burntime, groups, cooktime)
|
||||
local tooltip
|
||||
|
||||
if groups then
|
||||
@ -423,8 +441,6 @@ local function get_recipe_fs(data)
|
||||
local fs = {}
|
||||
local recipe = data.recipes[data.rnum]
|
||||
local width = recipe.width
|
||||
local xoffset = sfinv_only and 3.83 or 4.66
|
||||
local yoffset = sfinv_only and 6 or 6.6
|
||||
local cooktime, shapeless
|
||||
|
||||
if recipe.type == "cooking" then
|
||||
@ -443,22 +459,22 @@ local function get_recipe_fs(data)
|
||||
ESC(S("Recipe @1 of @2", data.rnum, #data.recipes))
|
||||
|
||||
fs[#fs + 1] = fmt(FMT.button,
|
||||
xoffset + (sfinv_only and 1.98 or 2.7),
|
||||
yoffset + (sfinv_only and 1.9 or 1.2),
|
||||
XOFFSET + (sfinv_only and 1.98 or 2.7),
|
||||
YOFFSET + (sfinv_only and 1.9 or 1.2),
|
||||
2.2, 1, "alternate", btn_lab)
|
||||
|
||||
if width > GRID_LIMIT or rows > GRID_LIMIT then
|
||||
if width > WH_LIMIT or rows > WH_LIMIT then
|
||||
fs[#fs + 1] = fmt(FMT.label,
|
||||
sfinv_only and 2 or 3, 7,
|
||||
ESC(S("Recipe is too big to be displayed (@1x@2)", width, rows)))
|
||||
ESC(S("Recipe's too big to be displayed (@1x@2)", width, rows)))
|
||||
|
||||
return concat(fs)
|
||||
end
|
||||
|
||||
for i = 1, width * rows do
|
||||
local item = recipe.items[i] or ""
|
||||
local X = ceil((i - 1) % width - width) + xoffset
|
||||
local Y = ceil(i / width) + yoffset - min(2, rows)
|
||||
local X = ceil((i - 1) % width - width) + XOFFSET
|
||||
local Y = ceil(i / width) + YOFFSET - min(2, rows)
|
||||
|
||||
if width > 3 or rows > 3 then
|
||||
local xof = 1 - 4 / width
|
||||
@ -469,10 +485,10 @@ local function get_recipe_fs(data)
|
||||
(3.5 + (xof * 2)) / width or (3.5 + (yof * 2)) / rows
|
||||
s_btn_size = btn_size
|
||||
|
||||
X = (btn_size * ((i - 1) % width) + xoffset -
|
||||
(sfinv_only and 2.83 or (xoffset - 2))) * (0.83 - (x_y / 5))
|
||||
X = (btn_size * ((i - 1) % width) + XOFFSET -
|
||||
(sfinv_only and 2.83 or (XOFFSET - 2))) * (0.83 - (x_y / 5))
|
||||
Y = (btn_size * floor((i - 1) / width) +
|
||||
(5 + ((sfinv_only and 0.81 or 1.5) + x_y))) * (0.86 - (x_y / 5))
|
||||
(sfinv_only and 5.81 or 6.5) + x_y) * (0.86 - (x_y / 5))
|
||||
end
|
||||
|
||||
if X > rightest then
|
||||
@ -495,7 +511,7 @@ local function get_recipe_fs(data)
|
||||
local burntime = fuel_cache[item]
|
||||
|
||||
if groups or cooktime or burntime then
|
||||
fs[#fs + 1] = get_tooltip(item, groups, cooktime, burntime)
|
||||
fs[#fs + 1] = get_tooltip(item, burntime, groups, cooktime)
|
||||
end
|
||||
end
|
||||
|
||||
@ -509,7 +525,7 @@ local function get_recipe_fs(data)
|
||||
icon = fmt("craftguide_%s.png^[resize:16x16", icon)
|
||||
end
|
||||
|
||||
local pos_y = yoffset + (sfinv_only and 0.25 or -0.45)
|
||||
local pos_y = YOFFSET + (sfinv_only and 0.25 or -0.45)
|
||||
|
||||
fs[#fs + 1] = fmt(FMT.image,
|
||||
min(3.9, rightest) + 1.2, pos_y, 0.5, 0.5, icon)
|
||||
@ -525,31 +541,31 @@ local function get_recipe_fs(data)
|
||||
local output_X = arrow_X + 0.9
|
||||
|
||||
fs[#fs + 1] = fmt(FMT.image,
|
||||
arrow_X, yoffset + (sfinv_only and 0.9 or 0.2),
|
||||
0.9, 0.7, "craftguide_arrow.png")
|
||||
arrow_X, YOFFSET + (sfinv_only and 0.9 or 0.2),
|
||||
0.9, 0.7, PNG.arrow)
|
||||
|
||||
if recipe.type == "fuel" then
|
||||
fs[#fs + 1] = fmt(FMT.image,
|
||||
output_X, yoffset + (sfinv_only and 0.7 or 0),
|
||||
1.1, 1.1, "craftguide_fire.png")
|
||||
output_X, YOFFSET + (sfinv_only and 0.7 or 0),
|
||||
1.1, 1.1, PNG.fire)
|
||||
else
|
||||
local output_name = match(recipe.output, "%S+")
|
||||
local burntime = fuel_cache[output_name]
|
||||
|
||||
fs[#fs + 1] = fmt(FMT.item_image_button,
|
||||
output_X, yoffset + (sfinv_only and 0.7 or 0),
|
||||
output_X, YOFFSET + (sfinv_only and 0.7 or 0),
|
||||
1.1, 1.1, recipe.output, ESC(output_name), "")
|
||||
|
||||
if burntime then
|
||||
fs[#fs + 1] = get_tooltip(output_name, nil, nil, burntime)
|
||||
fs[#fs + 1] = get_tooltip(output_name, burntime)
|
||||
|
||||
fs[#fs + 1] = fmt(FMT.image,
|
||||
output_X + 1, yoffset + (sfinv_only and 0.7 or 0.1),
|
||||
0.6, 0.4, "craftguide_arrow.png")
|
||||
output_X + 1, YOFFSET + (sfinv_only and 0.7 or 0.1),
|
||||
0.6, 0.4, PNG.arrow)
|
||||
|
||||
fs[#fs + 1] = fmt(FMT.image,
|
||||
output_X + 1.6, yoffset + (sfinv_only and 0.55 or 0),
|
||||
0.6, 0.6, "craftguide_fire.png")
|
||||
output_X + 1.6, YOFFSET + (sfinv_only and 0.55 or 0),
|
||||
0.6, 0.6, PNG.fire)
|
||||
end
|
||||
end
|
||||
|
||||
@ -567,9 +583,9 @@ local function make_formspec(name)
|
||||
size[%f,%f;]
|
||||
no_prepend[]
|
||||
bgcolor[#00000000;false]
|
||||
background[1,1;1,1;%s;true;10]
|
||||
background[1,1;1,1;%s;true%s]
|
||||
]],
|
||||
9.5, 8.4, craftguide.background)
|
||||
9.5, 8.4, PNG.bg_full, DEV_CORE and ";10" or "")
|
||||
end
|
||||
|
||||
fs[#fs + 1] = fmt([[
|
||||
@ -578,29 +594,23 @@ local function make_formspec(name)
|
||||
]],
|
||||
sfinv_only and 2.76 or 2.72, ESC(data.filter))
|
||||
|
||||
local search_icon = "craftguide_search_icon.png"
|
||||
local clear_icon = "craftguide_clear_icon.png"
|
||||
|
||||
fs[#fs + 1] = fmt([[
|
||||
image_button[%f,-0.05;0.85,0.85;%s;search;;;false;%s^\[colorize:yellow:255]
|
||||
image_button[%f,-0.05;0.85,0.85;%s;clear;;;false;%s^\[colorize:red:255]
|
||||
]],
|
||||
sfinv_only and 2.6 or 2.54, search_icon, search_icon,
|
||||
sfinv_only and 3.3 or 3.25, clear_icon, clear_icon)
|
||||
sfinv_only and 2.6 or 2.54, PNG.search, PNG.search,
|
||||
sfinv_only and 3.3 or 3.25, PNG.clear, PNG.clear)
|
||||
|
||||
fs[#fs + 1] = fmt("label[%f,%f;%s / %u]",
|
||||
sfinv_only and 6.35 or 7.85, 0.06,
|
||||
colorize("yellow", data.pagenum), data.pagemax)
|
||||
|
||||
local prev_icon = "craftguide_next_icon.png^\\[transformFX"
|
||||
local next_icon = "craftguide_next_icon.png"
|
||||
|
||||
fs[#fs + 1] = fmt([[
|
||||
image_button[%f,-0.05;0.8,0.8;%s;prev;;;false;%s^\[colorize:yellow:255]
|
||||
image_button[%f,-0.05;0.8,0.8;%s;next;;;false;%s^\[colorize:yellow:255]
|
||||
]],
|
||||
sfinv_only and 5.45 or 6.83, prev_icon, prev_icon,
|
||||
sfinv_only and 7.2 or 8.75, next_icon, next_icon)
|
||||
sfinv_only and 5.45 or 6.83, PNG.prev, PNG.prev,
|
||||
sfinv_only and 7.2 or 8.75, PNG.next, PNG.next)
|
||||
|
||||
if #data.items == 0 then
|
||||
local no_item = S("No item to show")
|
||||
@ -615,6 +625,7 @@ local function make_formspec(name)
|
||||
end
|
||||
|
||||
local first_item = (data.pagenum - 1) * IPP
|
||||
|
||||
for i = first_item, first_item + IPP - 1 do
|
||||
local item = data.items[i + 1]
|
||||
if not item then break end
|
||||
@ -896,8 +907,8 @@ else
|
||||
|
||||
core.register_craftitem("craftguide:book", {
|
||||
description = S("Crafting Guide"),
|
||||
inventory_image = "craftguide_book.png",
|
||||
wield_image = "craftguide_book.png",
|
||||
inventory_image = PNG.book,
|
||||
wield_image = PNG.book,
|
||||
stack_max = 1,
|
||||
groups = {book = 1},
|
||||
on_use = function(itemstack, user)
|
||||
@ -908,9 +919,9 @@ else
|
||||
core.register_node("craftguide:sign", {
|
||||
description = S("Crafting Guide Sign"),
|
||||
drawtype = "nodebox",
|
||||
tiles = {"craftguide_sign.png"},
|
||||
inventory_image = "craftguide_sign.png",
|
||||
wield_image = "craftguide_sign.png",
|
||||
tiles = {PNG.sign},
|
||||
inventory_image = PNG.sign,
|
||||
wield_image = PNG.sign,
|
||||
paramtype = "light",
|
||||
paramtype2 = "wallmounted",
|
||||
sunlight_propagates = true,
|
||||
@ -962,7 +973,7 @@ else
|
||||
sfinv_buttons.register_button("craftguide", {
|
||||
title = S("Crafting Guide"),
|
||||
tooltip = S("Shows a list of available crafting recipes, cooking recipes and fuels"),
|
||||
image = "craftguide_book.png",
|
||||
image = PNG.book,
|
||||
action = function(player)
|
||||
on_use(player)
|
||||
end,
|
||||
@ -1197,7 +1208,7 @@ if progressive_mode then
|
||||
position = {x = 0.78, y = 1},
|
||||
alignment = {x = 1, y = 1},
|
||||
scale = {x = 370, y = 112},
|
||||
text = "craftguide_bg.png",
|
||||
text = PNG.bg,
|
||||
}),
|
||||
|
||||
book = player:hud_add({
|
||||
@ -1205,7 +1216,7 @@ if progressive_mode then
|
||||
position = {x = 0.79, y = 1.02},
|
||||
alignment = {x = 1, y = 1},
|
||||
scale = {x = 4, y = 4},
|
||||
text = "craftguide_book.png",
|
||||
text = PNG.book,
|
||||
}),
|
||||
|
||||
text = player:hud_add({
|
||||
|
@ -3,20 +3,14 @@
|
||||
Craft Guide=Rezeptbuch
|
||||
Crafting Guide=Rezeptbuch
|
||||
Crafting Guide Sign=Rezepttafel
|
||||
Search=Suche
|
||||
Reset=Zurücksetzen
|
||||
Previous page=Vorherige Seite
|
||||
Next page=Nächste Seite
|
||||
Usage @1 of @2=Verwendung @1 von @2
|
||||
Recipe @1 of @2=Rezept @1 von @2
|
||||
Burning time: @1=Brennzeit: @1
|
||||
Cooking time: @1=Kochzeit: @1
|
||||
Any item belonging to the group(s): @1=Beliebiger Gegenstand aus Gruppe(n): @1
|
||||
Recipe is too big to be displayed (@1x@2)=Rezept ist zu groß für die Anzeige (@1×@2)
|
||||
Recipe's too big to be displayed (@1x@2)=Rezept ist zu groß für die Anzeige (@1×@2)
|
||||
Shapeless=Formlos
|
||||
Cooking=Kochen
|
||||
Increase window size=Fenster vergrößern
|
||||
Decrease window size=Fenster verkleinern
|
||||
No item to show=Nichts anzuzeigen
|
||||
Collect items to reveal more recipes=Gegenstände aufsammeln, um mehr Rezepte aufzudecken
|
||||
Show recipe(s) of the pointed node=Rezept(e) des gezeigten Blocks anzeigen
|
||||
|
@ -2,20 +2,14 @@
|
||||
|
||||
Craft Guide=Guide de recettes
|
||||
Crafting Guide=Guide de recettes
|
||||
Search=Rechercher
|
||||
Reset=Réinitialiser
|
||||
Previous page=Page précédente
|
||||
Next page=Page suivante
|
||||
Usage @1 of @2=Usage @1 de @2
|
||||
Recipe @1 of @2=Recette @1 de @2
|
||||
Burning time: @1=Temps de combustion : @1
|
||||
Cooking time: @1=Temps de cuisson : @1
|
||||
Any item belonging to the group(s): @1=Tout item appartenant au(x) groupe(s) : @1
|
||||
Recipe is too big to be displayed (@1x@2)=La recette est trop grande pour être affichée (@1x@2)
|
||||
Recipe's too big to be displayed (@1x@2)=La recette est trop grande pour être affichée (@1x@2)
|
||||
Shapeless=Sans forme
|
||||
Cooking=Cuisson
|
||||
Increase window size=Agrandir la fenêtre
|
||||
Decrease window size=Réduire la fenêtre
|
||||
No item to show=Aucun item à afficher
|
||||
Collect items to reveal more recipes=Collecte des items pour révéler plus de recettes
|
||||
Show recipe(s) of the pointed node=Affiche les recettes du bloc visé
|
||||
|
@ -3,20 +3,14 @@
|
||||
Craft Guide=книга рецептов крафта
|
||||
Crafting Guide=книга рецептов крафта
|
||||
Crafting Guide Sign=Знак с книгой рецептов
|
||||
Search=Поиск
|
||||
Reset=Сброс
|
||||
Previous page=Предыдущая страница
|
||||
Next page=Следущая страница
|
||||
Usage @1 of @2=использование @1 из @2
|
||||
Recipe @1 of @2=Рецепт @1 из @2
|
||||
Burning time: @1=Время горения: @1
|
||||
Cooking time: @1=Время преготовления: @1
|
||||
Any item belonging to the group(s): @1=Любой элемент из группы: @1
|
||||
Recipe is too big to be displayed (@1x@2)=Рецепт слишком большой для показа (@1x@2)
|
||||
Recipe's too big to be displayed (@1x@2)=Рецепт слишком большой для показа (@1x@2)
|
||||
Shapeless=Бесформенный
|
||||
Cooking=Приготовление
|
||||
Increase window size=Увеличить окно
|
||||
Decrease window size=Уменьшить окно
|
||||
No item to show=Нет элемента для показа
|
||||
Collect items to reveal more recipes=Собирайте предметы, чтобы раскрыть больше рецептов
|
||||
Show recipe(s) of the pointed node=Показать рецепт(ы) выбранной ноды
|
||||
|
@ -3,20 +3,14 @@
|
||||
Craft Guide=
|
||||
Crafting Guide=
|
||||
Crafting Guide Sign=
|
||||
Search=
|
||||
Reset=
|
||||
Previous page=
|
||||
Next page=
|
||||
Usage @1 of @2=
|
||||
Recipe @1 of @2=
|
||||
Burning time: @1=
|
||||
Cooking time: @1=
|
||||
Any item belonging to the group(s): @1=
|
||||
Recipe is too big to be displayed (@1x@2)=
|
||||
Recipe's too big to be displayed (@1x@2)=
|
||||
Shapeless=
|
||||
Cooking=
|
||||
Increase window size=
|
||||
Decrease window size=
|
||||
No item to show=
|
||||
Collect items to reveal more recipes=
|
||||
Show recipe(s) of the pointed node=
|
||||
|
Loading…
Reference in New Issue
Block a user