BsScriptCParticleSystem.generated.cpp 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  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. }
  48. void ScriptCParticleSystem::Internal_setSettings(ScriptCParticleSystem* thisPtr, MonoObject* settings)
  49. {
  50. SPtr<ParticleSystemSettings> tmpsettings;
  51. ScriptParticleSystemSettings* scriptsettings;
  52. scriptsettings = ScriptParticleSystemSettings::toNative(settings);
  53. if(scriptsettings != nullptr)
  54. tmpsettings = scriptsettings->getInternal();
  55. thisPtr->getHandle()->setSettings(*tmpsettings);
  56. }
  57. MonoObject* ScriptCParticleSystem::Internal_getSettings(ScriptCParticleSystem* thisPtr)
  58. {
  59. SPtr<ParticleSystemSettings> tmp__output = bs_shared_ptr_new<ParticleSystemSettings>();
  60. *tmp__output = thisPtr->getHandle()->getSettings();
  61. MonoObject* __output;
  62. __output = ScriptParticleSystemSettings::create(tmp__output);
  63. return __output;
  64. }
  65. void ScriptCParticleSystem::Internal_setGpuSimulationSettings(ScriptCParticleSystem* thisPtr, MonoObject* settings)
  66. {
  67. SPtr<ParticleGpuSimulationSettings> tmpsettings;
  68. ScriptParticleGpuSimulationSettings* scriptsettings;
  69. scriptsettings = ScriptParticleGpuSimulationSettings::toNative(settings);
  70. if(scriptsettings != nullptr)
  71. tmpsettings = scriptsettings->getInternal();
  72. thisPtr->getHandle()->setGpuSimulationSettings(*tmpsettings);
  73. }
  74. MonoObject* ScriptCParticleSystem::Internal_getGpuSimulationSettings(ScriptCParticleSystem* thisPtr)
  75. {
  76. SPtr<ParticleGpuSimulationSettings> tmp__output = bs_shared_ptr_new<ParticleGpuSimulationSettings>();
  77. *tmp__output = thisPtr->getHandle()->getGpuSimulationSettings();
  78. MonoObject* __output;
  79. __output = ScriptParticleGpuSimulationSettings::create(tmp__output);
  80. return __output;
  81. }
  82. void ScriptCParticleSystem::Internal_setEmitters(ScriptCParticleSystem* thisPtr, MonoArray* emitters)
  83. {
  84. Vector<SPtr<ParticleEmitter>> vecemitters;
  85. if(emitters != nullptr)
  86. {
  87. ScriptArray arrayemitters(emitters);
  88. vecemitters.resize(arrayemitters.size());
  89. for(int i = 0; i < (int)arrayemitters.size(); i++)
  90. {
  91. ScriptParticleEmitter* scriptemitters;
  92. scriptemitters = ScriptParticleEmitter::toNative(arrayemitters.get<MonoObject*>(i));
  93. if(scriptemitters != nullptr)
  94. vecemitters[i] = scriptemitters->getInternal();
  95. }
  96. }
  97. thisPtr->getHandle()->setEmitters(vecemitters);
  98. }
  99. MonoArray* ScriptCParticleSystem::Internal_getEmitters(ScriptCParticleSystem* thisPtr)
  100. {
  101. Vector<SPtr<ParticleEmitter>> vec__output;
  102. vec__output = thisPtr->getHandle()->getEmitters();
  103. MonoArray* __output;
  104. int arraySize__output = (int)vec__output.size();
  105. ScriptArray array__output = ScriptArray::create<ScriptParticleEmitter>(arraySize__output);
  106. for(int i = 0; i < arraySize__output; i++)
  107. {
  108. MonoObject* arrayElem__output;
  109. arrayElem__output = ScriptParticleEmitter::create(vec__output[i]);
  110. array__output.set(i, arrayElem__output);
  111. }
  112. __output = array__output.getInternal();
  113. return __output;
  114. }
  115. void ScriptCParticleSystem::Internal_setEvolvers(ScriptCParticleSystem* thisPtr, MonoArray* evolvers)
  116. {
  117. Vector<SPtr<ParticleEvolver>> vecevolvers;
  118. if(evolvers != nullptr)
  119. {
  120. ScriptArray arrayevolvers(evolvers);
  121. vecevolvers.resize(arrayevolvers.size());
  122. for(int i = 0; i < (int)arrayevolvers.size(); i++)
  123. {
  124. ScriptParticleEvolverBase* scriptevolvers;
  125. scriptevolvers = (ScriptParticleEvolverBase*)ScriptParticleEvolver::toNative(arrayevolvers.get<MonoObject*>(i));
  126. if(scriptevolvers != nullptr)
  127. vecevolvers[i] = scriptevolvers->getInternal();
  128. }
  129. }
  130. thisPtr->getHandle()->setEvolvers(vecevolvers);
  131. }
  132. MonoArray* ScriptCParticleSystem::Internal_getEvolvers(ScriptCParticleSystem* thisPtr)
  133. {
  134. Vector<SPtr<ParticleEvolver>> vec__output;
  135. vec__output = thisPtr->getHandle()->getEvolvers();
  136. MonoArray* __output;
  137. int arraySize__output = (int)vec__output.size();
  138. ScriptArray array__output = ScriptArray::create<ScriptParticleEvolver>(arraySize__output);
  139. for(int i = 0; i < arraySize__output; i++)
  140. {
  141. MonoObject* arrayElem__output;
  142. if(vec__output[i])
  143. {
  144. if(rtti_is_of_type<ParticleVelocity>(vec__output[i]))
  145. arrayElem__output = ScriptParticleVelocity::create(std::static_pointer_cast<ParticleVelocity>(vec__output[i]));
  146. else if(rtti_is_of_type<ParticleGravity>(vec__output[i]))
  147. arrayElem__output = ScriptParticleGravity::create(std::static_pointer_cast<ParticleGravity>(vec__output[i]));
  148. else if(rtti_is_of_type<ParticleForce>(vec__output[i]))
  149. arrayElem__output = ScriptParticleForce::create(std::static_pointer_cast<ParticleForce>(vec__output[i]));
  150. else if(rtti_is_of_type<ParticleTextureAnimation>(vec__output[i]))
  151. arrayElem__output = ScriptParticleTextureAnimation::create(std::static_pointer_cast<ParticleTextureAnimation>(vec__output[i]));
  152. else if(rtti_is_of_type<ParticleOrbit>(vec__output[i]))
  153. arrayElem__output = ScriptParticleOrbit::create(std::static_pointer_cast<ParticleOrbit>(vec__output[i]));
  154. else if(rtti_is_of_type<ParticleColor>(vec__output[i]))
  155. arrayElem__output = ScriptParticleColor::create(std::static_pointer_cast<ParticleColor>(vec__output[i]));
  156. else if(rtti_is_of_type<ParticleSize>(vec__output[i]))
  157. arrayElem__output = ScriptParticleSize::create(std::static_pointer_cast<ParticleSize>(vec__output[i]));
  158. else if(rtti_is_of_type<ParticleRotation>(vec__output[i]))
  159. arrayElem__output = ScriptParticleRotation::create(std::static_pointer_cast<ParticleRotation>(vec__output[i]));
  160. else if(rtti_is_of_type<ParticleCollisions>(vec__output[i]))
  161. arrayElem__output = ScriptParticleCollisions::create(std::static_pointer_cast<ParticleCollisions>(vec__output[i]));
  162. else
  163. arrayElem__output = ScriptParticleEvolver::create(vec__output[i]);
  164. }
  165. else
  166. arrayElem__output = ScriptParticleEvolver::create(vec__output[i]);
  167. array__output.set(i, arrayElem__output);
  168. }
  169. __output = array__output.getInternal();
  170. return __output;
  171. }
  172. void ScriptCParticleSystem::Internal_setLayer(ScriptCParticleSystem* thisPtr, uint64_t layer)
  173. {
  174. thisPtr->getHandle()->setLayer(layer);
  175. }
  176. uint64_t ScriptCParticleSystem::Internal_getLayer(ScriptCParticleSystem* thisPtr)
  177. {
  178. uint64_t tmp__output;
  179. tmp__output = thisPtr->getHandle()->getLayer();
  180. uint64_t __output;
  181. __output = tmp__output;
  182. return __output;
  183. }
  184. }