Rearrange and add recipe tooltips.
This commit is contained in:
parent
ff1a588e90
commit
67c72c3744
64
init.lua
64
init.lua
@ -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)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user