- worktable.craft_output_recipe(pos, start_i, start_i / (8*4) + 1, inputstack, recipe_num, filter)
- elseif fields.trash or fields.search or fields.clearfilter or
- fields.prev or fields.next then
- if fields.trash then
- worktable.craft_output_recipe(pos, start_i, start_i / (8*4) + 1, nil, 1, filter)
- elseif fields.search then
- worktable.craftguide_update(pos, fields.filter:lower())
- worktable.craft_output_recipe(pos, 0, 1, nil, 1, fields.filter:lower())
- elseif fields.clearfilter then
- worktable.craftguide_update(pos, nil)
- worktable.craft_output_recipe(pos, 0, 1, nil, 1, "")
- elseif fields.prev or fields.next then
- local inventory_size = #meta:to_table().inventory.inv_items_list
-
- if fields.prev or start_i >= inventory_size then
- start_i = start_i - 8*4
- elseif fields.next or start_i < 0 then
- start_i = start_i + 8*4
- end
-
- if start_i >= inventory_size then
- start_i = 0
- elseif start_i < 0 then
- start_i = inventory_size - (inventory_size % (8*4))
+ worktable.craftguide_formspec(meta, pagenum, item, recipe_num, filter, tab_id)
+ elseif fields.search then
+ worktable.craftguide_main_list(meta, fields.filter:lower(), tab_id)
+ worktable.craftguide_formspec(meta, 1, nil, 1, fields.filter:lower(), tab_id)
+ elseif fields.tabs then
+ worktable.craftguide_main_list(meta, filter, tonumber(fields.tabs))
+ worktable.craftguide_formspec(meta, 1, nil, 1, filter, tonumber(fields.tabs))
+ elseif fields.prev or fields.next then
+ if fields.prev then
+ pagenum = pagenum - 1
+ else
+ pagenum = pagenum + 1
+ end
+ worktable.craftguide_formspec(meta, pagenum, nil, 1, filter, tab_id)
+ else
+ for item in pairs(fields) do
+ if item:match("[%w_]+:[%w_]+") and
+ minetest.get_craft_recipe(item).items then
+ worktable.craftguide_formspec(meta, pagenum, item, 1, filter, tab_id)