particlesystem.monkey2 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. Namespace mojo3d
  2. Class ParticleSystem Extends Renderable
  3. #rem monkeydoc Creates a new particle system.
  4. #end
  5. Method New( particleCount:Int=15000,parent:Entity=Null )
  6. Super.New( parent )
  7. _pbuffer=New ParticleBuffer( particleCount )
  8. _material=New ParticleMaterial
  9. Visible=True
  10. AddInstance()
  11. End
  12. Method New( particleBuffer:ParticleBuffer,material:ParticleMaterial,parent:Entity=Null )
  13. Super.New( parent )
  14. _pbuffer=particleBuffer
  15. _material=material
  16. Visible=True
  17. AddInstance( New Variant[]( particleBuffer,material,parent ) )
  18. End
  19. #rem monkeydoc Copies the particle system.
  20. #end
  21. Method Copy:ParticleSystem( parent:Entity=Null ) Override
  22. Local copy:=New ParticleSystem( Self,parent )
  23. CopyTo( copy )
  24. Return copy
  25. End
  26. Property ParticleBuffer:ParticleBuffer()
  27. Return _pbuffer
  28. Setter( pbuffer:ParticleBuffer )
  29. _pbuffer=pbuffer
  30. End
  31. #rem monkeydoc Material used to render the particle system.
  32. This must currently be an instance of a SpriteMaterial.
  33. #end
  34. Property Material:ParticleMaterial()
  35. Return _material
  36. Setter( material:ParticleMaterial )
  37. _material=material
  38. End
  39. Protected
  40. #rem monkeydoc @hidden
  41. #End
  42. Method New( psystem:ParticleSystem,parent:Entity )
  43. Super.New( psystem,parent )
  44. _pbuffer=psystem._pbuffer
  45. _material=psystem._material
  46. End
  47. Internal
  48. Method OnRender( rq:RenderQueue ) override
  49. _pbuffer.OnRender( rq,_material,Self )
  50. End
  51. Private
  52. Field _pbuffer:ParticleBuffer
  53. Field _material:ParticleMaterial
  54. End