particlesystem.monkey2 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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. End
  11. Method New( particleBuffer:ParticleBuffer,material:ParticleMaterial,parent:Entity=Null )
  12. Super.New( parent )
  13. _pbuffer=particleBuffer
  14. _material=material
  15. Visible=True
  16. End
  17. #rem monkeydoc Copies the particle system.
  18. #end
  19. Method Copy:ParticleSystem( parent:Entity=Null ) Override
  20. Local copy:=New ParticleSystem( Self,parent )
  21. CopyTo( copy )
  22. Return copy
  23. End
  24. Property ParticleBuffer:ParticleBuffer()
  25. Return _pbuffer
  26. Setter( pbuffer:ParticleBuffer )
  27. _pbuffer=pbuffer
  28. End
  29. #rem monkeydoc Material used to render the particle system.
  30. This must currently be an instance of a SpriteMaterial.
  31. #end
  32. Property Material:ParticleMaterial()
  33. Return _material
  34. Setter( material:ParticleMaterial )
  35. _material=material
  36. End
  37. Protected
  38. #rem monkeydoc @hidden
  39. #End
  40. Method New( psystem:ParticleSystem,parent:Entity )
  41. Super.New( psystem,parent )
  42. _pbuffer=psystem._pbuffer
  43. _material=psystem._material
  44. End
  45. Internal
  46. Method OnRender( rq:RenderQueue ) override
  47. _pbuffer.OnRender( rq,_material,Self )
  48. End
  49. Private
  50. Field _pbuffer:ParticleBuffer
  51. Field _material:ParticleMaterial
  52. End