Lua Environments
Contents
Environments[edit]
Here is an exhaustive list of the different lua environments within Spring, roughly in execution order as a game is loaded.
LuaMenu[edit]
Source: rts/Lua/LuaMenu.cpp
Introduced in 104.0, a stripped down environment that starts before the game is loaded and persists through reload.
LuaParser[edit]
Source: rts/Lua/LuaParser.cpp
Minimal environment used to parse and load definition files.
LuaIntro[edit]
Source: rts/Lua/LuaIntro.cpp
Introduced in 95.0, to allow visual customisation of the loading process.
LuaRules (synced)[edit]
Source: rts/Lua/LuaHandle.cpp
Source: rts/Lua/LuaHandleSynced.cpp#L305
The main environment for synced game-controlling mechanics ("gadgets").
LuaRules (unsynced)[edit]
Source: rts/Lua/LuaHandle.cpp
Source: rts/Lua/LuaHandleSynced.cpp#L57
The main environment for unsynced game effects, rendering, UI etc. ("gadgets")
LuaGaia (synced)[edit]
Source: rts/Lua/LuaGaia.cpp
As LuaRules (synced) but for maps.
LuaGaia (unsynced)[edit]
Source: rts/Lua/LuaGaia.cpp
As LuaRules (unsynced) but for maps.
LuaUI[edit]
The main environment for toggleable UI elements and controls ("widgets").
Interfaces[edit]
The following table demonstrates which interfaces are available to each environment.
| LuaMenu | LuaIntro | LuaParser | LuaRules/Gaia (synced) |
LuaRules/Gaia (unsynced) |
LuaUI | |
|---|---|---|---|---|---|---|
| Lua_ConstGame | - | + | - | + | + | + |
| Lua_ConstEngine | + | + | + | + | + | + |
| Lua_ConstPlatform | + | + | - | - | + | + |
| Lua_UnitDefs | - | - | - | + | + | + |
| Lua_WeaponDefs | - | - | - | + | + | + |
| Lua_FeatureDefs | - | - | - | + | + | + |
| Lua_ConstCOB | - | - | - | + | - | - |
| Lua_CMDs | - | + | - | + | + | + |
| Lua_UnsyncedRead | +*** | +*** | - | - | + | + |
| Lua_UnsyncedCtrl | +*** | +*** | - | + | + | + |
| Lua_SyncedRead | - | +*** | - | + | + | +** |
| Lua_SyncedCtrl | - | - | - | + | - | - |
| Lua_MoveCtrl | - | - | - | + | - | - |
| Lua_PathFinder | - | - | - | + | + | + |
| Lua_OpenGL_Api | +*** | +*** | - | - | + | + |
| Lua_GLSL_Api | +*** | +*** | - | - | + | + |
| Lua_FBO_and_RBO | + | + | - | - | + | + |
| Lua_UnitRendering | - | - | - | - | + | - |
| Lua_Fonts | + | + | - | - | + | + |
| Lua_ConstGL | + | + | - | - | + | + |
| Lua_VFS | + | + | + | +* | + | + |
| Lua_Scream | + | + | - | - | + | + |
| Lua_BitOps | - | - | - | + | + | + |
| Lua_MathExtra | - | - | - | + | + | + |
| Lua_Socket | + | - | - | - | - | + |
| * | only VFS.ZIP_ONLY |
| ** | with special LOS handling and decoy unit handling |
| *** | stripped down environment with certain functions removed |