|
|
| Line 1: |
Line 1: |
| [[Engine_Development|Development]] < [[Lua_Scripting|Lua Scripting]] < {{FULLPAGENAME}} | | [[Engine_Development|Development]] < [[Lua_Scripting|Lua Scripting]] < {{FULLPAGENAME}} |
|
| |
|
| == Game ==
| |
|
| |
|
| === Special TeamID Variables ===
| |
| <font color="red" style="font-weight:600">The following special TeamIDs are not supported by all functions. For Widgets, instead of Spring.MY_UNITS, use Spring.GetLocalTeamID().</font><br>
| |
|
| |
|
| | <div class="note"> |
| | NOTE: Prior to 102.0, entries below marked <font color="red" style="font-weight:600">(needs ModUICtrl)</font> require the setting ModUICtrl to be enabled in the users [[springrc]], if you want to use them in unsynced LuaRules/LuaGaia. It is enabled by default in previous versions and removed in 102.0 so you generally don't need to care.</div> |
|
| |
|
| {{LuaConstant
| | = UI = |
| |type = number
| | '''Spring.SetLastMessagePosition''' |
| |name = Spring.ALL_UNITS
| | ( number x, number y, number z ) -> nil |
| |info =
| |
| }}
| |
|
| |
|
| | = Ingame Console = |
| | '''Spring.Echo''' |
| | ( arg1 [, arg2 [, ... ] ] ) -> nil |
|
| |
|
| {{LuaConstant
| | <font color="#55ee99">Useful for debugging.<br> Prints values in the spring chat console.<br> Hint: the default print() writes to STDOUT.</font> |
| |type = number
| |
| |name = Spring.MY_UNITS
| |
| |info =
| |
| }}
| |
|
| |
|
| | '''Spring.Log''' |
| | ( string section, int logLevel | string logLevel, |
| | arg2 [, arg3 [, ... ] ] ) -> nil |
|
| |
|
| {{LuaConstant | | <font color="#55ee99">Possible values for logLevel are: |
| |type = number | | "debug" | LOG.DEBUG |
| |name = Spring.ALLY_UNITS | | "info" | LOG.INFO |
| |info = | | "notice" | LOG.NOTICE (engine default) {{new|97}} |
| }}
| | "warning" | LOG.WARNING |
| | "error" | LOG.ERROR |
| | "fatal" | LOG.FATAL</font> |
|
| |
|
| | '''Spring.SendCommands''' <font color="red" style="font-weight:600">(needs ModUICtrl)</font> |
| | ( string command1 [, string command2 [ ... ] ] ) -> nil |
| | ( {string command1, string command2, ...} ) -> nil |
|
| |
|
| {{LuaConstant
| | == GUI == |
| |type = number | | '''Spring.SetActiveCommand''' <font color="red" style="font-weight:600">(needs ModUICtrl)</font> |
| |name = Spring.ENEMY_UNITS | | ( string action [, string actionExtra ] ) -> nil | boolean |
| |info =
| | ( number cmdIndex [, number button = 1 |
| }}
| | [, boolean leftClick, boolean rightClick, |
| | boolean alt, boolean ctrl, boolean meta, boolean shift]] ) -> nil | boolean |
| | '''Spring.LoadCmdColorsConfig''' <font color="red" style="font-weight:600">(needs ModUICtrl)</font> |
| | ( string config ) -> nil |
| | '''Spring.LoadCtrlPanelConfig''' <font color="red" style="font-weight:600">(needs ModUICtrl)</font> |
| | ( string config ) -> nil |
| | '''Spring.ForceLayoutUpdate''' <font color="red" style="font-weight:600">(needs ModUICtrl)</font> |
| | ( ) -> nil |
| | '''Spring.SetDrawSelectionInfo''' <font color="#55ee99">disables the "Selected Units x" box in the GUI</font> <font color="red" style="font-weight:600">(needs ModUICtrl)</font> |
| | ( boolean enable ) -> nil |
|
| |
|
| | == Mouse == |
| | '''Spring.SetMouseCursor''' <font color="red" style="font-weight:600">(needs ModUICtrl)</font> |
| | ( string cursorName [, number scale ] ) -> nil |
| | '''Spring.WarpMouse''' <font color="red" style="font-weight:600">(needs ModUICtrl)</font> |
| | ( number x, number y ) -> nil |
|
| |
|
| {{LuaCallout
| | == LOS Colors == |
| |prefix = Spring.
| | '''Spring.SetLosViewColors''' <font color="red" style="font-weight:600">(needs ModUICtrl)</font> |
| |name = GetGaiaTeamID
| |
| |arg1 =
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|number}} teamID
| |
| |info =
| |
| }}
| |
|
| |
|
| === GameStates === | | <span class=warning>New arguments since 100.0 (radar2 is the inside of radar edge):</span> |
| | ( always = {r,g,b}, LOS = {r,g,b}, radar = {r,g,b}, jam = {r,g,b}, radar2 = {r,g,b}) -> nil |
|
| |
|
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = IsGodModeEnabled
| |
| |arg1 =
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|bool}} enabled
| |
| |info =
| |
| }}
| |
|
| |
|
| | <span class=warning>Arguments for 99.0 and before:</span> |
| | ( table reds = { number always, number LOS, number radar, number jam }, |
| | table greens = { number always, number LOS, number radar, number jam }, |
| | table blues = { number always, number LOS, number radar, number jam } ) -> nil |
|
| |
|
| {{LuaCallout
| | == SendMessage == |
| |prefix = Spring.
| | '''Spring.SendMessage''' |
| |name = IsCheatingEnabled
| | ( string "message" ) -> nil |
| |arg1 =
| | '''Spring.SendMessageToPlayer''' |
| |arg2 =
| | ( number playerID, string "message" ) -> nil |
| |arg3 =
| | '''Spring.SendMessageToTeam''' |
| |arg4 =
| | ( number teamID, string "message" ) -> nil |
| |arg5 =
| | '''Spring.SendMessageToAllyTeam''' |
| |arg6 =
| | ( number allyID, string "message" ) -> nil |
| |arg7 =
| | '''Spring.SendMessageToSpectators''' |
| |arg8 =
| | ( string "message" ) -> nil |
| |arg9 =
| | Funfact: |
| |return = {{type|bool}} enabled
| | <PLAYER#> (with # being a playerid) inside the string will be replaced with the players name. |
| |info =
| | ie |
| }}
| | Spring.SendMessage ("<PLAYER1> did something") |
| | might display as "ProRusher did something" |
|
| |
|
| | == Markers == |
| | '''Spring.MarkerAddPoint''' <font color="red" style="font-weight:600">(needs ModUICtrl)</font> |
| | ( number x, number y, number z [, string text = "" [, bool localOnly] ] ) -> nil |
| | '''Spring.MarkerAddLine''' <font color="red" style="font-weight:600">(needs ModUICtrl)</font> |
| | ( number x1, number y1, number z1, number x2, number y2, number z2 ) -> nil |
| | '''Spring.MarkerErasePosition''' <font color="red" style="font-weight:600">(needs ModUICtrl)</font> |
| | ( number x, number y, number z ) -> nil |
|
| |
|
| | = Sounds = |
| | '''Spring.LoadSoundDef''' |
| | ( string "soundfile" ) -> nil | boolean success |
| | <span class=note>Loads a SoundDefs file, the format is the same as in `gamedata/sounds.lua`.</span> |
|
| |
|
| {{LuaCallout
| | '''Spring.PlaySoundFile''' <span class=note>Plays WAV or OGG sounds.</span> |
| |prefix = Spring.
| | ( string "soundfile" [, number volume = 1.0 |
| |name = IsDevLuaEnabled | | [, number posx, number posy, number posz |
| |arg1 = | | [, number speedx, number speedy, number speedz ] ] ], [string/number <span class=note>channel</span> ] ) -> nil | boolean |
| |arg2 = | | <span class=note>`channel` is new in Spring0.83, and can be one of those: |
| |arg3 = | | "general" || 0 || nil (default) |
| |arg4 = | | "battle" || "sfx" | 1 |
| |arg5 = | | "unitreply" || "voice" || 2 |
| |arg6 = | | "userinterface" || "ui" || 3 |
| |arg7 = | | </span> |
| |arg8 = | |
| |arg9 = | |
| |return = {{type|bool}} enabled | |
| |info = | |
| }}
| |
|
| |
|
| | '''Spring.PlaySoundStream''' |
| | ( string "oggfile" [, number volume = 1.0 |
| | [, bool enqueue ]] ) -> nil | boolean true |
| | <span class=note>Allow you to play an Ogg Vorbis (.OGG) compressed sound file.<br> In 83.0 and up multiple sound streams may be played at once </span> |
| | '''Spring.StopSoundStream''' |
| | ( ) -> nil |
| | <span class=note>Terminates any SoundStream currently running.</span> |
| | '''Spring.PauseSoundStream''' |
| | ( ) -> nil |
| | '''Spring.SetSoundStreamVolume''' |
| | ( number volume ) -> nil |
|
| |
|
| {{LuaCallout
| | = SendLuaMessage = |
| |prefix = Spring.
| | <font color="#55ee99">Very important! (allows synced inter-lua-enviroment communications)</font> |
| |name = IsEditDefsEnabled
| |
| |arg1 =
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|bool}} enabled
| |
| |info =
| |
| }}
| |
|
| |
|
| | '''Spring.SendLuaUIMsg''' <font color="red" style="font-weight:600">(needs ModUICtrl)</font> |
| | ( string message, string mode ) -> nil |
| | <font color="#55ee99">possible modes are:<br>"s"/"specs" & "a"/"allies"</font> |
| | '''Spring.SendLuaGaiaMsg''' <font color="red" style="font-weight:600">(needs ModUICtrl)</font> |
| | ( string message ) -> nil |
| | '''Spring.SendLuaRulesMsg''' <font color="red" style="font-weight:600">(needs ModUICtrl)</font> |
| | ( string message ) -> nil |
|
| |
|
| {{LuaCallout
| | = AI = |
| |prefix = Spring.
| | '''Spring.SendSkirmishAIMessage''' {{new|83.0}} |
| |name = AreHelperAIsEnabled
| | ( number aiTeam, string message ) |
| |arg1 =
| | -> nil | boolean ai_processed, { [1] = string response1, etc... } |
| |arg2 =
| | <span class="note">Note there is nothing in this table due to "limitations" of the AI interface.</span> |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|bool}} enabled
| |
| |info = | |
| }}
| |
|
| |
|
| | = Units = |
| | '''Spring.SetUnitLeaveTracks''' {{new|83.0}} |
| | ( number unitID, boolean leavetracks ) -> nil |
|
| |
|
| | '''Spring.SetUnitSelectionVolumeData''' {{new|104.0}} |
| | ( number featureID, number scaleX, number scaleY, number scaleZ, |
| | number offsetX, number offsetY, number offsetX, |
| | number vType, number tType, number Axis |
| | ) -> nil |
|
| |
|
| {{LuaCallout
| | == Unit Selection == |
| |prefix = Spring.
| | '''Spring.SelectUnitMap''' |
| |name = FixedAllies
| | ( { [unitID] = anything, ...} [,boolean append] ) -> nil |
| |arg1 =
| | '''Spring.SelectUnitArray''' |
| |arg2 =
| | ( { [1] = unitID1 , [2] = unitID2 , ...} [,boolean append] ) -> nil |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} enabled
| |
| |info =
| |
| }}
| |
|
| |
|
| | '''Spring.SetDrawSelectionInfo''' |
| | ( boolean drawSelectionInfo ) -> nil |
|
| |
|
| {{LuaCallout
| | == Unit Group == |
| |prefix = Spring.
| | '''Spring.SetUnitGroup''' <font color="red" style="font-weight:600">(needs ModUICtrl)</font> |
| |name = IsGameOver
| | ( number unitID, number groupID ) -> nil |
| |arg1 =
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|bool}} enabled
| |
| |info =
| |
| }}
| |
|
| |
|
| === RulesParams === | | == Give Order == |
| <span class=note>The following functions allow to save data per game, team and unit. The advantage of it is that it can be read from anywhere (even from LuaUI and AIs!)</span><br> | | '''Spring.GiveOrder''' <font color="#55ee99">gives order to all selected units</font> <font color="red" style="font-weight:600">(needs ModUICtrl)</font> |
| <span class=warning>String values are new since 95.0.</span> | | ( number cmdID, |
| | params = {number, etc...}, |
| | options = {"alt", "ctrl", "shift", "right"} ) -> nil | boolean true |
| | '''Spring.GiveOrderToUnit''' <font color="red" style="font-weight:600">(needs ModUICtrl)</font> |
| | ( number unitID, |
| | number cmdID, |
| | params = {number, etc...}, |
| | options = {"alt", "ctrl", "shift", "right"} ) -> nil | boolean true |
| | '''Spring.GiveOrderToUnitMap''' <font color="red" style="font-weight:600">(needs ModUICtrl)</font> |
| | ( unitMap = { [unitID] = dontCare, etc... }, |
| | number cmdID, |
| | params = {number, etc...}, |
| | options = {"alt", "ctrl", "shift", "right"} ) -> nil | boolean true |
| | '''Spring.GiveOrderToUnitArray''' <font color="red" style="font-weight:600">(needs ModUICtrl)</font> |
| | ( unitArray = { [1] = unitID, etc... }, |
| | number cmdID, |
| | params = {number, etc...}, |
| | options = {"alt", "ctrl", "shift", "right"} ) -> nil | boolean true |
| | '''Spring.GiveOrderArrayToUnitMap''' <font color="red" style="font-weight:600">(needs ModUICtrl)</font> |
| | ( unitMap = { [number unitID] = dontCare, etc... }, |
| | orderArray = { |
| | { number cmdID, |
| | params = {number, etc...}, |
| | options = {"alt", "ctrl", "shift", "right"} |
| | }, .. |
| | } |
| | ) -> nil | boolean true |
| | '''Spring.GiveOrderArrayToUnitArray''' <font color="red" style="font-weight:600">(needs ModUICtrl)</font> |
| | ( unitArray = { [1] = number unitID, etc... }, |
| | orderArray = { |
| | { number cmdID, |
| | params = {number, etc...}, |
| | options = {"alt", "ctrl", "shift", "right"} |
| | }, .. |
| | }, |
| | [boolean pairwise] |
| | ) -> nil | boolean true |
|
| |
|
| | <span class="note">pairwise param ({{new|89.0}}) is used to send multiple units a single individual command</span> |
|
| |
|
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetGameRulesParam
| |
| |arg1 = {{type|number}} ruleIndex {{pipe}} {{type|string}} ruleName
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} value {{pipe}} {{type|string}} value
| |
| |info =
| |
| }}
| |
|
| |
|
| | '''Spring.SetBuildFacing''' |
| | ( int Facing ) -> nil |
|
| |
|
| {{LuaCallout
| | '''Spring.SetBuildSpacing''' |
| |prefix = Spring.
| | ( int Spacing ) -> nil |
| |name = GetGameRulesParams
| |
| |arg1 =
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} { {{bracket|ruleName1}} = {{type|number}} value1 {{pipe}} {{type|string}} value1, ... }
| |
| |info =
| |
| }}
| |
|
| |
|
| | == Unit NoDraw,NoSelect,NoMinimap == |
| | '''Spring.SetUnitNoDraw''' <font color="red">LuaGadgets only!</font> |
| | ( number unitID, boolean noDraw ) -> nil |
| | '''Spring.SetUnitNoSelect''' <font color="red">LuaGadgets only!</font> |
| | ( number unitID, boolean noSelect ) -> nil |
| | '''Spring.SetUnitNoMinimap''' <font color="red">LuaGadgets only!</font> |
| | ( number unitID, boolean noMinimap ) -> nil |
|
| |
|
| {{LuaCallout
| | = Features = |
| |prefix = Spring.
| | '''Spring.SetFeatureFade''' {{new|101.0}} |
| |name = GetTeamRulesParam
| | ( int featureID, bool allow ) -> nil |
| |arg1 = {{type|number}} teamID
| | Control whether a feature will fade or not when zoomed out. |
| |arg2 = {{type|number}} index {{pipe}} {{type|string}} ruleName
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} value {{pipe}} {{type|string}} value
| |
| |info =
| |
| }}
| |
|
| |
|
| | '''Spring.SetFeatureNoDraw''' <font color="red">LuaGadgets only!</font> |
| | ( number featureID, boolean noDraw ) -> nil |
|
| |
|
| | '''Spring.SetFeatureSelectionVolumeData''' {{new|104.0}} |
| | ( number featureID, number scaleX, number scaleY, number scaleZ, |
| | number offsetX, number offsetY, number offsetX, |
| | number vType, number tType, number Axis |
| | ) -> nil |
|
| |
|
| {{LuaCallout
| | = Developers = |
| |prefix = Spring.
| | '''Spring.SetDrawSky''' |
| |name = GetTeamRulesParams
| | ( boolean drawSky ) -> nil |
| |arg1 = {{type|number}} teamID
| | '''Spring.SetDrawWater''' |
| |arg2 =
| | ( boolean drawWater ) -> nil |
| |arg3 =
| | '''Spring.SetDrawGround''' |
| |arg4 =
| | ( boolean drawGround ) -> nil |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} { {{bracket|ruleName1}} = {{type|number}} value1 {{pipe}} {{type|string}} value1, ... }
| |
| |info =
| |
| }}
| |
|
| |
|
| | '''Spring.SetWaterParams''' <span class=warning>As of 104.0 no longer needs cheating enabled</span> |
| | ( table params ) -> nil |
| | <span class=note>Allows to change water params (mostly BumpWater ones) at runtime. You may want to set BumpWaterUseUniforms in your [[springrc]] to 1, then you don't even need to restart BumpWater via `/water 4`.</span><br> |
| | <span class=note>`params` table may contain: |
| | params = { |
| | absorb = {number r, number g, number b}, |
| | baseColor = {number r, number g, number b}, |
| | minColor = {number r, number g, number b}, |
| | surfaceColor = {number r, number g, number b}, |
| | diffuseColor = {number r, number g, number b}, |
| | specularColor = {number r, number g, number b}, |
| | planeColor = {number r, number g, number b}, |
| | texture = string file, |
| | foamTexture = string file, |
| | normalTexture = string file, |
| | damage = number value, |
| | repeatX = number value, |
| | repeatY = number value, |
| | surfaceAlpha = number value, |
| | ambientFactor = number value, |
| | diffuseFactor = number value, |
| | specularFactor = number value, |
| | specularPower = number value, |
| | fresnelMin = number value, |
| | fresnelMax = number value, |
| | fresnelPower = number value, |
| | reflectionDistortion = number value, |
| | blurBase = number value, |
| | blurExponent = number value, |
| | perlinStartFreq = number value, |
| | perlinLacunarity = number value, |
| | perlinAmplitude = number value, |
| | numTiles = number value, |
| | shoreWaves = boolean value, |
| | forceRendering = boolean value, |
| | hasWaterPlane = boolean value, |
| | }</span> |
|
| |
|
| {{LuaCallout | | '''Spring.SetMapRenderingParams''' {{new|104.0}} |
| |prefix = Spring.
| | ( table params ) -> nil |
| |name = GetUnitRulesParam
| | <span class=note>Allows to change map rendering params at runtime.</span><br> |
| |arg1 = {{type|number}} unitID
| | <span class=note>`params` table may contain: |
| |arg2 = {{type|number}} index {{pipe}} {{type|string}} ruleName
| | params = { |
| |arg3 =
| | splatTexMults = {number r, number g, number b, number a}, |
| |arg4 =
| | splatTexScales = {number r, number g, number b, number a}, |
| |arg5 =
| | voidWater = boolean value, |
| |arg6 =
| | voidGround = boolean value, |
| |arg7 =
| | splatDetailNormalDiffuseAlpha = boolean value, |
| |arg8 =
| | }</span> |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} value {{pipe}} {{type|string}} value
| |
| |info =
| |
| }}
| |
|
| |
|
| | '''Spring.SetLogSectionFilterLevel''' {{New|95.0}} |
| | ( string sectionName, string|number logLevel ) |
| | see [[infolog.txt]] for possible log sections (?) |
|
| |
|
| {{LuaCallout
| | '''Spring.SetDrawGroundDeferred''' {{New|95.0}} |
| |prefix = Spring.
| | ( boolean drawGroundDeferred [, boolean drawGroundForward] ) -> nil |
| |name = GetUnitRulesParams
| | {{new|101.0}} {{var|drawGroundForward}} allows disabling of the forward pass |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} { {{bracket|ruleName1}} = {{type|number}} value1 {{pipe}} {{type|string}} value1, ... }
| |
| |info =
| |
| }} | |
|
| |
|
| | '''Spring.SetDrawModelsDeferred''' {{New|95.0}} |
| | ( boolean drawUnitsDeferred, |
| | boolean drawFeaturesDeferred |
| | [, boolean drawUnitsForward |
| | [, boolean drawFeaturesForward ]] |
| | ) -> nil |
|
| |
|
| {{LuaCallout | | {{new|101.0}} {{var|drawFeaturesForward}}, {{var|drawUnitsForward}} allows disabling of the respective forward passes |
| |prefix = Spring. | |
| |name = GetFeatureRulesParam
| |
| |arg1 = {{type|number}} featureID
| |
| |arg2 = {{type|number}} index {{pipe}} {{type|string}} ruleName
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} value {{pipe}} {{type|string}} value
| |
| |info = | |
| }} | |
|
| |
|
| | '''Spring.SetVideoCapturingMode''' {{new|104.0}} |
| | ( boolean allowCaptureMode ) -> nil |
|
| |
|
| {{LuaCallout
| | This doesn't actually record the game in any way, it just regulates the framerate and interpolations. |
| |prefix = Spring.
| |
| |name = GetFeatureRulesParams
| |
| |arg1 = {{type|number}} featureID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} { {{bracket|ruleName1}} = {{type|number}} value1 {{pipe}} {{type|string}} value1, ... }
| |
| |info =
| |
| }}
| |
|
| |
|
| === Mod-/Map-Options ===
| | '''Spring.SetVideoCapturingTimeOffset''' {{new|104.0}} |
| | ( number timeOffset ) -> nil |
|
| |
|
| {{LuaCallout
| | = GUI = |
| |prefix = Spring.
| | '''Spring.DrawUnitCommands''' |
| |name = GetModOptions
| | ( number unitID ) -> nil |
| |arg1 =
| | ( { [1] = unitID, ... } [, false ] ) -> nil |
| |arg2 =
| | ( { [unitID] = anything, ... }, true ) -> nil |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = { } {{pipe}} { "keyName1" = {{type|string}} "value", "keyName2" = {{type|string}} "value", ... }
| |
| |info =
| |
| }}
| |
|
| |
|
| | '''Spring.SetTeamColor''' |
| | ( number teamID, number r, number g, number b ) -> nil |
|
| |
|
| {{LuaCallout
| | '''Spring.AssignMouseCursor''' <font class=note>changes/creates the cursor of a single CursorCmd</font> |
| |prefix = Spring.
| | ( string "cmdName", string "iconFileName" |
| |name = GetMapOptions
| | [, boolean overwrite = true [, boolean hotSpotTopLeft = false] ] ) -> nil | boolean |
| |arg1 =
| | <font class=note>Note, that iconFileName is not the full filename instead it is like this:<br/> |
| |arg2 =
| | wanted filename: Anims/cursorattack_0.bmp<br/> |
| |arg3 =
| | => iconFileName: cursorattack |
| |arg4 =
| | </font> |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = { } {{pipe}} { "keyName1" = {{type|string}} "value", "keyName2" = {{type|string}} "value", ... }
| |
| |info =
| |
| }}
| |
|
| |
|
| | '''Spring.ReplaceMouseCursor''' <font class=note>mass replace all occurrence of the cursor in all CursorCmds</font> |
| | ( string "oldFileName", string "newFileName" [, boolean hotSpotTopLeft = false] ) -> nil | boolean |
|
| |
|
| <span class="warning">Warning:</span> boolean values are not transfered from C to Lua correctly. For this reason the respective option has to be converted to a number and checked accordingly via an IF statement as shown below:<br> | | '''Spring.SetCustomCommandDrawData''' <font class=note>register your custom cmd so it gets visible in the unit's cmd queue</font> |
| <pre>if (tonumber(Spring.GetModOptions.exampleOption) == 1) then...end</pre>
| | ( number cmdID, |
| The following check therefore is insufficient!
| | number cmdID_cloneIcon | string iconname, |
| <pre>if (Spring.GetModOptions.exampleOption) then...end</pre>
| | { number r, number g, number b, number a } [, boolean showArea ] ) -> nil |
| | ( number cmdID, nil) -> nil |
|
| |
|
| === Speed/Time === | | = Sharing = |
| | '''Spring.SetShareLevel''' <font color="#55ee99">note: shareLevel is 0<= x <= 1</font> <font color="red" style="font-weight:600">(needs ModUICtrl)</font> |
| | ( string "metal" | "energy", number shareLevel ) -> nil |
| | '''Spring.ShareResources''' <font color="red" style="font-weight:600">(needs ModUICtrl)</font> |
| | ( number teamID, string "units" ) -> nil |
| | ( number teamID, string "metal" | "energy", number amount ) -> nil |
|
| |
|
| {{LuaCallout
| | = UnitDef RadarIcons & BuildPics = |
| |prefix = Spring.
| | '''Spring.AddUnitIcon''' |
| |name = GetGameSpeed
| | ( string iconName, string texFile [, number size [, number dist [, boolean radAdjust ]]] ) |
| |arg1 = | | -> nil | boolean |
| |arg2 =
| | '''Spring.FreeUnitIcon''' |
| |arg3 = | | ( string iconName ) -> nil | boolean |
| |arg4 =
| | '''Spring.SetUnitDefIcon''' <font color="#55ee99">(RadarIcon)</font> <font color="red" style="font-weight:600">(needs ModUICtrl)</font> |
| |arg5 =
| | ( number unitDefID, string iconName ) -> nil |
| |arg6 =
| | '''Spring.SetUnitDefImage''' <font color="#55ee99">(BuildPic)</font> <font color="red" style="font-weight:600">(needs ModUICtrl)</font> |
| |arg7 =
| | ( number unitDefID, luaTexture | string texFile ) -> nil |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|number}} userSpeedFactor, {{type|number}} speedFactor, {{type|bool}} paused
| |
| |info = <span class="warning">As of 98.0 moved to [[Lua_UnsyncedRead]] due to desyncs in replays/demos</span>
| |
| }}
| |
|
| |
|
| | = Camera = |
| | '''Spring.SetCameraState''' |
| | ( table camState, number camTime) -> nil | boolean |
| | <font color="#55ee99">camState has the same format as the output of Spring.GetCameraState(). See [[Lua_camState]] for details about camState. |
|
| |
|
| {{LuaCallout
| | The camState's mode/name must fit the rest of the state. Getting a state, changing its mode/name and then passing it to SetCameraState will have undesired results. [https://springrts.com/mantis/view.php?id=5028#c15491 Also see #5028]</font> |
| |prefix = Spring.
| |
| |name = GetGameFrame
| |
| |arg1 =
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|number}} frameNum%dayFrames, {{type|number}} frameNum/dayFrames
| |
| |info =
| |
| }}
| |
|
| |
|
| | '''Spring.SetCameraTarget''' |
| | ( number x, number y, number z [,number transTime] ) -> nil |
| | <font color="#55ee99">For Spring Engine XZ represents horizontal, from north west corner of map and Y vertical, from water level and rising.</font> |
|
| |
|
| | '''Spring.SetCameraOffset''' <font color="red" style="font-weight:600">(needs ModUICtrl)</font> |
| | ( [number px = 0 [, number py = 0 [, number pz = 0 |
| | [, number tx = 0 [, number ty = 0 [, number tz = 0]]]]]] ) -> nil |
|
| |
|
| {{LuaCallout
| | = (Virtual-)FileSystem = |
| |prefix = Spring.
| | '''Spring.ExtractModArchiveFile''' |
| |name = GetGameSeconds
| | ( string modfile ) -> boolean |
| |arg1 =
| | '''Spring.CreateDir''' <font color="red" style="font-weight:600">(needs ModUICtrl)</font> |
| |arg2 =
| | ( string path ) -> nil | boolean |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 = | |
| |arg9 =
| |
| |return = {{type|number}} seconds
| |
| |info =
| |
| }}
| |
|
| |
|
| === Vectors ===
| | The full VFS API is available at [[Lua_VFS|link]]. |
|
| |
|
| {{LuaCallout
| | = Engine Config = |
| |prefix = Spring.
| | The following functions read the engine configs saved in [[Springsettings.cfg]], a version-ed instance of these or a custom file supplied on the command line. |
| |name = GetWind
| | If ''*Overlay'' is ''true'', the value will only be set in memory, and not be restored for the next game |
| |arg1 =
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|number}} dirX, {{type|number}} dirY, {{type|number}} dirZ, {{type|number}} strength, {{type|number}} normDirX, {{type|number}} normDirY, {{type|number}} normDirZ
| |
| |info =
| |
| }}
| |
|
| |
|
| | '''Spring.SetConfigInt''' |
| | ( string name, number value [, boolean useOverlay = false] ) -> nil |
|
| |
|
| {{LuaCallout
| | '''Spring.SetConfigFloat''' {{new|104.0}} |
| |prefix = Spring.
| | ( string name, number value [, boolean useOverlay = false] ) -> nil |
| |name = GetHeadingFromVector
| |
| |arg1 = {{type|number}} x
| |
| |arg2 = {{type|number}} z
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|number}} heading
| |
| |info =
| |
| }}
| |
|
| |
|
| | '''Spring.SetConfigString''' |
| | ( string name, string value [, boolean useOverlay = false] ) -> nil |
|
| |
|
| {{LuaCallout
| | = World Primitives = |
| |prefix = Spring.
| | <font color="red" style="font-weight:600">outdated! use opengl api instead!</font> |
| |name = GetVectorFromHeading
| |
| |arg1 = {{type|number}} heading
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|number}} x, {{type|number}} z
| |
| |info =
| |
| }}
| |
|
| |
|
| == Sides/Factions ==
| | '''Spring.AddWorldIcon''' |
| | ( number cmdID, number x, number y, number z ) -> nil |
| | '''Spring.AddWorldText''' |
| | ( string "text", number x, number y, number z ) -> nil |
| | '''Spring.AddWorldUnit''' |
| | ( number unitDefID, |
| | number x, number y, number z, |
| | number team, number facing) -> nil |
|
| |
|
| {{LuaCallout
| | = Sun = |
| |prefix = Spring.
| | The dynamic Sun must be invoked via /dynamicsun (Dynamic sun was removed in 104.0, use SetSunDirection, SetSunLighting & SetAtmosphere instead). |
| |name = GetSideData
| |
| |arg1 = {{type|string}} sideName
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|string}} startUnit, {{type|string}} caseSensitiveSideName
| |
| |info =
| |
| }}
| |
|
| |
|
| or
| | '''Spring.SetSunManualControl''' {{removed|104.0}} |
| | ( boolean setManualControl ) - > nil |
|
| |
|
| {{LuaCallout
| | '''Spring.SetSunParameters''' {{removed|104.0}} |
| |prefix = Spring.
| | ( number dirX, number dirY, number dirZ, number dist, number startTime, number orbitTime ) -> nil |
| |name = GetSideData
| |
| |arg1 = {{type|number}} sideID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|string}} sideName, {{type|string}} startUnit, {{type|string}} caseSensitiveSideName
| |
| |info =
| |
| }}
| |
|
| |
|
| or
| | '''Spring.SetSunDirection''' |
| | ( number dirX, number dirY, number dirZ ) -> nil |
|
| |
|
| {{LuaCallout
| | '''Spring.SetSunLighting''' {{new|101.0}} |
| |prefix = Spring.
| | ( table params ) -> nil |
| |name = GetSideData
| |
| |arg1 =
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = { {{bracket|1}} = { sideName = {{type|string}}, caseName = {{type|string}}, startUnit = {{type|string}}} }, {{bracket|2}} = { ..., ..., ... }, ... }
| |
| |info =
| |
| }}
| |
|
| |
|
| == Teams == | | <span class=note>It can be used to modify the following sun lighting parameters: |
| === StartBoxes/StartPositions ===
| | {ground,unit}{Ambient,Diffuse,Specular}Color and specularExponent |
| | All Colourvalues have to in the Range from 0.0 to 1.0 for all colors and the alpha |
| | Example usage: Spring.SetSunLighting({groundAmbientColor = {1, 0.1, 1}, groundDiffuseColor = {1, 0.1, 1} }) |
| | </span> |
|
| |
|
| {{LuaCallout
| | '''Spring.SetAtmosphere''' {{new|101.0}} |
| |prefix = Spring.
| | ( table params ) -> nil |
| |name = GetAllyTeamStartBox
| |
| |arg1 = {{type|number}} allyID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} xMin, {{type|number}} zMin, {{type|number}} xMax, {{type|number}} zMax
| |
| |info =
| |
| }}
| |
|
| |
|
| | <span class=note>It can be used to modify the following atmosphere parameters: |
| | fog{Start,End}, {sun,sky,cloud}Color |
| | Example usage: Spring.SetAtmosphere({ fogStart = 0, fogEnd = 0.5, fogColor = { 0.7, 0.2, 0.2, 1 }}) |
| | </span> |
|
| |
|
| {{LuaCallout
| | = Misc = |
| |prefix = Spring.
| |
| |name = GetTeamStartPosition
| |
| |arg1 = {{type|number}} teamID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} x, {{type|number}} y, {{type|number}} z
| |
| |info =
| |
| }}
| |
|
| |
|
| === Player,Team,Ally Lists/Info === | | '''Spring.Reload''' {{new|99.0}} |
| | ( string startscript ) |
| | <font color="#55ee99">start-script is the CONTENT of the [[script.txt]] spring should use to start.</font> |
|
| |
|
| Note: AIs are associated to teamIDs (and do not have playerIDs). Code to cycle through AI teamIDs can be found [https://springrts.com/phpbb/viewtopic.php?f=21&t=36873#p586026 here]
| | '''Spring.Restart''' {{new|0.79}} |
| | ( string commandline_args, string startscript ) |
| | -> if this call returns, something went wrong |
| | <font color="#55ee99">''commandline_args'' are commandline arguments passed to spring executable</font> |
|
| |
|
| | '''Spring.Start''' {{new|102.0}} |
| | ( string commandline_args, string startscript ) |
| | -> if this call returns, something went wrong |
| | <font color="#55ee99">Launches a new Spring instance without terminating the existing one</font> |
|
| |
|
| {{LuaCallout
| | <font color="#55ee99">start-script is the CONTENT of the [[script.txt]] spring should use to start (if empty, no start-script is added, you can still point spring to your custom script.txt when you add the file-path to ''commandline_args''</font> |
| |prefix = Spring.
| |
| |name = GetPlayerList
| |
| |arg1 = {{bracket}} {{type|number}} teamID = -1 {{pipe}} {{type|bool}} onlyActive = false {{bracket}}
| |
| |arg2 = {{type|number}} teamID {{pipe}} {{type|bool}} onlyActive {{rbracket}} {{rbracket}}
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} { {{bracket|1}} = {{type|number}} playerID, etc... }
| |
| |info = From 104.0 onwards spectators will be ignored if a valid (>=0) teamID is given.
| |
| }}
| |
|
| |
|
|
| |
|
| {{LuaCallout
| | '''Spring.SetWMIcon''' {{new|83.0}} |
| |prefix = Spring.
| | ( string iconFileName ) -> nil |
| |name = GetTeamList
| | <font color="#55ee99">Sets the icon for the process which is seen in the OS task-bar and other places (default: spring-logo).<br/> |
| |arg1 = {{bracket}} {{type|number}} allyTeamID = -1 {{rbracket}}
| | Note: has to be 24bit or 32bit<br/> |
| |arg2 =
| | Note: on windows, it has to be 32x32 pixels in size (recommended for cross-platform)<br/> |
| |arg3 =
| | Note: ''*.bmp'' images have to be in BGR format (default for m$ ones).<br/> |
| |arg4 =
| | Note: ''*.ico'' images are not supported.</font> |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} { {{bracket|1}} = {{type|number}} teamID, etc... }
| |
| |info =
| |
| }}
| |
|
| |
|
|
| |
|
| {{LuaCallout
| | '''Spring.SetWMCaption''' {{new|83.0}} |
| |prefix = Spring.
| | ( string title [, string titleShort = title ] ) -> nil |
| |name = GetAllyTeamList
| |
| |arg1 =
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = { {{bracket|1}} = {{type|number}} teamID, etc... }
| |
| |info =
| |
| }}
| |
|
| |
|
| | <font color="#55ee99">Sets the window ''title'' for the process (default: "Spring <version>").</font> |
|
| |
|
| {{LuaCallout
| | <font color="#55ee99">The ''shortTitle'' is displayed in the OS task-bar (default: "Spring <version>").</font> |
| |prefix = Spring.
| |
| |name = GetPlayerInfo
| |
| |arg1 = {{type|number}} playerID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|string}} "name", {{type|bool}} active, {{type|bool}} spectator, {{type|number}} teamID, {{type|number}} allyTeamID, {{type|number}} pingTime, {{type|number}} cpuUsage, {{type|string}} "country", {{type|number}} rank, {{type|table}} customPlayerKeys
| |
| |info = PRE-83.0: in synced code "name" is "SYNCED_NONAME"!
| |
| }}
| |
|
| |
|
| | <font color="#55ee99">'''NOTE:''' ''shortTitle'' is only ever possibly used under X11 (Linux & OS X), but not with QT (KDE) and never under Windows. See [http://www.gpwiki.org/index.php/SDL:Tutorials:Initializing_SDL_Libraries#About_the_icon_.28.22Icon_Title.22.29_parameter_on_different_window-managers this site] for more details.</font> |
|
| |
|
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetPlayerControlledUnit
| |
| |arg1 = {{type|number}} playerID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} unitID
| |
| |info =
| |
| }}
| |
|
| |
|
| | '''Spring.ClearWatchDogTimer''' {{new|83.0}} |
| | ( [ string threadName = main ] ) -> nil |
|
| |
|
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetAIInfo
| |
| |arg1 = {{type|number}} teamID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|number}} skirmishAIID, {{type|string}} "name", {{type|number}} hostingPlayerID, {{type|string}} "shortName", {{type|string}} "version", {{type|table}} options
| |
| |info = Note: Before 0.82, the first argument was teamID, and then every other argument with a shifted position.<br><br>shortName, <span class="note">(synced => "SYNCED_NOSHORTNAME"; non-local => "UNKNOWN")</span><br>version, <span class="note">(synced => "SYNCED_NOVERSION"; non-local => "UNKNOWN")</span><br>options <span class="note">(synced & non-local => empty-table)</span>
| |
| }}
| |
|
| |
|
| | '''Spring.SetClipboard''' {{new|98.0}} |
| | ( string text) -> nil |
|
| |
|
| {{LuaCallout
| | = Rendering = |
| |prefix = Spring.
| | == Preload == |
| |name = GetAllyTeamInfo
| | Allow the engine to load the unit's model (and texture) in a background thread. Wreckages and buildOptions of a unit are automatically preloaded. |
| |arg1 = {{type|number}} allyteamID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|table}} customTeamKeys
| |
| |info =
| |
| }}
| |
|
| |
|
| | '''Spring.PreloadUnitDefModel''' {{new|101.0}} |
| | ( number unitDefID ) -> nil |
|
| |
|
| {{LuaCallout
| | '''Spring.PreloadFetureDefModel''' {{new|101.0}} |
| |prefix = Spring.
| | ( number featureDefID ) -> nil |
| |name = GetTeamInfo
| |
| |arg1 = {{type|number}} teamID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} teamID, {{type|number}} leader, {{type|bool}} isDead, {{type|bool}} isAiTeam, {{type|string}} "side", {{type|number}} allyTeam, {{type|number}} incomeMultiplier, {{type|table}} customTeamKeys
| |
| |info =
| |
| }}
| |
|
| |
|
| | == Lighting == |
| | <font color="red" style="font-weight:600">NOTE: these (0.83+) lighting callouts only work when called from unsynced gadgets!</font> |
|
| |
|
| {{LuaCallout
| | '''Spring.AddMapLight''' <font color="red" style="font-weight:600">(requires MaxDynamicMapLights > 0)</font> |
| |prefix = Spring.
| | (table lightParams) -> number lightHandle |
| |name = GetTeamResources
| | '''Spring.AddModelLight''' <font color="red" style="font-weight:600">(requires MaxDynamicModelLights > 0)</font> |
| |arg1 = {{type|number}} teamID
| | (table lightParams) -> number lightHandle |
| |arg2 = {{type|string}} "metal" {{pipe}} "energy"
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} currentLevel, {{type|number}} storage, {{type|number}} pull, {{type|number}} income, {{type|number}} expense, {{type|number}} share, {{type|number}} sent, {{type|number}} received
| |
| |info =
| |
| }}
| |
|
| |
|
| | '''Spring.UpdateMapLight''' |
| | (number lightHandle, table lightParams) -> boolean success |
| | '''Spring.UpdateModelLight''' |
| | (number lightHandle, table lightParams) -> boolean success |
|
| |
|
| {{LuaCallout
| | '''Spring.SetMapLightTrackingState''' |
| |prefix = Spring.
| | (number lightHandle, number unitOrProjectileID, |
| |name = GetTeamUnitStats
| | boolean enableTracking, boolean unitOrProjectile) -> boolean success |
| |arg1 = {{type|number}} teamID
| | '''Spring.SetModelLightTrackingState''' |
| |arg2 =
| | (number lightHandle, number unitOrProjectileID, |
| |arg3 =
| | boolean enableTracking, boolean unitOrProjectile) -> boolean success |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} killed, {{type|number}} died, {{type|number}} capturedBy, {{type|number}} capturedFrom, {{type|number}} received, {{type|number}} sent
| |
| |info =
| |
| }}
| |
|
| |
|
| | '''lightParams''' is a table that should contain at least one of the following recognized key/value pairs: |
|
| |
|
| {{LuaCallout | | lightParams = { |
| |prefix = Spring.
| | position = {px, py, pz}, |
| |name = GetTeamUnitStats
| | direction = {dx, dy, dz}, |
| |arg1 = {{type|number}} teamID
| | ambientColor = {red, green, blue}, |
| |arg2 = {{type|string}} "metal" {{pipe}} "energy"
| | diffuseColor = {red, green, blue}, |
| |arg3 =
| | specularColor = {red, green, blue}, |
| |arg4 =
| | intensityWeight = {ambientWeight, diffuseWeight, specularWeight}, |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} used, {{type|number}} produced, {{type|number}} excessed, {{type|number}} received, {{type|number}} sent
| |
| |info =
| |
| }}
| |
|
| |
|
| | -- per-frame decay of ambientColor (spread over TTL frames) |
| | ambientDecayRate = {ambientRedDecay, ambientGreenDecay, ambientBlueDecay}, |
| | -- per-frame decay of diffuseColor (spread over TTL frames) |
| | diffuseDecayRate = {diffuseRedDecay, diffuseGreenDecay, diffuseBlueDecay}, |
| | -- per-frame decay of specularColor (spread over TTL frames) |
| | specularDecayRate = {specularRedDecay, specularGreenDecay, specularBlueDecay}, |
| | -- *DecayType = 0.0 -> interpret *DecayRate values as linear, else as exponential |
| | decayFunctionType = {ambientDecayType, diffuseDecayType, specularDecayType}, |
|
| |
|
| {{LuaCallout
| | radius = number elmos, |
| |prefix = Spring.
| | fov = number degrees, |
| |name = GetTeamUnitStats
| | ttl = number frames, |
| |arg1 = {{type|number}} teamID
| | priority = number, |
| |arg2 =
| | ignoreLOS = boolean, |
| |arg3 =
| | } |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} cur_max_index
| |
| |info = cur_max_index is possible range for startIndex/endIndex :={1..cur_max_index}
| |
| }}
| |
|
| |
|
| or
| | = Map = |
| | '''Spring.SetSkyBoxTexture''' {{new|101.0}} |
| | ( string texName ) -> nil |
|
| |
|
| {{LuaCallout
| | '''Spring.SetMapShadingTexture''' {{new|101.0}} |
| |prefix = Spring.
| | ( string texType, string texName ) -> boolean success |
| |name = GetTeamUnitStats
| |
| |arg1 = {{type|number}} teamID
| |
| |arg2 = {{type|number}} startIndex {{bracket}}
| |
| |arg3 = {{type|number}} endIndex = startIndex {{rbracket}}
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|table}} stats (see below for table content description)
| |
| |info =
| |
| }}
| |
| <pre> table stats = {
| |
| [1] = {
| |
| "time" = number,
| |
| "frame" = number,
| |
| "metalUsed" = number,
| |
| "metalProduced" = number,
| |
| "metalExcess" = number,
| |
| "metalReceived" = number,
| |
| "metalSent" = number,
| |
| "energyUsed" = number,
| |
| "energyProduced" = number,
| |
| "energyExcess" = number,
| |
| "energyReceived" = number,
| |
| "energySent" = number,
| |
| "damageDealt" = number,
| |
| "damageReceived" = number,
| |
| "unitsProduced" = number,
| |
| "unitsDied" = number,
| |
| "unitsReceived" = number,
| |
| "unitsSent" = number,
| |
| "unitsCaptured" = number,
| |
| "unitsOutCaptured" = number,
| |
| "unitsKilled" = number
| |
| }, ...
| |
| }</pre>
| |
|
| |
|
| | <div class="note">Example usage: Spring.SetMapShadingTexture("$ssmf_specular", "name_of_my_shiny_texture")</div> |
|
| |
|
| {{LuaCallout
| | '''Spring.SetMapSquareTexture''' |
| |prefix = Spring.
| | ( number texSqrX, number texSqrY, string luaTexName ) -> boolean success |
| |name = GetTeamLuaAI
| |
| |arg1 = {{type|number}} teamID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|string}} "luaAI"
| |
| |info = Returns string containing name of AI defined in file LuaAI.lua as name="<AI name>". Maybe it returns whole table with all values there, but in my LuaAI.lua name is on first position...
| |
| }}
| |
|
| |
|
| === Teams/PlayersAllied ===
| | '''Spring.SetMapShader''' {{101.0}} |
| | | ( number standardShaderID, number deferredShaderID ) -> nil |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = AreTeamsAllied
| |
| |arg1 = {{type|number}} teamID1
| |
| |arg2 = {{type|number}} teamID2
| |
| |arg3 = ...
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} isAllied
| |
| |info =
| |
| }}
| |
| | |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = ArePlayersAllied
| |
| |arg1 = {{type|number}} playerID1
| |
| |arg2 = {{type|number}} playerID2
| |
| |arg3 = ...
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} isAllied
| |
| |info =
| |
| }}
| |
| | |
| == Units ==
| |
| === GetUnits ===
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetAllUnits
| |
| |arg1 =
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|table}} unitTable = { {{bracket|1}} = {{type|number}} unitID, ... }
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetTeamUnits
| |
| |arg1 = {{type|number}} teamID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|table}} unitTable = { {{bracket|1}} = {{type|number}} unitID, ... }
| |
| |info =
| |
| }}
| |
| | |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetTeamUnitsSorted
| |
| |arg1 = {{type|number}} teamID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|table}} unitDefTable = { {{bracket}}{{type|number}} unitDefID{{rbracket}} = { {{bracket|1}} = {{type|number}} unitID, ... }, ... }
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetTeamUnitsCounts
| |
| |arg1 = {{type|number}} teamID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|table}} countTable = { {{bracket}}{{type|number}} unitDefID{{rbracket}} = count, ... }
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetTeamUnitsByDefs
| |
| |arg1 = {{type|number}} teamID
| |
| |arg2 = {{type|number}} unitDefID {{pipe}} tableUnitDefs = { {{type|number}} unitDefID1, ... }
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|table}} unitTable = { {{bracket|1}} = {{type|number}} unitID, ... }
| |
| |info =
| |
| }}
| |
| | |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetTeamUnitDefCount
| |
| |arg1 = {{type|number}} teamID
| |
| |arg2 = {{type|number}} unitDefID
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} count
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetTeamUnitCount
| |
| |arg1 = {{type|number}} teamID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} count
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitsInRectangle
| |
| |arg1 = {{type|number}} xmin
| |
| |arg2 = {{type|number}} zmin
| |
| |arg3 = {{type|number}} xmax
| |
| |arg4 = {{type|number}} zmax {{bracket}}
| |
| |arg5 = {{type|number}} teamID {{rbracket}}
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|table}} unitTable = { {{bracket|1}} = {{type|number}} unitID, etc... }
| |
| |info =
| |
| }}
| |
| | |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitsInBox
| |
| |arg1 = {{type|number}} xmin, {{type|number}} ymin, {{type|number}} zmin
| |
| |arg2 = {{type|number}} xmax, {{type|number}} ymax, {{type|number}} zmax {{bracket}}
| |
| |arg3 = {{type|number}} teamID {{rbracket}}
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|table}} unitTable = { {{bracket|1}} = {{type|number}} unitID, etc... }
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitsInSphere
| |
| |arg1 = {{type|number}} x, {{type|number}} y, {{type|number}} z
| |
| |arg2 = {{type|number}} radius {{bracket}}
| |
| |arg3 = {{type|number}} teamID {{rbracket}}
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|table}} unitTable = { {{bracket|1}} = {{type|number}} unitID, etc... }
| |
| |info =
| |
| }}
| |
| | |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitsInCylinder
| |
| |arg1 = {{type|number}} x, {{type|number}} z
| |
| |arg2 = {{type|number}} radius {{bracket}}
| |
| |arg3 = {{type|number}} teamID {{rbracket}}
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|table}} unitTable = { {{bracket|1}} = {{type|number}} unitID, etc... }
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitsInPlanes
| |
| |arg1 = {{type|table}} planes = { {{bracket|1}} = {{type|number}} normalVecX, {{type|number}} normalVecY, {{type|number}} normalVecZ, {{type|number}} d }, etc... }
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|table}} unitTable = { {{bracket|1}} = {{type|number}} unitID, etc... }
| |
| |info = Plane normals point towards accepted space, so the acceptance criteria for each plane is:
| |
| }}
| |
| <pre> radius = unit radius
| |
| px, py, pz = unit position
| |
| [(nx * px) + (ny * py) + (nz * pz) + (d - radius)] <= 0</pre>
| |
| | |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitNearestAlly
| |
| |arg1 = {{type|number}} unitID {{bracket}}
| |
| |arg2 = {{type|number}} range {{rbracket}}
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} unitID
| |
| |info =
| |
| }}
| |
| | |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitNearestEnemy
| |
| |arg1 = {{type|number}} unitID {{bracket}}
| |
| |arg2 = {{type|number}} range {{bracket}}
| |
| |arg3 = {{type|bool}} useLOS {{rbracket}}{{rbracket}}
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} unitID
| |
| |info = Post 95.0 this no longer returns neutral units.
| |
| }}
| |
| | |
| === Unit Informations ===
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = ValidUnitID
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|bool}} valid
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitIsDead
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} isDead
| |
| |info = Returns false if unit exists and is alive, true for a brief period of time after unit dies, nil otherwise. Keep this in mind when using (not Spring.GetUnitIsDead() ).
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitTooltip
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|string}} tooltip
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitDefID
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} unitDefID
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitTeam
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} teamID
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitAllyTeam
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} allyID
| |
| |info =
| |
| }}
| |
| | |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitLineage
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} lineage {{pipe}} {{type|number}} lineage, {{type|bool}} lineageIsRoot
| |
| |info = {{Removed|83.0}}
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitNeutral
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} neutral
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitHealth
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} health, {{type|number}} maxHealth, {{type|number}} paralyzeDamage, {{type|number}} captureProgress, {{type|number}} buildProgress
| |
| |info = Build progress is returned as floating point number between 0.0 and 1.0.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitArmored
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} armored, {{type|number}} armorMultiple
| |
| |info = armorMultiple new in version 0.83.x.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitIsStunned
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} stunned_or_inbuild, {{type|bool}} stunned, {{type|bool}} inbuild
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitMaxRange
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} maxEngagementRange
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitResources
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} metalMake, {{type|number}} metalUse, {{type|number}} energyMake, {{type|number}} energyUse
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitHarvestStorage
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} metal
| |
| |info = See also {{xtaglink|Gamedev:UnitDefs|harvestStorage}} UnitDef tag.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitMetalExtraction
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} metalExtraction
| |
| |info = 0.82+ and later
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitExperience
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} experience
| |
| |info = 0.82+ and later
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitStates
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|table}} unitStates
| |
| |info = The unitStates table arguments are:
| |
| }}
| |
| <pre>unitStates = {
| |
| "firestate" = number,
| |
| "movestate" = number,
| |
| "repeat" = boolean,
| |
| "cloak" = boolean,
| |
| "active" = boolean,
| |
| "trajectory" = boolean,
| |
| ["autoland" = boolean,]
| |
| ["autorepairlevel" = number,]
| |
| ["loopbackattack" = boolean]
| |
| } </pre>
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitIsActive
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} active
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitIsCloaked
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} isCloaked
| |
| |info =
| |
| }}
| |
| | |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitSelfDTime
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} time
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitStockpile
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} numStockpiled, {{type|number}} numStockpileQued, {{type|number}} buildPercent
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitHeight
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} height
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitRadius
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} radius
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitMass
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} mass
| |
| |info = {{new|101.0}}
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitBlocking
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} isBlocking, {{type|bool}} isSolidObjectCollidable, {{type|bool}} isProjectileCollidable, {{type|bool}} isRaySegmentCollidable, {{type|bool}} crushable, {{type|bool}} blockEnemyPushing, {{type|bool}} blockHeightChanges
| |
| |info = {{new|95.0}}<br>Additional output arguments.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitPosition
| |
| |arg1 = {{type|number}} unitID {{bracket}}
| |
| |arg2 = {{type|bool}} midPos {{bracket}}
| |
| |arg3 = {{type|bool}} aimPos {{rbracket}}{{rbracket}}
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} basePointX, {{type|number}} basePointY, {{type|number}} basePointZ {{bracket}}, {{type|number}} midPointX, {{type|number}} midPointY, {{type|number}} midPointZ {{bracket}}, {{type|number}} aimPointX, {{type|number}} aimPointY, {{type|number}} aimPointZ {{rbracket}}{{rbracket}}
| |
| |info = Since 89.0, returns the base (default), middle or aim position of the unit.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitBasePosition
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} posX, {{type|number}} posY, {{type|number}} posZ
| |
| |info = {{Removed|89.0}} Use GetUnitPosition instead. Returned the bottom of the unit.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitDirection
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} dirX, {{type|number}} dirY, {{type|number}} dirZ
| |
| |info = Returns the direction vector.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitHeading
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} heading
| |
| |info = Returns heading directions used in COB scripts.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitRotation
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} pitch, {{type|number}} yaw, {{type|number}} roll
| |
| |info = {{New|95.0}}
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitVelocity
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} velX, {{type|number}} velY, {{type|number}} velZ, {{type|number}} velLength
| |
| |info = VelLength new in 95.0, it returns the velocity length in one frame. Multiply by 30 (game frames/s) to get an equivalent to unitDef.speed.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitBuildFacing
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} facing
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitIsBuilding
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} unitID
| |
| |info = Returns what unit a constructor/factory is currently building.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitCurrentBuildPower
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} buildPower
| |
| |info = {{new|92.0}}
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitNanoPieces
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} { {{bracket|1}} = {{type|number}} piece1, etc ... }
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitTransporter
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} unitID
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitIsTransporting
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} { {{bracket|1}} = {{type|number}} unitID, etc ... }
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitShieldState
| |
| |arg1 = {{type|number}} unitID {{bracket}}
| |
| |arg2 = {{type|number}} weaponID = -1 {{rbracket}}
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} isEnabled, {{type|number}} curPower
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitTravel
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} travel, {{type|number}} travelPeriod
| |
| |info = Marked as deprecated.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitFuel
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} fuel
| |
| |info = Marked as deprecated.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitFlanking
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 = {{type|string}} "dir"
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} x, {{type|number}} y, {{type|number}} z
| |
| |info =
| |
| }}
| |
| | |
| or
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitFlanking
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 = {{type|string}} "mode" {{pipe}} {{type|string}} "dir" {{pipe}} {{type|string}} "moveFactor" {{pipe}} {{type|string}} "minDamage" {{pipe}} {{type|string}} "maxDamage"
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} flankingBonusMode {{pipe}} {{type|number}} flankingBonusDir.x, {{type|number}} flankingBonusDir.y, {{type|number}} flankingBonusDir.z {{pipe}} {{type|number}} flankingBonusMobilityAdd {{pipe}} {{type|number}} minDamage {{pipe}} {{type|number}} maxDamage
| |
| |info =
| |
| }}
| |
| | |
| or
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitFlanking
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} mode, {{type|number}} modilityAdd, {{type|number}} minDamage, {{type|number}} maxDamage, {{type|number}} dirX, {{type|number}} dirY, {{type|number}} dirZ
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitSensorRadius
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 = {{type|string}} type
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} radius
| |
| |info = Possible types are:<br>los, airLos, radar, sonar, seismic, radarJammer, sonarJammer
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitLosState
| |
| |arg1 = {{type|number}} unitID {{bracket}}
| |
| |arg2 = {{type|number}} allyTeamID {{bracket}}
| |
| |arg3 = {{type|bool}} raw {{rbracket}}{{rbracket}}
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} raw {{pipe}} {{bracket}} {{type|string}} "los" = true {{bracket}}, {{type|string}} "radar" = true {{bracket}}, {{type|string}} "typed" = true {{rbracket}}{{rbracket}}{{rbracket}}
| |
| |info = Raw is only available in gadgets.
| |
| }}
| |
| | |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitSeparation
| |
| |arg1 = {{type|number}} unitID1
| |
| |arg2 = {{type|number}} unitID2 {{bracket}}
| |
| |arg3 = {{type|bool}} 2D {{bracket}}
| |
| |arg4 = {{type|bool}} surfaceDist {{rbracket}}{{rbracket}}
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} distance
| |
| |info = SurfaceDist new in 95.0. Returns the distance of two units. SurfaceDist calculates the distance between the unitsphere surfaces instead of their midpos.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitFeatureSeparation
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 = {{type|number}} featureID {{bracket}}
| |
| |arg3 = {{type|bool}} 2D {{rbracket}}
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} distance
| |
| |info = {{new|101.0}}
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitDefDimensions
| |
| |arg1 = {{type|number}} unitDefID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|table}} defDimensions
| |
| |info = DefDimensions table arguments are:
| |
| }}
| |
| <pre>defDimensions = {
| |
| "height" = number,
| |
| "radius" = number,
| |
| "midx" = number,
| |
| "minx" = number,
| |
| "maxx" = number,
| |
| "midy" = number,
| |
| "miny" = number,
| |
| "maxy" = number,
| |
| "midz" = number,
| |
| "minz" = number,
| |
| "maxz" = number
| |
| }</pre>
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitLastAttacker
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} unitID
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitLastAttackedPiece
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|string}} pieceName, {{type|number}} gameframe
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitMoveTypeData
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|table}} movetypeData
| |
| |info =
| |
| }}
| |
| | |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitCollisionVolumeData
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} scaleX, {{type|number}} scaleY, {{type|number}} scaleZ, {{type|number}} offsetX, {{type|number}} offsetY, {{type|number}} offsetZ, {{type|number}} volumeType, {{type|number}} testType, {{type|number}} primaryAxis, {{type|bool}} disabled
| |
| |info =
| |
| }}
| |
| | |
| ==== Unit Weapon Informations ====
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitWeaponState
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 = {{type|number}} weaponNum
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} angleGood, {{type|bool}} loaded, {{type|number}} reloadFrame, {{type|number}} salvoLeft, {{type|number}} numStockpiled
| |
| |info =
| |
| }}
| |
| | |
| or
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitWeaponState
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 = {{type|number}} weaponNum
| |
| |arg3 = {{type|string}} tag
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} tagVariable
| |
| |info = String argument "tag" can return a specific variable. Possilbe tags are:
| |
| }}
| |
| <pre> "reloadState" == "reloadFrame"
| |
| "reloadTime"
| |
| "accuracy"
| |
| "sprayAngle"
| |
| "range"
| |
| "projectileSpeed"
| |
| "burst"
| |
| "burstRate"
| |
| "projectiles"
| |
| | |
| The following 4 tags were added in 104.0:
| |
| "salvoError"
| |
| "salvoLeft"
| |
| "nextSalvo"
| |
| "targetMoveError"</pre>
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitWeaponDamages
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 = {{type|number}} weaponNum {{pipe}} {{type|string}} "selfDestruct" {{pipe}} {{type|string}} "explode"
| |
| |arg3 = {{type|string}} tag
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} tagVariable
| |
| |info = String argument "tag" can return a specific variable. Possilbe tags are:
| |
| }}
| |
| <pre> "paralyzeDamageTime"
| |
| "impulseFactor"
| |
| "impulseBoost"
| |
| "craterMult"
| |
| "craterBoost"
| |
| "dynDamageExp"
| |
| "dynDamageMin"
| |
| "dynDamageRange"
| |
| "dynDamageInverted"
| |
| "craterAreaOfEffect"
| |
| "damageAreaOfEffect"
| |
| "edgeEffectiveness"
| |
| "explosionSpeed"
| |
| - or -
| |
| an armor type index to get the damage against it.</pre>
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitWeaponVectors
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 = {{type|number}} weaponNum
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} posX, {{type|number}} posY, {{type|number}} posZ, {{type|number}} dirX, {{type|number}} dirY, {{type|number}} dirZ
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitWeaponTryTarget
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 = {{type|number}} weaponNum
| |
| |arg3 = {{type|number}} targetID {{pipe}} {{type|number}} posX, {{type|number}} posY, {{type|number}} posZ
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} success
| |
| |info = {{new|94.0}}<br>For a position it just checks if the weapon can attackGround. For a unit existance, category, death status, crashing status, LOS status, neutral status, ally status and transport status are checked.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitWeaponTestTarget
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 = {{type|number}} weaponNum
| |
| |arg3 = {{type|number}} targetID {{pipe}} {{type|number}} posX, {{type|number}} posY, {{type|number}} posZ
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} success
| |
| |info = {{new|94.0}}<br>Checks TryTarget, TestRange, and that weapon emit point is not below ground, then checks FreeLineOfFire.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitWeaponTestRange
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 = {{type|number}} weaponNum
| |
| |arg3 = {{type|number}} targetID {{pipe}} {{type|number}} posX, {{type|number}} posY, {{type|number}} posZ
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} success
| |
| |info = {{new|94.0}}<br>Checks if target is in range including height modifiers and cylinder targeting if set.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitWeaponHaveFreeLineOfFire
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 = {{type|number}} weaponNum
| |
| |arg3 = {{type|number}} targetID {{pipe}} {{type|number}} posX, {{type|number}} posY, {{type|number}} posZ
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} success
| |
| |info = {{new|94.0}}<br>Runs a raytrace from unit aimpoint respecting collision flags.
| |
| }}
| |
| | |
| or
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitWeaponHaveFreeLineOfFire
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 = {{type|number}} weaponNum
| |
| |arg3 = {{type|number}} targetID {{pipe}} {{bracket}} {{type|number}} srcPosX {{bracket}}
| |
| |arg4 = {{type|number}} srcPosY {{bracket}}
| |
| |arg5 = {{type|number}} srcPosZ {{bracket}}
| |
| |arg6 = {{type|number}} tgtPosX {{bracket}}
| |
| |arg7 = {{type|number}} tgtPosY {{bracket}}
| |
| |arg8 = {{type|number}} tgtPosZ {{rbracket}}{{rbracket}}{{rbracket}}{{rbracket}}{{rbracket}}{{rbracket}}
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} success
| |
| |info = {{new|104.0}}<br>The param list was changed so that the source firing position can also be passed.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitWeaponCanFire
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 = {{type|number}} weaponNum
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} canFire
| |
| |info = {{new|95.0}}
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitWeaponTarget
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 = {{type|number}} weaponNum
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} 0 {{pipe}} {{type|number}} 1, {{type|bool}} isUserTarget, {{type|number}} unitID {{pipe}} {{type|number}} 2, {{type|bool}} isUserTarget, { {{type|number}} posX, {{type|number}} posY, {{type|number}} posZ } {{pipe}} {{type|number}} 3, {{type|bool}} isUserTarget, {{type|number}} projectileID
| |
| |info = {{new|95.0}}<br>Returned number of args is always 3 if targetType != None.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetRadarErrorParams
| |
| |arg1 = {{type|number}} allyTeamID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} allyteamErrorSize, {{type|number}} baseErrorSize, {{type|number}} baseErrorMult
| |
| |info = {{new|95.0}}
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitPosErrorParams
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} posErrorVector.x, {{type|number}} posErrorVector.y, {{type|number}} posErrorVector.z, {{type|number}} posErrorDelta.x, {{type|number}} posErrorDelta.y, {{type|number}} posErrorDelta.z, {{type|number}} nextPosErrorUpdatebaseErrorMult
| |
| |info = {{new|95.0}}
| |
| }}
| |
| | |
| ==== Unit LOS ====
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = IsUnitInLos
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 = {{type|number}} allyID
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} inLOS
| |
| |info = {{new|101.0}}
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = IsUnitInAirLos
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 = {{type|number}} allyID
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} inAirLOS
| |
| |info = {{new|101.0}}
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = IsUnitInRadar
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 = {{type|number}} allyID
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} inRadar
| |
| |info = {{new|101.0}}
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = IsUnitInJammer
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 = {{type|number}} allyID
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} inJammer
| |
| |info = {{new|101.0}}
| |
| }}
| |
| | |
| === Unit Pieces ===
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitVectors
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} { {{type|number}} frontX, {{type|number}} frontY, {{type|number}} frontZ } , { {{type|number}} upX, {{type|number}} upY, {{type|number}} upZ } , { {{type|number}} rightX, {{type|number}} rightY, {{type|number}} rightZ }
| |
| |info = {{new|101.0}}
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitPiecePosition
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 = {{type|number}} piece
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|number}} posX, {{type|number}} posY, {{type|number}} posZ
| |
| |info = Returns piece position in unit space. Also remember to multiply the x-axis value with -1 if you want to move a piece to another piece.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitPieceDirection
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 = {{type|number}} piece
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|number}} dirX, {{type|number}} dirY, {{type|number}} dirZ
| |
| |info = Fixed since 101. Now returns the same direction as Spring.GetUnitPiecePosDir.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitPiecePosDir
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 = {{type|number}} pieceNum
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} posX, {{type|number}} posY, {{type|number}} posZ, {{type|number}} dirX, {{type|number}} dirY, {{type|number}} dirZ
| |
| |info = Returns piece position and direction in world space. The direction (dirX, dirY, dirZ) is not necessarily normalized. The position is defined as the position of the first vertex of the piece and it defines direction as the direction in which the line from the first vertex to the second vertex points.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitPieceMatrix
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 = {{type|number}} piece
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = { {{bracket|1}} = {{type|number}}, ... , {{bracket|16}} = {{type|number}} }
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitPieceList
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = { {{bracket|1}} = {{type|string}} "piecename", ... , {{bracket|pieceNumN}} = {{type|string}} "piecename" }
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitPieceMap
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = { {{type|string}} "piecename1" = {{type|number}} pieceNum1, ... , {{type|string}} "piecenameN" = {{type|number}} pieceNumN }
| |
| |info =
| |
| }}
| |
| | |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitPieceInfo
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 = {{type|number}} piece
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|table}} pieceInfo
| |
| |info = {{new|95.0}} "parent" field<br>{{new|101.0}} parent for root pieces is now "[null]" instead of ""<br> table pieceInfo contains:
| |
| }}
| |
| <pre>pieceInfo = {
| |
| "name" = string "piecename",
| |
| "isEmpty" = boolean,
| |
| "children" = { [1] = string "piecename", ... },
| |
| "min" = { [1] = number x, [2] = number y, [3] = number z },
| |
| "max" = { [1] = number x, [2] = number y, [3] = number z },
| |
| "offset" = { [1] = number x, [2] = number y, [3] = number z },
| |
| "parent" = string "parentpiecename",
| |
| }</pre>
| |
| | |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitScriptPiece
| |
| |arg1 = {{type|number}} unitID {{bracket}}
| |
| |arg2 = {{type|number}} scriptPiece {{rbracket}}
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{bracket}} {{type|number}} scriptPieceNum = {{type|number}} modelPieceNum {{rbracket}} {{pipe}} {{type|number}} modelPieceNum
| |
| |info = This functions translate the COB ScriptPiece numbers into the ModelPiece numbers (the set of ScriptPieces is a subset of the ModelPieces, means #ScriptPieces <= #ModelPieces), which is used in all other functions (the "number piece" means always the modelpiece). So if you get a pieceID via Cob2Lua you have to translate it with this function. Btw. the COB ScriptPiece number is equal with the piece position in the <i>piece</i> definition in your cob/bos.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitScriptNames
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = { {{type|string}} "cobpiecename1" = {{type|number}} ScriptPieceNum1, ... , {{type|string}} "cobpiecenameN" = {{type|number}} ScriptPieceNumN }
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitPieceCollisionVolumeData
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 = {{type|number}} pieceID
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|number}} scaleX,{{type|number}} scaleY, {{type|number}} scaleZ, {{type|number}} offsetX, {{type|number}} offsetY, {{type|number}} offsetZ, {{type|number}} volumeType, {{type|number}} testType, {{type|number}} primaryAxis, {{type|bool}} disabled
| |
| |info = As of 101.0 this is 1-based piece index argument (was 0-based).
| |
| }}
| |
| | |
| === CommandQueues ===
| |
| | |
| Spring.GetCommandQueue function is identical to Spring.GetUnitCommands function. Here only Spring.GetUnitCommands will be listed:
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitCommands
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 = {{type|number}} count = 0
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} commandQueueSize
| |
| |info =
| |
| }}
| |
| | |
| or
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitCommands
| |
| |arg1 = {{type|number}} unitID {{bracket}}
| |
| |arg2 = {{type|number}} count = -1 {{rbracket}}
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|table}} commandQueueTable
| |
| |info = This function can trigger an error if called too often without passing a second parameter. Refer to [https://github.com/spring/spring/blob/92c54d5b15775c39a8c67b203c28fe9b9db51cea/rts/Lua/LuaSyncedRead.cpp#L3983-L3996 LuaSyncedRead.cpp#L3983-L3996].<br>CommandQueueTable table arguments are:
| |
| }}
| |
| <pre>commandQueueTable = {
| |
| [1] = {
| |
| "id" = number,
| |
| "params" = { [1] = number, ...},
| |
| "options" = {
| |
| "coded" = number,
| |
| "alt" = boolean,
| |
| "ctrl" = boolean,
| |
| "shift" = boolean,
| |
| "right" = boolean,
| |
| "internal" = boolean,
| |
| "meta" = boolean
| |
| }
| |
| }, ...
| |
| }</pre>
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetFullBuildQueue
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|table}} buildOrders = { {{bracket|1}} = { {{bracket}}{{type|number}} unitDefID{{rbracket}} = {{type|number}} count }, etc... }
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetRealBuildQueue
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|table}} buildOrders = { {{bracket|1}} = { {{bracket}}{{type|number}} unitDefID{{rbracket}} = {{type|number}} count }, etc... }
| |
| |info = Cleans the buildqueue of things the unit can't build itself.
| |
| }}
| |
| | |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetFactoryCommands
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 = {{type|number}} count = 0
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} commandQueueSize
| |
| |info =
| |
| }}
| |
| | |
| or
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetFactoryCommands
| |
| |arg1 = {{type|number}} unitID {{bracket}}
| |
| |arg2 = {{type|number}} count = -1 {{rbracket}}
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|table}} commandQueueTable
| |
| |info = CommandQueueTable table arguments are:
| |
| }}
| |
| <pre>commandQueueTable = {
| |
| [1] = {
| |
| "id" = number,
| |
| "params" = { [1] = number, ...},
| |
| "options" = {
| |
| "coded" = number,
| |
| "alt" = boolean,
| |
| "ctrl" = boolean,
| |
| "shift" = boolean,
| |
| "right" = boolean,
| |
| "internal" = boolean,
| |
| "meta" = boolean
| |
| }
| |
| }, ...
| |
| }</pre>
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetFactoryCounts
| |
| |arg1 = {{type|number}} unitID {{bracket}}
| |
| |arg2 = {{type|number}} count {{bracket}}
| |
| |arg3 = {{type|bool}} addCMDs {{rbracket}}{{rbracket}}
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|table}} commandQueueTable = { {{bracket|2}} = { {{bracket}}{{type|number}} unitDefID {{pipe}} {{type|number}} -cmdID{{rbracket}} = {{type|number}} count }, ... }
| |
| |info = Gets the buildqueue of a factory.
| |
| }}
| |
| | |
| === Command Descriptions/Buttons ===
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitCmdDescs
| |
| |arg1 = {{type|number}} unitID {{bracket}}
| |
| |arg2 = {{type|number}} startIndex {{bracket}}
| |
| |arg3 = {{type|number}} endIndex {{rbracket}}{{rbracket}}
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|table}} commandDescTable
| |
| |info = CommandDescTable arguments are:
| |
| }}
| |
| <pre>commandDescTable = {
| |
| [1] = {
| |
| "id" = number,
| |
| "type" = number,
| |
| "name" = string,
| |
| "action" = string,
| |
| "tooltip" = string,
| |
| "texture" = string,
| |
| "cursor" = string,
| |
| "hidden" = boolean,
| |
| "disabled" = boolean,
| |
| "showUnique" = boolean,
| |
| "onlyTexture" = boolean,
| |
| | |
| "params" = { [1] = string, ... }
| |
| }, ...
| |
| }</pre>
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = FindUnitCmdDesc
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 = {{type|number}} cmdID
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} index
| |
| |info =
| |
| }}
| |
| | |
| == Features ==
| |
| === GetFeatures ===
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetFeaturesInRectangle
| |
| |arg1 = {{type|number}} xMin
| |
| |arg2 = {{type|number}} zMin
| |
| |arg3 = {{type|number}} xMax
| |
| |arg4 = {{type|number}} zMax
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|table}} featureTable = { {{bracket|1}} = {{type|number}} featureID, etc... }
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetFeaturesInSphere
| |
| |arg1 = {{type|number}} x
| |
| |arg2 = {{type|number}} y
| |
| |arg3 = {{type|number}} z
| |
| |arg4 = {{type|number}} radius
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|table}} featureTable = { {{bracket|1}} = {{type|number}} featureID, etc... }
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetFeaturesInCylinder
| |
| |arg1 = {{type|number}} x
| |
| |arg2 = {{type|number}} z
| |
| |arg3 = {{type|number}} radius
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|table}} featureTable = { {{bracket|1}} = {{type|number}} featureID, etc... }
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetAllFeatures
| |
| |arg1 =
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|table}} featureTable = { {{bracket|1}} = {{type|number}} featureID, etc... }
| |
| |info =
| |
| }}
| |
| | |
| === Feature Informations ===
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = ValidFeatureID
| |
| |arg1 = {{type|number}} featureID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|bool}} isValid
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetFeatureDefID
| |
| |arg1 = {{type|number}} featureID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} featureDefID
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetFeatureTeam
| |
| |arg1 = {{type|number}} featureID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} teamID
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetFeatureAllyTeam
| |
| |arg1 = {{type|number}} featureID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} allyID
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetFeatureHealth
| |
| |arg1 = {{type|number}} featureID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} health, {{type|number}} maxHealth, {{type|number}} resurrectProgress
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetFeatureHeight
| |
| |arg1 = {{type|number}} featureID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} height
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetFeatureRadius
| |
| |arg1 = {{type|number}} featureID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} radius
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetFeatureMass
| |
| |arg1 = {{type|number}} featureID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} mass
| |
| |info = {{new|101.0}}
| |
| }}
| |
| | |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetFeatureSeparation
| |
| |arg1 = {{type|number}} featureID1
| |
| |arg2 = {{type|number}} featureID2 {{bracket}}
| |
| |arg3 = {{type|bool}} 2D {{rbracket}}
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} distance
| |
| |info = {{new|101.0}}
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetFeaturePosition
| |
| |arg1 = {{type|number}} featureID {{bracket}}
| |
| |arg2 = {{type|bool}} midPos {{bracket}}
| |
| |arg3 = {{type|bool}} aimPos {{rbracket}}{{rbracket}}
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} bpX, {{type|number}} bpY, {{type|number}} bpZ {{bracket}}, {{type|number}} mpX, {{type|number}} mpY, {{type|number}} mpZ {{bracket}}, {{type|number}} apX, {{type|number}} apY, {{type|number}} apZ {{rbracket}}{{rbracket}}
| |
| |info = Since 89.0, returns the base (default), middle or aim position of the feature.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetFeatureVelocity
| |
| |arg1 = {{type|number}} featureID {{bracket}}
| |
| |arg2 = {{type|bool}} norm {{rbracket}}
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} velX, {{type|number}} velY, {{type|number}} velZ, {{type|number}} velLength
| |
| |info = {{new|95.0}}
| |
| }}
| |
| | |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetFeatureDirection
| |
| |arg1 = {{type|number}} featureID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} dirX, {{type|number}} dirY, {{type|number}} dirZ
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetFeatureRotation
| |
| |arg1 = {{type|number}} featureID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} pitch, {{type|number}} yaw, {{type|number}} roll
| |
| |info = {{New|101.0}}
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetFeatureHeading
| |
| |arg1 = {{type|number}} featureID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} heading
| |
| |info =
| |
| }}
| |
| | |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetFeatureResources
| |
| |arg1 = {{type|number}} featureID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} RemainingMetal, {{type|number}} maxMetal, {{type|number}} RemainingEnergy, {{type|number}} maxEnergy, {{type|number}} reclaimLeft, {{type|number}} reclaimTime
| |
| |info = reclaimTime {{new|105.0}}
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetFeatureNoSelect
| |
| |arg1 = {{type|number}} featureID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} noSelect
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetFeatureResurrect
| |
| |arg1 = {{type|number}} featureID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|string}} UnitDefName, {{type|number}} buildFacing
| |
| |info =
| |
| }}
| |
| | |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetFeatureCollisionVolumeData
| |
| |arg1 = {{type|number}} featureID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} scaleX, {{type|number}} scaleY, {{type|number}} scaleZ, {{type|number}} offsetX, {{type|number}} offsetY, {{type|number}} offsetZ, {{type|number}} volumeType, {{type|number}} testType, {{type|number}} primaryAxis, {{type|bool}} disabled
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetFeaturePieceCollisionVolumeData
| |
| |arg1 = {{type|number}} featureID
| |
| |arg2 = {{type|number}} pieceID
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} scaleX, {{type|number}} scaleY, {{type|number}} scaleZ, {{type|number}} offsetX, {{type|number}} offsetY, {{type|number}} offsetZ, {{type|number}} volumeType, {{type|number}} testType, {{type|number}} primaryAxis, {{type|bool}} disabled
| |
| |info = {{new|101.0}}
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetFeatureBlocking
| |
| |arg1 = {{type|number}} featureID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} isBlocking, {{type|bool}} isSolidObjectCollidable, {{type|bool}} isProjectileCollidable, {{type|bool}} isRaySegmentCollidable, {{type|bool}} crushable, {{type|bool}} blockEnemyPushing, {{type|bool}} blockHeightChanges
| |
| |info = {{new|95.0}}
| |
| }}
| |
| | |
| === Feature Pieces ===
| |
| | |
| Works analogue to #Unit_Pieces
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetFeatureLastAttackedPiece
| |
| |arg1 = {{type|number}} featureID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|string}} pieceName, {{type|number}} gameframe
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetFeaturePieceMap
| |
| |arg1 = {{type|number}} featureID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = { {{type|string}} "piecename1" = {{type|number}} pieceNum1, ... , {{type|string}} "piecenameN" = {{type|number}} pieceNumN }
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetFeaturePieceList
| |
| |arg1 = {{type|number}} featureID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = { {{bracket|1}} = {{type|string}} "piecename", ... , {{bracket|pieceNumN}} = {{type|string}} "piecename" }
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetFeaturePieceInfo
| |
| |arg1 = {{type|number}} featureID
| |
| |arg2 = {{type|number}} piece
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|table}} pieceInfo
| |
| |info = {{new|95.0}} "parent" field<br>{{new|101.0}} parent for root pieces is now "[null]" instead of ""<br> table pieceInfo contains:
| |
| }}
| |
| <pre>pieceInfo = {
| |
| "name" = string "piecename",
| |
| "isEmpty" = boolean,
| |
| "children" = { [1] = string "piecename", ... },
| |
| "min" = { [1] = number x, [2] = number y, [3] = number z },
| |
| "max" = { [1] = number x, [2] = number y, [3] = number z },
| |
| "offset" = { [1] = number x, [2] = number y, [3] = number z },
| |
| "parent" = string "parentpiecename",
| |
| }</pre>
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetFeaturePiecePosition
| |
| |arg1 = {{type|number}} featureID
| |
| |arg2 = {{type|number}} piece
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|number}} posX, {{type|number}} posY, {{type|number}} posZ
| |
| |info = Returns piece position in unit space. Also remember to multiply the x-axis value with -1 if you want to move a piece to another piece.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetFeaturePieceDirection
| |
| |arg1 = {{type|number}} featureID
| |
| |arg2 = {{type|number}} piece
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|number}} dirX, {{type|number}} dirY, {{type|number}} dirZ
| |
| |info = Fixed since 101. Now returns the same direction as Spring.GetUnitPiecePosDir.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetFeaturePiecePosDir
| |
| |arg1 = {{type|number}} featureID
| |
| |arg2 = {{type|number}} pieceNum
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} posX, {{type|number}} posY, {{type|number}} posZ, {{type|number}} dirX, {{type|number}} dirY, {{type|number}} dirZ
| |
| |info = Returns piece position and direction in world space. The direction (dirX, dirY, dirZ) is not necessarily normalized. The position is defined as the position of the first vertex of the piece and it defines direction as the direction in which the line from the first vertex to the second vertex points.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetFeaturePieceMatrix
| |
| |arg1 = {{type|number}} featureID
| |
| |arg2 = {{type|number}} piece
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = { {{bracket|1}} = {{type|number}}, ... , {{bracket|16}} = {{type|number}} }
| |
| |info =
| |
| }}
| |
| | |
| == COB ==
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetCOBUnitVar
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 = {{type|number}} varID {{bracket}}
| |
| |arg3 = {{type|bool}} unpack = false {{rbracket}}
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} value {{pipe}} {{type|number}} unpackedX, {{type|number}} unpackedY
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetCOBTeamVar
| |
| |arg1 = {{type|number}} teamID
| |
| |arg2 = {{type|number}} varID {{bracket}}
| |
| |arg3 = {{type|bool}} unpack = false {{rbracket}}
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} value {{pipe}} {{type|number}} unpackedX, {{type|number}} unpackedY
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetCOBAllyTeamVar
| |
| |arg1 = {{type|number}} allyID
| |
| |arg2 = {{type|number}} varID {{bracket}}
| |
| |arg3 = {{type|bool}} unpack = false {{rbracket}}
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} value {{pipe}} {{type|number}} unpackedX, {{type|number}} unpackedY
| |
| |info =
| |
| }}
| |
| | |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetCOBGlobalVar
| |
| |arg1 = {{type|number}} varID {{bracket}}
| |
| |arg2 = {{type|bool}} unpack = false {{rbracket}}
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} value {{pipe}} {{type|number}} unpackedX, {{type|number}} unpackedY
| |
| |info =
| |
| }}
| |
| | |
| == Ground ==
| |
| <font color="#55ee99">Elevation is y. Water level is always at y=0. Ground height can be changed during play (terraform or deformation).</font>
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetGroundHeight
| |
| |arg1 = {{type|number}} x
| |
| |arg2 = {{type|number}} z
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|number}} y
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetGroundOrigHeight
| |
| |arg1 = {{type|number}} x
| |
| |arg2 = {{type|number}} z
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|number}} y
| |
| |info = This returns the ground's original height (i.e. before terraforming) at a given x,z position.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetGroundNormal
| |
| |arg1 = {{type|number}} x
| |
| |arg2 = {{type|number}} z {{bracket}}
| |
| |arg3 = {{type|bool}} smoothedNormal = false {{rbracket}}
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|number}} x, {{type|number}} y, {{type|number}} z, {{type|number}} slope
| |
| |info = {{new|100.0}}: smoothedNormal and slope
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetGroundInfo
| |
| |arg1 = {{type|number}} x
| |
| |arg2 = {{type|number}} z
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|string}} "Type", {{type|number}} metal, {{type|number}} hardness, {{type|number}} tankSpeed, {{type|number}} kbotSpeed, {{type|number}} hoverSpeed, {{type|number}} shipSpeed, {{type|bool}} receiveTracks
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetGroundBlocked
| |
| |arg1 = {{type|number}} x
| |
| |arg2 = {{type|number}} z
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|string}} "feature", {{type|number}} featureID {{pipe}} {{type|string}} "unit", {{type|number}} unitID
| |
| |info =
| |
| }}
| |
| | |
| or
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetGroundBlocked
| |
| |arg1 = {{type|number}} x1
| |
| |arg2 = {{type|number}} z1
| |
| |arg3 = {{type|number}} x2
| |
| |arg4 = {{type|number}} z2
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|string}} "feature", {{type|number}} featureID {{pipe}} {{type|string}} "unit", {{type|number}} unitID
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetGroundExtremes
| |
| |arg1 =
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} minHeight, {{type|number}} maxHeight
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetSmoothMeshHeight
| |
| |arg1 = {{type|number}} x
| |
| |arg2 = {{type|number}} z
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|number}} y
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetMetalMapSize
| |
| |arg1 =
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|number}} sizeX, {{type|number}} sizeY
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetMetalAmount
| |
| |arg1 = {{type|number}} x
| |
| |arg2 = {{type|number}} z
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|number}} metalAmount
| |
| |info = With x & z in metal map coordinates (worldspace/16)
| |
| }}
| |
| | |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetMetalExtraction
| |
| |arg1 = {{type|number}} x
| |
| |arg2 = {{type|number}} z
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|number}} extractionAmount
| |
| |info = With x & z in metal map coordinates (worldspace/16)
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetTerrainTypeData
| |
| |arg1 = {{type|number}} i
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|string}} "name", {{type|number}} hardness, {{type|number}} tankSpeed, {{type|number}} kbotSpeed, {{type|number}} hoverSpeed, {{type|number}} shipSpeed, {{type|bool}} receiveTracks
| |
| |info = {{new|92.0}}
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetGrass
| |
| |arg1 = {{type|number}} x
| |
| |arg2 = {{type|number}} z
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|number}} 0 {{pipe}} {{type|number}} 1
| |
| |info = With x & z in worldspace coordinates.
| |
| }}
| |
| | |
| === Test Orders ===
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = TestMoveOrder
| |
| |arg1 = {{type|number}} unitDefID
| |
| |arg2 = {{type|number}} pos.x {{bracket}}, {{type|number}} pos.y {{bracket}}, {{type|number}} pos.z {{bracket}}
| |
| |arg3 = {{type|number}} dir.x {{bracket}}, {{type|number}} dir.y {{bracket}}, {{type|number}} dir.z {{bracket}}
| |
| |arg4 = {{type|bool}} testTerrain {{bracket}}
| |
| |arg5 = {{type|bool}} testObjects {{bracket}}
| |
| |arg6 = {{type|bool}} centerOnly {{rbracket}}{{rbracket}}{{rbracket}}{{rbracket}}{{rbracket}}{{rbracket}}{{rbracket}}{{rbracket}}
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|bool}} validMove
| |
| |info = {{New|95.0}}
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = TestBuildOrder
| |
| |arg1 = {{type|number}} unitDefID
| |
| |arg2 = {{type|number}} x
| |
| |arg3 = {{type|number}} y
| |
| |arg4 = {{type|number}} z
| |
| |arg5 = {{type|number}} facing
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|number}} blocking {{bracket}}, {{type|number}} featureID {{rbracket}}
| |
| |info =
| |
| }}
| |
| <pre>blocking can be:
| |
| 0 - blocked
| |
| 1 - mobile unit in the way
| |
| 2 - free (or if featureID is != nil then with a blocking feature that can be reclaimed)
| |
| | |
| facing can be:
| |
| 0, "s", "south"
| |
| 1, "e", "east"
| |
| 2, "n", "north"
| |
| 3, "w", "west"</pre>
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = Pos2BuildPos
| |
| |arg1 = {{type|number}} unitDefID
| |
| |arg2 = {{type|number}} x
| |
| |arg3 = {{type|number}} y
| |
| |arg4 = {{type|number}} z {{bracket}}
| |
| |arg5 = {{type|number}} facing {{rbracket}}
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} x, {{type|number}} y, {{type|number}} z
| |
| |info =
| |
| }}
| |
| | |
| === PathFinding ===
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetUnitEstimatedPath
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|table}} waypoints, {{type|table}} waypointIndices
| |
| |info = The table arguments are:
| |
| }}
| |
| <pre>table waypoints = {
| |
| [1] = { x,y,z }, ...
| |
| }
| |
| | |
| table waypointIndices= {
| |
| [1] = startIdxOfDetailedPath,
| |
| [2] = startIdxOfDetailedEstimatedPath1,
| |
| [3] = startIdxOfDetailedEstimatedPath2,
| |
| }
| |
| | |
| GetUnitEstimatedPath() returns 2 tables:
| |
| 1 table the waypoints and 1 table with indices (in the waypoint table)
| |
| when a new (more lazy) pathfinding algorithm begins.
| |
| So the waypoint table contains 3 different levels of details.</pre>
| |
| | |
| === LOS ===
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = IsPosInLos
| |
| |arg1 = {{type|number}} x
| |
| |arg2 = {{type|number}} y
| |
| |arg3 = {{type|number}} z
| |
| |arg4 = {{type|number}} allyID
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|bool}} isInLos
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = IsPosInRadar
| |
| |arg1 = {{type|number}} x
| |
| |arg2 = {{type|number}} y
| |
| |arg3 = {{type|number}} z
| |
| |arg4 = {{type|number}} allyID
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|bool}} isInRadar
| |
| |info =
| |
| }}
| |
| | |
| | |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = IsPosInAirLos
| |
| |arg1 = {{type|number}} x
| |
| |arg2 = {{type|number}} y
| |
| |arg3 = {{type|number}} z
| |
| |arg4 = {{type|number}} allyID
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|bool}} isInAirLos
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetPositionLosState
| |
| |arg1 = {{type|number}} x
| |
| |arg2 = {{type|number}} y
| |
| |arg3 = {{type|number}} z {{bracket}}
| |
| |arg4 = {{type|number}} allyID {{rbracket}}
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|bool}} LosOrRadar, {{type|bool}} inLos, {{type|bool}} inRadar, {{type|bool}} jammed
| |
| |info = Jammed new in 95.0, indicates if a position is actively being radar- or sonar-jammed by ANY allyteam.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetClosestValidPosition
| |
| |arg1 = {{type|number}} unitDefID
| |
| |arg2 = {{type|number}} x
| |
| |arg3 = {{type|number}} y
| |
| |arg4 = {{type|number}} z
| |
| |arg5 = {{type|number}} r
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}}
| |
| |info = CURRENTLY UNFINISHED! Always returns nil!
| |
| }}
| |
| | |
| == Projectiles ==
| |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetProjectilesInRectangle
| |
| |arg1 = {{type|number}} xmin
| |
| |arg2 = {{type|number}} zmin
| |
| |arg3 = {{type|number}} xmax
| |
| |arg4 = {{type|number}} zmax {{bracket}}
| |
| |arg5 = {{type|bool}} excludeWeaponProjectiles {{bracket}}
| |
| |arg6 = {{type|bool}} excludePieceProjectiles {{rbracket}}{{rbracket}}
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|table}} projectileTable = { {{bracket|1}} = {{type|number}} projectileID, etc... }
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetProjectileOwnerID
| |
| |arg1 = {{type|number}} projectileID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} unitID
| |
| |info = {{new|99.0}}
| |
| }}
| |
| | |
| | |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetProjectileTeamID
| |
| |arg1 = {{type|number}} projectileID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} teamID
| |
| |info = {{new|99.0}}
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetProjectileDefID
| |
| |arg1 = {{type|number}} projectileID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} weaponDefID
| |
| |info = Using this to get a weaponDefID is HIGHLY preferred to indexing WeaponDefNames via GetProjectileName.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetProjectileName
| |
| |arg1 = {{type|number}} projectileID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|string}} name
| |
| |info = It is recommended to rather use GetProjectileDefID for indexing purposes.
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetProjectileType
| |
| |arg1 = {{type|number}} projectileID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} weapon, {{type|bool}} piece
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetProjectileTarget
| |
| |arg1 = {{type|number}} projectileID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} targetTypeInt, {{type|number}} targetID {{pipe}} {{type|table}} targetPos = {x, y, z}
| |
| |info =
| |
| }}
| |
| <pre>Pre version 95.0 return arguments: -> nil | number targetID, string targetTypeStr
| |
| | |
| targetTypeStr could be one of:
| |
| 'u' - unit
| |
| 'f' - feature
| |
| 'p' - projectile
| |
| | |
| while targetTypeInt was one of:
| |
| string.byte('g') := GROUND
| |
| string.byte('u') := UNIT
| |
| string.byte('f') := FEATURE
| |
| string.byte('p') := PROJECTILE</pre>
| |
| | |
| | |
| {{LuaCallout | |
| |prefix = Spring.
| |
| |name = GetProjectileIntercepted
| |
| |arg1 = {{type|number}} projectileID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|bool}} isBeingIntercepted
| |
| |info = {{new|99.0}}
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetProjectilePosition
| |
| |arg1 = {{type|number}} projectileID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} posX, {{type|number}} posY, {{type|number}} posZ
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetProjectileVelocity
| |
| |arg1 = {{type|number}} projectileID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} velX, {{type|number}} velY, {{type|number}} velZ
| |
| |info = {{new|95.0}}: returns (targetPos - startPos) for Beamlasers and similar weapons
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetProjectileGravity
| |
| |arg1 = {{type|number}} projectileID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} gravity
| |
| |info =
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetPieceProjectileParams
| |
| |arg1 = {{type|number}} projectileID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} explosionFlags, {{type|number}} spinAngle, {{type|number}} spinSpeed, {{type|number}} spinVectorX, {{type|number}} spinVectorY, {{type|number}} spinVectorZ
| |
| |info = {{new|95.0}}<br>ExplosionFlags use binary flags with the following integer equivalents (more info [http://springrts.com/wiki/Animation-CobConstants#explode here] ):<br>SHATTER = 1, EXPLODE = 2, EXPLODE_ON_HIT = 2, FALL = 4, SMOKE = 8, FIRE = 16, NONE = 32, NO_CEG_TRAIL = 64, NO_HEATCLOUD = 128
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetProjectileTimeToLive
| |
| |arg1 = {{type|number}} projectileID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} ttl
| |
| |info = {{new|99.0}}
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetProjectileDirection
| |
| |arg1 = {{type|number}} projectileID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} dirX, {{type|number}} dirY, {{type|number}} dirZ
| |
| |info = {{new|95.0}}
| |
| }}
| |
| | |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetProjectileSpinAngle
| |
| |arg1 = {{type|number}} projectileID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} angle
| |
| |info = <font color="maroon" style="font-weight:600">Deprecated in 95.0 - use GetPieceProjectileParams instead!</font>
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetProjectileSpinSpeed
| |
| |arg1 = {{type|number}} projectileID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} spinSpeed
| |
| |info = <font color="maroon" style="font-weight:600">Deprecated in 95.0 - use GetPieceProjectileParams instead!</font>
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetProjectileSpinVec
| |
| |arg1 = {{type|number}} projectileID
| |
| |arg2 =
| |
| |arg3 =
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} x, {{type|number}} y, {{type|number}} z
| |
| |info = <font color="maroon" style="font-weight:600">Deprecated in 95.0 - use GetPieceProjectileParams instead!</font>
| |
| }}
| |
| | |
| | |
| {{LuaCallout
| |
| |prefix = Spring.
| |
| |name = GetProjectileDamages
| |
| |arg1 = {{type|number}} unitID
| |
| |arg2 = {{type|number}} weaponNum
| |
| |arg3 = {{type|string}} tag
| |
| |arg4 =
| |
| |arg5 =
| |
| |arg6 =
| |
| |arg7 =
| |
| |arg8 =
| |
| |arg9 =
| |
| |return = {{type|nil}} {{pipe}} {{type|number}} damage
| |
| |info = {{new|101.0}}
| |
| }}
| |
| <pre>The string tag can be:
| |
| "paralyzeDamageTime"
| |
| "impulseFactor"
| |
| "impulseBoost"
| |
| "craterMult"
| |
| "craterBoost"
| |
| "dynDamageExp"
| |
| "dynDamageMin"
| |
| "dynDamageRange"
| |
| "dynDamageInverted"
| |
| "craterAreaOfEffect"
| |
| "damageAreaOfEffect"
| |
| "edgeEffectiveness"
| |
| "explosionSpeed"
| |
| - or -
| |
| an armor type index to get the damage against it.</pre>
| |
|
| |
|
| | <div class="note">The ID's must refer to valid programs returned by gl.CreateShader. Passing in a value of 0 will cause the respective shader to revert back to its engine default. Custom map shaders that declare a uniform ivec2 named "texSquare" can sample from the default diffuse texture(s), which are always bound to TU 0.</div> |
|
| |
|
| [[category: Lua]] | | [[category: Lua]] |
Development < Lua Scripting < User:Master-athmos
NOTE: Prior to 102.0, entries below marked
(needs ModUICtrl) require the setting ModUICtrl to be enabled in the users
springrc, if you want to use them in unsynced LuaRules/LuaGaia. It is enabled by default in previous versions and removed in 102.0 so you generally don't need to care.
UI
Spring.SetLastMessagePosition
( number x, number y, number z ) -> nil
Ingame Console
Spring.Echo
( arg1 [, arg2 [, ... ] ] ) -> nil
Useful for debugging.
Prints values in the spring chat console.
Hint: the default print() writes to STDOUT.
Spring.Log
( string section, int logLevel | string logLevel,
arg2 [, arg3 [, ... ] ] ) -> nil
Possible values for logLevel are:
"debug" | LOG.DEBUG
"info" | LOG.INFO
"notice" | LOG.NOTICE (engine default) New in version 97
"warning" | LOG.WARNING
"error" | LOG.ERROR
"fatal" | LOG.FATAL
Spring.SendCommands (needs ModUICtrl)
( string command1 [, string command2 [ ... ] ] ) -> nil
( {string command1, string command2, ...} ) -> nil
GUI
Spring.SetActiveCommand (needs ModUICtrl)
( string action [, string actionExtra ] ) -> nil | boolean
( number cmdIndex [, number button = 1
[, boolean leftClick, boolean rightClick,
boolean alt, boolean ctrl, boolean meta, boolean shift]] ) -> nil | boolean
Spring.LoadCmdColorsConfig (needs ModUICtrl)
( string config ) -> nil
Spring.LoadCtrlPanelConfig (needs ModUICtrl)
( string config ) -> nil
Spring.ForceLayoutUpdate (needs ModUICtrl)
( ) -> nil
Spring.SetDrawSelectionInfo disables the "Selected Units x" box in the GUI (needs ModUICtrl)
( boolean enable ) -> nil
Mouse
Spring.SetMouseCursor (needs ModUICtrl)
( string cursorName [, number scale ] ) -> nil
Spring.WarpMouse (needs ModUICtrl)
( number x, number y ) -> nil
LOS Colors
Spring.SetLosViewColors (needs ModUICtrl)
New arguments since 100.0 (radar2 is the inside of radar edge):
( always = {r,g,b}, LOS = {r,g,b}, radar = {r,g,b}, jam = {r,g,b}, radar2 = {r,g,b}) -> nil
Arguments for 99.0 and before:
( table reds = { number always, number LOS, number radar, number jam },
table greens = { number always, number LOS, number radar, number jam },
table blues = { number always, number LOS, number radar, number jam } ) -> nil
SendMessage
Spring.SendMessage
( string "message" ) -> nil
Spring.SendMessageToPlayer
( number playerID, string "message" ) -> nil
Spring.SendMessageToTeam
( number teamID, string "message" ) -> nil
Spring.SendMessageToAllyTeam
( number allyID, string "message" ) -> nil
Spring.SendMessageToSpectators
( string "message" ) -> nil
Funfact:
<PLAYER#> (with # being a playerid) inside the string will be replaced with the players name.
ie
Spring.SendMessage ("<PLAYER1> did something")
might display as "ProRusher did something"
Markers
Spring.MarkerAddPoint (needs ModUICtrl)
( number x, number y, number z [, string text = "" [, bool localOnly] ] ) -> nil
Spring.MarkerAddLine (needs ModUICtrl)
( number x1, number y1, number z1, number x2, number y2, number z2 ) -> nil
Spring.MarkerErasePosition (needs ModUICtrl)
( number x, number y, number z ) -> nil
Sounds
Spring.LoadSoundDef
( string "soundfile" ) -> nil | boolean success
Loads a SoundDefs file, the format is the same as in `gamedata/sounds.lua`.
Spring.PlaySoundFile Plays WAV or OGG sounds.
( string "soundfile" [, number volume = 1.0
[, number posx, number posy, number posz
[, number speedx, number speedy, number speedz ] ] ], [string/number channel ] ) -> nil | boolean
`channel` is new in Spring0.83, and can be one of those:
"general" || 0 || nil (default)
"battle" || "sfx" | 1
"unitreply" || "voice" || 2
"userinterface" || "ui" || 3
Spring.PlaySoundStream
( string "oggfile" [, number volume = 1.0
[, bool enqueue ]] ) -> nil | boolean true
Allow you to play an Ogg Vorbis (.OGG) compressed sound file.
In 83.0 and up multiple sound streams may be played at once
Spring.StopSoundStream
( ) -> nil
Terminates any SoundStream currently running.
Spring.PauseSoundStream
( ) -> nil
Spring.SetSoundStreamVolume
( number volume ) -> nil
SendLuaMessage
Very important! (allows synced inter-lua-enviroment communications)
Spring.SendLuaUIMsg (needs ModUICtrl)
( string message, string mode ) -> nil
possible modes are:
"s"/"specs" & "a"/"allies"
Spring.SendLuaGaiaMsg (needs ModUICtrl)
( string message ) -> nil
Spring.SendLuaRulesMsg (needs ModUICtrl)
( string message ) -> nil
AI
Spring.SendSkirmishAIMessage New in version 83.0
( number aiTeam, string message )
-> nil | boolean ai_processed, { [1] = string response1, etc... }
Note there is nothing in this table due to "limitations" of the AI interface.
Units
Spring.SetUnitLeaveTracks New in version 83.0
( number unitID, boolean leavetracks ) -> nil
Spring.SetUnitSelectionVolumeData New in version 104.0
( number featureID, number scaleX, number scaleY, number scaleZ,
number offsetX, number offsetY, number offsetX,
number vType, number tType, number Axis
) -> nil
Unit Selection
Spring.SelectUnitMap
( { [unitID] = anything, ...} [,boolean append] ) -> nil
Spring.SelectUnitArray
( { [1] = unitID1 , [2] = unitID2 , ...} [,boolean append] ) -> nil
Spring.SetDrawSelectionInfo
( boolean drawSelectionInfo ) -> nil
Unit Group
Spring.SetUnitGroup (needs ModUICtrl)
( number unitID, number groupID ) -> nil
Give Order
Spring.GiveOrder gives order to all selected units (needs ModUICtrl)
( number cmdID,
params = {number, etc...},
options = {"alt", "ctrl", "shift", "right"} ) -> nil | boolean true
Spring.GiveOrderToUnit (needs ModUICtrl)
( number unitID,
number cmdID,
params = {number, etc...},
options = {"alt", "ctrl", "shift", "right"} ) -> nil | boolean true
Spring.GiveOrderToUnitMap (needs ModUICtrl)
( unitMap = { [unitID] = dontCare, etc... },
number cmdID,
params = {number, etc...},
options = {"alt", "ctrl", "shift", "right"} ) -> nil | boolean true
Spring.GiveOrderToUnitArray (needs ModUICtrl)
( unitArray = { [1] = unitID, etc... },
number cmdID,
params = {number, etc...},
options = {"alt", "ctrl", "shift", "right"} ) -> nil | boolean true
Spring.GiveOrderArrayToUnitMap (needs ModUICtrl)
( unitMap = { [number unitID] = dontCare, etc... },
orderArray = {
{ number cmdID,
params = {number, etc...},
options = {"alt", "ctrl", "shift", "right"}
}, ..
}
) -> nil | boolean true
Spring.GiveOrderArrayToUnitArray (needs ModUICtrl)
( unitArray = { [1] = number unitID, etc... },
orderArray = {
{ number cmdID,
params = {number, etc...},
options = {"alt", "ctrl", "shift", "right"}
}, ..
},
[boolean pairwise]
) -> nil | boolean true
pairwise param (New in version 89.0) is used to send multiple units a single individual command
Spring.SetBuildFacing
( int Facing ) -> nil
Spring.SetBuildSpacing
( int Spacing ) -> nil
Unit NoDraw,NoSelect,NoMinimap
Spring.SetUnitNoDraw LuaGadgets only!
( number unitID, boolean noDraw ) -> nil
Spring.SetUnitNoSelect LuaGadgets only!
( number unitID, boolean noSelect ) -> nil
Spring.SetUnitNoMinimap LuaGadgets only!
( number unitID, boolean noMinimap ) -> nil
Features
Spring.SetFeatureFade New in version 101.0
( int featureID, bool allow ) -> nil
Control whether a feature will fade or not when zoomed out.
Spring.SetFeatureNoDraw LuaGadgets only!
( number featureID, boolean noDraw ) -> nil
Spring.SetFeatureSelectionVolumeData New in version 104.0
( number featureID, number scaleX, number scaleY, number scaleZ,
number offsetX, number offsetY, number offsetX,
number vType, number tType, number Axis
) -> nil
Developers
Spring.SetDrawSky
( boolean drawSky ) -> nil
Spring.SetDrawWater
( boolean drawWater ) -> nil
Spring.SetDrawGround
( boolean drawGround ) -> nil
Spring.SetWaterParams As of 104.0 no longer needs cheating enabled
( table params ) -> nil
Allows to change water params (mostly BumpWater ones) at runtime. You may want to set BumpWaterUseUniforms in your springrc to 1, then you don't even need to restart BumpWater via `/water 4`.
`params` table may contain:
params = {
absorb = {number r, number g, number b},
baseColor = {number r, number g, number b},
minColor = {number r, number g, number b},
surfaceColor = {number r, number g, number b},
diffuseColor = {number r, number g, number b},
specularColor = {number r, number g, number b},
planeColor = {number r, number g, number b},
texture = string file,
foamTexture = string file,
normalTexture = string file,
damage = number value,
repeatX = number value,
repeatY = number value,
surfaceAlpha = number value,
ambientFactor = number value,
diffuseFactor = number value,
specularFactor = number value,
specularPower = number value,
fresnelMin = number value,
fresnelMax = number value,
fresnelPower = number value,
reflectionDistortion = number value,
blurBase = number value,
blurExponent = number value,
perlinStartFreq = number value,
perlinLacunarity = number value,
perlinAmplitude = number value,
numTiles = number value,
shoreWaves = boolean value,
forceRendering = boolean value,
hasWaterPlane = boolean value,
}
Spring.SetMapRenderingParams New in version 104.0
( table params ) -> nil
Allows to change map rendering params at runtime.
`params` table may contain:
params = {
splatTexMults = {number r, number g, number b, number a},
splatTexScales = {number r, number g, number b, number a},
voidWater = boolean value,
voidGround = boolean value,
splatDetailNormalDiffuseAlpha = boolean value,
}
Spring.SetLogSectionFilterLevel New in version 95.0
( string sectionName, string|number logLevel )
see infolog.txt for possible log sections (?)
Spring.SetDrawGroundDeferred New in version 95.0
( boolean drawGroundDeferred [, boolean drawGroundForward] ) -> nil
New in version 101.0 drawGroundForward allows disabling of the forward pass
Spring.SetDrawModelsDeferred New in version 95.0
( boolean drawUnitsDeferred,
boolean drawFeaturesDeferred
[, boolean drawUnitsForward
[, boolean drawFeaturesForward ]]
) -> nil
New in version 101.0 drawFeaturesForward, drawUnitsForward allows disabling of the respective forward passes
Spring.SetVideoCapturingMode New in version 104.0
( boolean allowCaptureMode ) -> nil
This doesn't actually record the game in any way, it just regulates the framerate and interpolations.
Spring.SetVideoCapturingTimeOffset New in version 104.0
( number timeOffset ) -> nil
GUI
Spring.DrawUnitCommands
( number unitID ) -> nil
( { [1] = unitID, ... } [, false ] ) -> nil
( { [unitID] = anything, ... }, true ) -> nil
Spring.SetTeamColor
( number teamID, number r, number g, number b ) -> nil
Spring.AssignMouseCursor changes/creates the cursor of a single CursorCmd
( string "cmdName", string "iconFileName"
[, boolean overwrite = true [, boolean hotSpotTopLeft = false] ] ) -> nil | boolean
Note, that iconFileName is not the full filename instead it is like this:
wanted filename: Anims/cursorattack_0.bmp
=> iconFileName: cursorattack
Spring.ReplaceMouseCursor mass replace all occurrence of the cursor in all CursorCmds
( string "oldFileName", string "newFileName" [, boolean hotSpotTopLeft = false] ) -> nil | boolean
Spring.SetCustomCommandDrawData register your custom cmd so it gets visible in the unit's cmd queue
( number cmdID,
number cmdID_cloneIcon | string iconname,
{ number r, number g, number b, number a } [, boolean showArea ] ) -> nil
( number cmdID, nil) -> nil
Sharing
Spring.SetShareLevel note: shareLevel is 0<= x <= 1 (needs ModUICtrl)
( string "metal" | "energy", number shareLevel ) -> nil
Spring.ShareResources (needs ModUICtrl)
( number teamID, string "units" ) -> nil
( number teamID, string "metal" | "energy", number amount ) -> nil
UnitDef RadarIcons & BuildPics
Spring.AddUnitIcon
( string iconName, string texFile [, number size [, number dist [, boolean radAdjust ]]] )
-> nil | boolean
Spring.FreeUnitIcon
( string iconName ) -> nil | boolean
Spring.SetUnitDefIcon (RadarIcon) (needs ModUICtrl)
( number unitDefID, string iconName ) -> nil
Spring.SetUnitDefImage (BuildPic) (needs ModUICtrl)
( number unitDefID, luaTexture | string texFile ) -> nil
Camera
Spring.SetCameraState
( table camState, number camTime) -> nil | boolean
camState has the same format as the output of Spring.GetCameraState(). See Lua_camState for details about camState.
The camState's mode/name must fit the rest of the state. Getting a state, changing its mode/name and then passing it to SetCameraState will have undesired results. Also see #5028
Spring.SetCameraTarget
( number x, number y, number z [,number transTime] ) -> nil
For Spring Engine XZ represents horizontal, from north west corner of map and Y vertical, from water level and rising.
Spring.SetCameraOffset (needs ModUICtrl)
( [number px = 0 [, number py = 0 [, number pz = 0
[, number tx = 0 [, number ty = 0 [, number tz = 0]]]]]] ) -> nil
(Virtual-)FileSystem
Spring.ExtractModArchiveFile
( string modfile ) -> boolean
Spring.CreateDir (needs ModUICtrl)
( string path ) -> nil | boolean
The full VFS API is available at link.
Engine Config
The following functions read the engine configs saved in Springsettings.cfg, a version-ed instance of these or a custom file supplied on the command line.
If *Overlay is true, the value will only be set in memory, and not be restored for the next game
Spring.SetConfigInt
( string name, number value [, boolean useOverlay = false] ) -> nil
Spring.SetConfigFloat New in version 104.0
( string name, number value [, boolean useOverlay = false] ) -> nil
Spring.SetConfigString
( string name, string value [, boolean useOverlay = false] ) -> nil
World Primitives
outdated! use opengl api instead!
Spring.AddWorldIcon
( number cmdID, number x, number y, number z ) -> nil
Spring.AddWorldText
( string "text", number x, number y, number z ) -> nil
Spring.AddWorldUnit
( number unitDefID,
number x, number y, number z,
number team, number facing) -> nil
Sun
The dynamic Sun must be invoked via /dynamicsun (Dynamic sun was removed in 104.0, use SetSunDirection, SetSunLighting & SetAtmosphere instead).
Spring.SetSunManualControl Removed from version 104.0
( boolean setManualControl ) - > nil
Spring.SetSunParameters Removed from version 104.0
( number dirX, number dirY, number dirZ, number dist, number startTime, number orbitTime ) -> nil
Spring.SetSunDirection
( number dirX, number dirY, number dirZ ) -> nil
Spring.SetSunLighting New in version 101.0
( table params ) -> nil
It can be used to modify the following sun lighting parameters:
{ground,unit}{Ambient,Diffuse,Specular}Color and specularExponent
All Colourvalues have to in the Range from 0.0 to 1.0 for all colors and the alpha
Example usage: Spring.SetSunLighting({groundAmbientColor = {1, 0.1, 1}, groundDiffuseColor = {1, 0.1, 1} })
Spring.SetAtmosphere New in version 101.0
( table params ) -> nil
It can be used to modify the following atmosphere parameters:
fog{Start,End}, {sun,sky,cloud}Color
Example usage: Spring.SetAtmosphere({ fogStart = 0, fogEnd = 0.5, fogColor = { 0.7, 0.2, 0.2, 1 }})
Misc
Spring.Reload New in version 99.0
( string startscript )
start-script is the CONTENT of the script.txt spring should use to start.
Spring.Restart New in version 0.79
( string commandline_args, string startscript )
-> if this call returns, something went wrong
commandline_args are commandline arguments passed to spring executable
Spring.Start New in version 102.0
( string commandline_args, string startscript )
-> if this call returns, something went wrong
Launches a new Spring instance without terminating the existing one
start-script is the CONTENT of the script.txt spring should use to start (if empty, no start-script is added, you can still point spring to your custom script.txt when you add the file-path to commandline_args
Spring.SetWMIcon New in version 83.0
( string iconFileName ) -> nil
Sets the icon for the process which is seen in the OS task-bar and other places (default: spring-logo).
Note: has to be 24bit or 32bit
Note: on windows, it has to be 32x32 pixels in size (recommended for cross-platform)
Note: *.bmp images have to be in BGR format (default for m$ ones).
Note: *.ico images are not supported.
Spring.SetWMCaption New in version 83.0
( string title [, string titleShort = title ] ) -> nil
Sets the window title for the process (default: "Spring <version>").
The shortTitle is displayed in the OS task-bar (default: "Spring <version>").
NOTE: shortTitle is only ever possibly used under X11 (Linux & OS X), but not with QT (KDE) and never under Windows. See this site for more details.
Spring.ClearWatchDogTimer New in version 83.0
( [ string threadName = main ] ) -> nil
Spring.SetClipboard New in version 98.0
( string text) -> nil
Rendering
Preload
Allow the engine to load the unit's model (and texture) in a background thread. Wreckages and buildOptions of a unit are automatically preloaded.
Spring.PreloadUnitDefModel New in version 101.0
( number unitDefID ) -> nil
Spring.PreloadFetureDefModel New in version 101.0
( number featureDefID ) -> nil
Lighting
NOTE: these (0.83+) lighting callouts only work when called from unsynced gadgets!
Spring.AddMapLight (requires MaxDynamicMapLights > 0)
(table lightParams) -> number lightHandle
Spring.AddModelLight (requires MaxDynamicModelLights > 0)
(table lightParams) -> number lightHandle
Spring.UpdateMapLight
(number lightHandle, table lightParams) -> boolean success
Spring.UpdateModelLight
(number lightHandle, table lightParams) -> boolean success
Spring.SetMapLightTrackingState
(number lightHandle, number unitOrProjectileID,
boolean enableTracking, boolean unitOrProjectile) -> boolean success
Spring.SetModelLightTrackingState
(number lightHandle, number unitOrProjectileID,
boolean enableTracking, boolean unitOrProjectile) -> boolean success
lightParams is a table that should contain at least one of the following recognized key/value pairs:
lightParams = {
position = {px, py, pz},
direction = {dx, dy, dz},
ambientColor = {red, green, blue},
diffuseColor = {red, green, blue},
specularColor = {red, green, blue},
intensityWeight = {ambientWeight, diffuseWeight, specularWeight},
-- per-frame decay of ambientColor (spread over TTL frames)
ambientDecayRate = {ambientRedDecay, ambientGreenDecay, ambientBlueDecay},
-- per-frame decay of diffuseColor (spread over TTL frames)
diffuseDecayRate = {diffuseRedDecay, diffuseGreenDecay, diffuseBlueDecay},
-- per-frame decay of specularColor (spread over TTL frames)
specularDecayRate = {specularRedDecay, specularGreenDecay, specularBlueDecay},
-- *DecayType = 0.0 -> interpret *DecayRate values as linear, else as exponential
decayFunctionType = {ambientDecayType, diffuseDecayType, specularDecayType},
radius = number elmos,
fov = number degrees,
ttl = number frames,
priority = number,
ignoreLOS = boolean,
}
Map
Spring.SetSkyBoxTexture New in version 101.0
( string texName ) -> nil
Spring.SetMapShadingTexture New in version 101.0
( string texType, string texName ) -> boolean success
Example usage: Spring.SetMapShadingTexture("$ssmf_specular", "name_of_my_shiny_texture")
Spring.SetMapSquareTexture
( number texSqrX, number texSqrY, string luaTexName ) -> boolean success
Spring.SetMapShader Template:101.0
( number standardShaderID, number deferredShaderID ) -> nil
The ID's must refer to valid programs returned by gl.CreateShader. Passing in a value of 0 will cause the respective shader to revert back to its engine default. Custom map shaders that declare a uniform ivec2 named "texSquare" can sample from the default diffuse texture(s), which are always bound to TU 0.