User:Flozi: Difference between revisions
From Spring
Jump to navigationJump to search
m hodor |
→Script Scaffolds: update |
||
| Line 73: | Line 73: | ||
end | end | ||
</pre></code> | </pre></code> | ||
=== Wind Generator === | |||
<code><pre> | |||
-- FIXME: Assumes model has pieces named 'tower' and 'blades' | |||
local tower, blades = piece("tower", "blades") | |||
function script.WindChanged (number heading, number strength) | |||
-- Turn the tower to face the wind at 30deg/s | |||
Turn(tower, y_axis, heading, math.rad(30)) | |||
-- Spin the turbine blades relative to wind strength | |||
-- FIXME: Here I set rotational speed to half of strength | |||
Spin(blades, z_axis, strength * 0.5) | |||
end | |||
</pre></code> | |||
<hr/> | <hr/> | ||
= Template:LuaCallout & Template:LuaCallin Examples = | |||
| Line 119: | Line 134: | ||
}} | }} | ||
<hr/> | <hr/> | ||
= TODO: = | |||
Continue to improve [[Gamedev:Main]] | Continue to improve [[Gamedev:Main]] | ||
| Line 127: | Line 143: | ||
Revamp [[LuaCallinReturn]] | Revamp [[LuaCallinReturn]] | ||
Page on spring wiki etiquette ([[SpringWiki]]) / style guide & template usage ([[Mapdev:WikiGuide]]) /namespace conventions ([[Spring:PageNamingConventions]]) | Page on spring wiki etiquette ([[SpringWiki]]) / style guide & template usage ([[Mapdev:WikiGuide]]) /namespace conventions ([[Spring:PageNamingConventions]]) - pages are good already; put these in revamped community portal? | ||
Move all pages in [http://springrts.com/mediawiki/index.php?title=Special%3APrefixIndex&prefix=Animation-&namespace=0 Animation-] to [http://springrts.com/mediawiki/index.php?title=Special%3APrefixIndex&prefix=Animation%3A&namespace=0 Animation:] | Move all pages in [http://springrts.com/mediawiki/index.php?title=Special%3APrefixIndex&prefix=Animation-&namespace=0 Animation-] to [http://springrts.com/mediawiki/index.php?title=Special%3APrefixIndex&prefix=Animation%3A&namespace=0 Animation:] | ||
Clickable / right-click copy pasteable anchors in <nowiki>{{tag}}</nowiki> et al | Clickable / right-click copy pasteable anchors in <nowiki>{{tag}}</nowiki> et al | ||
Revision as of 17:31, 30 October 2013
LUS Script Examples
How to use
FIXME- Indicates a section of code you will need to tweak to suit your own unit / modelTODO- Indicates an optional section of code is missing that you may wish to pad out e.g. with an animation
Script Scaffolds
Builder
local nanoPieces = {}
-- FIXME: this example has 2 nano pieces to alternate between
for i = 1, 2 do
-- FIXME: the pieces are named nanoPiece1 and nanoPiece2 in the model
nanoPieces[i] = piece("nanoPiece" .. i)
end
Spring.SetUnitNanoPieces(unitID, nanoPieces)
function script.StartBuilding(heading, pitch)
-- TODO: This is where you would add your unpack / point towards animation
SetUnitValue(COB.INBUILDSTANCE, 1)
end
function script.StopBuilding()
-- TODO: This is where you would add your pack-up animation
SetUnitValue(COB.INBUILDSTANCE, 0)
end
Factory
local nanoPieces = {}
-- FIXME: this example has 2 nano pieces to alternate between
for i = 1, 2 do
-- FIXME: the pieces are named nanoPiece1 and nanoPiece2 in the model
nanoPieces[i] = piece("nanoPiece" .. i)
end
Spring.SetUnitNanoPieces(unitID, nanoPieces)
function script.QueryBuildInfo()
-- FIXME: the pad piece is named buildPad in the model
return piece("buildPad")
end
local function OpenCloseAnim(open)
Signal(1) -- Kill any other copies of this thread
SetSignalMask(1) -- Allow this thread to be killed by fresh copies
if open then
-- TODO: This is where you would add your opening up anim
else
-- TODO: This is where you would add your closing up anim
end
SetUnitValue(COB.INBUILDSTANCE, open and 1 or 0)
SetUnitValue(COB.BUGGER_OFF, open and 1 or 0)
end
-- Called when factory yard opens
function script.Activate()
-- OpenCloseAnim must be threaded to call Sleep() or WaitFor functions
StartThread(OpenCloseAnim, true)
end
-- Called when factory yard closes
function script.Deactivate()
-- OpenCloseAnim must be threaded to call Sleep() or WaitFor functions
StartThread(OpenCloseAnim, false)
end
function script.StartBuilding()
-- TODO: You can run any animation that continues throughout the build process here e.g. spin pad
end
function script.StopBuilding()
-- TODO: You can run any animation that signifies the end of the build process here
end
Wind Generator
-- FIXME: Assumes model has pieces named 'tower' and 'blades'
local tower, blades = piece("tower", "blades")
function script.WindChanged (number heading, number strength)
-- Turn the tower to face the wind at 30deg/s
Turn(tower, y_axis, heading, math.rad(30))
-- Spin the turbine blades relative to wind strength
-- FIXME: Here I set rotational speed to half of strength
Spin(blades, z_axis, strength * 0.5)
end
Template:LuaCallout & Template:LuaCallin Examples
{{{prefix}}}UseTeamResource
( {{{arg1}}},
{{{arg2}}},
{{{arg3}}},
{{{arg4}}},
{{{arg5}}},
{{{arg6}}},
{{{arg7}}},
{{{arg8}}},
{{{arg9}}} )
return: nil | bool hadEnough
addon.AllowUnitCreation()
return: bool allow
- {{{info}}}
addon.Initialize()
return: none
- {{{info}}}
addon.Shutdown()
return: none
- {{{info}}}
addon.PlayerChanged()
return: none
- {{{info}}}
TODO:
Continue to improve Gamedev:Main
Assimp build upon, metadata doc, split tutorial again >_>
Revamp LuaCallinReturn
Page on spring wiki etiquette (SpringWiki) / style guide & template usage (Mapdev:WikiGuide) /namespace conventions (Spring:PageNamingConventions) - pages are good already; put these in revamped community portal?
Move all pages in Animation- to Animation:
Clickable / right-click copy pasteable anchors in {{tag}} et al