BsScriptCParticleSystem.generated.cpp 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. #include "BsScriptCParticleSystem.generated.h"
  2. #include "BsMonoMethod.h"
  3. #include "BsMonoClass.h"
  4. #include "BsMonoUtil.h"
  5. #include "../../../bsf/Source/Foundation/bsfCore/Components/BsCParticleSystem.h"
  6. #include "Reflection/BsRTTIType.h"
  7. #include "BsScriptParticleSystemSettings.generated.h"
  8. #include "../../../bsf/Source/Foundation/bsfCore/Particles/BsParticleEvolver.h"
  9. #include "BsScriptParticleOrbit.generated.h"
  10. #include "BsScriptParticleGpuSimulationSettings.generated.h"
  11. #include "../../../bsf/Source/Foundation/bsfCore/Particles/BsParticleEvolver.h"
  12. #include "BsScriptParticleGravity.generated.h"
  13. #include "BsScriptParticleEmitter.generated.h"
  14. #include "../../../bsf/Source/Foundation/bsfCore/Particles/BsParticleEvolver.h"
  15. #include "BsScriptParticleTextureAnimation.generated.h"
  16. #include "BsScriptParticleEvolver.generated.h"
  17. #include "../../../bsf/Source/Foundation/bsfCore/Particles/BsParticleEvolver.h"
  18. #include "BsScriptParticleVelocity.generated.h"
  19. #include "../../../bsf/Source/Foundation/bsfCore/Particles/BsParticleEvolver.h"
  20. #include "BsScriptParticleForce.generated.h"
  21. #include "../../../bsf/Source/Foundation/bsfCore/Particles/BsParticleEvolver.h"
  22. #include "BsScriptParticleColor.generated.h"
  23. #include "../../../bsf/Source/Foundation/bsfCore/Particles/BsParticleEvolver.h"
  24. #include "BsScriptParticleSize.generated.h"
  25. #include "../../../bsf/Source/Foundation/bsfCore/Particles/BsParticleEvolver.h"
  26. #include "BsScriptParticleRotation.generated.h"
  27. #include "../../../bsf/Source/Foundation/bsfCore/Particles/BsParticleEvolver.h"
  28. #include "BsScriptParticleCollisions.generated.h"
  29. namespace bs
  30. {
  31. ScriptCParticleSystem::ScriptCParticleSystem(MonoObject* managedInstance, const GameObjectHandle<CParticleSystem>& value)
  32. :TScriptComponent(managedInstance, value)
  33. {
  34. }
  35. void ScriptCParticleSystem::initRuntimeData()
  36. {
  37. metaData.scriptClass->addInternalCall("Internal_setSettings", (void*)&ScriptCParticleSystem::Internal_setSettings);
  38. metaData.scriptClass->addInternalCall("Internal_getSettings", (void*)&ScriptCParticleSystem::Internal_getSettings);
  39. metaData.scriptClass->addInternalCall("Internal_setGpuSimulationSettings", (void*)&ScriptCParticleSystem::Internal_setGpuSimulationSettings);
  40. metaData.scriptClass->addInternalCall("Internal_getGpuSimulationSettings", (void*)&ScriptCParticleSystem::Internal_getGpuSimulationSettings);
  41. metaData.scriptClass->addInternalCall("Internal_setEmitters", (void*)&ScriptCParticleSystem::Internal_setEmitters);
  42. metaData.scriptClass->addInternalCall("Internal_getEmitters", (void*)&ScriptCParticleSystem::Internal_getEmitters);
  43. metaData.scriptClass->addInternalCall("Internal_setEvolvers", (void*)&ScriptCParticleSystem::Internal_setEvolvers);
  44. metaData.scriptClass->addInternalCall("Internal_getEvolvers", (void*)&ScriptCParticleSystem::Internal_getEvolvers);
  45. metaData.scriptClass->addInternalCall("Internal_setLayer", (void*)&ScriptCParticleSystem::Internal_setLayer);
  46. metaData.scriptClass->addInternalCall("Internal_getLayer", (void*)&ScriptCParticleSystem::Internal_getLayer);
  47. metaData.scriptClass->addInternalCall("Internal__togglePreviewMode", (void*)&ScriptCParticleSystem::Internal__togglePreviewMode);
  48. }
  49. void ScriptCParticleSystem::Internal_setSettings(ScriptCParticleSystem* thisPtr, MonoObject* settings)
  50. {
  51. SPtr<ParticleSystemSettings> tmpsettings;
  52. ScriptParticleSystemSettings* scriptsettings;
  53. scriptsettings = ScriptParticleSystemSettings::toNative(settings);
  54. if(scriptsettings != nullptr)
  55. tmpsettings = scriptsettings->getInternal();
  56. thisPtr->getHandle()->setSettings(*tmpsettings);
  57. }
  58. MonoObject* ScriptCParticleSystem::Internal_getSettings(ScriptCParticleSystem* thisPtr)
  59. {
  60. SPtr<ParticleSystemSettings> tmp__output = bs_shared_ptr_new<ParticleSystemSettings>();
  61. *tmp__output = thisPtr->getHandle()->getSettings();
  62. MonoObject* __output;
  63. __output = ScriptParticleSystemSettings::create(tmp__output);
  64. return __output;
  65. }
  66. void ScriptCParticleSystem::Internal_setGpuSimulationSettings(ScriptCParticleSystem* thisPtr, MonoObject* settings)
  67. {
  68. SPtr<ParticleGpuSimulationSettings> tmpsettings;
  69. ScriptParticleGpuSimulationSettings* scriptsettings;
  70. scriptsettings = ScriptParticleGpuSimulationSettings::toNative(settings);
  71. if(scriptsettings != nullptr)
  72. tmpsettings = scriptsettings->getInternal();
  73. thisPtr->getHandle()->setGpuSimulationSettings(*tmpsettings);
  74. }
  75. MonoObject* ScriptCParticleSystem::Internal_getGpuSimulationSettings(ScriptCParticleSystem* thisPtr)
  76. {
  77. SPtr<ParticleGpuSimulationSettings> tmp__output = bs_shared_ptr_new<ParticleGpuSimulationSettings>();
  78. *tmp__output = thisPtr->getHandle()->getGpuSimulationSettings();
  79. MonoObject* __output;
  80. __output = ScriptParticleGpuSimulationSettings::create(tmp__output);
  81. return __output;
  82. }
  83. void ScriptCParticleSystem::Internal_setEmitters(ScriptCParticleSystem* thisPtr, MonoArray* emitters)
  84. {
  85. Vector<SPtr<ParticleEmitter>> vecemitters;
  86. if(emitters != nullptr)
  87. {
  88. ScriptArray arrayemitters(emitters);
  89. vecemitters.resize(arrayemitters.size());
  90. for(int i = 0; i < (int)arrayemitters.size(); i++)
  91. {
  92. ScriptParticleEmitter* scriptemitters;
  93. scriptemitters = ScriptParticleEmitter::toNative(arrayemitters.get<MonoObject*>(i));
  94. if(scriptemitters != nullptr)
  95. vecemitters[i] = scriptemitters->getInternal();
  96. }
  97. }
  98. thisPtr->getHandle()->setEmitters(vecemitters);
  99. }
  100. MonoArray* ScriptCParticleSystem::Internal_getEmitters(ScriptCParticleSystem* thisPtr)
  101. {
  102. Vector<SPtr<ParticleEmitter>> vec__output;
  103. vec__output = thisPtr->getHandle()->getEmitters();
  104. MonoArray* __output;
  105. int arraySize__output = (int)vec__output.size();
  106. ScriptArray array__output = ScriptArray::create<ScriptParticleEmitter>(arraySize__output);
  107. for(int i = 0; i < arraySize__output; i++)
  108. {
  109. MonoObject* arrayElem__output;
  110. arrayElem__output = ScriptParticleEmitter::create(vec__output[i]);
  111. array__output.set(i, arrayElem__output);
  112. }
  113. __output = array__output.getInternal();
  114. return __output;
  115. }
  116. void ScriptCParticleSystem::Internal_setEvolvers(ScriptCParticleSystem* thisPtr, MonoArray* evolvers)
  117. {
  118. Vector<SPtr<ParticleEvolver>> vecevolvers;
  119. if(evolvers != nullptr)
  120. {
  121. ScriptArray arrayevolvers(evolvers);
  122. vecevolvers.resize(arrayevolvers.size());
  123. for(int i = 0; i < (int)arrayevolvers.size(); i++)
  124. {
  125. ScriptParticleEvolverBase* scriptevolvers;
  126. scriptevolvers = (ScriptParticleEvolverBase*)ScriptParticleEvolver::toNative(arrayevolvers.get<MonoObject*>(i));
  127. if(scriptevolvers != nullptr)
  128. vecevolvers[i] = scriptevolvers->getInternal();
  129. }
  130. }
  131. thisPtr->getHandle()->setEvolvers(vecevolvers);
  132. }
  133. MonoArray* ScriptCParticleSystem::Internal_getEvolvers(ScriptCParticleSystem* thisPtr)
  134. {
  135. Vector<SPtr<ParticleEvolver>> vec__output;
  136. vec__output = thisPtr->getHandle()->getEvolvers();
  137. MonoArray* __output;
  138. int arraySize__output = (int)vec__output.size();
  139. ScriptArray array__output = ScriptArray::create<ScriptParticleEvolver>(arraySize__output);
  140. for(int i = 0; i < arraySize__output; i++)
  141. {
  142. MonoObject* arrayElem__output;
  143. if(vec__output[i])
  144. {
  145. if(rtti_is_of_type<ParticleVelocity>(vec__output[i]))
  146. arrayElem__output = ScriptParticleVelocity::create(std::static_pointer_cast<ParticleVelocity>(vec__output[i]));
  147. else if(rtti_is_of_type<ParticleGravity>(vec__output[i]))
  148. arrayElem__output = ScriptParticleGravity::create(std::static_pointer_cast<ParticleGravity>(vec__output[i]));
  149. else if(rtti_is_of_type<ParticleForce>(vec__output[i]))
  150. arrayElem__output = ScriptParticleForce::create(std::static_pointer_cast<ParticleForce>(vec__output[i]));
  151. else if(rtti_is_of_type<ParticleTextureAnimation>(vec__output[i]))
  152. arrayElem__output = ScriptParticleTextureAnimation::create(std::static_pointer_cast<ParticleTextureAnimation>(vec__output[i]));
  153. else if(rtti_is_of_type<ParticleOrbit>(vec__output[i]))
  154. arrayElem__output = ScriptParticleOrbit::create(std::static_pointer_cast<ParticleOrbit>(vec__output[i]));
  155. else if(rtti_is_of_type<ParticleColor>(vec__output[i]))
  156. arrayElem__output = ScriptParticleColor::create(std::static_pointer_cast<ParticleColor>(vec__output[i]));
  157. else if(rtti_is_of_type<ParticleSize>(vec__output[i]))
  158. arrayElem__output = ScriptParticleSize::create(std::static_pointer_cast<ParticleSize>(vec__output[i]));
  159. else if(rtti_is_of_type<ParticleRotation>(vec__output[i]))
  160. arrayElem__output = ScriptParticleRotation::create(std::static_pointer_cast<ParticleRotation>(vec__output[i]));
  161. else if(rtti_is_of_type<ParticleCollisions>(vec__output[i]))
  162. arrayElem__output = ScriptParticleCollisions::create(std::static_pointer_cast<ParticleCollisions>(vec__output[i]));
  163. else
  164. arrayElem__output = ScriptParticleEvolver::create(vec__output[i]);
  165. }
  166. else
  167. arrayElem__output = ScriptParticleEvolver::create(vec__output[i]);
  168. array__output.set(i, arrayElem__output);
  169. }
  170. __output = array__output.getInternal();
  171. return __output;
  172. }
  173. void ScriptCParticleSystem::Internal_setLayer(ScriptCParticleSystem* thisPtr, uint64_t layer)
  174. {
  175. thisPtr->getHandle()->setLayer(layer);
  176. }
  177. uint64_t ScriptCParticleSystem::Internal_getLayer(ScriptCParticleSystem* thisPtr)
  178. {
  179. uint64_t tmp__output;
  180. tmp__output = thisPtr->getHandle()->getLayer();
  181. uint64_t __output;
  182. __output = tmp__output;
  183. return __output;
  184. }
  185. bool ScriptCParticleSystem::Internal__togglePreviewMode(ScriptCParticleSystem* thisPtr, bool enabled)
  186. {
  187. bool tmp__output;
  188. tmp__output = thisPtr->getHandle()->_togglePreviewMode(enabled);
  189. bool __output;
  190. __output = tmp__output;
  191. return __output;
  192. }
  193. }