Lua:Environments: Difference between revisions
Move lua interfaces table and give further details on the purpose of each environment |
→Environments: underp links |
||
| (3 intermediate revisions by 2 users not shown) | |||
| Line 2: | Line 2: | ||
Here is an exhaustive list of the different lua environments within Spring, roughly in execution order as a game is loaded. | Here is an exhaustive list of the different lua environments within Spring, roughly in execution order as a game is loaded. | ||
=== LuaMenu === | === LuaMenu === | ||
Source: {{sourcelink|file=rts/Lua/LuaMenu.cpp}} | |||
Introduced in 104.0, a stripped down environment that starts before the game is loaded and persists through reload. | Introduced in 104.0, a stripped down environment that starts before the game is loaded and persists through reload. | ||
=== LuaParser === | === LuaParser === | ||
Source: {{sourcelink|file=rts/Lua/LuaParser.cpp}} | |||
Minimal environment used to parse and load definition files. | Minimal environment used to parse and load definition files. | ||
=== LuaIntro === | === LuaIntro === | ||
Source: {{sourcelink|file=rts/Lua/LuaIntro.cpp}} | |||
Introduced in 95.0, to allow visual customisation of the loading process. | Introduced in 95.0, to allow visual customisation of the loading process. | ||
=== LuaRules (synced) === | === LuaRules (synced) === | ||
Source: {{sourcelink|file=rts/Lua/LuaHandle.cpp}} | |||
Source: {{sourcelink|file=rts/Lua/LuaHandleSynced.cpp#L305}} | |||
The main environment for synced game-controlling mechanics ("gadgets"). | The main environment for synced game-controlling mechanics ("gadgets"). | ||
=== LuaRules (unsynced) === | === LuaRules (unsynced) === | ||
Source: {{sourcelink|file=rts/Lua/LuaHandle.cpp}} | |||
Source: {{sourcelink|file=rts/Lua/LuaHandleSynced.cpp#L57}} | |||
The main environment for unsynced game effects, rendering, UI etc. ("gadgets") | The main environment for unsynced game effects, rendering, UI etc. ("gadgets") | ||
=== LuaGaia (synced) === | === LuaGaia (synced) === | ||
Source: {{sourcelink|file=rts/Lua/LuaGaia.cpp}} | |||
As LuaRules (synced) but for maps. | As LuaRules (synced) but for maps. | ||
=== LuaGaia (unsynced) === | === LuaGaia (unsynced) === | ||
Source: {{sourcelink|file=rts/Lua/LuaGaia.cpp}} | |||
As LuaRules (unsynced) but for maps. | As LuaRules (unsynced) but for maps. | ||
=== LuaUI === | === LuaUI === | ||
| Line 22: | Line 40: | ||
{| border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em; border: 1px #aaa solid; border-collapse: collapse;" | {| border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em; border: 1px #aaa solid; border-collapse: collapse;" | ||
| | | | ||
! align="center" | LuaMenu | |||
! align="center" | LuaIntro | |||
! align="center" | LuaParser | |||
! align="center" | LuaRules/Gaia<br><font style="font-size:80%">(synced)</font> | |||
! align="center" | LuaRules/Gaia<br><font style="font-size:80%">(unsynced)</font> | |||
! align="center" | LuaUI | ! align="center" | LuaUI | ||
|- | |- | ||
| align="left" | [[Lua_ConstGame]] | | align="left" | [[Lua_ConstGame]] | ||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#227722" | + | |||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
|- | |- | ||
| align="left" | [[Lua_ConstEngine]] | | align="left" | [[Lua_ConstEngine]] | ||
| align="center" bgcolor="#227722" | + | |||
| align="center" bgcolor="#227722" | + | |||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| Line 42: | Line 66: | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
|- | |- | ||
| align="left" | [[Lua_UnitDefs]] | | align="left" | [[Lua_UnitDefs]] | ||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
|- | |- | ||
| align="left" | [[Lua_WeaponDefs]] | | align="left" | [[Lua_WeaponDefs]] | ||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
|- | |- | ||
| align="left" | [[Lua_FeatureDefs]] | | align="left" | [[Lua_FeatureDefs]] | ||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
|- | |- | ||
| align="left" | [[Lua_ConstCOB]] | | align="left" | [[Lua_ConstCOB]] | ||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#772222" | - | | align="center" bgcolor="#772222" | - | ||
| align="center" bgcolor="#772222" | - | | align="center" bgcolor="#772222" | - | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#772222" | - | | align="center" bgcolor="#772222" | - | ||
|- | |- | ||
| align="left" | [[Lua_CMDs]] | | align="left" | [[Lua_CMDs]] | ||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#227722" | + | |||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
|- | |- | ||
| align="left" | [[Lua_UnsyncedRead]] | | align="left" | [[Lua_UnsyncedRead]] | ||
| align="center" bgcolor="#888800" | +*** | |||
| align="center" bgcolor="#888800" | +*** | |||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
|- | |- | ||
| align="left" | [[Lua_UnsyncedCtrl]] | | align="left" | [[Lua_UnsyncedCtrl]] | ||
| align="center" bgcolor="#888800" | +*** | |||
| align="center" bgcolor="#888800" | +*** | |||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
|- | |- | ||
| align="left" | [[Lua_SyncedRead]] | | align="left" | [[Lua_SyncedRead]] | ||
| align="center" bgcolor="#888800" | +** | | align="center" bgcolor="#772222" | - | ||
| align="center" bgcolor="#888800" | +*** | |||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="# | | align="center" bgcolor="#888800" | +** | ||
|- | |- | ||
| align="left" | [[Lua_SyncedCtrl]] | | align="left" | [[Lua_SyncedCtrl]] | ||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#772222" | - | | align="center" bgcolor="#772222" | - | ||
| align="center" bgcolor="#772222" | - | | align="center" bgcolor="#772222" | - | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#772222" | - | | align="center" bgcolor="#772222" | - | ||
|- | |- | ||
| align="left" | [[Lua_MoveCtrl]] | | align="left" | [[Lua_MoveCtrl]] | ||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#772222" | - | | align="center" bgcolor="#772222" | - | ||
| align="center" bgcolor="#772222" | - | | align="center" bgcolor="#772222" | - | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#772222" | - | | align="center" bgcolor="#772222" | - | ||
|- | |- | ||
| align="left" | [[Lua_PathFinder]] | | align="left" | [[Lua_PathFinder]] | ||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
|- | |- | ||
| align="left" | [[Lua_OpenGL_Api]] | | align="left" | [[Lua_OpenGL_Api]] | ||
| align="center" bgcolor="#888800" | +*** | |||
| align="center" bgcolor="#888800" | +*** | |||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
|- | |- | ||
| align="left" | [[Lua_GLSL_Api]] | | align="left" | [[Lua_GLSL_Api]] | ||
| align="center" bgcolor="#888800" | +*** | |||
| align="center" bgcolor="#888800" | +*** | |||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
|- | |- | ||
| align="left" | [[Lua_FBO_and_RBO]] | | align="left" | [[Lua_FBO_and_RBO]] | ||
| Line 130: | Line 184: | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#772222" | - | | align="center" bgcolor="#772222" | - | ||
| align="center" bgcolor="# | | align="center" bgcolor="#772222" | - | ||
| align="center" bgcolor="#227722" | + | |||
| align="center" bgcolor="#227722" | + | |||
|- | |- | ||
| align="left" | [[Lua_UnitRendering ]] | | align="left" | [[Lua_UnitRendering ]] | ||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#772222" | - | | align="center" bgcolor="#772222" | - | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#772222" | - | | align="center" bgcolor="#772222" | - | ||
|- | |- | ||
| Line 141: | Line 199: | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#772222" | - | | align="center" bgcolor="#772222" | - | ||
| align="center" bgcolor="#227722" | + | |||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
|- | |- | ||
| Line 147: | Line 207: | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#772222" | - | | align="center" bgcolor="#772222" | - | ||
| align="center" bgcolor="#227722" | + | |||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
|- | |- | ||
| align="left" | [[Lua_VFS]] | | align="left" | [[Lua_VFS]] | ||
| align="center" bgcolor="#227722" | + | |||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#888800" | +* | | align="center" bgcolor="#888800" | +* | ||
| align="center" bgcolor="#227722" | + | |||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
|- | |- | ||
| Line 159: | Line 223: | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#772222" | - | | align="center" bgcolor="#772222" | - | ||
| align="center" bgcolor="#227722" | + | |||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
|- | |- | ||
| align="left" | [[Lua_BitOps]] | | align="left" | [[Lua_BitOps]] | ||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
|- | |- | ||
| align="left" | [[Lua_MathExtra]] | | align="left" | [[Lua_MathExtra]] | ||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
|- | |- | ||
| align="left" | [[Lua_Socket]] | | align="left" | [[Lua_Socket]] | ||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
| align="center" bgcolor="#772222" | | | align="center" bgcolor="#772222" | - | ||
| align="center" bgcolor="#772222" | | | align="center" bgcolor="#772222" | - | ||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#772222" | - | |||
| align="center" bgcolor="#227722" | + | | align="center" bgcolor="#227722" | + | ||
|} | |} | ||
Latest revision as of 02:31, 26 December 2017
Environments
Here is an exhaustive list of the different lua environments within Spring, roughly in execution order as a game is loaded.
LuaMenu
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
Source: rts/Lua/LuaParser.cpp
Minimal environment used to parse and load definition files.
LuaIntro
Source: rts/Lua/LuaIntro.cpp
Introduced in 95.0, to allow visual customisation of the loading process.
LuaRules (synced)
Source: rts/Lua/LuaHandle.cpp
Source: rts/Lua/LuaHandleSynced.cpp#L305
The main environment for synced game-controlling mechanics ("gadgets").
LuaRules (unsynced)
Source: rts/Lua/LuaHandle.cpp
Source: rts/Lua/LuaHandleSynced.cpp#L57
The main environment for unsynced game effects, rendering, UI etc. ("gadgets")
LuaGaia (synced)
Source: rts/Lua/LuaGaia.cpp
As LuaRules (synced) but for maps.
LuaGaia (unsynced)
Source: rts/Lua/LuaGaia.cpp
As LuaRules (unsynced) but for maps.
LuaUI
The main environment for toggleable UI elements and controls ("widgets").
Interfaces
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 |