Difference between revisions of "Lua API:Simulation"
m (Add to Lua) |
(simulation.neighbors) |
||
Line 145: | Line 145: | ||
=== simulation.neighbors === | === simulation.neighbors === | ||
− | type sim.neighbors() | + | type sim.neighbors(number x, number y, [number rx], [number ry]) |
− | + | Used for iterating through particles in an area centred on the given coordinates (x, y). Radius in the x and y directions is set by rx and ry. Default radius is 2, 2. | |
+ | |||
+ | The size of the rectangular area is one plus twice the radius, so a radius of 2, 2 gives a 5x5 pixel area centred on x, y. Particles in the centre position x, y are excluded. Only one particle in each position is included, and energy particles (such as photons, neutrons, electrons) are ignored. | ||
+ | |||
+ | Example: | ||
+ | <syntaxhighlight lang="lua"> | ||
+ | for i,nx,ny in sim.neighbors(100,200,1,1) do | ||
+ | sim.partProperty(i, sim.FIELD_TEMP, 9999) | ||
+ | end | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Or if coordinates of the neighbouring particles are not required: | ||
+ | <syntaxhighlight lang="lua"> | ||
+ | for i in sim.neighbors(100,200,1,1) do | ||
+ | sim.partProperty(i, sim.FIELD_TEMP, 9999) | ||
+ | end | ||
+ | </syntaxhighlight> | ||
=== simulation.neighbours === | === simulation.neighbours === |
Revision as of 22:51, 3 March 2014
The Simulation API allows for modifying the state and properties of particles, air and gravity
Contents
- 1 Methods
- 1.1 simulation.adjustCoords
- 1.2 simulation.airMode
- 1.3 simulation.ambientAirTemp
- 1.4 simulation.ambientHeat
- 1.5 simulation.clearSim
- 1.6 simulation.createBox
- 1.7 simulation.createLine
- 1.8 simulation.createParts
- 1.9 simulation.createWallBox
- 1.10 simulation.createWallLine
- 1.11 simulation.createWalls
- 1.12 simulation.decoBox
- 1.13 simulation.decoBrush
- 1.14 simulation.decoColor
- 1.15 simulation.decoColour
- 1.16 simulation.decoLine
- 1.17 simulation.edgeMode
- 1.18 simulation.elementCount
- 1.19 simulation.floodParts
- 1.20 simulation.floodWalls
- 1.21 simulation.getSaveID
- 1.22 simulation.gravMap
- 1.23 simulation.gravityGrid
- 1.24 simulation.gravityMode
- 1.25 simulation.loadSave
- 1.26 simulation.loadStamp
- 1.27 simulation.neighbors
- 1.28 simulation.neighbours
- 1.29 simulation.partChangeType
- 1.30 simulation.partCreate
- 1.31 simulation.partID
- 1.32 simulation.partKill
- 1.33 simulation.partNeighbors
- 1.34 simulation.partNeighbours
- 1.35 simulation.partPosition
- 1.36 simulation.partProperty
- 1.37 simulation.parts
- 1.38 simulation.pmap
- 1.39 simulation.pressure
- 1.40 simulation.prettyPowders
- 1.41 simulation.resetPressure
- 1.42 simulation.resetTemp
- 1.43 simulation.saveStamp
- 1.44 simulation.toolBox
- 1.45 simulation.toolBrush
- 1.46 simulation.toolLine
- 1.47 simulation.velocityX
- 1.48 simulation.velocityY
- 1.49 simulation.waterEqualisation
- 1.50 simulation.waterEqualization
- 2 Constants
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
nil sim.decoBrush(number x, number y, [number rx], [number ry], [number r, number g, number b, [number a]], [number tool], [number brush])
Does something tool refers to decoration tools.
simulation.decoColor
number sim.decoColor()
Returns the currently selected decoration color.
nil sim.decoColor(number color)
Sets the selected decoration color to color. color is in the format 0xAARRGGBB
nil sim.decoColor(number r, number g, number b, [number a])
Sets the selected decoration color to r,g,b,a
simulation.decoColour
Same as sim.decoColor()
simulation.decoLine
nil sim.decoLine(number x1, number y1, number x2, number y2, [number rx], [number ry], [number r, number g, number b, [number a]], [number tool], [number brush])
Changes the decoration color of all particles in the line specified. rx and ry describe the radius of the brush used. Default radius is 5, 5. tool refers to decoration tools.
simulation.edgeMode
number sim.edgeMode()
Returns the current Edge Mode
nil sim.edgeMode(number mode)
Sets the current Edge Mode to mode
simulation.elementCount
number sim.elementCount(number type)
Returns the count of the specified type in the simulation.
simulation.floodParts
number sim.floodParts(number x, number y, [number type], [number cm?], [number flag])
Flood fills either the user's currently selected type or the type specified at the coordinates given. flag refers to particle replacement flags.
simulation.floodWalls
number sim.floodWalls(number x, number y, [number walltype], [number bm?])
Flood fills 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.getSaveID
number sim.getSaveID()
Returns the SaveID of the currently loaded save or nil if the simulation is not a downloaded save.
simulation.gravMap
type sim.gravMap()
Does something
simulation.gravityGrid
number sim.gravityGrid()
Returns the current setting for drawing the Gravity Grid.
nil sim.gravityGrid(number mode)
Sets the setting for drawing the Gravity Grid to mode.
simulation.gravityMode
number sim.gravityMode()
Returns the current Gravity Simulation Mode.
nil sim.gravityMode(number mode)
Sets the Gravity Simulation Mode to mode.
simulation.loadSave
nil sim.loadSave(number SaveID, [number hideDescription], [number history?])
Loads the save associated with the specified SaveID. If hideDescription is non zero, the information for the save is not shown.
simulation.loadStamp
type sim.loadStamp()
Does something
simulation.neighbors
type sim.neighbors(number x, number y, [number rx], [number ry])
Used for iterating through particles in an area centred on the given coordinates (x, y). Radius in the x and y directions is set by rx and ry. Default radius is 2, 2.
The size of the rectangular area is one plus twice the radius, so a radius of 2, 2 gives a 5x5 pixel area centred on x, y. Particles in the centre position x, y are excluded. Only one particle in each position is included, and energy particles (such as photons, neutrons, electrons) are ignored.
Example:
for i,nx,ny in sim.neighbors(100,200,1,1) do
sim.partProperty(i, sim.FIELD_TEMP, 9999)
end
Or if coordinates of the neighbouring particles are not required:
for i in sim.neighbors(100,200,1,1) do
sim.partProperty(i, sim.FIELD_TEMP, 9999)
end
simulation.neighbours
Same as sim.neighbors()
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
Same as sim.partNeighbors()
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 FIELD constants below for valid fields.
simulation.parts
type sim.parts()
Does something
simulation.pmap
type sim.pmap()
Does something
simulation.pressure
number sim.pressure(number x, number y)
Returns a value on the pressure map.
nil sim.pressure(number x, number y, number pressure, [number width, number height])
Sets values on the pressure map.
simulation.prettyPowders
type sim.prettyPowders()
Does something
simulation.resetPressure
nil sim.resetPressure()
Resets the pressure map to no pressure.
simulation.resetTemp
nil sim.resetTemp()
Resets the temperature of all particles to their spawn temperature.
simulation.saveStamp
string sim.saveStamp([number x, number y, number width, number height])
Creates a stamp of the specified coordinates. Coordinates default to entire simulation. Returns the stamp id created.
simulation.toolBox
type sim.toolBox(number x1, number y1, number x2, number y2, [number tool], [number strength])
Does something
simulation.toolBrush
number sim.toolBrush(number x, number y, [number rx], [number ry], [number tool], [number brush], [number strength])
Does something
simulation.toolLine
type sim.toolLine(number x1, number y1, number x2, number y2, [number rx], [number ry], [number tool], [number brush], [number strength])
Does something
simulation.velocityX
number sim.velocityX(number x, number y)
Returns an X value on the velocity map.
nil sim.velocityX(number x, number y, [number value], [number width, number height])
Sets X values on the velocity map.
simulation.velocityY
number sim.velocityY(number x, number y)
Returns an Y value on the velocity map.
nil sim.velocityY(number x, number y, [number value], [number width, number height])
Sets Y values on the velocity map.
simulation.waterEqualisation
number sim.waterEqualisation()
Returns the current Water equalisation setting.
nil sim.waterEqualisation(number setting)
Set the Water equalisation setting to setting.
simulation.waterEqualization
Same as sim.waterEqualisation()
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