Lua API:Simulation

From The Powder Toy
Revision as of 22:30, 29 September 2013 by gamax92 (talk | contribs) (Taking a break, please don't kill me.)
Jump to: navigation, search

The Simulation API allows for modifying the state and properties of particles, air and gravity

Methods

simulation.adjustCoords

number number sim.adjustCoords(number x, number y)

Does something

simulation.airMode

number sim.airMode()

Returns the current Air Simulation Mode.

nil sim.airMode(number mode)

Sets the Air Simulation Mode to mode.

simulation.ambientAirTemp

number sim.ambientAirTemp()

Returns something

nil sim.ambientAirTemp(number temp)

Sets something

simulation.ambientHeat

number sim.ambientHeat(number x, number y)

Returns a value on the ambient heat map.

nil sim.ambientHeat(number x, number y, number temp, [number width, number height])

Sets values on the ambient heat map.

simulation.clearSim

nil sim.clearSim()

Clears everything on the simulation.

simulation.createBox

nil sim.createBox(number x1, number y1, number x2, number y2, [number type], [number flag])

Creates a filled box of either the user's currently selected type or the type specified at the specified coordinates. flag refers to particle replacement flags.

simulation.createLine

nil sim.createLine(number x1, number y1, number x2, number y2, [number rx], [number ry], [number type], [number brush], [number, flag])

Creates a line of of either the user's currently selected type or the type specified at the specified coordinates. rx and ry describe the radius of the brush used. Default radius is 5, 5 flag refers to particle replacement flags.

simulation.createParts

number sim.createParts(number x, number y, [number rx], [number ry], [number type], [number brush], [number flag])

Does something.

simulation.createWallBox

nil sim.createWallBox(number x1, number y1, number x2, number y2, [number walltype])

Creates a filled box of either the specified walltype or the type of the basic wall at the specified particle coordinates. Note: the coordinates might change from particle coordinates to map coordinates in the future.

simulation.createWallLine

nil sim.createWallLine(number x1, number y1, number x2, number y2, [number rx], [number ry], [number walltype])

Creates a line of either the specified walltype or the type of the basic wall at the specified particle coordinates. Note: the coordinates might change from particle coordinates to map coordinates in the future.

simulation.createWalls

number sim.createWalls(number x, number y, [number rx], [number ry], [number walltype])

Does something

simulation.decoBox

nil sim.decoBox(number x1, number y1, number x2, number y2, [number rx], [number ry], [number r, number g, number b, [number a]], [number tool])

Changes the decoration color of all particles in the specified coordinates. Although rx and ry are listed here, they are not actually used (bug?). tool refers to decoration tools.

simulation.decoBrush

type sim.decoBrush()

Does something

simulation.decoColor

type sim.decoColor()

Does something

simulation.decoColour

type sim.decoColour()

Does something

simulation.decoLine

type sim.decoLine()

Does something

simulation.edgeMode

type sim.edgeMode()

Does something

simulation.elementCount

type sim.elementCount()

Does something

simulation.floodParts

type sim.floodParts()

Does something

simulation.floodWalls

type sim.floodWalls()

Does something

simulation.getSaveID

type sim.getSaveID()

Does something

simulation.gravMap

type sim.gravMap()

Does something

simulation.gravityGrid

type sim.gravityGrid()

Does something

simulation.gravityMode

type sim.gravityMode()

Does something

simulation.loadSave

type sim.loadSave()

Does something

simulation.loadStamp

type sim.loadStamp()

Does something

simulation.neighbors

type sim.neighbors()

Does something

simulation.neighbours

type sim.neighbours()

Does something

simulation.partChangeType

nil sim.partChangeType(number index, number type)

Reliably change the type of a particle, this method avoids the side effects created by changing the type directly with the "partProperty" method.

simulation.partCreate

type sim.partCreate()

Does something

simulation.partID

number sim.partID(number x, number y)

Get the index of a particle at the specified position

simulation.partKill

nil sim.partKill(number index)
nil sim.partKill(number x, number y)

Reliably delete a particle at a specified index or location, this method avoids the side effects created by changing the type to 0/DEFAULT_PT_NONE with the "partProperty" method

simulation.partNeighbors

number ... sim.partNeighbours(number x, number y, number radius, [number type])

Returns a list of particles indexes that neighbour the given coordinates that matches the given type (if it is specified) The resulting list does not contain the "origin particle"

simulation.partNeighbours

type sim.partNeighbours()

Does something

simulation.partPosition

number x, number y sim.partPosition(number index)

Get the location of the particle at the specified index

simulation.partProperty

nil sim.partProperty(number index, object field, object value)

Set the property value on a particle specified by index

object sim.partProperty(number index, object field)

Get the property value on a particle specified by the index

The "field" may be a field name or field ID, see [bottom of page] for more information

simulation.parts

type sim.parts()

Does something

simulation.pmap

type sim.pmap()

Does something

simulation.pressure

type sim.pressure()

Does something

simulation.prettyPowders

type sim.prettyPowders()

Does something

simulation.resetPressure

type sim.resetPressure()

Does something

simulation.resetTemp

type sim.resetTemp()

Does something

simulation.saveStamp

type sim.saveStamp()

Does something

simulation.toolBox

type sim.toolBox()

Does something

simulation.toolBrush

type sim.toolBrush()

Does something

simulation.toolLine

type sim.toolLine()

Does something

simulation.velocityX

type sim.velocityX()

Does something

simulation.velocityY

type sim.velocityY()

Does something

simulation.waterEqualisation

type sim.waterEqualisation()

Does something

simulation.waterEqualization

type sim.waterEqualization()

Does something

Constants

Any of these constants can be accessed with simulation.<constant name here>

DECO

DECO_DIVIDE
DECO_SMUDGE
DECO_ADD
DECO_SUBTRACT
DECO_CLEAR
DECO_DRAW
DECO_MULTIPLY

FIELD

FIELD_DCOLOUR
FIELD_Y
FIELD_TEMP
FIELD_TYPE
FIELD_VY
FIELD_X
FIELD_TMP2
FIELD_TMP
FIELD_FLAGS
FIELD_VX
FIELD_CTYPE
FIELD_LIFE

MAX

MAX_TEMP

MIN

MIN_TEMP

NUM

NUM_PARTS

PT

PT_NUM

R

R_TEMP

TOOL

TOOL_VAC
TOOL_AIR
TOOL_NGRV
TOOL_PGRV
TOOL_HEAT
TOOL_WIND
TOOL_COOL

Uncategorized

YRES
XRES