-
Notifications
You must be signed in to change notification settings - Fork 3
Lua API
tiffany352 edited this page Nov 4, 2012
·
6 revisions
Each table in the API consists of:
- A
createmethod, which will create a new version of that object. - Objects are tables that have
__indexset to the table of that type. - The table contains a function called
getType()which returns the name of the type as a string. - The table contains a function called
isA()which will return true if the object is or inherets directly or indirectly from the given string type name. - The table's
__callis set tocreate
Any additions to the table are noted in the documentation for that type.
Table name: script
-
script:fromSource(source)- Loads a script from the provided source string. -
script:fromFile(file)- Loads a script from the provided file name. -
script:run()- Runs a script in its own Lua state.
Table name: vector2
- Metamethods in each instance:
__tostring,__add,__sub,__mul,__div,__index,__newindex. - Values in each instance:
x,y,len,normal. -
vector2:dot(vec)- Computes the dot product of the two supplied vectors.
Table name: vector3
- Same as Vector2, but has additional members:
- Values in each instance:
z. -
vector3:cross(vec)- Computes the cross product of the two supplied vectors.
Table name: vector4
- Same as Vector3, but has additional members:
- Values in each instance:
w.
Table name: quaternion
- Metamethods in each instance:
__index,__newindex,__mul. - Values in each instance:
x,y,z,w. -
quaternion:fromAxisAngle(vec, a)orquaternion:fromAxisAngles(x, y, z, a)- Creates a new quaternion from an axis to rotate around (normal represented byvec) and an angle to rotate by (a). -
quaternion:fromYPR(y, p, r)- Creates a new quaternion using Yaw, Pitch, and Roll values.
Table name: positionable
- Metamethods in each instance:
__index,__newindex. - Values in each instance:
position,rotation,size,velocity,parent.
Table name: world
- Values in each instance:
camera.
Table name: event
-
event.register(id, fun)- Registersfunas a callback for event IDs ofid. The callback is called with an argument of type event. -
event:push()- Pushes an event to be handled. -
event:timer(interval)- Pushes an event that will be handled everyintervalmicroseconds. -
event:getData()- Tries to convert the internal data parameter into something Lua can handle.
-
keyup,keydown,mouseup,mousedown: Returns the SDL keycode for the key/button cast to a double. -
mousemove: Returns the x, y of the mouse movement. -
mousewheel: Returns the y, x of the mouse scroll. -
tick,startup,shutdown: Returns nil.
-
event:getId()- Returns the event id cast to a double. -
event:getIdName()- Returns a string representation of the event ID.
Table name: input
- Does not have instances, therefore
create,isA, andgetTypedo not apply. -
input.keyDown(key)- Returns a boolean of whether or not the given key is being pressed. -
input.mouseDown(button)- Returns a boolean of whether or not the given mouse button is being pressed. -
input.grabMouse(toggle)- Sets the mouse grab of the window depending on the passed boolean.
Table name: drawable
- Does not have a function to create it. It is an abstract 'class'.
- Values in each instance:
type(An integer used internally),positionable.
Table name: terrain
- "inherits" Drawable.
- Values in each instance:
data(a TerrainData).
Table name: terraindata
- Values in each instance:
width,height. -
terraindata:getPoint(x, y, z)- Takes 3 coordinates and performs an action meaningful to the specific type of terrain it represents, returning a number. -
terraindata:getNormal(x, y, z)- Takes 3 coordinates and performs an action meaningful to the specific type of terrain it represents, returning a Vector3. -
terraindata:heightmap(w, h, t)- Takes a table with w*h numbers in it and creates a heightmap of the specified size, filling an existing terraindata.
Table name: shape
- "inherits" Drawable.
- Values in each instance:
type(string).
local s = script();
s:fromFile("test.lua");
s:run();