Difference between revisions of "Variables"

From The Powder Toy
Jump to: navigation, search
(More formatting)
(Add more info/particle properties.)
Line 7: Line 7:
 
! Variable || What it returns
 
! Variable || What it returns
 
|-
 
|-
| pmap[y][x] || Particle-map. Returns particle at [y][x]
+
| pmap[y][x] || Particle-map. (pmap[y][x]&0xFF) returns the particle at (x,y), (pmap[y][x]>>8) returns the index of the particle at (x,y)
 
|-
 
|-
 
| bmap[y][x] || Block-map. Returns wall at [y][x].
 
| bmap[y][x] || Block-map. Returns wall at [y][x].
Line 14: Line 14:
 
|-
 
|-
 
| r || usually preset to pmap[y][x]
 
| r || usually preset to pmap[y][x]
 +
|-
 +
| parts[i] || the particle that has index i
 
|-
 
|-
 
| pv[y/CELL][x/CELL] || The pressure at x,y. Pressure is on a 4x4 grid like walls. Is a float(0.0f for 0).
 
| pv[y/CELL][x/CELL] || The pressure at x,y. Pressure is on a 4x4 grid like walls. Is a float(0.0f for 0).
Line 27: Line 29:
  
 
=== Particle ===
 
=== Particle ===
 +
To get information from a particle, use parts[i].<sup>1</sup>, where i is the particle index. The index may also be stored as r>>8 instead of i. This is normally used in the update functions for particles. i is the index of the particle that is being updated, and r>>8 is the index of a particle surrounding it that it might react with or modify. To get the type of the particle from the variable r, use (r&0xFF).
 +
 +
=== Particle Information ===
 
{| class="wikitable"
 
{| class="wikitable"
 
! Variable || What it returns
 
! Variable || What it returns
 
|-
 
|-
| parts[i].<sup>1</sup> || Current Particle
+
| parts[<sup>2</sup>].type || Contains the particle's current type.
 +
|-
 +
| parts[<sup>2</sup>].ctype || Contains the particle's previous type (for example LAVA/SPRK) or the type of particle it is cloning (CLNE/...) usually.
 
|-
 
|-
| parts[r>>8].<sup>1</sup> || A property of particle 'r'. Is usually around(based on for loops) the current one(i).
+
| parts[<sup>2</sup>].life || Contains the particle's life.
 +
|-
 +
| parts[<sup>2</sup>].temp || Contains the particle's temperature. It's a float(0.0f for 0K, which is -273.15C). All temps are stored in Kelvins.
 
|-
 
|-
| (r&0xFF) || Same as (parts[r>>8].type)
+
| parts[<sup>2</sup>].tmp || Contains a value which can be used for anything. Most particles don't use it.
 
|-
 
|-
 
+
| parts[<sup>2</sup>].tmp2 || Contains another value. Even less particles use this.
=== Particle Information ===
+
|-
{| class="wikitable"
+
| parts[<sup>2</sup>].dcolour || Contains the particle's decoration color, in hex.
! Variable || What it returns
 
 
|-
 
|-
| parts[<sup>2</sup>].type || Contains the particles current type.  
+
| parts[<sup>2</sup>].x || Contains the particle's x coordinate. It is not an integer, it's a float. To get the exact coordinate, add .5 to it before changing it to an int.
 
|-
 
|-
| parts[<sup>2</sup>].ctype || Contains the particles previous type (for example LAVA) or the type of particle to clone with BCLN, PCLN or CLNE
+
| parts[<sup>2</sup>].y || Contains the particle's y coordinate. It is not an integer, it's a float. To get the exact coordinate, add .5 to it before changing it to an int.
 
|-
 
|-
| parts[<sup>2</sup>].life || Contains the particles life.
+
| parts[<sup>2</sup>].vx || Contains the particle's x velocity. It is a float.  
|-
 
| parts[<sup>2</sup>].temp || Contains the particles Temperature. Is a float(0.0f for 0).
 
 
|-
 
|-
| parts[<sup>2</sup>].tmp || Contains the particles temporary values which can be used for anything.  
+
| parts[<sup>2</sup>].vy || Contains the particle's y velocity. It is a float
 
|-
 
|-
 
|}
 
|}
Line 55: Line 61:
 
<sup>1</sup> - use either type, ctype, life, temp or tmp
 
<sup>1</sup> - use either type, ctype, life, temp or tmp
  
<sup>2</sup> - use either r>>8 or i
+
<sup>2</sup> - use either r>>8 or i. See above (Particle) for more info.
  
 
[[Category:Development]]
 
[[Category:Development]]

Revision as of 02:39, 5 December 2011

This is a list of useful variables and usages of them inside the source.


General

Variable What it returns
pmap[y][x] Particle-map. (pmap[y][x]&0xFF) returns the particle at (x,y), (pmap[y][x]>>8) returns the index of the particle at (x,y)
bmap[y][x] Block-map. Returns wall at [y][x].
emap[y][x] Electronics-map. Used for conductive walls.
r usually preset to pmap[y][x]
parts[i] the particle that has index i
pv[y/CELL][x/CELL] The pressure at x,y. Pressure is on a 4x4 grid like walls. Is a float(0.0f for 0).
hv[y/CELL][x/CELL] The ambient heat at x,y. It is on a 4x4 grid like walls and pressure. Is a float(0.0f for 0).
sl Selected left. Means particle selected in menu by left mouse button.
sr Selected right. Means particle selected in menu by right mouse button.
t Current particle type. ex. PT_DUST

Particle

To get information from a particle, use parts[i].1, where i is the particle index. The index may also be stored as r>>8 instead of i. This is normally used in the update functions for particles. i is the index of the particle that is being updated, and r>>8 is the index of a particle surrounding it that it might react with or modify. To get the type of the particle from the variable r, use (r&0xFF).

Particle Information

Variable What it returns
parts[2].type Contains the particle's current type.
parts[2].ctype Contains the particle's previous type (for example LAVA/SPRK) or the type of particle it is cloning (CLNE/...) usually.
parts[2].life Contains the particle's life.
parts[2].temp Contains the particle's temperature. It's a float(0.0f for 0K, which is -273.15C). All temps are stored in Kelvins.
parts[2].tmp Contains a value which can be used for anything. Most particles don't use it.
parts[2].tmp2 Contains another value. Even less particles use this.
parts[2].dcolour Contains the particle's decoration color, in hex.
parts[2].x Contains the particle's x coordinate. It is not an integer, it's a float. To get the exact coordinate, add .5 to it before changing it to an int.
parts[2].y Contains the particle's y coordinate. It is not an integer, it's a float. To get the exact coordinate, add .5 to it before changing it to an int.
parts[2].vx Contains the particle's x velocity. It is a float.
parts[2].vy Contains the particle's y velocity. It is a float

1 - use either type, ctype, life, temp or tmp

2 - use either r>>8 or i. See above (Particle) for more info.