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)
→Interfaces: add LuaIntro, LuaParser
Line 22: Line 22:
{| 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 41: Line 47:
| align="left"  | [[Lua_ConstPlatform]]
| align="left"  | [[Lua_ConstPlatform]]
| align="center"  bgcolor="#227722" | +
| align="center"  bgcolor="#227722" | +
| align="center"  bgcolor="#227722" | +
| align="center"  bgcolor="#772222" | -
| align="center"  bgcolor="#227722" | +
| align="center"  bgcolor="#227722" | +
| align="center"  bgcolor="#227722" | +
| align="center"  bgcolor="#227722" | +
Line 46: Line 54:
|-
|-
| 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 166:
| 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 181:
| 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 148: Line 190:
| 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 205:
| 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" | +
|}
|}

Revision as of 17:33, 22 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

Introduced in 104.0, a stripped down environment that starts before the game is loaded and persists through reload.

LuaParser

Minimal environment used to parse and load definition files.

LuaIntro

Introduced in 95.0, to allow visual customisation of the loading process.

LuaRules (synced)

The main environment for synced game-controlling mechanics ("gadgets").

LuaRules (unsynced)

The main environment for unsynced game effects, rendering, UI etc. ("gadgets")

LuaGaia (synced)

As LuaRules (synced) but for maps.

LuaGaia (unsynced)

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