diff options
author | JPG <jeanpatrick.guerrero@gmail.com> | 2016-12-24 21:17:32 +0100 |
---|---|---|
committer | JPG <jeanpatrick.guerrero@gmail.com> | 2016-12-24 22:09:06 +0100 |
commit | 3776ac94127e79c738cd7c8640b157c14fc9a024 (patch) | |
tree | 239fa8570387f0c869b69f0e248a477046290802 | |
parent | 7234e421238befb51d7095093ffc129b191d067a (diff) |
Progressive mode: fix search
-rw-r--r-- | init.lua | 26 |
1 files changed, 16 insertions, 10 deletions
@@ -21,10 +21,10 @@ local group_stereotypes = { function craftguide:group_to_item(item) if item:sub(1,6) == "group:" then - local short_itemstr = item:sub(7) - if group_stereotypes[short_itemstr] then - item = group_stereotypes[short_itemstr] - elseif reg_items["default:"..item:sub(7)] then + local itemsub = item:sub(7) + if group_stereotypes[itemsub] then + item = group_stereotypes[itemsub] + elseif reg_items["default:"..itemsub] then item = item:gsub("group:", "default:") else for name, def in pairs(reg_items) do @@ -147,6 +147,10 @@ function craftguide:get_formspec(player_name, is_fuel) local data = datas[player_name] local iY = data.iX - 5 local ipp = data.iX * iY + + if not data.items then + data.items = data.init_items + end data.pagemax = max(1, ceil(#data.items / ipp)) local formspec = "size["..data.iX..","..(iY+3)..".6;]"..[[ @@ -279,12 +283,12 @@ function craftguide:get_init_items(player_name) sort(items_list) data.init_items = items_list - data.items = items_list end function craftguide:get_filter_items(data, player) local filter = data.filter - local items_list = progressive_mode and data.items or data.init_items + local items_list = progressive_mode and data.init_filter_items or + data.init_items local inv = player:get_inventory() local filtered_list, counter = {}, 0 @@ -306,6 +310,10 @@ function craftguide:get_filter_items(data, player) end end end + + if progressive_mode and not data.items then + data.init_filter_items = filtered_list + end data.items = filtered_list end @@ -317,10 +325,8 @@ mt.register_on_player_receive_fields(function(player, formname, fields) if fields.clear then data.filter, data.item, data.pagenum, data.recipe_num = "", nil, 1, 1 - data.items = data.init_items - if progressive_mode then - craftguide:get_filter_items(data, player) - end + data.items = progressive_mode and data.init_filter_items or + data.init_items craftguide:get_formspec(player_name) elseif fields.alternate then local recipe = data.recipes_item[data.recipe_num + 1] |