/**** Particle System Properties ****/
Name = TestParticles

// Particle System Options:

//TagRender // specify to individually mark particles for render in a global system.
//VisCheckOnCreation // specify to avoid creating particles that are not immediately visible.
//LightOnCreation // specify to have particles affected by scene lights.
//AnimateTextures // textures animate over the life of the particle.
AdditiveTextures // textures add light to the background (default is an alpha blend).
//ClipParticlesWithinRange // destroy any particles that get outside of range.
//WrapParticlesWithinRange // wrap any particles that get outside of range.

// Particle source art - specify path, otherwise uses material if a mesh attachment.
SourceArt = data/particles/plus_five.tga
NumTextureAnimationLoops =0

// Particle system limits
MaxParticlesLowDetail = 3000
MaxParticlesHighDetail = 3020
DefaultParticleSize = .2
DefaultLifespan = 1
Range = 4 // max range of the particles from the source (specify in flags whether or not to clip.)
MinPixels = 2
MaxPixels = 10


// Specify a refernce size so that we can scale this system to objects of different size.
EmitScalarReference = 4.0f

/**** Individual Module Properties Below Here ****/

VolumeGenerator = {
  ParticlesPerSecond = 10 // generation rate
  EmitCount = 2 // number emitted at a time.
  EmitOffset = 0, 0, 0 // lower left coordinate of emit region
  EmitDimensions = 0, 0,0 // size of emit region
  BoundaryVariance = 0 // random offset in meters to the boundary
  GeometryType =  POINT // geometry type fitted to box. Choices are: (POINT, BOX, SPHERE, PYRAMID, CONE, CYLINDER, CYLINDER_SHELL, SPHERICAL_SHELL, SPHERE_CW).
  Timing = { function( type=(3.5,0,0,0,0,0,0,0,0,0,0,0,0,0), P, period=6) }
}

InitialVariance = {
  SizeVariance = .8 // maximum percent variance to the initial particle size.
  LifeVariance = 0 // maximum percent variance to the particle's life.
//  Color1 = 255, 255, 10, 255 // color bound 1
//  Color2 = 255, 175, 30, 255 // color bound 2 (actual color can be anwhere between color1 and color2)
  Color1 = 255, 0, 0, 255 // color bound 1
  Color2 = 255, 0, 0, 255 // color bound 2 (actual color can be anwhere between color1 and color2)
}



PlanarAcceleration = {
  Direction = 0, 0, -4
  //RelativeToEmitter // specifiy to have force vectors be relative to the emitter.
  //FunctionTimingToLife // specify to have timing function be across particle life.
  //CalculateAsForce // calculate as a force (i.e. divide by particle's mass).
  // timing function - allows acceleration amount to vary over time.
  TimingFunction = { (function( type=(1, 1), P, period=3) }
}

ParticleCollision = {
  LifeCostPerCollision = 0 // Life (in percent) taken away from the particle each collision.
  BounceFactor = 0.28 // ranges from 0 to 1.
  FrictionFactor = 0 // ranges from 0 to 1.
  SpawnCount = 0 // number of particles to spawn on collision.
  CollisionRadiusOverSize = 1.0 // ratio of collision radius to particle size. (should be near 1)
  SpawnSystemName = // name of particle system to spawn into (may be same one, a new one, or a global one).
  Material = CONCRETE // general material type (for material-based interactions.
  // Flags - specify to enable, comment (//) to disable.
  //SpawnIntoGlobalSystem // specify to look for a globally instanced system rather than a local one.
  //UseMaterialCollisionEffect // specify to invoke standard material collision effects.
  CollideWithAllTerrain // specify to do intersect tests against all terrain polygons.
  //CollideWithMarkedTerrain // specify to do intersect tests against only specifically flagged terrain polygons.
  //CollideWithDynamics // specify to do intersect tests against dynamics.
  //CollideOnlyNearbyVisible // specify to limit intersect tests to nearby visible objects.
}


InitialMass = {
  DefaultMass = .8// default mass (used when linking mass to size to compare agains the default size)
  // LinkMassToSize // specify to link mass to the square of the particle size, else random between min and max.
  MinMass = .7
  MaxMass = 2
}

InitialVelocity = {
  BoundaryOffset = 2, -2, .5// lower left coordinate of emit region
  BoundaryDimensions = -4, 4, .5// size of emit region
  BoundaryVariance = 2 // random offset in meters to the boundary
  GeometryType = BOX // geometry type fitted to box. Choices are: (POINT, BOX, SPHERE, PYRAMID, CONE, CYLINDER, CYLINDER_SHELL, SPHERICAL_SHELL, SPHERE_CW).
  // Flags (specify without '//' to enable).
  //RelativeEmitDirection // specify to have velocity be relative to the emitter direction.
  //RelativeEmitVelocity // specify to have velocity be relative to emitter velocity.
  CalculateAsImpulse // calculate as an impules. (INITIAL MASS MUST COME FIRST IF THIS IS USED!!!)
}

GrowthRate = { //increases the size of the particle 
  // Specify a function whose range is the particle life (0 to 1) and // has variation
  // whose value is the growth rate (in percent of current size per second. i.e. 1.0 is to double every second) 
  function( type=(0,-.6,-.7,-.8), [P], [period=n], [amp=n], [phase=n], [mask=n] )
}


PositionUpdater = {
  GlobalVelocity = 0.00000, 0.000000, 0.000000 // velocity to be added to every particle.
}

AlphaFunction = { // fade out over time use 0 to 255
  // Specify a function whose range is the particle life (0 to 1) and
  // whose value is the alpha channel of the color (0 to 255)
  function( type=(0,255,255))
}


StandardRenderer = {
}


