Lua:Environments: Difference between revisions

From Spring
Jump to navigationJump to search
Flozi (talk | contribs)
Move lua interfaces table and give further details on the purpose of each environment
 
Flozi (talk | contribs)
→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="center" | LuaRules<br><font style="font-size:80%">(unsynced)</font>
! align="center" | LuaRules<br><font style="font-size:80%">(synced)</font>
! align="center" | LuaMenu
|-
|-
| 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="center"  bgcolor="#772222" | -
|-
|-
| 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="center"  bgcolor="#772222" | -
|-
|-
| 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="center"  bgcolor="#772222" | -
|-
|-
| 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="center"  bgcolor="#772222" | -


|-
|-
| 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="center"  bgcolor="#772222" | -


|-
|-
| 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="center"  bgcolor="#772222" | -
 
| align="center"  bgcolor="#888800" | +***
|-
|-
| 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="center"  bgcolor="#888800" | +***
|-
|-
| 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="#772222" | -
| 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="center"  bgcolor="#772222" | -
|-
|-
| 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="center"  bgcolor="#772222" | -
| align="center"  bgcolor="#888800" | +***
|-
|-
| 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="center"  bgcolor="#772222" | -
| align="center"  bgcolor="#888800" | +***
|-
|-
| 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="#888800" | +***
| 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" | -
| 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="center"  bgcolor="#772222" | -
|-
|-
| 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="center"  bgcolor="#772222" | -
|-
|-
| 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