Development < Lua Scripting < LuaCallinReturn
Contents |
Lua Call-Ins, with parameters
Here are the known reserved parameter values for all Lua Call-Ins. If you add new Call-Ins to Spring, please document them here.
Commands, general-purpose:
Shutdown() --> none.
LayoutButtons() --> unknown, please document.
ConfigureLayout() --> "command".
CommandNotify() --> "id, params, options", where id = the CommandID
KeyPress() --> "key, mods, isRepeat", where key = keymap, mods = SHIFT, etc.
KeyRelease() --> "key"
MouseMove() --> "x, y, dx, dy, button"
MousePress() --> "x, y, button"
MouseRelease() --> "x, y, button"
IsAbove() --> "x, y" where x,y = screen coordinates.
GetTooltip() --> "x, y" where x,y = screen coordinates. Returns WorldTooltip.
AddConsoleLine() --> "msg, priority"
AllowCommand() --> "unitID, unitDefID, unitTeam, cmdID, cmdParams, cmdOptions, cmdTag, synced"
CommandFallback() --> "unitID, unitDefID, unitTeam, cmdID, cmdParams, cmdOptions, cmdTag"
CommandsChanged() --> unknown (none?)
AllowUnitCreation() --> "unitDefID, builderID, builderTeam, x, y, z"
AllowUnitTransfer() --> "unitID, unitDefID, oldTeam, newTeam, capture"
AllowUnitBuildStep() --> "builderID, builderTeam, unitID, unitDefID, part"
AllowFeatureCreation() --> "featureDefID, teamID, x, y, z"
AllowFeatureBuildStep() --> unknown, please document.
AllowResourceLevel() --> "teamID, res, level"
AllowResourceTransfer() --> "teamID, res, level"
Unit-Specific:
UnitPreDamaged() --> "unitID, unitDefID, unitTeam, damage, paralyzer, weaponID, attackerID, attackerDefID, attackerTeam"
UnitDamaged() --> "unitID, unitDefID, unitTeam, damage, paralyzer, weaponID, attackerID, attackerDefID, attackerTeam"
UnitCreated() --> "unitID, unitDefID, teamID" ... I hope that's self-explanatory
UnitFinished() --> "unitID, unitDefID, teamID"
UnitFromFactory() --> "unitID, unitDefID, unitTeam, factID, factDefID, userOrders"
UnitDestroyed() --> "unitID, unitDefID, teamID, attackerID?"
UnitTaken() --> "unitID, unitDefID, unitTeam, newTeam"
UnitGiven() --> "unitID, unitDefID, unitTeam, oldTeam"
UnitIdle() --> "unitID, unitDefID, teamID"
UnitCommand() --> unknown, please document.
UnitSeismicPing() --> "x, y, z, strength"
UnitEnteredRadar() --> "unitID, unitTeam"
UnitEnteredLos() --> "unitID, teamID"
UnitLeftRadar() --> "unitID, unitTeam"
UnitLeftLos() --> "unitID, unitDefID, teamID"
UnitLoaded() --> "unitID, unitDefID, unitTeam, transportID, transportTeam"
UnitUnloaded() --> "unitID, unitDefID, teamID, transportID"
UnitCloaked() --> "unitID, unitDefID, teamID"
UnitDecloaked)--> "unitID, unitDefID, teamID"
UnitMoveFailed() --> "unitID, unitDefID, unitTeam"
StockpileChanged() --> "unitID, unitDefID, unitTeam, weaponNum, oldCount, newCount"
UnitEnteredWater() --> "unitID, unitDefID, teamID"
UnitEnteredAir() --> "unitID, unitDefID, teamID"
UnitLeftWater() --> "unitID, unitDefID, teamID"
UnitLeftAir() --> "unitID, unitDefID, teamID"
Feature-Specific:
FeatureCreated() --> "featureID, allyTeam"
FeatureDestroyed() --> "featureID, allyTeam"
TerraformComplete() --> "unitID, unitDefID, unitTeam, buildUnitID, buildUnitDefID, buildUnitTeam"
UnitCmdDone() --> "unitID, unitDefID, unitTeam, cmdID, cmdTag"
Drawing:
- DrawGenesis() --> none. Don't render here.
- Spring draws the sky, the map, some water types, and unit selection.
- DrawWorldPreUnit() --> none.
- Spring draws units, features, some water types, cloaked units, and the sun.
- DrawWorld() --> none.
- Spring draws command queues, 'map stuff', and map marks.
Each unit might also have a DrawUnit call, enabled here.
DrawUnit(unitID,DrawMode)
With enum DrawMode {
notDrawing = 0,
normalDraw = 1,
shadowDraw = 2,
reflectionDraw = 3,
refractionDraw = 4
};
DrawScreenEffects() --> "vsx, vsy" where vsx, vsy are screen coords.
DrawScreen() --> none.
DrawInMiniMap() --> "sx, sy" where sx,sy are values relative to the minimap's position and scale.
DrawWorldShadow() --> none.
DrawWorldReflection() --> none.
DrawWorldRefraction() --> none.
Game Events:
Explosion() --> "weaponID, px, py, pz, ownerID"
ShockFront() --> "power, dx, dy, dz"
GameFrame() --> "frameNum"
CobCallback() --> unknown, marked FIXME.
GroupChanged() --> "groupID" where groupID is the value of Group whose table value changed.
WorldTooltip() --> "ttType, data1, data2, data3" special, should be documented in detail.
GamePreload() --> none.
GameStart() --> none.
GameOver() --> none.
TeamDied() --> "TeamID" where TeamID = the team that has been eliminated.
Projectiles:
ProjectileCreated() --> "proID, proOwnerID"
ProjectileDestroyed() --> "proID"
