Rearrange and add recipe tooltips.

master
Duane Robertson 2019-07-28 02:18:08 -05:00
parent ff1a588e90
commit 67c72c3744
1 changed files with 38 additions and 26 deletions

View File

@ -26,6 +26,7 @@ local WORN_INV = 'worn'
minetest.register_craftitem(mod_name..':bag_medium', { minetest.register_craftitem(mod_name..':bag_medium', {
description = 'Medium Bag',
inventory_image = 'bags_medium.png', inventory_image = 'bags_medium.png',
stack_max = 1, stack_max = 1,
_dinv_storage_size = 16, _dinv_storage_size = 16,
@ -41,6 +42,7 @@ minetest.register_craft({
}) })
minetest.register_craftitem(mod_name..':bag_large', { minetest.register_craftitem(mod_name..':bag_large', {
description = 'Large Bag',
inventory_image = 'bags_large.png', inventory_image = 'bags_large.png',
stack_max = 1, stack_max = 1,
_dinv_storage_size = 24, _dinv_storage_size = 24,
@ -56,6 +58,7 @@ minetest.register_craft({
}) })
minetest.register_craftitem(mod_name..':bag_small', { minetest.register_craftitem(mod_name..':bag_small', {
description = 'Small Bag',
inventory_image = 'bags_small.png', inventory_image = 'bags_small.png',
stack_max = 1, stack_max = 1,
_dinv_storage_size = 8, _dinv_storage_size = 8,
@ -106,6 +109,7 @@ minetest.register_craft({
}) })
minetest.register_craftitem(mod_name..':diamond_plate', { minetest.register_craftitem(mod_name..':diamond_plate', {
description = 'Diamond Plate',
inventory_image = 'dinv_diamond_plate.png', inventory_image = 'dinv_diamond_plate.png',
}) })
@ -222,6 +226,7 @@ minetest.register_craft({
}) })
minetest.register_craftitem(mod_name..':steel_plate', { minetest.register_craftitem(mod_name..':steel_plate', {
description = 'Steel Plate',
inventory_image = 'dinv_steel_plate.png', inventory_image = 'dinv_steel_plate.png',
}) })
@ -235,6 +240,7 @@ minetest.register_craft({
}) })
minetest.register_craftitem(mod_name..':steel_rings', { minetest.register_craftitem(mod_name..':steel_rings', {
description = 'Steel Rings',
inventory_image = 'dinv_steel_rings.png', inventory_image = 'dinv_steel_rings.png',
}) })
@ -414,14 +420,14 @@ local worn_items = mod.worn_items
-- Formspec definitions are confusing. -- Formspec definitions are confusing.
mod.form_size = 'size[11.25,7.75]' mod.form_size = 'size[11.25,7.25]'
mod.main_inventory = 'list[current_player;main;0,4;8,4;' mod.main_inventory = 'list[current_player;main;0,3.5;8,4;'
mod.craft_inventory = 'list[current_player;craft;3,0;3,3;]' mod.craft_inventory = 'list[current_player;craft;1,0;3,3;]'
mod.craft_preview = 'list[current_player;craftpreview;6,1;1,1;]' mod.craft_preview = 'list[current_player;craftpreview;4,2;1,1;]'
mod.main_inventory_scroll_up = 'image_button[8,4;1,1;transparent_button.png;dinv_main_inventory_up;Up]' mod.main_inventory_scroll_up = 'image_button[8,3.5;1,1;transparent_button.png;dinv_main_inventory_up;Up]'
mod.main_inventory_scroll_down = 'image_button[8,7;1,1;transparent_button.png;dinv_main_inventory_down;Down]' mod.main_inventory_scroll_down = 'image_button[8,6.5;1,1;transparent_button.png;dinv_main_inventory_down;Down]'
mod.recipe_buttons = 'image_button[3,3;1,1;transparent_button.png;dinv_recipe_back;Back]image_button[5,3;1,1;transparent_button.png;dinv_recipe_fore;Fore]' mod.recipe_button = 'image_button[4,1;1,1;transparent_button.png;dinv_recipe_next;Next]'
mod.worn_items_inv = 'list[current_player;worn;9.25,4;2,4;]' mod.worn_items_inv = 'list[current_player;worn;9.25,3.5;2,4;]'
-- All this is necessary to add scroll buttons to chests. -- All this is necessary to add scroll buttons to chests.
@ -604,7 +610,6 @@ function mod.make_inventory_spec(player)
inventory = inventory .. mod.main_inventory .. scroll_main_to .. ']' inventory = inventory .. mod.main_inventory .. scroll_main_to .. ']'
inventory = inventory .. mod.craft_inventory inventory = inventory .. mod.craft_inventory
inventory = inventory .. 'listring[]' inventory = inventory .. 'listring[]'
inventory = inventory .. mod.recipe_buttons
inventory = inventory .. mod.craft_preview inventory = inventory .. mod.craft_preview
inventory = inventory .. mod.main_inventory_scroll_up inventory = inventory .. mod.main_inventory_scroll_up
inventory = inventory .. mod.main_inventory_scroll_down inventory = inventory .. mod.main_inventory_scroll_down
@ -686,10 +691,16 @@ function mod.recipe_grid(player)
dat['recipe_number'] = recipe_number dat['recipe_number'] = recipe_number
end end
local recipe = recipes[recipe_number] local recipe = recipes[recipe_number]
--print(dump(recipe))
local inv = '' local inv = ''
inv = inv .. 'container[3,0]' inv = inv .. 'container[1,0]'
do
local tooltip = craft_item
inv = inv .. 'item_image[3,2;1,1;' .. craft_item .. ']'
tooltip = minetest.registered_items[craft_item].description or tooltip
inv = inv .. 'tooltip[3,2;1,1;' .. 'recipe: ' .. tooltip .. ']'
end
local w = recipe.width or 3 local w = recipe.width or 3
if w == 0 or w > 3 then if w == 0 or w > 3 then
@ -705,21 +716,23 @@ function mod.recipe_grid(player)
if recipe.type == 'normal' then if recipe.type == 'normal' then
item = recipe.items[(y * w) + x] item = recipe.items[(y * w) + x]
end end
local tooltip = item
if item and item:find('^group') then if item and item:find('^group') then
--print(item) --print(item)
item = group_rep[item] item = group_rep[item]
if item then if item then
g_s[i] = true g_s[i] = true
end end
elseif item then
tooltip = minetest.registered_items[item].description or tooltip
end end
if item then if item then
inv = inv .. 'item_image[' .. (x - 1) .. ',' .. (y) .. ';1,1;' .. item .. ']' inv = inv .. 'item_image[' .. (x - 1) .. ',' .. (y) .. ';1,1;' .. item .. ']'
inv = inv .. 'tooltip[' .. (x - 1) .. ',' .. (y) .. ';1,1;' .. 'recipe: ' .. tooltip .. ']'
end end
end end
end end
inv = inv .. 'container_end[]'
inv = inv .. 'container[3,0]'
for i = 1, 9 do for i = 1, 9 do
if g_s[i] then if g_s[i] then
local x = (i - 1) % w local x = (i - 1) % w
@ -729,6 +742,10 @@ function mod.recipe_grid(player)
end end
inv = inv .. 'container_end[]' inv = inv .. 'container_end[]'
if #recipes > 1 then
inv = inv .. mod.recipe_button
end
return inv return inv
end end
@ -752,7 +769,7 @@ function mod.recipe_list(player)
end end
local inv = '' local inv = ''
inv = inv .. 'textlist[7,0;4,3.5;dinv_recipe_list;' inv = inv .. 'textlist[5,0;3.75,2.9;dinv_recipe_list;'
local t local t
for k, v in pairs(sorted_items) do for k, v in pairs(sorted_items) do
if t then if t then
@ -886,13 +903,11 @@ function mod.show_recipe(player, field)
return return
end end
if field:find('CHG') then local t = minetest.explode_textlist_event(field)
local n = field:gsub('.*CHG:(%d+).*', '%1') if t.type == 'CHG' and t.index then
if n then mod.dat[player_name].craft_item_number = tonumber(t.index)
mod.dat[player_name].craft_item_number = tonumber(n) mod.dat[player_name].recipe_number = 1
mod.dat[player_name].recipe_number = 1 player:set_inventory_formspec(mod.make_inventory_spec(player))
player:set_inventory_formspec(mod.make_inventory_spec(player))
end
end end
end end
@ -1127,8 +1142,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
fields['dinv_main_inventory_up'] fields['dinv_main_inventory_up']
or fields['dinv_main_inventory_down'] or fields['dinv_main_inventory_down']
or fields['dinv_recipe_list'] or fields['dinv_recipe_list']
or fields['dinv_recipe_back'] or fields['dinv_recipe_next']
or fields['dinv_recipe_fore']
) then ) then
return return
end end
@ -1142,9 +1156,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
mod.scroll_main(player, 16, main_inventory_size) mod.scroll_main(player, 16, main_inventory_size)
elseif fields and fields['dinv_recipe_list'] then elseif fields and fields['dinv_recipe_list'] then
mod.show_recipe(player, fields['dinv_recipe_list']) mod.show_recipe(player, fields['dinv_recipe_list'])
elseif fields and fields['dinv_recipe_back'] then elseif fields and fields['dinv_recipe_next'] then
mod.switch_recipe(player, -1)
elseif fields and fields['dinv_recipe_fore'] then
mod.switch_recipe(player, 1) mod.switch_recipe(player, 1)
end end
end) end)