summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJPG <jeanpatrick.guerrero@gmail.com>2016-12-24 21:17:32 +0100
committerJPG <jeanpatrick.guerrero@gmail.com>2016-12-24 22:09:06 +0100
commit3776ac94127e79c738cd7c8640b157c14fc9a024 (patch)
tree239fa8570387f0c869b69f0e248a477046290802
parent7234e421238befb51d7095093ffc129b191d067a (diff)
Progressive mode: fix search
-rw-r--r--init.lua26
1 files changed, 16 insertions, 10 deletions
diff --git a/init.lua b/init.lua
index 9dc5355..4edfecf 100644
--- a/init.lua
+++ b/init.lua
@@ -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]