z_mirror/Krastorio2

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

Caleb HeuerChange to four-space indentation07409ca6

four-space-indentation
1.4 KiB44 linesraw
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
7    local grid = entity.grid_prototype
8    if grid then
9        for _, category_name in pairs(grid.equipment_categories) do
10            table.insert(flib_table.get_or_insert(category_to_owners, category_name, {}), "entity/" .. entity_name)
11        end
12    end
13end
14for item_name, item in pairs(prototypes.item) do
15    local grid = item.equipment_grid
16    if grid then
17        for _, category_name in pairs(grid.equipment_categories) do
18            table.insert(flib_table.get_or_insert(category_to_owners, category_name, {}), "item/" .. item_name)
19        end
20    end
21end
22
23--- @type table<string, string[]>
24local equipment_to_owners = {}
25for equipment_name, equipment in pairs(prototypes.equipment) do
26    local owners = {}
27    for _, category_name in pairs(equipment.equipment_categories) do
28        local category_owners = category_to_owners[category_name]
29        if category_owners then
30            for _, owner in pairs(category_owners) do
31                table.insert(owners, owner)
32            end
33        else
34            log("NO owners for " .. category_name)
35        end
36    end
37    equipment_to_owners[equipment_name] = owners
38end
39
40for _, owners in pairs(equipment_to_owners) do
41    table.sort(owners)
42end
43
44log(serpent.block(equipment_to_owners))