Minor cleaning

This commit is contained in:
JP Guerrero 2016-12-15 01:59:05 +01:00
parent 5469940c3c
commit 628f59b89e
1 changed files with 16 additions and 17 deletions

View File

@ -5,7 +5,7 @@ local iX, iY = (minetest.setting_get("craftguide_size") or "8x3"):match(
"([%d]+)[.%d+]*[^%d]*x[^%d]*([%d]+)[.%d+]*") "([%d]+)[.%d+]*[^%d]*x[^%d]*([%d]+)[.%d+]*")
iX, iY = max(8, iX or 8), max(1, iY or 3) iX, iY = max(8, iX or 8), max(1, iY or 3)
local ipp = iX * iY local ipp = iX * iY
local offset_X = (iX / 2) + (iX % 2 == 0 and 0.5 or 0) local xoffset = iX / 2 + (iX % 2 == 0 and 0.5 or 0)
local group_stereotypes = { local group_stereotypes = {
wool = "wool:white", wool = "wool:white",
@ -42,15 +42,14 @@ local function colorize(str)
end end
function craftguide:get_tooltip(item, recipe_type, cooktime, groups) function craftguide:get_tooltip(item, recipe_type, cooktime, groups)
local tooltip = "tooltip["..item..";" local tooltip, item_desc = "tooltip["..item..";", ""
local fueltime = minetest.get_craft_result({ local fueltime = minetest.get_craft_result({
method="fuel", width=1, items={item}}).time method="fuel", width=1, items={item}}).time
local has_extras = groups or recipe_type == "cooking" or fueltime > 0 local has_extras = groups or recipe_type == "cooking" or fueltime > 0
local item_desc = ""
if minetest.registered_items[item] and not groups then if minetest.registered_items[item] and not groups then
item_desc = minetest.registered_items[item].description item_desc = minetest.registered_items[item].description
end end
if groups then if groups then
local groupstr = "Any item belonging to the " local groupstr = "Any item belonging to the "
for i=1, #groups do for i=1, #groups do
@ -82,7 +81,7 @@ function craftguide:get_recipe(player_name, tooltip_l, item, recipe_num, recipes
"label[0,"..(iY+2)..".5;Recipe "..recipe_num.." of "..#recipes.."]" "label[0,"..(iY+2)..".5;Recipe "..recipe_num.." of "..#recipes.."]"
end end
if recipe_type == "cooking" then if recipe_type == "cooking" then
formspec = formspec.."image["..(offset_X-0.8)..","..(iY+1).. formspec = formspec.."image["..(xoffset-0.8)..","..(iY+1)..
".5;0.5,0.5;default_furnace_front.png]" ".5;0.5,0.5;default_furnace_front.png]"
end end
@ -96,17 +95,17 @@ function craftguide:get_recipe(player_name, tooltip_l, item, recipe_num, recipes
if recipe_type == "normal" and if recipe_type == "normal" and
width > craftgrid_limit or rows > craftgrid_limit then width > craftgrid_limit or rows > craftgrid_limit then
formspec = formspec.."label["..(offset_X)..","..(iY+2).. formspec = formspec.."label["..xoffset..","..(iY+2)..
";Recipe is too big to\nbe displayed (".. ";Recipe is too big to\nbe displayed ("..
width.."x"..rows..")]" width.."x"..rows..")]"
else for i, v in pairs(items) do else for i, v in pairs(items) do
local X = (i-1) % width + offset_X local X = (i-1) % width + xoffset
local Y = ceil(i / width + ((iY + 2) - min(2, rows))) local Y = ceil(i / width + iY+2 - min(2, rows))
if recipe_type == "normal" and width > 3 or rows > 3 then if recipe_type == "normal" and width > 3 or rows > 3 then
btn_size = width > 3 and 3 / width or 3 / rows btn_size = width > 3 and 3 / width or 3 / rows
X = (btn_size * (i % width)) + offset_X X = btn_size * (i % width) + xoffset
Y = (btn_size * floor((i-1) / width)) + (iY + 3) - min(2, rows) Y = btn_size * floor((i-1) / width) + iY+3 - min(2, rows)
end end
local groups = extract_groups(v) local groups = extract_groups(v)
@ -120,9 +119,9 @@ function craftguide:get_recipe(player_name, tooltip_l, item, recipe_num, recipes
end end
end end
local output = recipes[recipe_num].output local output = recipes[recipe_num].output
return formspec.."image["..(offset_X-1)..","..(iY+2).. return formspec.."image["..(xoffset-1)..","..(iY+2)..
".12;0.9,0.7;craftguide_arrow.png]".. ".12;0.9,0.7;craftguide_arrow.png]"..
"item_image_button["..(offset_X-2)..","..(iY+2)..";1,1;".. "item_image_button["..(xoffset-2)..","..(iY+2)..";1,1;"..
output..";"..item..";]"..tooltip_l output..";"..item..";]"..tooltip_l
end end
@ -143,7 +142,7 @@ function craftguide:get_formspec(player_name, no_recipe_update)
minetest.formspec_escape(data.filter).."]" minetest.formspec_escape(data.filter).."]"
if not next(data.items) then if not next(data.items) then
formspec = formspec.."label[2.9,2;No item to show]" formspec = formspec.."label["..(xoffset-1)..".9,2;No item to show]"
end end
local first_item = (data.pagenum - 1) * ipp local first_item = (data.pagenum - 1) * ipp
@ -151,7 +150,7 @@ function craftguide:get_formspec(player_name, no_recipe_update)
local name = data.items[i+1] local name = data.items[i+1]
if not name then break end if not name then break end
local X = i % iX local X = i % iX
local Y = ((i % ipp - X) / iX) + 1 local Y = (i % ipp - X) / iX+1
formspec = formspec.."item_image_button["..X..","..Y..";1,1;".. formspec = formspec.."item_image_button["..X..","..Y..";1,1;"..
name..";"..name.."_inv;]" name..";"..name.."_inv;]"
@ -165,11 +164,11 @@ function craftguide:get_formspec(player_name, no_recipe_update)
if is_fuel and not minetest.get_craft_recipe(data.item).items then if is_fuel and not minetest.get_craft_recipe(data.item).items then
formspec = formspec.. formspec = formspec..
"image["..(offset_X-1)..","..(iY+2).. "image["..(xoffset-1)..","..(iY+2)..
".12;0.9,0.7;craftguide_arrow.png]".. ".12;0.9,0.7;craftguide_arrow.png]"..
"item_image_button["..offset_X..","..(iY+2)..";1,1;".. "item_image_button["..xoffset..","..(iY+2)..";1,1;"..
data.item..";"..data.item..";]".. data.item..";"..data.item..";]"..
tooltip.."image["..(offset_X-2)..",".. tooltip.."image["..(xoffset-2)..","..
(iY+2)..";1,1;craftguide_none.png]" (iY+2)..";1,1;craftguide_none.png]"
else else
formspec = formspec.. formspec = formspec..