z_mirror/flib

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

Caleb HeuerRemove require guardsa9f2be7

trunk
811 B30 linesraw
1--- Defines reverse lookup table.
2---
3--- NOTE: Type intellisense simply does not work for this module, and there is no easy way to fix
4--- it. Use of this module is discouraged.
5---
6--- # Example
7---
8--- ```lua
9--- event.on_built_entity(function(e)
10---   local player = game.get_player(e.player_index)
11---   local controller_name = reverse_defines.controllers[player.controller_type]
12--- end)
13--- ```
14local flib_reverse_defines = {}
15
16local function build_reverse_defines(lookup_table, base_table)
17  lookup_table = lookup_table or {}
18  for k, v in pairs(base_table) do
19    if type(v) == "table" then
20      lookup_table[k] = {}
21      build_reverse_defines(lookup_table[k], v)
22    else
23      lookup_table[v] = k
24    end
25  end
26end
27
28build_reverse_defines(flib_reverse_defines, defines)
29
30return flib_reverse_defines