ParticleEmitter.lua 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. class "ParticleEmitter"
  2. CONTINUOUS_EMITTER = 0
  3. TRIGGERED_EMITTER = 1
  4. CLOUD_EMITTER = 2
  5. function ParticleEmitter:__index__(name)
  6. if name == "particleSpeedMod" then
  7. return Polycore.ParticleEmitter_get_particleSpeedMod(self.__ptr)
  8. elseif name == "brightnessDeviation" then
  9. return Polycore.ParticleEmitter_get_brightnessDeviation(self.__ptr)
  10. elseif name == "lifespan" then
  11. return Polycore.ParticleEmitter_get_lifespan(self.__ptr)
  12. elseif name == "rotationFollowsPath" then
  13. return Polycore.ParticleEmitter_get_rotationFollowsPath(self.__ptr)
  14. end
  15. end
  16. function ParticleEmitter:__set_callback(name,value)
  17. if name == "particleSpeedMod" then
  18. Polycore.ParticleEmitter_set_particleSpeedMod(self.__ptr, value)
  19. return true
  20. elseif name == "brightnessDeviation" then
  21. Polycore.ParticleEmitter_set_brightnessDeviation(self.__ptr, value)
  22. return true
  23. elseif name == "lifespan" then
  24. Polycore.ParticleEmitter_set_lifespan(self.__ptr, value)
  25. return true
  26. elseif name == "rotationFollowsPath" then
  27. Polycore.ParticleEmitter_set_rotationFollowsPath(self.__ptr, value)
  28. return true
  29. end
  30. return false
  31. end
  32. function ParticleEmitter:createParticles()
  33. local retVal = Polycore.ParticleEmitter_createParticles(self.__ptr)
  34. end
  35. function ParticleEmitter:setRotationSpeed(speed)
  36. local retVal = Polycore.ParticleEmitter_setRotationSpeed(self.__ptr, speed)
  37. end
  38. function ParticleEmitter:setStartingColor(c)
  39. local retVal = Polycore.ParticleEmitter_setStartingColor(self.__ptr, c.__ptr)
  40. end
  41. function ParticleEmitter:setEndingColor(c)
  42. local retVal = Polycore.ParticleEmitter_setEndingColor(self.__ptr, c.__ptr)
  43. end
  44. function ParticleEmitter:setParticleBlendingMode(mode)
  45. local retVal = Polycore.ParticleEmitter_setParticleBlendingMode(self.__ptr, mode)
  46. end
  47. function ParticleEmitter:setDepthWrite(val)
  48. local retVal = Polycore.ParticleEmitter_setDepthWrite(self.__ptr, val)
  49. end
  50. function ParticleEmitter:setDepthTest(val)
  51. local retVal = Polycore.ParticleEmitter_setDepthTest(self.__ptr, val)
  52. end
  53. function ParticleEmitter:setAlphaTest(val)
  54. local retVal = Polycore.ParticleEmitter_setAlphaTest(self.__ptr, val)
  55. end
  56. function ParticleEmitter:enablePerlin(val)
  57. local retVal = Polycore.ParticleEmitter_enablePerlin(self.__ptr, val)
  58. end
  59. function ParticleEmitter:setBillboardMode(mode)
  60. local retVal = Polycore.ParticleEmitter_setBillboardMode(self.__ptr, mode)
  61. end
  62. function ParticleEmitter:enableEmitter(val)
  63. local retVal = Polycore.ParticleEmitter_enableEmitter(self.__ptr, val)
  64. end
  65. function ParticleEmitter:emitterEnabled()
  66. local retVal = Polycore.ParticleEmitter_emitterEnabled(self.__ptr)
  67. return retVal
  68. end
  69. function ParticleEmitter:setEmitterRadius(rad)
  70. local retVal = Polycore.ParticleEmitter_setEmitterRadius(self.__ptr, rad)
  71. end
  72. function ParticleEmitter:setStartingScaleModifier(mod)
  73. local retVal = Polycore.ParticleEmitter_setStartingScaleModifier(self.__ptr, mod)
  74. end
  75. function ParticleEmitter:setEndingScaleModifier(mod)
  76. local retVal = Polycore.ParticleEmitter_setEndingScaleModifier(self.__ptr, mod)
  77. end
  78. function ParticleEmitter:setEmitRotationVector(rotVector)
  79. local retVal = Polycore.ParticleEmitter_setEmitRotationVector(self.__ptr, rotVector.__ptr)
  80. end
  81. function ParticleEmitter:setEmitRotationDeviance(rotVector)
  82. local retVal = Polycore.ParticleEmitter_setEmitRotationDeviance(self.__ptr, rotVector.__ptr)
  83. end
  84. function ParticleEmitter:setAllAtOnce(val)
  85. local retVal = Polycore.ParticleEmitter_setAllAtOnce(self.__ptr, val)
  86. end
  87. function ParticleEmitter:Trigger()
  88. local retVal = Polycore.ParticleEmitter_Trigger(self.__ptr)
  89. end
  90. function ParticleEmitter:resetParticle(particle)
  91. local retVal = Polycore.ParticleEmitter_resetParticle(self.__ptr, particle.__ptr)
  92. end
  93. function ParticleEmitter:setPerlinModSize(size)
  94. local retVal = Polycore.ParticleEmitter_setPerlinModSize(self.__ptr, size)
  95. end
  96. function ParticleEmitter:setParticleCount(count)
  97. local retVal = Polycore.ParticleEmitter_setParticleCount(self.__ptr, count)
  98. end
  99. function ParticleEmitter:addParticleBody(particleBody)
  100. local retVal = Polycore.ParticleEmitter_addParticleBody(self.__ptr, particleBody.__ptr)
  101. end
  102. function ParticleEmitter:getBaseMatrix()
  103. local retVal = Polycore.ParticleEmitter_getBaseMatrix(self.__ptr)
  104. if Polycore.__ptr_lookup[retVal] ~= nil then
  105. return Polycore.__ptr_lookup[retVal]
  106. else
  107. Polycore.__ptr_lookup[retVal] = Matrix4("__skip_ptr__")
  108. Polycore.__ptr_lookup[retVal].__ptr = retVal
  109. return Polycore.__ptr_lookup[retVal]
  110. end
  111. end
  112. function ParticleEmitter:updateEmitter()
  113. local retVal = Polycore.ParticleEmitter_updateEmitter(self.__ptr)
  114. end