z_mirror/RecipeBook
git clone https://git.raiguard.me/z_mirror/RecipeBook
04c2d70
trunk
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 ) 9if not util . should_include ( prototype ) then 10return 11end 12local path =util . get_path ( prototype ) 13flib_dictionary . add ( 14"description" , 15path , 16{ "?" , prototype . factoriopedia_description , prototype . localised_description } --- @diagnostic disable-line:assign-type-mismatch 17) 18end 19 20local function rebuild () 21flib_dictionary . new ( "search" ) 22for _ , group in pairs ( search_tree . plain . groups ) do 23for _ , subgroup in pairs ( group ) do 24for _ , prototype in pairs ( subgroup ) do 25local prototype_path =util . get_path ( prototype ) 26flib_dictionary . add ( "search" , prototype_path , { "?" , prototype . localised_name , prototype_path } ) --- @diagnostic disable-line:assign-type-mismatch 27end 28end 29end 30 31flib_dictionary . new ( "description" ) 32for _ , entity in pairs ( prototypes . entity ) do 33add_description ( entity ) 34end 35for _ , equipment in pairs ( prototypes . equipment ) do 36add_description ( equipment ) 37end 38for _ , fluid in pairs ( prototypes . fluid ) do 39add_description ( fluid ) 40end 41for _ , item in pairs ( prototypes . item ) do 42add_description ( item ) 43end 44for _ , recipe in pairs ( prototypes . recipe ) do 45add_description ( recipe ) 46end 47for _ , tile in pairs ( prototypes . tile ) do 48add_description ( tile ) 49end 50end 51 52local M ={} 53 54M . on_init =rebuild 55M . on_configuration_changed =rebuild 56 57return M