z_mirror/Krastorio2
git clone https://git.raiguard.me/z_mirror/Krastorio2
07409ca6
four-space-indentation
1local flib_table =require ( "__flib__.table" ) 2 3--- Equipment category name -> entities 4--- @type table<string, string[]> 5local category_to_owners ={} 6for entity_name , entity in pairs ( prototypes . entity ) do 7local grid =entity . grid_prototype 8if grid then 9for _ , category_name in pairs ( grid . equipment_categories ) do 10table . insert ( flib_table . get_or_insert ( category_to_owners , category_name , {} ), "entity/" .. entity_name ) 11end 12end 13end 14for item_name , item in pairs ( prototypes . item ) do 15local grid =item . equipment_grid 16if grid then 17for _ , category_name in pairs ( grid . equipment_categories ) do 18table . insert ( flib_table . get_or_insert ( category_to_owners , category_name , {} ), "item/" .. item_name ) 19end 20end 21end 22 23--- @type table<string, string[]> 24local equipment_to_owners ={} 25for equipment_name , equipment in pairs ( prototypes . equipment ) do 26local owners ={} 27for _ , category_name in pairs ( equipment . equipment_categories ) do 28local category_owners =category_to_owners [ category_name ] 29if category_owners then 30for _ , owner in pairs ( category_owners ) do 31table . insert ( owners , owner ) 32end 33else 34log ( "NO owners for " .. category_name ) 35end 36end 37equipment_to_owners [ equipment_name ] =owners 38end 39 40for _ , owners in pairs ( equipment_to_owners ) do 41table . sort ( owners ) 42end 43 44log ( serpent . block ( equipment_to_owners ))