diff options
Diffstat (limited to 'unified_inventory/callbacks.lua')
-rw-r--r-- | unified_inventory/callbacks.lua | 182 |
1 files changed, 0 insertions, 182 deletions
diff --git a/unified_inventory/callbacks.lua b/unified_inventory/callbacks.lua deleted file mode 100644 index d8c8853..0000000 --- a/unified_inventory/callbacks.lua +++ /dev/null @@ -1,182 +0,0 @@ - -minetest.register_on_joinplayer(function(player) - local player_name = player:get_player_name() - unified_inventory.players[player_name] = {} - unified_inventory.current_index[player_name] = 1 - unified_inventory.filtered_items_list[player_name] = unified_inventory.items_list - unified_inventory.activefilter[player_name] = "" - unified_inventory.apply_filter(player, "") - unified_inventory.alternate[player_name] = 1 - unified_inventory.current_item[player_name] = nil - unified_inventory.set_inventory_formspec(player, unified_inventory.default) - - -- 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) - if unified_inventory.is_creative(player:get_player_name()) then - return stack:get_count() - else - return 0 - end - end, - allow_move = function(inv, from_list, from_index, to_list, to_index, count, player) - return 0 - end, - }) - inv:set_size("output", 1) - inv:set_size("build", 3 * 3) - - -- Refill slot - local refill = minetest.create_detached_inventory(player_name.."refill", { - allow_put = function(inv, listname, index, stack, player) - if unified_inventory.is_creative(player:get_player_name()) then - return stack:get_count() - else - return 0 - end - end, - on_put = function(inv, listname, index, stack, player) - local stacktable = stack:to_table() - stacktable.count = stack:get_stack_max() - inv:set_stack(listname, index, ItemStack(stacktable)) - minetest.sound_play("electricity", {to_player=player_name, gain = 1.0}) - end, - }) - refill:set_size("main", 1) -end) - -minetest.register_on_player_receive_fields(function(player, formname, fields) - local player_name = player:get_player_name() - - for i, def in pairs(unified_inventory.buttons) do - if fields[def.name] then - def.action(player) - minetest.sound_play("click", - {to_player=player_name, gain = 0.1}) - return - end - end - - -- Inventory page controls - local start = math.floor(unified_inventory.current_index[player_name] / 80 + 1) - local start_i = start - local pagemax = math.floor((unified_inventory.filtered_items_list_size[player_name] - 1) / (80) + 1) - - if fields.start_list then - minetest.sound_play("paperflip1", - {to_player=player_name, gain = 1.0}) - start_i = 1 - end - if fields.rewind1 then - minetest.sound_play("paperflip1", - {to_player=player_name, gain = 1.0}) - start_i = start_i - 1 - end - if fields.forward1 then - minetest.sound_play("paperflip1", - {to_player=player_name, gain = 1.0}) - start_i = start_i + 1 - end - if fields.rewind3 then - minetest.sound_play("paperflip1", - {to_player=player_name, gain = 1.0}) - start_i = start_i - 3 - end - if fields.forward3 then - minetest.sound_play("paperflip1", - {to_player=player_name, gain = 1.0}) - start_i = start_i + 3 - end - if fields.end_list then - minetest.sound_play("paperflip1", - {to_player=player_name, gain = 1.0}) - start_i = pagemax - end - if start_i < 1 then - start_i = 1 - end - if start_i > pagemax then - start_i = pagemax - end - if not (start_i == start) then - unified_inventory.current_index[player_name] = (start_i - 1) * 80 + 1 - unified_inventory.set_inventory_formspec(player, - unified_inventory.current_page[player_name]) - end - - -- Item list buttons - local list_index = unified_inventory.current_index[player_name] - local page = unified_inventory.current_page[player_name] - for i = 0, 80 do - local button = "item_button"..list_index - if fields[button] then - minetest.sound_play("click", - {to_player=player_name, gain = 0.1}) - if not unified_inventory.is_creative(player_name) then - unified_inventory.set_inventory_formspec(player, "craftguide") - page = "craftguide" - end - if page == "craftguide" then - unified_inventory.current_item[player_name] = - unified_inventory.filtered_items_list - [player_name][list_index] - unified_inventory.alternate[player_name] = 1 - unified_inventory.update_recipe(player, - unified_inventory.filtered_items_list - [player_name][list_index], 1) - unified_inventory.set_inventory_formspec(player, - unified_inventory.current_page[player_name]) - else - if unified_inventory.is_creative(player_name) then - local inv = player:get_inventory() - dst_stack = {} - dst_stack.name = unified_inventory.filtered_items_list - [player_name][list_index] - dst_stack.count = 99 - if inv:room_for_item("main", dst_stack) then - inv:add_item("main", dst_stack) - end - end - end - end - list_index = list_index + 1 - end - - if fields.searchbutton then - unified_inventory.apply_filter(player, fields.searchbox) - unified_inventory.set_inventory_formspec(player, - unified_inventory.current_page[player_name]) - minetest.sound_play("paperflip2", - {to_player=player_name, gain = 1.0}) - end - - -- alternate button - if fields.alternate then - minetest.sound_play("click", - {to_player=player_name, gain = 0.1}) - local item_name = unified_inventory.current_item[player_name] - if item_name then - local alternates = 0 - local alternate = unified_inventory.alternate[player_name] - local crafts = unified_inventory.crafts_table[item_name] - if crafts ~= nil then - alternates = #crafts - end - if alternates > 1 then - alternate = alternate + 1 - if alternate > alternates then - alternate = 1 - end - unified_inventory.alternate[player_name] = alternate - unified_inventory.update_recipe(player, - unified_inventory.current_item[player_name], alternate) - unified_inventory.set_inventory_formspec(player, - unified_inventory.current_page[player_name]) - end - end - end -end) - |