From faffd2ae65183f603d8894987d8d1010a1311acf Mon Sep 17 00:00:00 2001 From: RealBadAngel Date: Wed, 12 Dec 2012 08:21:25 +0100 Subject: [PATCH] - fixed refill slot bein same for all players - set time buttons now require settime privs to work - item name (regular) is displayed in Crafting guide --- unified_inventory/unified_inventory/api.lua | 89 +++++++++++---------- 1 file changed, 48 insertions(+), 41 deletions(-) diff --git a/unified_inventory/unified_inventory/api.lua b/unified_inventory/unified_inventory/api.lua index db0a069..c2fe3fc 100644 --- a/unified_inventory/unified_inventory/api.lua +++ b/unified_inventory/unified_inventory/api.lua @@ -46,11 +46,12 @@ minetest.register_on_joinplayer(function(player) unified_inventory.alternate[player_name] = 1 unified_inventory.current_item[player_name] =nil unified_inventory.set_inventory_formspec(player,unified_inventory.get_formspec(player, unified_inventory.default)) - - local inv = minetest.create_detached_inventory(player:get_player_name().."craftrecipe",{ - allow_put = function(inv, listname, index, stack, player) - return 0 - end, + +--crafting guide inventories +local inv = minetest.create_detached_inventory(player:get_player_name().."craftrecipe",{ + allow_put = function(inv, listname, index, stack, player) + return 0 + end, allow_take = function(inv, listname, index, stack, player) return 0 end, @@ -60,10 +61,38 @@ minetest.register_on_joinplayer(function(player) }) inv:set_size("output", 1) inv:set_size("build", 3*3) - inv:set_size("cook", 1) - inv:set_size("fuel", 1) + +-- refill slot +unified_inventory.refill = minetest.create_detached_inventory(player_name.."refill", { + allow_put = function(inv, listname, index, stack, player) + if minetest.setting_getbool("creative_mode") then + return stack:get_count() + else + return 0 + end + end, + on_put = function(inv, listname, index, stack, player) + inv:set_stack(listname, index, ItemStack(stack:get_name().." "..stack:get_stack_max())) + end, +}) +unified_inventory.refill:set_size("main", 1) end) +-- trash slot +unified_inventory.trash = minetest.create_detached_inventory("trash", { + allow_put = function(inv, listname, index, stack, player) + if minetest.setting_getbool("creative_mode") then + return stack:get_count() + else + return 0 + end + end, + on_put = function(inv, listname, index, stack, player) + inv:set_stack(listname, index, nil) + end, +}) +unified_inventory.trash:set_size("main", 1) + -- set_inventory_formspec unified_inventory.set_inventory_formspec = function(player,formspec) if player then @@ -115,7 +144,7 @@ unified_inventory.get_formspec = function(player,page) formspec = formspec.."list[current_player;craft;2,1;3,3;]" if minetest.setting_getbool("creative_mode") then formspec = formspec.."label[0,2.5;Refill:]" - formspec = formspec.."list[detached:refill;main;0,3;1,1;]" + formspec = formspec.."list[detached:"..player_name.."refill;main;0,3;1,1;]" formspec = formspec.."label[7,2.5;Trash:]" formspec = formspec.."list[detached:trash;main;7,3;1,1;]" end @@ -130,8 +159,8 @@ unified_inventory.get_formspec = function(player,page) formspec = formspec.."label[6,0.5;Output:]" formspec = formspec.."label[6,2.6;Method:]" local item_name=unified_inventory.current_item[player_name] - --print (dump(item_name)) if item_name then + formspec = formspec.."label[2,0;"..item_name.."]" local alternates = 0 local alternate = unified_inventory.alternate[player_name] local crafts = crafts_table[item_name] @@ -225,36 +254,6 @@ unified_inventory.get_formspec = function(player,page) return formspec end --- trash slot -unified_inventory.trash = minetest.create_detached_inventory("trash", { - allow_put = function(inv, listname, index, stack, player) - if minetest.setting_getbool("creative_mode") then - return stack:get_count() - else - return 0 - end - end, - on_put = function(inv, listname, index, stack, player) - inv:set_stack(listname, index, nil) - end, -}) -unified_inventory.trash:set_size("main", 1) - --- refill slot -unified_inventory.refill = minetest.create_detached_inventory("refill", { - allow_put = function(inv, listname, index, stack, player) - if minetest.setting_getbool("creative_mode") then - return stack:get_count() - else - return 0 - end - end, - on_put = function(inv, listname, index, stack, player) - inv:set_stack(listname, index, ItemStack(stack:get_name().." "..stack:get_stack_max())) - end, -}) -unified_inventory.refill:set_size("main", 1) - -- register_on_player_receive_fields minetest.register_on_player_receive_fields(function(player, formname, fields) local player_name = player:get_player_name() @@ -302,12 +301,20 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) unified_inventory.go_home(player) end if fields.misc_set_day then + if minetest.get_player_privs(player_name).settime==true then minetest.env:set_timeofday((6000 % 24000) / 24000) minetest.chat_send_player(player_name, "Time of day set to 6am") + else + minetest.chat_send_player(player_name, "You don't have settime priviledge!") + end end if fields.misc_set_night then + if minetest.get_player_privs(player_name).settime==true then minetest.env:set_timeofday((21000 % 24000) / 24000) - minetest.chat_send_player(player_name, "Time of day set to 9pm") + minetest.chat_send_player(player_name, "Time of day set to 9pm") + else + minetest.chat_send_player(player_name, "You don't have settime priviledge!") + end end -- Inventory page controls @@ -489,7 +496,7 @@ unified_inventory.update_recipe = function(player, stack_name, alternate) alternate = 1 end local craft = crafts[alternate] - print (dump(craft)) + --print (dump(craft)) --minetest.chat_send_player(player:get_player_name(), "recipe for "..stack_name..": "..dump(craft)) local itemstack = ItemStack(craft.output)