mirror of
https://github.com/AquariaOSE/Aquaria.git
synced 2024-11-25 09:44:02 +00:00
46 lines
995 B
Lua
46 lines
995 B
Lua
|
-- Generate list of script function names available in the OSE version
|
||
|
-- call with path/to/ScriptInterface.cpp
|
||
|
|
||
|
local RO = { flipHorizontal = true, flipVertical = true }
|
||
|
local Q = {}
|
||
|
local F = {}
|
||
|
|
||
|
local function emit(prefix, a)
|
||
|
for k in pairs(a) do
|
||
|
F[prefix .. "_" .. k] = true
|
||
|
end
|
||
|
end
|
||
|
|
||
|
for line in io.lines((...)) do
|
||
|
local fn = line:match"^%s*luaRegister%(([%w_]+)%)"
|
||
|
if fn then
|
||
|
F[fn] = true
|
||
|
end
|
||
|
|
||
|
local rf = line:match"^%s*RO_FUNC%(.-([%w_]+)%s*%)"
|
||
|
if rf then
|
||
|
RO[rf] = true
|
||
|
end
|
||
|
|
||
|
local qf = line:match"^%s*Q_FUNC%(.-([%w_]+)%s*%)"
|
||
|
if qf then
|
||
|
Q[qf] = true
|
||
|
RO[qf] = true
|
||
|
end
|
||
|
|
||
|
local lut = { QUAD = Q, ROBJ = RO }
|
||
|
local c, p = line:match"^%s*MAKE_([A-Z]+)_FUNCS%(.-([%w_]+)%s*%)"
|
||
|
if c and p ~= "prefix" then
|
||
|
--print(c, p, line)
|
||
|
emit(p, lut[c])
|
||
|
end
|
||
|
end
|
||
|
|
||
|
local LIST = {}
|
||
|
for k in pairs(F) do
|
||
|
table.insert(LIST, k)
|
||
|
end
|
||
|
table.sort(LIST)
|
||
|
print(table.concat(LIST, "\n"))
|
||
|
|