z_mirror/RecipeBook

git clone https://git.raiguard.me/z_mirror/RecipeBook

Caleb HeuerDisable "show hidden" button by default04c2d70

trunk
1.6 KiB57 linesraw
1-- TODO: Make custom dictionary module that allows me to build the dictionaries in the root scope
2
3local flib_dictionary = require("__flib__.dictionary")
4
5local search_tree = require("scripts.database.search-tree")
6local util = require("scripts.util")
7
8local function add_description(prototype)
9  if not util.should_include(prototype) then
10    return
11  end
12  local path = util.get_path(prototype)
13  flib_dictionary.add(
14    "description",
15    path,
16    { "?", prototype.factoriopedia_description, prototype.localised_description } --- @diagnostic disable-line:assign-type-mismatch
17  )
18end
19
20local function rebuild()
21  flib_dictionary.new("search")
22  for _, group in pairs(search_tree.plain.groups) do
23    for _, subgroup in pairs(group) do
24      for _, prototype in pairs(subgroup) do
25        local prototype_path = util.get_path(prototype)
26        flib_dictionary.add("search", prototype_path, { "?", prototype.localised_name, prototype_path }) --- @diagnostic disable-line:assign-type-mismatch
27      end
28    end
29  end
30
31  flib_dictionary.new("description")
32  for _, entity in pairs(prototypes.entity) do
33    add_description(entity)
34  end
35  for _, equipment in pairs(prototypes.equipment) do
36    add_description(equipment)
37  end
38  for _, fluid in pairs(prototypes.fluid) do
39    add_description(fluid)
40  end
41  for _, item in pairs(prototypes.item) do
42    add_description(item)
43  end
44  for _, recipe in pairs(prototypes.recipe) do
45    add_description(recipe)
46  end
47  for _, tile in pairs(prototypes.tile) do
48    add_description(tile)
49  end
50end
51
52local M = {}
53
54M.on_init = rebuild
55M.on_configuration_changed = rebuild
56
57return M