2
0
Эх сурвалжийг харах

Refactor: Fix export for some particle system methods, add export for particle system component, add particle system/decal component menu entries

BearishSun 7 жил өмнө
parent
commit
b976c681c3
63 өөрчлөгдсөн 788 нэмэгдсэн , 138 устгасан
  1. 136 120
      Source/Scripting/MBansheeEditor/Window/MenuItems.cs
  2. 96 0
      Source/Scripting/MBansheeEngine/Generated/CParticleSystem.generated.cs
  3. 8 0
      Source/Scripting/MBansheeEngine/Generated/ParticleCollisions.generated.cs
  4. 8 0
      Source/Scripting/MBansheeEngine/Generated/ParticleColor.generated.cs
  5. 8 0
      Source/Scripting/MBansheeEngine/Generated/ParticleEmitterBoxShape.generated.cs
  6. 8 0
      Source/Scripting/MBansheeEngine/Generated/ParticleEmitterCircleShape.generated.cs
  7. 8 0
      Source/Scripting/MBansheeEngine/Generated/ParticleEmitterConeShape.generated.cs
  8. 8 0
      Source/Scripting/MBansheeEngine/Generated/ParticleEmitterHemisphereShape.generated.cs
  9. 8 0
      Source/Scripting/MBansheeEngine/Generated/ParticleEmitterLineShape.generated.cs
  10. 8 0
      Source/Scripting/MBansheeEngine/Generated/ParticleEmitterRectShape.generated.cs
  11. 7 7
      Source/Scripting/MBansheeEngine/Generated/ParticleEmitterSkinnedMeshShape.generated.cs
  12. 8 0
      Source/Scripting/MBansheeEngine/Generated/ParticleEmitterSphereShape.generated.cs
  13. 8 0
      Source/Scripting/MBansheeEngine/Generated/ParticleEmitterStaticMeshShape.generated.cs
  14. 8 0
      Source/Scripting/MBansheeEngine/Generated/ParticleForce.generated.cs
  15. 8 0
      Source/Scripting/MBansheeEngine/Generated/ParticleGravity.generated.cs
  16. 8 0
      Source/Scripting/MBansheeEngine/Generated/ParticleOrbit.generated.cs
  17. 8 0
      Source/Scripting/MBansheeEngine/Generated/ParticleRotation.generated.cs
  18. 8 0
      Source/Scripting/MBansheeEngine/Generated/ParticleSize.generated.cs
  19. 8 0
      Source/Scripting/MBansheeEngine/Generated/ParticleTextureAnimation.generated.cs
  20. 8 0
      Source/Scripting/MBansheeEngine/Generated/ParticleVelocity.generated.cs
  21. 12 0
      Source/Scripting/MBansheeEngine/Generated/VectorField.generated.cs
  22. 3 0
      Source/Scripting/SBansheeEngine/Generated/BsBuiltinComponentLookup.generated.h
  23. 158 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptCParticleSystem.generated.cpp
  24. 31 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptCParticleSystem.generated.h
  25. 8 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptParticleCollisions.generated.cpp
  26. 1 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptParticleCollisions.generated.h
  27. 10 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptParticleColor.generated.cpp
  28. 1 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptParticleColor.generated.h
  29. 10 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptParticleEmitterBoxShape.generated.cpp
  30. 1 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptParticleEmitterBoxShape.generated.h
  31. 10 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptParticleEmitterCircleShape.generated.cpp
  32. 1 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptParticleEmitterCircleShape.generated.h
  33. 10 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptParticleEmitterConeShape.generated.cpp
  34. 1 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptParticleEmitterConeShape.generated.h
  35. 8 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptParticleEmitterHemisphereShape.generated.cpp
  36. 1 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptParticleEmitterHemisphereShape.generated.h
  37. 10 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptParticleEmitterLineShape.generated.cpp
  38. 1 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptParticleEmitterLineShape.generated.h
  39. 10 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptParticleEmitterRectShape.generated.cpp
  40. 1 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptParticleEmitterRectShape.generated.h
  41. 4 9
      Source/Scripting/SBansheeEngine/Generated/BsScriptParticleEmitterSkinnedMeshShape.generated.cpp
  42. 1 1
      Source/Scripting/SBansheeEngine/Generated/BsScriptParticleEmitterSkinnedMeshShape.generated.h
  43. 8 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptParticleEmitterSphereShape.generated.cpp
  44. 1 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptParticleEmitterSphereShape.generated.h
  45. 10 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptParticleEmitterStaticMeshShape.generated.cpp
  46. 1 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptParticleEmitterStaticMeshShape.generated.h
  47. 10 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptParticleForce.generated.cpp
  48. 1 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptParticleForce.generated.h
  49. 8 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptParticleGravity.generated.cpp
  50. 1 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptParticleGravity.generated.h
  51. 10 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptParticleOrbit.generated.cpp
  52. 1 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptParticleOrbit.generated.h
  53. 10 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptParticleRotation.generated.cpp
  54. 1 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptParticleRotation.generated.h
  55. 10 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptParticleSize.generated.cpp
  56. 1 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptParticleSize.generated.h
  57. 8 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptParticleTextureAnimation.generated.cpp
  58. 1 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptParticleTextureAnimation.generated.h
  59. 10 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptParticleVelocity.generated.cpp
  60. 1 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptParticleVelocity.generated.h
  61. 23 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptVectorField.generated.cpp
  62. 3 0
      Source/Scripting/SBansheeEngine/Generated/BsScriptVectorField.generated.h
  63. 1 1
      Source/bsf

+ 136 - 120
Source/Scripting/MBansheeEditor/Window/MenuItems.cs

@@ -17,7 +17,7 @@ namespace BansheeEditor
         /// <summary>
         /// Adds a camera component to the currently selected scene object.
         /// </summary>
-        [MenuItem("Components/Camera", 7050)]
+        [MenuItem("Components/Camera", 7950)]
         private static void AddCamera()
         {
             SceneObject so = Selection.SceneObject;
@@ -34,7 +34,7 @@ namespace BansheeEditor
         /// <summary>
         /// Adds a renderable component to the currently selected scene object.
         /// </summary>
-        [MenuItem("Components/Renderable", 7049)]
+        [MenuItem("Components/Renderable", 7949)]
         private static void AddRenderable()
         {
             SceneObject so = Selection.SceneObject;
@@ -46,10 +46,40 @@ namespace BansheeEditor
             EditorApplication.SetSceneDirty();
         }
 
+        /// <summary>
+        /// Adds a ParticleSystem component to the currently selected scene object.
+        /// </summary>
+        [MenuItem("Components/Particle system", 7948)]
+        private static void AddParticleSystem()
+        {
+            SceneObject so = Selection.SceneObject;
+            if (so == null)
+                return;
+
+            UndoRedo.RecordSO(so, false, "Added a Particle System component");
+            so.AddComponent<ParticleSystem>();
+            EditorApplication.SetSceneDirty();
+        }
+
+        /// <summary>
+        /// Adds a Decal component to the currently selected scene object.
+        /// </summary>
+        [MenuItem("Components/Decal", 7947)]
+        private static void AddDecal()
+        {
+            SceneObject so = Selection.SceneObject;
+            if (so == null)
+                return;
+
+            UndoRedo.RecordSO(so, false, "Added a Decal component");
+            so.AddComponent<Decal>();
+            EditorApplication.SetSceneDirty();
+        }
+
         /// <summary>
         /// Adds a point light component to the currently selected scene object.
         /// </summary>
-        [MenuItem("Components/Radial light", 7048)]
+        [MenuItem("Components/Radial light", 7900, true)]
         private static void AddPointLight()
         {
             SceneObject so = Selection.SceneObject;
@@ -65,7 +95,7 @@ namespace BansheeEditor
         /// <summary>
         /// Adds a spot light component to the currently selected scene object.
         /// </summary>
-        [MenuItem("Components/Spot light", 7047)]
+        [MenuItem("Components/Spot light", 7899)]
         private static void AddSpotLight()
         {
             SceneObject so = Selection.SceneObject;
@@ -81,7 +111,7 @@ namespace BansheeEditor
         /// <summary>
         /// Adds a directional light component to the currently selected scene object.
         /// </summary>
-        [MenuItem("Components/Directional light", 7046)]
+        [MenuItem("Components/Directional light", 7898)]
         private static void AddDirectionalLight()
         {
             SceneObject so = Selection.SceneObject;
@@ -94,10 +124,55 @@ namespace BansheeEditor
             EditorApplication.SetSceneDirty();
         }
 
+        /// <summary>
+        /// Adds a Skybox component to the currently selected scene object.
+        /// </summary>
+        [MenuItem("Components/Skybox", 7897)]
+        private static void AddSkybox()
+        {
+            SceneObject so = Selection.SceneObject;
+            if (so == null)
+                return;
+
+            UndoRedo.RecordSO(so, false, "Added an Skybox component");
+            so.AddComponent<Skybox>();
+            EditorApplication.SetSceneDirty();
+        }
+
+        /// <summary>
+        /// Adds a ReflectionProbe component to the currently selected scene object.
+        /// </summary>
+        [MenuItem("Components/Reflection probe", 7896)]
+        private static void AddReflectionProbe()
+        {
+            SceneObject so = Selection.SceneObject;
+            if (so == null)
+                return;
+
+            UndoRedo.RecordSO(so, false, "Added an ReflectionProbe component");
+            so.AddComponent<ReflectionProbe>();
+            EditorApplication.SetSceneDirty();
+        }
+
+        /// <summary>
+        /// Adds a LightProbeVolume component to the currently selected scene object.
+        /// </summary>
+        [MenuItem("Components/Light probe volume", 7895)]
+        private static void AddLightProbeVolume()
+        {
+            SceneObject so = Selection.SceneObject;
+            if (so == null)
+                return;
+
+            UndoRedo.RecordSO(so, false, "Added a Light Probe Volume component");
+            so.AddComponent<LightProbeVolume>();
+            EditorApplication.SetSceneDirty();
+        }
+
         /// <summary>
         /// Adds a GUI widget component to the currently selected scene object.
         /// </summary>
-        [MenuItem("Components/GUI widget", 7045)]
+        [MenuItem("Components/GUI widget", 7850, true)]
         private static void AddGUIWidget()
         {
             SceneObject so = Selection.SceneObject;
@@ -112,7 +187,7 @@ namespace BansheeEditor
         /// <summary>
         /// Adds a BoxCollider component to the currently selected scene object.
         /// </summary>
-        [MenuItem("Components/Physics/Box collider", 7044)]
+        [MenuItem("Components/Physics/Box collider", 7800, true)]
         private static void AddBoxCollider()
         {
             SceneObject so = Selection.SceneObject;
@@ -133,7 +208,7 @@ namespace BansheeEditor
         /// <summary>
         /// Adds a SphereCollider component to the currently selected scene object.
         /// </summary>
-        [MenuItem("Components/Physics/Sphere collider", 7043)]
+        [MenuItem("Components/Physics/Sphere collider", 7799)]
         private static void AddSphereCollider()
         {
             SceneObject so = Selection.SceneObject;
@@ -153,7 +228,7 @@ namespace BansheeEditor
         /// <summary>
         /// Adds a CapsuleCollider component to the currently selected scene object.
         /// </summary>
-        [MenuItem("Components/Physics/Capsule collider", 7042)]
+        [MenuItem("Components/Physics/Capsule collider", 7798)]
         private static void AddCapsuleCollider()
         {
             SceneObject so = Selection.SceneObject;
@@ -173,7 +248,7 @@ namespace BansheeEditor
         /// <summary>
         /// Adds a MeshCollider component to the currently selected scene object.
         /// </summary>
-        [MenuItem("Components/Physics/Mesh collider", 7041)]
+        [MenuItem("Components/Physics/Mesh collider", 7797)]
         private static void AddMeshCollider()
         {
             SceneObject so = Selection.SceneObject;
@@ -193,7 +268,7 @@ namespace BansheeEditor
         /// <summary>
         /// Adds a PlaneCollider component to the currently selected scene object.
         /// </summary>
-        [MenuItem("Components/Physics/Plane collider", 7040)]
+        [MenuItem("Components/Physics/Plane collider", 7796)]
         private static void AddPlaneCollider()
         {
             SceneObject so = Selection.SceneObject;
@@ -213,7 +288,7 @@ namespace BansheeEditor
         /// <summary>
         /// Adds a Rigidbody component to the currently selected scene object.
         /// </summary>
-        [MenuItem("Components/Physics/Rigidbody", 7039, true)]
+        [MenuItem("Components/Physics/Rigidbody", 7750, true)]
         private static void AddRigidbody()
         {
             SceneObject so = Selection.SceneObject;
@@ -233,7 +308,7 @@ namespace BansheeEditor
         /// <summary>
         /// Adds a CharacterController component to the currently selected scene object.
         /// </summary>
-        [MenuItem("Components/Physics/Character controller", 7038)]
+        [MenuItem("Components/Physics/Character controller", 7749)]
         private static void AddCharacterController()
         {
             SceneObject so = Selection.SceneObject;
@@ -253,7 +328,7 @@ namespace BansheeEditor
         /// <summary>
         /// Adds a FixedJoint component to the currently selected scene object.
         /// </summary>
-        [MenuItem("Components/Physics/Fixed joint", 7037, true)]
+        [MenuItem("Components/Physics/Fixed joint", 7600, true)]
         private static void AddFixedJoint()
         {
             SceneObject so = Selection.SceneObject;
@@ -273,7 +348,7 @@ namespace BansheeEditor
         /// <summary>
         /// Adds a DistanceJoint component to the currently selected scene object.
         /// </summary>
-        [MenuItem("Components/Physics/Distance joint", 7036)]
+        [MenuItem("Components/Physics/Distance joint", 7599)]
         private static void AddDistanceJoint()
         {
             SceneObject so = Selection.SceneObject;
@@ -293,7 +368,7 @@ namespace BansheeEditor
         /// <summary>
         /// Adds a HingeJoint component to the currently selected scene object.
         /// </summary>
-        [MenuItem("Components/Physics/Hinge joint", 7035)]
+        [MenuItem("Components/Physics/Hinge joint", 7598)]
         private static void AddHingeJoint()
         {
             SceneObject so = Selection.SceneObject;
@@ -313,7 +388,7 @@ namespace BansheeEditor
         /// <summary>
         /// Adds a SphericalJoint component to the currently selected scene object.
         /// </summary>
-        [MenuItem("Components/Physics/Spherical joint", 7034)]
+        [MenuItem("Components/Physics/Spherical joint", 7597)]
         private static void AddSphericalJoint()
         {
             SceneObject so = Selection.SceneObject;
@@ -333,7 +408,7 @@ namespace BansheeEditor
         /// <summary>
         /// Adds a SliderJoint component to the currently selected scene object.
         /// </summary>
-        [MenuItem("Components/Physics/Slider joint", 7032)]
+        [MenuItem("Components/Physics/Slider joint", 7596)]
         private static void AddSliderJoint()
         {
             SceneObject so = Selection.SceneObject;
@@ -353,7 +428,7 @@ namespace BansheeEditor
         /// <summary>
         /// Adds a D6Joint component to the currently selected scene object.
         /// </summary>
-        [MenuItem("Components/Physics/D6 joint", 7032)]
+        [MenuItem("Components/Physics/D6 joint", 7595)]
         private static void AddD6Joint()
         {
             SceneObject so = Selection.SceneObject;
@@ -373,7 +448,7 @@ namespace BansheeEditor
         /// <summary>
         /// Adds an AudioListener component to the currently selected scene object.
         /// </summary>
-        [MenuItem("Components/Audio/Listener", 7031)]
+        [MenuItem("Components/Audio/Listener", 7550, true)]
         private static void AddAudioListener()
         {
             SceneObject so = Selection.SceneObject;
@@ -393,7 +468,7 @@ namespace BansheeEditor
         /// <summary>
         /// Adds an AudioSource component to the currently selected scene object.
         /// </summary>
-        [MenuItem("Components/Audio/Source", 7030)]
+        [MenuItem("Components/Audio/Source", 7549)]
         private static void AddAudioSource()
         {
             SceneObject so = Selection.SceneObject;
@@ -413,7 +488,7 @@ namespace BansheeEditor
         /// <summary>
         /// Adds an Animation component to the currently selected scene object.
         /// </summary>
-        [MenuItem("Components/Animation", 7029)]
+        [MenuItem("Components/Animation", 7500, true)]
         private static void AddAnimation()
         {
             SceneObject so = Selection.SceneObject;
@@ -429,7 +504,7 @@ namespace BansheeEditor
         /// <summary>
         /// Adds a Bone component to the currently selected scene object.
         /// </summary>
-        [MenuItem("Components/Bone", 7028)]
+        [MenuItem("Components/Bone", 7499)]
         private static void AddBone()
         {
             SceneObject so = Selection.SceneObject;
@@ -441,60 +516,46 @@ namespace BansheeEditor
             EditorApplication.SetSceneDirty();
         }
 
-        /// <summary>
-        /// Adds a Skybox component to the currently selected scene object.
-        /// </summary>
-        [MenuItem("Components/Skybox", 7027)]
-        private static void AddSkybox()
-        {
-            SceneObject so = Selection.SceneObject;
-            if (so == null)
-                return;
-
-            UndoRedo.RecordSO(so, false, "Added an Skybox component");
-            so.AddComponent<Skybox>();
-            EditorApplication.SetSceneDirty();
-        }
 
         /// <summary>
-        /// Adds a ReflectionProbe component to the currently selected scene object.
+        /// Creates a new empty scene object.
         /// </summary>
-        [MenuItem("Components/Reflection probe", 7026)]
-        private static void AddReflectionProbe()
+        [MenuItem("Scene Objects/Scene Object", 9000)]
+        [ToolbarItem("SceneObject", ToolbarIcon.NewSceneObject, "Creates a new empty scene object", 1601, true)]
+        private static void AddEmptySO()
         {
-            SceneObject so = Selection.SceneObject;
-            if (so == null)
-                return;
+            SceneObject so = UndoRedo.CreateSO("SceneObject", "New scene object");
 
-            UndoRedo.RecordSO(so, false, "Added an ReflectionProbe component");
-            so.AddComponent<ReflectionProbe>();
+            Selection.SceneObject = so;
+            FocusOnHierarchyOrScene();
             EditorApplication.SetSceneDirty();
         }
 
         /// <summary>
-        /// Adds a LightProbeVolume component to the currently selected scene object.
+        /// Creates a new scene object with a Camera component.
         /// </summary>
-        [MenuItem("Components/Light probe volume", 7025)]
-        private static void AddLightProbeVolume()
+        [MenuItem("Scene Objects/Camera", 8950, true)]
+        [ToolbarItem("Camera", ToolbarIcon.NewCamera, "New camera", 1600, false)]
+        private static void AddCameraSO()
         {
-            SceneObject so = Selection.SceneObject;
-            if (so == null)
-                return;
+            SceneObject so = UndoRedo.CreateSO("Camera", "Created a Camera");
+            Camera cam = so.AddComponent<Camera>();
+            cam.Main = true;
 
-            UndoRedo.RecordSO(so, false, "Added a Light Probe Volume component");
-            so.AddComponent<LightProbeVolume>();
+            Selection.SceneObject = so;
+            FocusOnHierarchyOrScene();
             EditorApplication.SetSceneDirty();
         }
 
-
         /// <summary>
-        /// Creates a new empty scene object.
+        /// Creates a new scene object with a Renderable component.
         /// </summary>
-        [MenuItem("Scene Objects/Scene Object", 8051)]
-        [ToolbarItem("SceneObject", ToolbarIcon.NewSceneObject, "Creates a new empty scene object", 1601, true)]
-        private static void AddEmptySO()
+        [MenuItem("Scene Objects/Renderable", 8949)]
+        [ToolbarItem("Renderable", ToolbarIcon.NewRenderable, "New renderable", 1599)]
+        private static void AddRenderableSO()
         {
-            SceneObject so = UndoRedo.CreateSO("SceneObject", "New scene object");
+            SceneObject so = UndoRedo.CreateSO("Renderable", "Created a Renderable");
+            so.AddComponent<Renderable>();
 
             Selection.SceneObject = so;
             FocusOnHierarchyOrScene();
@@ -502,15 +563,13 @@ namespace BansheeEditor
         }
 
         /// <summary>
-        /// Creates a new scene object with a camera component.
+        /// Creates a new scene object with a Particle System component.
         /// </summary>
-        [MenuItem("Scene Objects/Camera", 8050)]
-        [ToolbarItem("Camera", ToolbarIcon.NewCamera, "New camera", 1600, false)]
-        private static void AddCameraSO()
+        [MenuItem("Scene Objects/Particle system", 8948)]
+        private static void AddParticleSystemSO()
         {
-            SceneObject so = UndoRedo.CreateSO("Camera", "Created a Camera");
-            Camera cam = so.AddComponent<Camera>();
-            cam.Main = true;
+            SceneObject so = UndoRedo.CreateSO("Particle system", "Created a ParticleSystem");
+            so.AddComponent<ParticleSystem>();
 
             Selection.SceneObject = so;
             FocusOnHierarchyOrScene();
@@ -518,14 +577,13 @@ namespace BansheeEditor
         }
 
         /// <summary>
-        /// Creates a new scene object with a renderable component.
+        /// Creates a new scene object with a Decal component.
         /// </summary>
-        [MenuItem("Scene Objects/Renderable", 8049)]
-        [ToolbarItem("Renderable", ToolbarIcon.NewRenderable, "New renderable", 1599)]
-        private static void AddRenderableSO()
+        [MenuItem("Scene Objects/Decal", 8947)]
+        private static void AddDecalSO()
         {
-            SceneObject so = UndoRedo.CreateSO("Renderable", "Created a Renderable");
-            so.AddComponent<Renderable>();
+            SceneObject so = UndoRedo.CreateSO("Decal", "Created a Decal");
+            so.AddComponent<Decal>();
 
             Selection.SceneObject = so;
             FocusOnHierarchyOrScene();
@@ -533,9 +591,9 @@ namespace BansheeEditor
         }
 
         /// <summary>
-        /// Creates a new scene object with a point light component.
+        /// Creates a new scene object with a radial light component.
         /// </summary>
-        [MenuItem("Scene Objects/Radial light", 8048)]
+        [MenuItem("Scene Objects/Radial light", 8900, true)]
         [ToolbarItem("Point light", ToolbarIcon.NewPointLight, "New radial light", 1598)]
         private static void AddPointLightSO()
         {
@@ -551,7 +609,7 @@ namespace BansheeEditor
         /// <summary>
         /// Creates a new scene object with a spot light component.
         /// </summary>
-        [MenuItem("Scene Objects/Spot light", 8047)]
+        [MenuItem("Scene Objects/Spot light", 8899)]
         [ToolbarItem("Spot light", ToolbarIcon.NewSpotLight, "New spot light", 1597)]
         private static void AddSpotLightSO()
         {
@@ -567,7 +625,7 @@ namespace BansheeEditor
         /// <summary>
         /// Creates a new scene object with a directional light component.
         /// </summary>
-        [MenuItem("Scene Objects/Directional light", 8046)]
+        [MenuItem("Scene Objects/Directional light", 8898)]
         [ToolbarItem("Directional light", ToolbarIcon.NewDirLight, "New directional light", 1596)]
         private static void AddDirectionalLightSO()
         {
@@ -583,7 +641,7 @@ namespace BansheeEditor
         /// <summary>
         /// Creates a new scene object with a GUI widget component.
         /// </summary>
-        [MenuItem("Scene Objects/GUI widget", 8045)]
+        [MenuItem("Scene Objects/GUI widget", 8850, true)]
         private static void AddGUIWidgetSO()
         {
             SceneObject so = UndoRedo.CreateSO("GUIWidget", "Created a GUIWidget");
@@ -594,52 +652,10 @@ namespace BansheeEditor
             EditorApplication.SetSceneDirty();
         }
 
-        /// <summary>
-        /// Creates a new scene object with a Skybox component.
-        /// </summary>
-        [MenuItem("Scene Objects/Skybox", 8044)]
-        private static void AddSkyboxSO()
-        {
-            SceneObject so = UndoRedo.CreateSO("Skybox", "Created a Skybox");
-            so.AddComponent<Skybox>();
-
-            Selection.SceneObject = so;
-            FocusOnHierarchyOrScene();
-            EditorApplication.SetSceneDirty();
-        }
-
-        /// <summary>
-        /// Creates a new scene object with a ReflectionProbe component.
-        /// </summary>
-        [MenuItem("Scene Objects/Reflection probe", 8043)]
-        private static void AddReflectionProbeSO()
-        {
-            SceneObject so = UndoRedo.CreateSO("ReflectionProbe", "Created a ReflectionProbe");
-            so.AddComponent<ReflectionProbe>();
-
-            Selection.SceneObject = so;
-            FocusOnHierarchyOrScene();
-            EditorApplication.SetSceneDirty();
-        }
-
-        /// <summary>
-        /// Creates a new scene object with a LightProbeVolume component.
-        /// </summary>
-        [MenuItem("Scene Objects/Light probe volume", 8042)]
-        private static void AddLightProbeVolumeSO()
-        {
-            SceneObject so = UndoRedo.CreateSO("LightProbeVolume", "Created a LightProbeVolume");
-            so.AddComponent<LightProbeVolume>();
-
-            Selection.SceneObject = so;
-            FocusOnHierarchyOrScene();
-            EditorApplication.SetSceneDirty();
-        }
-
         /// <summary>
         /// Creates a new scene object with a box primitive.
         /// </summary>
-        [MenuItem("Scene Objects/3D primitives/Box", 8100)]
+        [MenuItem("Scene Objects/3D primitives/Box", 8100, true)]
         [ToolbarItem("Cube", ToolbarIcon.NewCube, "Creates a scene object with a box primitive", 1700, true)]
         private static void Add3DBox()
         {

+ 96 - 0
Source/Scripting/MBansheeEngine/Generated/CParticleSystem.generated.cs

@@ -0,0 +1,96 @@
+using System;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+namespace BansheeEngine
+{
+	/** @addtogroup Particles
+	 *  @{
+	 */
+
+	/// <summary>
+	/// Controls spawning, evolution and rendering of particles. Particles can be 2D or 3D, with a variety of rendering 
+	/// options. Particle system should be used for rendering objects that cannot properly be represented using static or 
+	/// animated meshes, like liquids, smoke or flames.
+	///
+	/// The particle system requires you to specify at least one ParticleEmitter, which controls how are new particles 
+	/// generated. You will also want to specify one or more ParticleEvolver%s, which change particle properties over time.
+	/// </summary>
+	public partial class ParticleSystem : Component
+	{
+		private ParticleSystem(bool __dummy0) { }
+		protected ParticleSystem() { }
+
+		/// <summary>Determines general purpose settings that apply to the particle system.</summary>
+		[ShowInInspector]
+		public ParticleSystemSettings Settings
+		{
+			get { return Internal_getSettings(mCachedPtr); }
+			set { Internal_setSettings(mCachedPtr, value); }
+		}
+
+		/// <summary>Determines settings that control particle GPU simulation.</summary>
+		[ShowInInspector]
+		public ParticleGpuSimulationSettings GpuSimulationSettings
+		{
+			get { return Internal_getGpuSimulationSettings(mCachedPtr); }
+			set { Internal_setGpuSimulationSettings(mCachedPtr, value); }
+		}
+
+		/// <summary>
+		/// Set of objects that determine initial position, normal and other properties of newly spawned particles. Each particle 
+		/// system must have at least one emitter.
+		/// </summary>
+		[ShowInInspector]
+		public ParticleEmitter[] Emitters
+		{
+			get { return Internal_getEmitters(mCachedPtr); }
+			set { Internal_setEmitters(mCachedPtr, value); }
+		}
+
+		/// <summary>
+		/// Set of objects that determine how particle properties change during their lifetime. Evolvers only affect CPU 
+		/// simulated particles.
+		/// </summary>
+		[ShowInInspector]
+		public ParticleEvolver[] Evolvers
+		{
+			get { return Internal_getEvolvers(mCachedPtr); }
+			set { Internal_setEvolvers(mCachedPtr, value); }
+		}
+
+		/// <summary>
+		/// Determines the layer bitfield that controls whether a system is considered visible in a specific camera.  Layer must 
+		/// match camera layer in order for the camera to render the component.
+		/// </summary>
+		[ShowInInspector]
+		public ulong Layer
+		{
+			get { return Internal_getLayer(mCachedPtr); }
+			set { Internal_setLayer(mCachedPtr, value); }
+		}
+
+		[MethodImpl(MethodImplOptions.InternalCall)]
+		private static extern void Internal_setSettings(IntPtr thisPtr, ParticleSystemSettings settings);
+		[MethodImpl(MethodImplOptions.InternalCall)]
+		private static extern ParticleSystemSettings Internal_getSettings(IntPtr thisPtr);
+		[MethodImpl(MethodImplOptions.InternalCall)]
+		private static extern void Internal_setGpuSimulationSettings(IntPtr thisPtr, ParticleGpuSimulationSettings settings);
+		[MethodImpl(MethodImplOptions.InternalCall)]
+		private static extern ParticleGpuSimulationSettings Internal_getGpuSimulationSettings(IntPtr thisPtr);
+		[MethodImpl(MethodImplOptions.InternalCall)]
+		private static extern void Internal_setEmitters(IntPtr thisPtr, ParticleEmitter[] emitters);
+		[MethodImpl(MethodImplOptions.InternalCall)]
+		private static extern ParticleEmitter[] Internal_getEmitters(IntPtr thisPtr);
+		[MethodImpl(MethodImplOptions.InternalCall)]
+		private static extern void Internal_setEvolvers(IntPtr thisPtr, ParticleEvolver[] evolvers);
+		[MethodImpl(MethodImplOptions.InternalCall)]
+		private static extern ParticleEvolver[] Internal_getEvolvers(IntPtr thisPtr);
+		[MethodImpl(MethodImplOptions.InternalCall)]
+		private static extern void Internal_setLayer(IntPtr thisPtr, ulong layer);
+		[MethodImpl(MethodImplOptions.InternalCall)]
+		private static extern ulong Internal_getLayer(IntPtr thisPtr);
+	}
+
+	/** @} */
+}

+ 8 - 0
Source/Scripting/MBansheeEngine/Generated/ParticleCollisions.generated.cs

@@ -14,6 +14,12 @@ namespace BansheeEngine
 		private ParticleCollisions(bool __dummy0) { }
 		protected ParticleCollisions() { }
 
+		/// <summary>Creates a new particle collision evolver.</summary>
+		public ParticleCollisions(ParticleCollisionsOptions desc)
+		{
+			Internal_create(this, ref desc);
+		}
+
 		/// <summary>
 		/// Determines a set of planes to use when using the Plane collision mode. Planes are expected to be in world  space.
 		/// </summary>
@@ -57,6 +63,8 @@ namespace BansheeEngine
 		private static extern void Internal_setOptions(IntPtr thisPtr, ref ParticleCollisionsOptions options);
 		[MethodImpl(MethodImplOptions.InternalCall)]
 		private static extern void Internal_getOptions(IntPtr thisPtr, out ParticleCollisionsOptions __output);
+		[MethodImpl(MethodImplOptions.InternalCall)]
+		private static extern void Internal_create(ParticleCollisions managedInstance, ref ParticleCollisionsOptions desc);
 	}
 
 	/** @} */

+ 8 - 0
Source/Scripting/MBansheeEngine/Generated/ParticleColor.generated.cs

@@ -14,6 +14,12 @@ namespace BansheeEngine
 		private ParticleColor(bool __dummy0) { }
 		protected ParticleColor() { }
 
+		/// <summary>Creates a new particle color evolver.</summary>
+		public ParticleColor(ParticleColorOptions desc)
+		{
+			Internal_create(this, ref desc);
+		}
+
 		/// <summary>Options describing the evolver.</summary>
 		public ParticleColorOptions Options
 		{
@@ -30,6 +36,8 @@ namespace BansheeEngine
 		private static extern void Internal_setOptions(IntPtr thisPtr, ref ParticleColorOptions options);
 		[MethodImpl(MethodImplOptions.InternalCall)]
 		private static extern void Internal_getOptions(IntPtr thisPtr, out ParticleColorOptions __output);
+		[MethodImpl(MethodImplOptions.InternalCall)]
+		private static extern void Internal_create(ParticleColor managedInstance, ref ParticleColorOptions desc);
 	}
 
 	/** @} */

+ 8 - 0
Source/Scripting/MBansheeEngine/Generated/ParticleEmitterBoxShape.generated.cs

@@ -17,6 +17,12 @@ namespace BansheeEngine
 		private ParticleEmitterBoxShape(bool __dummy0) { }
 		protected ParticleEmitterBoxShape() { }
 
+		/// <summary>Creates a new particle emitter box shape.</summary>
+		public ParticleEmitterBoxShape(ParticleBoxShapeOptions desc)
+		{
+			Internal_create(this, ref desc);
+		}
+
 		/// <summary>Options describing the shape.</summary>
 		public ParticleBoxShapeOptions Options
 		{
@@ -33,6 +39,8 @@ namespace BansheeEngine
 		private static extern void Internal_setOptions(IntPtr thisPtr, ref ParticleBoxShapeOptions options);
 		[MethodImpl(MethodImplOptions.InternalCall)]
 		private static extern void Internal_getOptions(IntPtr thisPtr, out ParticleBoxShapeOptions __output);
+		[MethodImpl(MethodImplOptions.InternalCall)]
+		private static extern void Internal_create(ParticleEmitterBoxShape managedInstance, ref ParticleBoxShapeOptions desc);
 	}
 
 	/** @} */

+ 8 - 0
Source/Scripting/MBansheeEngine/Generated/ParticleEmitterCircleShape.generated.cs

@@ -18,6 +18,12 @@ namespace BansheeEngine
 		private ParticleEmitterCircleShape(bool __dummy0) { }
 		protected ParticleEmitterCircleShape() { }
 
+		/// <summary>Creates a new particle emitter circle shape.</summary>
+		public ParticleEmitterCircleShape(ParticleCircleShapeOptions desc)
+		{
+			Internal_create(this, ref desc);
+		}
+
 		/// <summary>Options describing the shape.</summary>
 		public ParticleCircleShapeOptions Options
 		{
@@ -34,6 +40,8 @@ namespace BansheeEngine
 		private static extern void Internal_setOptions(IntPtr thisPtr, ref ParticleCircleShapeOptions options);
 		[MethodImpl(MethodImplOptions.InternalCall)]
 		private static extern void Internal_getOptions(IntPtr thisPtr, out ParticleCircleShapeOptions __output);
+		[MethodImpl(MethodImplOptions.InternalCall)]
+		private static extern void Internal_create(ParticleEmitterCircleShape managedInstance, ref ParticleCircleShapeOptions desc);
 	}
 
 	/** @} */

+ 8 - 0
Source/Scripting/MBansheeEngine/Generated/ParticleEmitterConeShape.generated.cs

@@ -18,6 +18,12 @@ namespace BansheeEngine
 		private ParticleEmitterConeShape(bool __dummy0) { }
 		protected ParticleEmitterConeShape() { }
 
+		/// <summary>Creates a new particle emitter cone shape.</summary>
+		public ParticleEmitterConeShape(ParticleConeShapeOptions desc)
+		{
+			Internal_create(this, ref desc);
+		}
+
 		/// <summary>Options describing the shape.</summary>
 		public ParticleConeShapeOptions Options
 		{
@@ -34,6 +40,8 @@ namespace BansheeEngine
 		private static extern void Internal_setOptions(IntPtr thisPtr, ref ParticleConeShapeOptions options);
 		[MethodImpl(MethodImplOptions.InternalCall)]
 		private static extern void Internal_getOptions(IntPtr thisPtr, out ParticleConeShapeOptions __output);
+		[MethodImpl(MethodImplOptions.InternalCall)]
+		private static extern void Internal_create(ParticleEmitterConeShape managedInstance, ref ParticleConeShapeOptions desc);
 	}
 
 	/** @} */

+ 8 - 0
Source/Scripting/MBansheeEngine/Generated/ParticleEmitterHemisphereShape.generated.cs

@@ -18,6 +18,12 @@ namespace BansheeEngine
 		private ParticleEmitterHemisphereShape(bool __dummy0) { }
 		protected ParticleEmitterHemisphereShape() { }
 
+		/// <summary>Creates a new particle emitter sphere shape.</summary>
+		public ParticleEmitterHemisphereShape(ParticleHemisphereShapeOptions desc)
+		{
+			Internal_create(this, ref desc);
+		}
+
 		/// <summary>Options describing the shape.</summary>
 		public ParticleHemisphereShapeOptions Options
 		{
@@ -34,6 +40,8 @@ namespace BansheeEngine
 		private static extern void Internal_setOptions(IntPtr thisPtr, ref ParticleHemisphereShapeOptions options);
 		[MethodImpl(MethodImplOptions.InternalCall)]
 		private static extern void Internal_getOptions(IntPtr thisPtr, out ParticleHemisphereShapeOptions __output);
+		[MethodImpl(MethodImplOptions.InternalCall)]
+		private static extern void Internal_create(ParticleEmitterHemisphereShape managedInstance, ref ParticleHemisphereShapeOptions desc);
 	}
 
 	/** @} */

+ 8 - 0
Source/Scripting/MBansheeEngine/Generated/ParticleEmitterLineShape.generated.cs

@@ -14,6 +14,12 @@ namespace BansheeEngine
 		private ParticleEmitterLineShape(bool __dummy0) { }
 		protected ParticleEmitterLineShape() { }
 
+		/// <summary>Creates a new particle emitter edge shape.</summary>
+		public ParticleEmitterLineShape(ParticleLineShapeOptions desc)
+		{
+			Internal_create(this, ref desc);
+		}
+
 		/// <summary>Options describing the shape.</summary>
 		public ParticleLineShapeOptions Options
 		{
@@ -30,6 +36,8 @@ namespace BansheeEngine
 		private static extern void Internal_setOptions(IntPtr thisPtr, ref ParticleLineShapeOptions options);
 		[MethodImpl(MethodImplOptions.InternalCall)]
 		private static extern void Internal_getOptions(IntPtr thisPtr, out ParticleLineShapeOptions __output);
+		[MethodImpl(MethodImplOptions.InternalCall)]
+		private static extern void Internal_create(ParticleEmitterLineShape managedInstance, ref ParticleLineShapeOptions desc);
 	}
 
 	/** @} */

+ 8 - 0
Source/Scripting/MBansheeEngine/Generated/ParticleEmitterRectShape.generated.cs

@@ -14,6 +14,12 @@ namespace BansheeEngine
 		private ParticleEmitterRectShape(bool __dummy0) { }
 		protected ParticleEmitterRectShape() { }
 
+		/// <summary>Creates a new particle emitter rectangle shape.</summary>
+		public ParticleEmitterRectShape(ParticleRectShapeOptions desc)
+		{
+			Internal_create(this, ref desc);
+		}
+
 		/// <summary>Options describing the shape.</summary>
 		public ParticleRectShapeOptions Options
 		{
@@ -30,6 +36,8 @@ namespace BansheeEngine
 		private static extern void Internal_setOptions(IntPtr thisPtr, ref ParticleRectShapeOptions options);
 		[MethodImpl(MethodImplOptions.InternalCall)]
 		private static extern void Internal_getOptions(IntPtr thisPtr, out ParticleRectShapeOptions __output);
+		[MethodImpl(MethodImplOptions.InternalCall)]
+		private static extern void Internal_create(ParticleEmitterRectShape managedInstance, ref ParticleRectShapeOptions desc);
 	}
 
 	/** @} */

+ 7 - 7
Source/Scripting/MBansheeEngine/Generated/ParticleEmitterSkinnedMeshShape.generated.cs

@@ -17,6 +17,12 @@ namespace BansheeEngine
 		private ParticleEmitterSkinnedMeshShape(bool __dummy0) { }
 		protected ParticleEmitterSkinnedMeshShape() { }
 
+		/// <summary>Creates a new particle emitter skinned mesh shape.</summary>
+		public ParticleEmitterSkinnedMeshShape(ParticleSkinnedMeshShapeOptions desc)
+		{
+			Internal_create(this, ref desc);
+		}
+
 		/// <summary>Options describing the shape.</summary>
 		public ParticleSkinnedMeshShapeOptions Options
 		{
@@ -29,18 +35,12 @@ namespace BansheeEngine
 			set { Internal_setOptions(mCachedPtr, ref value); }
 		}
 
-		/// <summary>Creates a new particle emitter skinned mesh shape.</summary>
-		public static ParticleEmitterShape Create(ParticleSkinnedMeshShapeOptions desc)
-		{
-			return Internal_create(ref desc);
-		}
-
 		[MethodImpl(MethodImplOptions.InternalCall)]
 		private static extern void Internal_setOptions(IntPtr thisPtr, ref ParticleSkinnedMeshShapeOptions options);
 		[MethodImpl(MethodImplOptions.InternalCall)]
 		private static extern void Internal_getOptions(IntPtr thisPtr, out ParticleSkinnedMeshShapeOptions __output);
 		[MethodImpl(MethodImplOptions.InternalCall)]
-		private static extern ParticleEmitterShape Internal_create(ref ParticleSkinnedMeshShapeOptions desc);
+		private static extern void Internal_create(ParticleEmitterSkinnedMeshShape managedInstance, ref ParticleSkinnedMeshShapeOptions desc);
 	}
 
 	/** @} */

+ 8 - 0
Source/Scripting/MBansheeEngine/Generated/ParticleEmitterSphereShape.generated.cs

@@ -18,6 +18,12 @@ namespace BansheeEngine
 		private ParticleEmitterSphereShape(bool __dummy0) { }
 		protected ParticleEmitterSphereShape() { }
 
+		/// <summary>Creates a new particle emitter sphere shape.</summary>
+		public ParticleEmitterSphereShape(ParticleSphereShapeOptions desc)
+		{
+			Internal_create(this, ref desc);
+		}
+
 		/// <summary>Options describing the shape.</summary>
 		public ParticleSphereShapeOptions Options
 		{
@@ -34,6 +40,8 @@ namespace BansheeEngine
 		private static extern void Internal_setOptions(IntPtr thisPtr, ref ParticleSphereShapeOptions options);
 		[MethodImpl(MethodImplOptions.InternalCall)]
 		private static extern void Internal_getOptions(IntPtr thisPtr, out ParticleSphereShapeOptions __output);
+		[MethodImpl(MethodImplOptions.InternalCall)]
+		private static extern void Internal_create(ParticleEmitterSphereShape managedInstance, ref ParticleSphereShapeOptions desc);
 	}
 
 	/** @} */

+ 8 - 0
Source/Scripting/MBansheeEngine/Generated/ParticleEmitterStaticMeshShape.generated.cs

@@ -17,6 +17,12 @@ namespace BansheeEngine
 		private ParticleEmitterStaticMeshShape(bool __dummy0) { }
 		protected ParticleEmitterStaticMeshShape() { }
 
+		/// <summary>Creates a new particle emitter static mesh shape.</summary>
+		public ParticleEmitterStaticMeshShape(ParticleStaticMeshShapeOptions desc)
+		{
+			Internal_create(this, ref desc);
+		}
+
 		/// <summary>Options describing the shape.</summary>
 		public ParticleStaticMeshShapeOptions Options
 		{
@@ -33,6 +39,8 @@ namespace BansheeEngine
 		private static extern void Internal_setOptions(IntPtr thisPtr, ref ParticleStaticMeshShapeOptions options);
 		[MethodImpl(MethodImplOptions.InternalCall)]
 		private static extern void Internal_getOptions(IntPtr thisPtr, out ParticleStaticMeshShapeOptions __output);
+		[MethodImpl(MethodImplOptions.InternalCall)]
+		private static extern void Internal_create(ParticleEmitterStaticMeshShape managedInstance, ref ParticleStaticMeshShapeOptions desc);
 	}
 
 	/** @} */

+ 8 - 0
Source/Scripting/MBansheeEngine/Generated/ParticleForce.generated.cs

@@ -14,6 +14,12 @@ namespace BansheeEngine
 		private ParticleForce(bool __dummy0) { }
 		protected ParticleForce() { }
 
+		/// <summary>Creates a new particle force evolver.</summary>
+		public ParticleForce(ParticleForceOptions desc)
+		{
+			Internal_create(this, ref desc);
+		}
+
 		/// <summary>Options describing the evolver.</summary>
 		public ParticleForceOptions Options
 		{
@@ -30,6 +36,8 @@ namespace BansheeEngine
 		private static extern void Internal_setOptions(IntPtr thisPtr, ref ParticleForceOptions options);
 		[MethodImpl(MethodImplOptions.InternalCall)]
 		private static extern void Internal_getOptions(IntPtr thisPtr, out ParticleForceOptions __output);
+		[MethodImpl(MethodImplOptions.InternalCall)]
+		private static extern void Internal_create(ParticleForce managedInstance, ref ParticleForceOptions desc);
 	}
 
 	/** @} */

+ 8 - 0
Source/Scripting/MBansheeEngine/Generated/ParticleGravity.generated.cs

@@ -14,6 +14,12 @@ namespace BansheeEngine
 		private ParticleGravity(bool __dummy0) { }
 		protected ParticleGravity() { }
 
+		/// <summary>Creates a new particle gravity evolver.</summary>
+		public ParticleGravity(ParticleGravityOptions desc)
+		{
+			Internal_create(this, ref desc);
+		}
+
 		/// <summary>Options describing the evolver.</summary>
 		public ParticleGravityOptions Options
 		{
@@ -30,6 +36,8 @@ namespace BansheeEngine
 		private static extern void Internal_setOptions(IntPtr thisPtr, ref ParticleGravityOptions options);
 		[MethodImpl(MethodImplOptions.InternalCall)]
 		private static extern void Internal_getOptions(IntPtr thisPtr, out ParticleGravityOptions __output);
+		[MethodImpl(MethodImplOptions.InternalCall)]
+		private static extern void Internal_create(ParticleGravity managedInstance, ref ParticleGravityOptions desc);
 	}
 
 	/** @} */

+ 8 - 0
Source/Scripting/MBansheeEngine/Generated/ParticleOrbit.generated.cs

@@ -16,6 +16,12 @@ namespace BansheeEngine
 		private ParticleOrbit(bool __dummy0) { }
 		protected ParticleOrbit() { }
 
+		/// <summary>Creates a new particle orbit evolver.</summary>
+		public ParticleOrbit(ParticleOrbitOptions desc)
+		{
+			Internal_create(this, ref desc);
+		}
+
 		/// <summary>Options describing the evolver.</summary>
 		public ParticleOrbitOptions Options
 		{
@@ -32,6 +38,8 @@ namespace BansheeEngine
 		private static extern void Internal_setOptions(IntPtr thisPtr, ref ParticleOrbitOptions options);
 		[MethodImpl(MethodImplOptions.InternalCall)]
 		private static extern void Internal_getOptions(IntPtr thisPtr, out ParticleOrbitOptions __output);
+		[MethodImpl(MethodImplOptions.InternalCall)]
+		private static extern void Internal_create(ParticleOrbit managedInstance, ref ParticleOrbitOptions desc);
 	}
 
 	/** @} */

+ 8 - 0
Source/Scripting/MBansheeEngine/Generated/ParticleRotation.generated.cs

@@ -14,6 +14,12 @@ namespace BansheeEngine
 		private ParticleRotation(bool __dummy0) { }
 		protected ParticleRotation() { }
 
+		/// <summary>Creates a new particle rotation evolver.</summary>
+		public ParticleRotation(ParticleRotationOptions desc)
+		{
+			Internal_create(this, ref desc);
+		}
+
 		/// <summary>Options describing the evolver.</summary>
 		public ParticleRotationOptions Options
 		{
@@ -30,6 +36,8 @@ namespace BansheeEngine
 		private static extern void Internal_setOptions(IntPtr thisPtr, ref ParticleRotationOptions options);
 		[MethodImpl(MethodImplOptions.InternalCall)]
 		private static extern void Internal_getOptions(IntPtr thisPtr, out ParticleRotationOptions __output);
+		[MethodImpl(MethodImplOptions.InternalCall)]
+		private static extern void Internal_create(ParticleRotation managedInstance, ref ParticleRotationOptions desc);
 	}
 
 	/** @} */

+ 8 - 0
Source/Scripting/MBansheeEngine/Generated/ParticleSize.generated.cs

@@ -14,6 +14,12 @@ namespace BansheeEngine
 		private ParticleSize(bool __dummy0) { }
 		protected ParticleSize() { }
 
+		/// <summary>Creates a new particle size evolver.</summary>
+		public ParticleSize(ParticleSizeOptions desc)
+		{
+			Internal_create(this, ref desc);
+		}
+
 		/// <summary>Options describing the evolver.</summary>
 		public ParticleSizeOptions Options
 		{
@@ -30,6 +36,8 @@ namespace BansheeEngine
 		private static extern void Internal_setOptions(IntPtr thisPtr, ref ParticleSizeOptions options);
 		[MethodImpl(MethodImplOptions.InternalCall)]
 		private static extern void Internal_getOptions(IntPtr thisPtr, out ParticleSizeOptions __output);
+		[MethodImpl(MethodImplOptions.InternalCall)]
+		private static extern void Internal_create(ParticleSize managedInstance, ref ParticleSizeOptions desc);
 	}
 
 	/** @} */

+ 8 - 0
Source/Scripting/MBansheeEngine/Generated/ParticleTextureAnimation.generated.cs

@@ -17,6 +17,12 @@ namespace BansheeEngine
 		private ParticleTextureAnimation(bool __dummy0) { }
 		protected ParticleTextureAnimation() { }
 
+		/// <summary>Creates a new particle texture animation evolver.</summary>
+		public ParticleTextureAnimation(ParticleTextureAnimationOptions desc)
+		{
+			Internal_create(this, ref desc);
+		}
+
 		/// <summary>Options describing the evolver.</summary>
 		public ParticleTextureAnimationOptions Options
 		{
@@ -33,6 +39,8 @@ namespace BansheeEngine
 		private static extern void Internal_setOptions(IntPtr thisPtr, ref ParticleTextureAnimationOptions options);
 		[MethodImpl(MethodImplOptions.InternalCall)]
 		private static extern void Internal_getOptions(IntPtr thisPtr, out ParticleTextureAnimationOptions __output);
+		[MethodImpl(MethodImplOptions.InternalCall)]
+		private static extern void Internal_create(ParticleTextureAnimation managedInstance, ref ParticleTextureAnimationOptions desc);
 	}
 
 	/** @} */

+ 8 - 0
Source/Scripting/MBansheeEngine/Generated/ParticleVelocity.generated.cs

@@ -14,6 +14,12 @@ namespace BansheeEngine
 		private ParticleVelocity(bool __dummy0) { }
 		protected ParticleVelocity() { }
 
+		/// <summary>Creates a new particle velocity evolver.</summary>
+		public ParticleVelocity(ParticleVelocityOptions desc)
+		{
+			Internal_create(this, ref desc);
+		}
+
 		/// <summary>Options describing the evolver.</summary>
 		public ParticleVelocityOptions Options
 		{
@@ -30,6 +36,8 @@ namespace BansheeEngine
 		private static extern void Internal_setOptions(IntPtr thisPtr, ref ParticleVelocityOptions options);
 		[MethodImpl(MethodImplOptions.InternalCall)]
 		private static extern void Internal_getOptions(IntPtr thisPtr, out ParticleVelocityOptions __output);
+		[MethodImpl(MethodImplOptions.InternalCall)]
+		private static extern void Internal_create(ParticleVelocity managedInstance, ref ParticleVelocityOptions desc);
 	}
 
 	/** @} */

+ 12 - 0
Source/Scripting/MBansheeEngine/Generated/VectorField.generated.cs

@@ -17,6 +17,16 @@ namespace BansheeEngine
 		private VectorField(bool __dummy0) { }
 		protected VectorField() { }
 
+		/// <summary>Creates a new vector field.</summary>
+		/// <param name="desc">Description of the vector field to create.</param>
+		/// <param name="values">
+		/// Values to assign to the vector field. Number of entries must match  countX * countY * countZ.
+		/// </param>
+		public VectorField(VectorFieldOptions desc, Vector3[] values)
+		{
+			Internal_create(this, ref desc, values);
+		}
+
 		/// <summary>Returns a reference wrapper for this resource.</summary>
 		public RRef<VectorField> Ref
 		{
@@ -29,6 +39,8 @@ namespace BansheeEngine
 
 		[MethodImpl(MethodImplOptions.InternalCall)]
 		private static extern RRef<VectorField> Internal_GetRef(IntPtr thisPtr);
+		[MethodImpl(MethodImplOptions.InternalCall)]
+		private static extern void Internal_create(VectorField managedInstance, ref VectorFieldOptions desc, Vector3[] values);
 	}
 
 	/** @} */

+ 3 - 0
Source/Scripting/SBansheeEngine/Generated/BsBuiltinComponentLookup.generated.h

@@ -52,6 +52,8 @@
 #include "BsScriptCSkybox.generated.h"
 #include "../../../bsf/Source/Foundation/bsfCore/Components/BsCLightProbeVolume.h"
 #include "BsScriptCLightProbeVolume.generated.h"
+#include "../../../bsf/Source/Foundation/bsfCore/Components/BsCParticleSystem.h"
+#include "BsScriptCParticleSystem.generated.h"
 #include "../../../bsf/Source/Foundation/bsfCore/Components/BsCDecal.h"
 #include "BsScriptCDecal.generated.h"
 
@@ -83,6 +85,7 @@ namespace bs
 		ADD_ENTRY(CBone, ScriptCBone)
 		ADD_ENTRY(CSkybox, ScriptCSkybox)
 		ADD_ENTRY(CLightProbeVolume, ScriptCLightProbeVolume)
+		ADD_ENTRY(CParticleSystem, ScriptCParticleSystem)
 		ADD_ENTRY(CDecal, ScriptCDecal)
 	LOOKUP_END
 }

+ 158 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptCParticleSystem.generated.cpp

@@ -0,0 +1,158 @@
+#include "BsScriptCParticleSystem.generated.h"
+#include "BsMonoMethod.h"
+#include "BsMonoClass.h"
+#include "BsMonoUtil.h"
+#include "../../../bsf/Source/Foundation/bsfCore/Components/BsCParticleSystem.h"
+#include "BsScriptParticleSystemSettings.generated.h"
+#include "BsScriptParticleGpuSimulationSettings.generated.h"
+#include "BsScriptParticleEmitter.generated.h"
+#include "BsScriptParticleEvolver.generated.h"
+
+namespace bs
+{
+	ScriptCParticleSystem::ScriptCParticleSystem(MonoObject* managedInstance, const GameObjectHandle<CParticleSystem>& value)
+		:TScriptComponent(managedInstance, value)
+	{
+	}
+
+	void ScriptCParticleSystem::initRuntimeData()
+	{
+		metaData.scriptClass->addInternalCall("Internal_setSettings", (void*)&ScriptCParticleSystem::Internal_setSettings);
+		metaData.scriptClass->addInternalCall("Internal_getSettings", (void*)&ScriptCParticleSystem::Internal_getSettings);
+		metaData.scriptClass->addInternalCall("Internal_setGpuSimulationSettings", (void*)&ScriptCParticleSystem::Internal_setGpuSimulationSettings);
+		metaData.scriptClass->addInternalCall("Internal_getGpuSimulationSettings", (void*)&ScriptCParticleSystem::Internal_getGpuSimulationSettings);
+		metaData.scriptClass->addInternalCall("Internal_setEmitters", (void*)&ScriptCParticleSystem::Internal_setEmitters);
+		metaData.scriptClass->addInternalCall("Internal_getEmitters", (void*)&ScriptCParticleSystem::Internal_getEmitters);
+		metaData.scriptClass->addInternalCall("Internal_setEvolvers", (void*)&ScriptCParticleSystem::Internal_setEvolvers);
+		metaData.scriptClass->addInternalCall("Internal_getEvolvers", (void*)&ScriptCParticleSystem::Internal_getEvolvers);
+		metaData.scriptClass->addInternalCall("Internal_setLayer", (void*)&ScriptCParticleSystem::Internal_setLayer);
+		metaData.scriptClass->addInternalCall("Internal_getLayer", (void*)&ScriptCParticleSystem::Internal_getLayer);
+
+	}
+
+	void ScriptCParticleSystem::Internal_setSettings(ScriptCParticleSystem* thisPtr, MonoObject* settings)
+	{
+		SPtr<ParticleSystemSettings> tmpsettings;
+		ScriptParticleSystemSettings* scriptsettings;
+		scriptsettings = ScriptParticleSystemSettings::toNative(settings);
+		tmpsettings = scriptsettings->getInternal();
+		thisPtr->getHandle()->setSettings(*tmpsettings);
+	}
+
+	MonoObject* ScriptCParticleSystem::Internal_getSettings(ScriptCParticleSystem* thisPtr)
+	{
+		SPtr<ParticleSystemSettings> tmp__output = bs_shared_ptr_new<ParticleSystemSettings>();
+		*tmp__output = thisPtr->getHandle()->getSettings();
+
+		MonoObject* __output;
+		__output = ScriptParticleSystemSettings::create(tmp__output);
+
+		return __output;
+	}
+
+	void ScriptCParticleSystem::Internal_setGpuSimulationSettings(ScriptCParticleSystem* thisPtr, MonoObject* settings)
+	{
+		SPtr<ParticleGpuSimulationSettings> tmpsettings;
+		ScriptParticleGpuSimulationSettings* scriptsettings;
+		scriptsettings = ScriptParticleGpuSimulationSettings::toNative(settings);
+		tmpsettings = scriptsettings->getInternal();
+		thisPtr->getHandle()->setGpuSimulationSettings(*tmpsettings);
+	}
+
+	MonoObject* ScriptCParticleSystem::Internal_getGpuSimulationSettings(ScriptCParticleSystem* thisPtr)
+	{
+		SPtr<ParticleGpuSimulationSettings> tmp__output = bs_shared_ptr_new<ParticleGpuSimulationSettings>();
+		*tmp__output = thisPtr->getHandle()->getGpuSimulationSettings();
+
+		MonoObject* __output;
+		__output = ScriptParticleGpuSimulationSettings::create(tmp__output);
+
+		return __output;
+	}
+
+	void ScriptCParticleSystem::Internal_setEmitters(ScriptCParticleSystem* thisPtr, MonoArray* emitters)
+	{
+		Vector<SPtr<ParticleEmitter>> vecemitters;
+		if(emitters != nullptr)
+		{
+			ScriptArray arrayemitters(emitters);
+			vecemitters.resize(arrayemitters.size());
+			for(int i = 0; i < (int)arrayemitters.size(); i++)
+			{
+				ScriptParticleEmitter* scriptemitters;
+				scriptemitters = ScriptParticleEmitter::toNative(arrayemitters.get<MonoObject*>(i));
+				if(scriptemitters != nullptr)
+					vecemitters[i] = scriptemitters->getInternal();
+			}
+		}
+		thisPtr->getHandle()->setEmitters(vecemitters);
+	}
+
+	MonoArray* ScriptCParticleSystem::Internal_getEmitters(ScriptCParticleSystem* thisPtr)
+	{
+		Vector<SPtr<ParticleEmitter>> vec__output;
+		vec__output = thisPtr->getHandle()->getEmitters();
+
+		MonoArray* __output;
+		int arraySize__output = (int)vec__output.size();
+		ScriptArray array__output = ScriptArray::create<ScriptParticleEmitter>(arraySize__output);
+		for(int i = 0; i < arraySize__output; i++)
+		{
+			array__output.set(i, ScriptParticleEmitter::create(vec__output[i]));
+		}
+		__output = array__output.getInternal();
+
+		return __output;
+	}
+
+	void ScriptCParticleSystem::Internal_setEvolvers(ScriptCParticleSystem* thisPtr, MonoArray* evolvers)
+	{
+		Vector<SPtr<ParticleEvolver>> vecevolvers;
+		if(evolvers != nullptr)
+		{
+			ScriptArray arrayevolvers(evolvers);
+			vecevolvers.resize(arrayevolvers.size());
+			for(int i = 0; i < (int)arrayevolvers.size(); i++)
+			{
+				ScriptParticleEvolverBase* scriptevolvers;
+				scriptevolvers = (ScriptParticleEvolverBase*)ScriptParticleEvolver::toNative(arrayevolvers.get<MonoObject*>(i));
+				if(scriptevolvers != nullptr)
+					vecevolvers[i] = scriptevolvers->getInternal();
+			}
+		}
+		thisPtr->getHandle()->setEvolvers(vecevolvers);
+	}
+
+	MonoArray* ScriptCParticleSystem::Internal_getEvolvers(ScriptCParticleSystem* thisPtr)
+	{
+		Vector<SPtr<ParticleEvolver>> vec__output;
+		vec__output = thisPtr->getHandle()->getEvolvers();
+
+		MonoArray* __output;
+		int arraySize__output = (int)vec__output.size();
+		ScriptArray array__output = ScriptArray::create<ScriptParticleEvolver>(arraySize__output);
+		for(int i = 0; i < arraySize__output; i++)
+		{
+			array__output.set(i, ScriptParticleEvolver::create(vec__output[i]));
+		}
+		__output = array__output.getInternal();
+
+		return __output;
+	}
+
+	void ScriptCParticleSystem::Internal_setLayer(ScriptCParticleSystem* thisPtr, uint64_t layer)
+	{
+		thisPtr->getHandle()->setLayer(layer);
+	}
+
+	uint64_t ScriptCParticleSystem::Internal_getLayer(ScriptCParticleSystem* thisPtr)
+	{
+		uint64_t tmp__output;
+		tmp__output = thisPtr->getHandle()->getLayer();
+
+		uint64_t __output;
+		__output = tmp__output;
+
+		return __output;
+	}
+}

+ 31 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptCParticleSystem.generated.h

@@ -0,0 +1,31 @@
+#pragma once
+
+#include "BsScriptEnginePrerequisites.h"
+#include "Wrappers/BsScriptComponent.h"
+#include "../../../bsf/Source/Foundation/bsfCore/Particles/BsParticleSystem.h"
+#include "../../../bsf/Source/Foundation/bsfCore/Particles/BsParticleSystem.h"
+
+namespace bs
+{
+	class CParticleSystem;
+
+	class BS_SCR_BE_EXPORT ScriptCParticleSystem : public TScriptComponent<ScriptCParticleSystem, CParticleSystem>
+	{
+	public:
+		SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "ParticleSystem")
+
+		ScriptCParticleSystem(MonoObject* managedInstance, const GameObjectHandle<CParticleSystem>& value);
+
+	private:
+		static void Internal_setSettings(ScriptCParticleSystem* thisPtr, MonoObject* settings);
+		static MonoObject* Internal_getSettings(ScriptCParticleSystem* thisPtr);
+		static void Internal_setGpuSimulationSettings(ScriptCParticleSystem* thisPtr, MonoObject* settings);
+		static MonoObject* Internal_getGpuSimulationSettings(ScriptCParticleSystem* thisPtr);
+		static void Internal_setEmitters(ScriptCParticleSystem* thisPtr, MonoArray* emitters);
+		static MonoArray* Internal_getEmitters(ScriptCParticleSystem* thisPtr);
+		static void Internal_setEvolvers(ScriptCParticleSystem* thisPtr, MonoArray* evolvers);
+		static MonoArray* Internal_getEvolvers(ScriptCParticleSystem* thisPtr);
+		static void Internal_setLayer(ScriptCParticleSystem* thisPtr, uint64_t layer);
+		static uint64_t Internal_getLayer(ScriptCParticleSystem* thisPtr);
+	};
+}

+ 8 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptParticleCollisions.generated.cpp

@@ -7,6 +7,7 @@
 #include "Wrappers/BsScriptPlane.h"
 #include "Wrappers/BsScriptSceneObject.h"
 #include "BsScriptPARTICLE_COLLISIONS_DESC.generated.h"
+#include "BsScriptParticleCollisions.generated.h"
 
 namespace bs
 {
@@ -29,6 +30,7 @@ namespace bs
 		metaData.scriptClass->addInternalCall("Internal_getPlaneObjects", (void*)&ScriptParticleCollisions::Internal_getPlaneObjects);
 		metaData.scriptClass->addInternalCall("Internal_setOptions", (void*)&ScriptParticleCollisions::Internal_setOptions);
 		metaData.scriptClass->addInternalCall("Internal_getOptions", (void*)&ScriptParticleCollisions::Internal_getOptions);
+		metaData.scriptClass->addInternalCall("Internal_create", (void*)&ScriptParticleCollisions::Internal_create);
 
 	}
 
@@ -128,4 +130,10 @@ namespace bs
 
 		*__output = tmp__output;
 	}
+
+	void ScriptParticleCollisions::Internal_create(MonoObject* managedInstance, PARTICLE_COLLISIONS_DESC* desc)
+	{
+		SPtr<ParticleCollisions> instance = ParticleCollisions::create(*desc);
+		new (bs_alloc<ScriptParticleCollisions>())ScriptParticleCollisions(managedInstance, instance);
+	}
 }

+ 1 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptParticleCollisions.generated.h

@@ -27,5 +27,6 @@ namespace bs
 		static MonoArray* Internal_getPlaneObjects(ScriptParticleCollisions* thisPtr);
 		static void Internal_setOptions(ScriptParticleCollisions* thisPtr, PARTICLE_COLLISIONS_DESC* options);
 		static void Internal_getOptions(ScriptParticleCollisions* thisPtr, PARTICLE_COLLISIONS_DESC* __output);
+		static void Internal_create(MonoObject* managedInstance, PARTICLE_COLLISIONS_DESC* desc);
 	};
 }

+ 10 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptParticleColor.generated.cpp

@@ -4,6 +4,7 @@
 #include "BsMonoUtil.h"
 #include "../../../bsf/Source/Foundation/bsfCore/Particles/BsParticleEvolver.h"
 #include "BsScriptPARTICLE_COLOR_DESC.generated.h"
+#include "BsScriptParticleColor.generated.h"
 
 namespace bs
 {
@@ -22,6 +23,7 @@ namespace bs
 	{
 		metaData.scriptClass->addInternalCall("Internal_setOptions", (void*)&ScriptParticleColor::Internal_setOptions);
 		metaData.scriptClass->addInternalCall("Internal_getOptions", (void*)&ScriptParticleColor::Internal_getOptions);
+		metaData.scriptClass->addInternalCall("Internal_create", (void*)&ScriptParticleColor::Internal_create);
 
 	}
 
@@ -52,4 +54,12 @@ namespace bs
 		interop__output = ScriptPARTICLE_COLOR_DESC::toInterop(tmp__output);
 		MonoUtil::valueCopy(__output, &interop__output, ScriptPARTICLE_COLOR_DESC::getMetaData()->scriptClass->_getInternalClass());
 	}
+
+	void ScriptParticleColor::Internal_create(MonoObject* managedInstance, __PARTICLE_COLOR_DESCInterop* desc)
+	{
+		PARTICLE_COLOR_DESC tmpdesc;
+		tmpdesc = ScriptPARTICLE_COLOR_DESC::fromInterop(*desc);
+		SPtr<ParticleColor> instance = ParticleColor::create(tmpdesc);
+		new (bs_alloc<ScriptParticleColor>())ScriptParticleColor(managedInstance, instance);
+	}
 }

+ 1 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptParticleColor.generated.h

@@ -22,5 +22,6 @@ namespace bs
 	private:
 		static void Internal_setOptions(ScriptParticleColor* thisPtr, __PARTICLE_COLOR_DESCInterop* options);
 		static void Internal_getOptions(ScriptParticleColor* thisPtr, __PARTICLE_COLOR_DESCInterop* __output);
+		static void Internal_create(MonoObject* managedInstance, __PARTICLE_COLOR_DESCInterop* desc);
 	};
 }

+ 10 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptParticleEmitterBoxShape.generated.cpp

@@ -4,6 +4,7 @@
 #include "BsMonoUtil.h"
 #include "../../../bsf/Source/Foundation/bsfCore/Particles/BsParticleEmitter.h"
 #include "BsScriptPARTICLE_BOX_SHAPE_DESC.generated.h"
+#include "BsScriptParticleEmitterBoxShape.generated.h"
 
 namespace bs
 {
@@ -22,6 +23,7 @@ namespace bs
 	{
 		metaData.scriptClass->addInternalCall("Internal_setOptions", (void*)&ScriptParticleEmitterBoxShape::Internal_setOptions);
 		metaData.scriptClass->addInternalCall("Internal_getOptions", (void*)&ScriptParticleEmitterBoxShape::Internal_getOptions);
+		metaData.scriptClass->addInternalCall("Internal_create", (void*)&ScriptParticleEmitterBoxShape::Internal_create);
 
 	}
 
@@ -52,4 +54,12 @@ namespace bs
 		interop__output = ScriptPARTICLE_BOX_SHAPE_DESC::toInterop(tmp__output);
 		MonoUtil::valueCopy(__output, &interop__output, ScriptPARTICLE_BOX_SHAPE_DESC::getMetaData()->scriptClass->_getInternalClass());
 	}
+
+	void ScriptParticleEmitterBoxShape::Internal_create(MonoObject* managedInstance, __PARTICLE_BOX_SHAPE_DESCInterop* desc)
+	{
+		PARTICLE_BOX_SHAPE_DESC tmpdesc;
+		tmpdesc = ScriptPARTICLE_BOX_SHAPE_DESC::fromInterop(*desc);
+		SPtr<ParticleEmitterBoxShape> instance = ParticleEmitterBoxShape::create(tmpdesc);
+		new (bs_alloc<ScriptParticleEmitterBoxShape>())ScriptParticleEmitterBoxShape(managedInstance, instance);
+	}
 }

+ 1 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptParticleEmitterBoxShape.generated.h

@@ -22,5 +22,6 @@ namespace bs
 	private:
 		static void Internal_setOptions(ScriptParticleEmitterBoxShape* thisPtr, __PARTICLE_BOX_SHAPE_DESCInterop* options);
 		static void Internal_getOptions(ScriptParticleEmitterBoxShape* thisPtr, __PARTICLE_BOX_SHAPE_DESCInterop* __output);
+		static void Internal_create(MonoObject* managedInstance, __PARTICLE_BOX_SHAPE_DESCInterop* desc);
 	};
 }

+ 10 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptParticleEmitterCircleShape.generated.cpp

@@ -4,6 +4,7 @@
 #include "BsMonoUtil.h"
 #include "../../../bsf/Source/Foundation/bsfCore/Particles/BsParticleEmitter.h"
 #include "BsScriptPARTICLE_CIRCLE_SHAPE_DESC.generated.h"
+#include "BsScriptParticleEmitterCircleShape.generated.h"
 
 namespace bs
 {
@@ -22,6 +23,7 @@ namespace bs
 	{
 		metaData.scriptClass->addInternalCall("Internal_setOptions", (void*)&ScriptParticleEmitterCircleShape::Internal_setOptions);
 		metaData.scriptClass->addInternalCall("Internal_getOptions", (void*)&ScriptParticleEmitterCircleShape::Internal_getOptions);
+		metaData.scriptClass->addInternalCall("Internal_create", (void*)&ScriptParticleEmitterCircleShape::Internal_create);
 
 	}
 
@@ -52,4 +54,12 @@ namespace bs
 		interop__output = ScriptPARTICLE_CIRCLE_SHAPE_DESC::toInterop(tmp__output);
 		MonoUtil::valueCopy(__output, &interop__output, ScriptPARTICLE_CIRCLE_SHAPE_DESC::getMetaData()->scriptClass->_getInternalClass());
 	}
+
+	void ScriptParticleEmitterCircleShape::Internal_create(MonoObject* managedInstance, __PARTICLE_CIRCLE_SHAPE_DESCInterop* desc)
+	{
+		PARTICLE_CIRCLE_SHAPE_DESC tmpdesc;
+		tmpdesc = ScriptPARTICLE_CIRCLE_SHAPE_DESC::fromInterop(*desc);
+		SPtr<ParticleEmitterCircleShape> instance = ParticleEmitterCircleShape::create(tmpdesc);
+		new (bs_alloc<ScriptParticleEmitterCircleShape>())ScriptParticleEmitterCircleShape(managedInstance, instance);
+	}
 }

+ 1 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptParticleEmitterCircleShape.generated.h

@@ -22,5 +22,6 @@ namespace bs
 	private:
 		static void Internal_setOptions(ScriptParticleEmitterCircleShape* thisPtr, __PARTICLE_CIRCLE_SHAPE_DESCInterop* options);
 		static void Internal_getOptions(ScriptParticleEmitterCircleShape* thisPtr, __PARTICLE_CIRCLE_SHAPE_DESCInterop* __output);
+		static void Internal_create(MonoObject* managedInstance, __PARTICLE_CIRCLE_SHAPE_DESCInterop* desc);
 	};
 }

+ 10 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptParticleEmitterConeShape.generated.cpp

@@ -4,6 +4,7 @@
 #include "BsMonoUtil.h"
 #include "../../../bsf/Source/Foundation/bsfCore/Particles/BsParticleEmitter.h"
 #include "BsScriptPARTICLE_CONE_SHAPE_DESC.generated.h"
+#include "BsScriptParticleEmitterConeShape.generated.h"
 
 namespace bs
 {
@@ -22,6 +23,7 @@ namespace bs
 	{
 		metaData.scriptClass->addInternalCall("Internal_setOptions", (void*)&ScriptParticleEmitterConeShape::Internal_setOptions);
 		metaData.scriptClass->addInternalCall("Internal_getOptions", (void*)&ScriptParticleEmitterConeShape::Internal_getOptions);
+		metaData.scriptClass->addInternalCall("Internal_create", (void*)&ScriptParticleEmitterConeShape::Internal_create);
 
 	}
 
@@ -52,4 +54,12 @@ namespace bs
 		interop__output = ScriptPARTICLE_CONE_SHAPE_DESC::toInterop(tmp__output);
 		MonoUtil::valueCopy(__output, &interop__output, ScriptPARTICLE_CONE_SHAPE_DESC::getMetaData()->scriptClass->_getInternalClass());
 	}
+
+	void ScriptParticleEmitterConeShape::Internal_create(MonoObject* managedInstance, __PARTICLE_CONE_SHAPE_DESCInterop* desc)
+	{
+		PARTICLE_CONE_SHAPE_DESC tmpdesc;
+		tmpdesc = ScriptPARTICLE_CONE_SHAPE_DESC::fromInterop(*desc);
+		SPtr<ParticleEmitterConeShape> instance = ParticleEmitterConeShape::create(tmpdesc);
+		new (bs_alloc<ScriptParticleEmitterConeShape>())ScriptParticleEmitterConeShape(managedInstance, instance);
+	}
 }

+ 1 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptParticleEmitterConeShape.generated.h

@@ -22,5 +22,6 @@ namespace bs
 	private:
 		static void Internal_setOptions(ScriptParticleEmitterConeShape* thisPtr, __PARTICLE_CONE_SHAPE_DESCInterop* options);
 		static void Internal_getOptions(ScriptParticleEmitterConeShape* thisPtr, __PARTICLE_CONE_SHAPE_DESCInterop* __output);
+		static void Internal_create(MonoObject* managedInstance, __PARTICLE_CONE_SHAPE_DESCInterop* desc);
 	};
 }

+ 8 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptParticleEmitterHemisphereShape.generated.cpp

@@ -4,6 +4,7 @@
 #include "BsMonoUtil.h"
 #include "../../../bsf/Source/Foundation/bsfCore/Particles/BsParticleEmitter.h"
 #include "BsScriptPARTICLE_HEMISPHERE_SHAPE_DESC.generated.h"
+#include "BsScriptParticleEmitterHemisphereShape.generated.h"
 
 namespace bs
 {
@@ -22,6 +23,7 @@ namespace bs
 	{
 		metaData.scriptClass->addInternalCall("Internal_setOptions", (void*)&ScriptParticleEmitterHemisphereShape::Internal_setOptions);
 		metaData.scriptClass->addInternalCall("Internal_getOptions", (void*)&ScriptParticleEmitterHemisphereShape::Internal_getOptions);
+		metaData.scriptClass->addInternalCall("Internal_create", (void*)&ScriptParticleEmitterHemisphereShape::Internal_create);
 
 	}
 
@@ -48,4 +50,10 @@ namespace bs
 
 		*__output = tmp__output;
 	}
+
+	void ScriptParticleEmitterHemisphereShape::Internal_create(MonoObject* managedInstance, PARTICLE_HEMISPHERE_SHAPE_DESC* desc)
+	{
+		SPtr<ParticleEmitterHemisphereShape> instance = ParticleEmitterHemisphereShape::create(*desc);
+		new (bs_alloc<ScriptParticleEmitterHemisphereShape>())ScriptParticleEmitterHemisphereShape(managedInstance, instance);
+	}
 }

+ 1 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptParticleEmitterHemisphereShape.generated.h

@@ -22,5 +22,6 @@ namespace bs
 	private:
 		static void Internal_setOptions(ScriptParticleEmitterHemisphereShape* thisPtr, PARTICLE_HEMISPHERE_SHAPE_DESC* options);
 		static void Internal_getOptions(ScriptParticleEmitterHemisphereShape* thisPtr, PARTICLE_HEMISPHERE_SHAPE_DESC* __output);
+		static void Internal_create(MonoObject* managedInstance, PARTICLE_HEMISPHERE_SHAPE_DESC* desc);
 	};
 }

+ 10 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptParticleEmitterLineShape.generated.cpp

@@ -4,6 +4,7 @@
 #include "BsMonoUtil.h"
 #include "../../../bsf/Source/Foundation/bsfCore/Particles/BsParticleEmitter.h"
 #include "BsScriptPARTICLE_LINE_SHAPE_DESC.generated.h"
+#include "BsScriptParticleEmitterLineShape.generated.h"
 
 namespace bs
 {
@@ -22,6 +23,7 @@ namespace bs
 	{
 		metaData.scriptClass->addInternalCall("Internal_setOptions", (void*)&ScriptParticleEmitterLineShape::Internal_setOptions);
 		metaData.scriptClass->addInternalCall("Internal_getOptions", (void*)&ScriptParticleEmitterLineShape::Internal_getOptions);
+		metaData.scriptClass->addInternalCall("Internal_create", (void*)&ScriptParticleEmitterLineShape::Internal_create);
 
 	}
 
@@ -52,4 +54,12 @@ namespace bs
 		interop__output = ScriptPARTICLE_LINE_SHAPE_DESC::toInterop(tmp__output);
 		MonoUtil::valueCopy(__output, &interop__output, ScriptPARTICLE_LINE_SHAPE_DESC::getMetaData()->scriptClass->_getInternalClass());
 	}
+
+	void ScriptParticleEmitterLineShape::Internal_create(MonoObject* managedInstance, __PARTICLE_LINE_SHAPE_DESCInterop* desc)
+	{
+		PARTICLE_LINE_SHAPE_DESC tmpdesc;
+		tmpdesc = ScriptPARTICLE_LINE_SHAPE_DESC::fromInterop(*desc);
+		SPtr<ParticleEmitterLineShape> instance = ParticleEmitterLineShape::create(tmpdesc);
+		new (bs_alloc<ScriptParticleEmitterLineShape>())ScriptParticleEmitterLineShape(managedInstance, instance);
+	}
 }

+ 1 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptParticleEmitterLineShape.generated.h

@@ -22,5 +22,6 @@ namespace bs
 	private:
 		static void Internal_setOptions(ScriptParticleEmitterLineShape* thisPtr, __PARTICLE_LINE_SHAPE_DESCInterop* options);
 		static void Internal_getOptions(ScriptParticleEmitterLineShape* thisPtr, __PARTICLE_LINE_SHAPE_DESCInterop* __output);
+		static void Internal_create(MonoObject* managedInstance, __PARTICLE_LINE_SHAPE_DESCInterop* desc);
 	};
 }

+ 10 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptParticleEmitterRectShape.generated.cpp

@@ -4,6 +4,7 @@
 #include "BsMonoUtil.h"
 #include "../../../bsf/Source/Foundation/bsfCore/Particles/BsParticleEmitter.h"
 #include "BsScriptPARTICLE_RECT_SHAPE_DESC.generated.h"
+#include "BsScriptParticleEmitterRectShape.generated.h"
 
 namespace bs
 {
@@ -22,6 +23,7 @@ namespace bs
 	{
 		metaData.scriptClass->addInternalCall("Internal_setOptions", (void*)&ScriptParticleEmitterRectShape::Internal_setOptions);
 		metaData.scriptClass->addInternalCall("Internal_getOptions", (void*)&ScriptParticleEmitterRectShape::Internal_getOptions);
+		metaData.scriptClass->addInternalCall("Internal_create", (void*)&ScriptParticleEmitterRectShape::Internal_create);
 
 	}
 
@@ -52,4 +54,12 @@ namespace bs
 		interop__output = ScriptPARTICLE_RECT_SHAPE_DESC::toInterop(tmp__output);
 		MonoUtil::valueCopy(__output, &interop__output, ScriptPARTICLE_RECT_SHAPE_DESC::getMetaData()->scriptClass->_getInternalClass());
 	}
+
+	void ScriptParticleEmitterRectShape::Internal_create(MonoObject* managedInstance, __PARTICLE_RECT_SHAPE_DESCInterop* desc)
+	{
+		PARTICLE_RECT_SHAPE_DESC tmpdesc;
+		tmpdesc = ScriptPARTICLE_RECT_SHAPE_DESC::fromInterop(*desc);
+		SPtr<ParticleEmitterRectShape> instance = ParticleEmitterRectShape::create(tmpdesc);
+		new (bs_alloc<ScriptParticleEmitterRectShape>())ScriptParticleEmitterRectShape(managedInstance, instance);
+	}
 }

+ 1 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptParticleEmitterRectShape.generated.h

@@ -22,5 +22,6 @@ namespace bs
 	private:
 		static void Internal_setOptions(ScriptParticleEmitterRectShape* thisPtr, __PARTICLE_RECT_SHAPE_DESCInterop* options);
 		static void Internal_getOptions(ScriptParticleEmitterRectShape* thisPtr, __PARTICLE_RECT_SHAPE_DESCInterop* __output);
+		static void Internal_create(MonoObject* managedInstance, __PARTICLE_RECT_SHAPE_DESCInterop* desc);
 	};
 }

+ 4 - 9
Source/Scripting/SBansheeEngine/Generated/BsScriptParticleEmitterSkinnedMeshShape.generated.cpp

@@ -4,7 +4,7 @@
 #include "BsMonoUtil.h"
 #include "../../../bsf/Source/Foundation/bsfCore/Particles/BsParticleEmitter.h"
 #include "BsScriptPARTICLE_SKINNED_MESH_SHAPE_DESC.generated.h"
-#include "BsScriptParticleEmitterShape.generated.h"
+#include "BsScriptParticleEmitterSkinnedMeshShape.generated.h"
 
 namespace bs
 {
@@ -55,16 +55,11 @@ namespace bs
 		MonoUtil::valueCopy(__output, &interop__output, ScriptPARTICLE_SKINNED_MESH_SHAPE_DESC::getMetaData()->scriptClass->_getInternalClass());
 	}
 
-	MonoObject* ScriptParticleEmitterSkinnedMeshShape::Internal_create(__PARTICLE_SKINNED_MESH_SHAPE_DESCInterop* desc)
+	void ScriptParticleEmitterSkinnedMeshShape::Internal_create(MonoObject* managedInstance, __PARTICLE_SKINNED_MESH_SHAPE_DESCInterop* desc)
 	{
-		SPtr<ParticleEmitterShape> tmp__output;
 		PARTICLE_SKINNED_MESH_SHAPE_DESC tmpdesc;
 		tmpdesc = ScriptPARTICLE_SKINNED_MESH_SHAPE_DESC::fromInterop(*desc);
-		tmp__output = ParticleEmitterSkinnedMeshShape::create(tmpdesc);
-
-		MonoObject* __output;
-		__output = ScriptParticleEmitterShape::create(tmp__output);
-
-		return __output;
+		SPtr<ParticleEmitterSkinnedMeshShape> instance = ParticleEmitterSkinnedMeshShape::create(tmpdesc);
+		new (bs_alloc<ScriptParticleEmitterSkinnedMeshShape>())ScriptParticleEmitterSkinnedMeshShape(managedInstance, instance);
 	}
 }

+ 1 - 1
Source/Scripting/SBansheeEngine/Generated/BsScriptParticleEmitterSkinnedMeshShape.generated.h

@@ -22,6 +22,6 @@ namespace bs
 	private:
 		static void Internal_setOptions(ScriptParticleEmitterSkinnedMeshShape* thisPtr, __PARTICLE_SKINNED_MESH_SHAPE_DESCInterop* options);
 		static void Internal_getOptions(ScriptParticleEmitterSkinnedMeshShape* thisPtr, __PARTICLE_SKINNED_MESH_SHAPE_DESCInterop* __output);
-		static MonoObject* Internal_create(__PARTICLE_SKINNED_MESH_SHAPE_DESCInterop* desc);
+		static void Internal_create(MonoObject* managedInstance, __PARTICLE_SKINNED_MESH_SHAPE_DESCInterop* desc);
 	};
 }

+ 8 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptParticleEmitterSphereShape.generated.cpp

@@ -4,6 +4,7 @@
 #include "BsMonoUtil.h"
 #include "../../../bsf/Source/Foundation/bsfCore/Particles/BsParticleEmitter.h"
 #include "BsScriptPARTICLE_SPHERE_SHAPE_DESC.generated.h"
+#include "BsScriptParticleEmitterSphereShape.generated.h"
 
 namespace bs
 {
@@ -22,6 +23,7 @@ namespace bs
 	{
 		metaData.scriptClass->addInternalCall("Internal_setOptions", (void*)&ScriptParticleEmitterSphereShape::Internal_setOptions);
 		metaData.scriptClass->addInternalCall("Internal_getOptions", (void*)&ScriptParticleEmitterSphereShape::Internal_getOptions);
+		metaData.scriptClass->addInternalCall("Internal_create", (void*)&ScriptParticleEmitterSphereShape::Internal_create);
 
 	}
 
@@ -48,4 +50,10 @@ namespace bs
 
 		*__output = tmp__output;
 	}
+
+	void ScriptParticleEmitterSphereShape::Internal_create(MonoObject* managedInstance, PARTICLE_SPHERE_SHAPE_DESC* desc)
+	{
+		SPtr<ParticleEmitterSphereShape> instance = ParticleEmitterSphereShape::create(*desc);
+		new (bs_alloc<ScriptParticleEmitterSphereShape>())ScriptParticleEmitterSphereShape(managedInstance, instance);
+	}
 }

+ 1 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptParticleEmitterSphereShape.generated.h

@@ -22,5 +22,6 @@ namespace bs
 	private:
 		static void Internal_setOptions(ScriptParticleEmitterSphereShape* thisPtr, PARTICLE_SPHERE_SHAPE_DESC* options);
 		static void Internal_getOptions(ScriptParticleEmitterSphereShape* thisPtr, PARTICLE_SPHERE_SHAPE_DESC* __output);
+		static void Internal_create(MonoObject* managedInstance, PARTICLE_SPHERE_SHAPE_DESC* desc);
 	};
 }

+ 10 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptParticleEmitterStaticMeshShape.generated.cpp

@@ -4,6 +4,7 @@
 #include "BsMonoUtil.h"
 #include "../../../bsf/Source/Foundation/bsfCore/Particles/BsParticleEmitter.h"
 #include "BsScriptPARTICLE_STATIC_MESH_SHAPE_DESC.generated.h"
+#include "BsScriptParticleEmitterStaticMeshShape.generated.h"
 
 namespace bs
 {
@@ -22,6 +23,7 @@ namespace bs
 	{
 		metaData.scriptClass->addInternalCall("Internal_setOptions", (void*)&ScriptParticleEmitterStaticMeshShape::Internal_setOptions);
 		metaData.scriptClass->addInternalCall("Internal_getOptions", (void*)&ScriptParticleEmitterStaticMeshShape::Internal_getOptions);
+		metaData.scriptClass->addInternalCall("Internal_create", (void*)&ScriptParticleEmitterStaticMeshShape::Internal_create);
 
 	}
 
@@ -52,4 +54,12 @@ namespace bs
 		interop__output = ScriptPARTICLE_STATIC_MESH_SHAPE_DESC::toInterop(tmp__output);
 		MonoUtil::valueCopy(__output, &interop__output, ScriptPARTICLE_STATIC_MESH_SHAPE_DESC::getMetaData()->scriptClass->_getInternalClass());
 	}
+
+	void ScriptParticleEmitterStaticMeshShape::Internal_create(MonoObject* managedInstance, __PARTICLE_STATIC_MESH_SHAPE_DESCInterop* desc)
+	{
+		PARTICLE_STATIC_MESH_SHAPE_DESC tmpdesc;
+		tmpdesc = ScriptPARTICLE_STATIC_MESH_SHAPE_DESC::fromInterop(*desc);
+		SPtr<ParticleEmitterStaticMeshShape> instance = ParticleEmitterStaticMeshShape::create(tmpdesc);
+		new (bs_alloc<ScriptParticleEmitterStaticMeshShape>())ScriptParticleEmitterStaticMeshShape(managedInstance, instance);
+	}
 }

+ 1 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptParticleEmitterStaticMeshShape.generated.h

@@ -22,5 +22,6 @@ namespace bs
 	private:
 		static void Internal_setOptions(ScriptParticleEmitterStaticMeshShape* thisPtr, __PARTICLE_STATIC_MESH_SHAPE_DESCInterop* options);
 		static void Internal_getOptions(ScriptParticleEmitterStaticMeshShape* thisPtr, __PARTICLE_STATIC_MESH_SHAPE_DESCInterop* __output);
+		static void Internal_create(MonoObject* managedInstance, __PARTICLE_STATIC_MESH_SHAPE_DESCInterop* desc);
 	};
 }

+ 10 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptParticleForce.generated.cpp

@@ -4,6 +4,7 @@
 #include "BsMonoUtil.h"
 #include "../../../bsf/Source/Foundation/bsfCore/Particles/BsParticleEvolver.h"
 #include "BsScriptPARTICLE_FORCE_DESC.generated.h"
+#include "BsScriptParticleForce.generated.h"
 
 namespace bs
 {
@@ -22,6 +23,7 @@ namespace bs
 	{
 		metaData.scriptClass->addInternalCall("Internal_setOptions", (void*)&ScriptParticleForce::Internal_setOptions);
 		metaData.scriptClass->addInternalCall("Internal_getOptions", (void*)&ScriptParticleForce::Internal_getOptions);
+		metaData.scriptClass->addInternalCall("Internal_create", (void*)&ScriptParticleForce::Internal_create);
 
 	}
 
@@ -52,4 +54,12 @@ namespace bs
 		interop__output = ScriptPARTICLE_FORCE_DESC::toInterop(tmp__output);
 		MonoUtil::valueCopy(__output, &interop__output, ScriptPARTICLE_FORCE_DESC::getMetaData()->scriptClass->_getInternalClass());
 	}
+
+	void ScriptParticleForce::Internal_create(MonoObject* managedInstance, __PARTICLE_FORCE_DESCInterop* desc)
+	{
+		PARTICLE_FORCE_DESC tmpdesc;
+		tmpdesc = ScriptPARTICLE_FORCE_DESC::fromInterop(*desc);
+		SPtr<ParticleForce> instance = ParticleForce::create(tmpdesc);
+		new (bs_alloc<ScriptParticleForce>())ScriptParticleForce(managedInstance, instance);
+	}
 }

+ 1 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptParticleForce.generated.h

@@ -22,5 +22,6 @@ namespace bs
 	private:
 		static void Internal_setOptions(ScriptParticleForce* thisPtr, __PARTICLE_FORCE_DESCInterop* options);
 		static void Internal_getOptions(ScriptParticleForce* thisPtr, __PARTICLE_FORCE_DESCInterop* __output);
+		static void Internal_create(MonoObject* managedInstance, __PARTICLE_FORCE_DESCInterop* desc);
 	};
 }

+ 8 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptParticleGravity.generated.cpp

@@ -4,6 +4,7 @@
 #include "BsMonoUtil.h"
 #include "../../../bsf/Source/Foundation/bsfCore/Particles/BsParticleEvolver.h"
 #include "BsScriptPARTICLE_GRAVITY_DESC.generated.h"
+#include "BsScriptParticleGravity.generated.h"
 
 namespace bs
 {
@@ -22,6 +23,7 @@ namespace bs
 	{
 		metaData.scriptClass->addInternalCall("Internal_setOptions", (void*)&ScriptParticleGravity::Internal_setOptions);
 		metaData.scriptClass->addInternalCall("Internal_getOptions", (void*)&ScriptParticleGravity::Internal_getOptions);
+		metaData.scriptClass->addInternalCall("Internal_create", (void*)&ScriptParticleGravity::Internal_create);
 
 	}
 
@@ -48,4 +50,10 @@ namespace bs
 
 		*__output = tmp__output;
 	}
+
+	void ScriptParticleGravity::Internal_create(MonoObject* managedInstance, PARTICLE_GRAVITY_DESC* desc)
+	{
+		SPtr<ParticleGravity> instance = ParticleGravity::create(*desc);
+		new (bs_alloc<ScriptParticleGravity>())ScriptParticleGravity(managedInstance, instance);
+	}
 }

+ 1 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptParticleGravity.generated.h

@@ -22,5 +22,6 @@ namespace bs
 	private:
 		static void Internal_setOptions(ScriptParticleGravity* thisPtr, PARTICLE_GRAVITY_DESC* options);
 		static void Internal_getOptions(ScriptParticleGravity* thisPtr, PARTICLE_GRAVITY_DESC* __output);
+		static void Internal_create(MonoObject* managedInstance, PARTICLE_GRAVITY_DESC* desc);
 	};
 }

+ 10 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptParticleOrbit.generated.cpp

@@ -4,6 +4,7 @@
 #include "BsMonoUtil.h"
 #include "../../../bsf/Source/Foundation/bsfCore/Particles/BsParticleEvolver.h"
 #include "BsScriptPARTICLE_ORBIT_DESC.generated.h"
+#include "BsScriptParticleOrbit.generated.h"
 
 namespace bs
 {
@@ -22,6 +23,7 @@ namespace bs
 	{
 		metaData.scriptClass->addInternalCall("Internal_setOptions", (void*)&ScriptParticleOrbit::Internal_setOptions);
 		metaData.scriptClass->addInternalCall("Internal_getOptions", (void*)&ScriptParticleOrbit::Internal_getOptions);
+		metaData.scriptClass->addInternalCall("Internal_create", (void*)&ScriptParticleOrbit::Internal_create);
 
 	}
 
@@ -52,4 +54,12 @@ namespace bs
 		interop__output = ScriptPARTICLE_ORBIT_DESC::toInterop(tmp__output);
 		MonoUtil::valueCopy(__output, &interop__output, ScriptPARTICLE_ORBIT_DESC::getMetaData()->scriptClass->_getInternalClass());
 	}
+
+	void ScriptParticleOrbit::Internal_create(MonoObject* managedInstance, __PARTICLE_ORBIT_DESCInterop* desc)
+	{
+		PARTICLE_ORBIT_DESC tmpdesc;
+		tmpdesc = ScriptPARTICLE_ORBIT_DESC::fromInterop(*desc);
+		SPtr<ParticleOrbit> instance = ParticleOrbit::create(tmpdesc);
+		new (bs_alloc<ScriptParticleOrbit>())ScriptParticleOrbit(managedInstance, instance);
+	}
 }

+ 1 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptParticleOrbit.generated.h

@@ -22,5 +22,6 @@ namespace bs
 	private:
 		static void Internal_setOptions(ScriptParticleOrbit* thisPtr, __PARTICLE_ORBIT_DESCInterop* options);
 		static void Internal_getOptions(ScriptParticleOrbit* thisPtr, __PARTICLE_ORBIT_DESCInterop* __output);
+		static void Internal_create(MonoObject* managedInstance, __PARTICLE_ORBIT_DESCInterop* desc);
 	};
 }

+ 10 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptParticleRotation.generated.cpp

@@ -4,6 +4,7 @@
 #include "BsMonoUtil.h"
 #include "../../../bsf/Source/Foundation/bsfCore/Particles/BsParticleEvolver.h"
 #include "BsScriptPARTICLE_ROTATION_DESC.generated.h"
+#include "BsScriptParticleRotation.generated.h"
 
 namespace bs
 {
@@ -22,6 +23,7 @@ namespace bs
 	{
 		metaData.scriptClass->addInternalCall("Internal_setOptions", (void*)&ScriptParticleRotation::Internal_setOptions);
 		metaData.scriptClass->addInternalCall("Internal_getOptions", (void*)&ScriptParticleRotation::Internal_getOptions);
+		metaData.scriptClass->addInternalCall("Internal_create", (void*)&ScriptParticleRotation::Internal_create);
 
 	}
 
@@ -52,4 +54,12 @@ namespace bs
 		interop__output = ScriptPARTICLE_ROTATION_DESC::toInterop(tmp__output);
 		MonoUtil::valueCopy(__output, &interop__output, ScriptPARTICLE_ROTATION_DESC::getMetaData()->scriptClass->_getInternalClass());
 	}
+
+	void ScriptParticleRotation::Internal_create(MonoObject* managedInstance, __PARTICLE_ROTATION_DESCInterop* desc)
+	{
+		PARTICLE_ROTATION_DESC tmpdesc;
+		tmpdesc = ScriptPARTICLE_ROTATION_DESC::fromInterop(*desc);
+		SPtr<ParticleRotation> instance = ParticleRotation::create(tmpdesc);
+		new (bs_alloc<ScriptParticleRotation>())ScriptParticleRotation(managedInstance, instance);
+	}
 }

+ 1 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptParticleRotation.generated.h

@@ -22,5 +22,6 @@ namespace bs
 	private:
 		static void Internal_setOptions(ScriptParticleRotation* thisPtr, __PARTICLE_ROTATION_DESCInterop* options);
 		static void Internal_getOptions(ScriptParticleRotation* thisPtr, __PARTICLE_ROTATION_DESCInterop* __output);
+		static void Internal_create(MonoObject* managedInstance, __PARTICLE_ROTATION_DESCInterop* desc);
 	};
 }

+ 10 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptParticleSize.generated.cpp

@@ -4,6 +4,7 @@
 #include "BsMonoUtil.h"
 #include "../../../bsf/Source/Foundation/bsfCore/Particles/BsParticleEvolver.h"
 #include "BsScriptPARTICLE_SIZE_DESC.generated.h"
+#include "BsScriptParticleSize.generated.h"
 
 namespace bs
 {
@@ -22,6 +23,7 @@ namespace bs
 	{
 		metaData.scriptClass->addInternalCall("Internal_setOptions", (void*)&ScriptParticleSize::Internal_setOptions);
 		metaData.scriptClass->addInternalCall("Internal_getOptions", (void*)&ScriptParticleSize::Internal_getOptions);
+		metaData.scriptClass->addInternalCall("Internal_create", (void*)&ScriptParticleSize::Internal_create);
 
 	}
 
@@ -52,4 +54,12 @@ namespace bs
 		interop__output = ScriptPARTICLE_SIZE_DESC::toInterop(tmp__output);
 		MonoUtil::valueCopy(__output, &interop__output, ScriptPARTICLE_SIZE_DESC::getMetaData()->scriptClass->_getInternalClass());
 	}
+
+	void ScriptParticleSize::Internal_create(MonoObject* managedInstance, __PARTICLE_SIZE_DESCInterop* desc)
+	{
+		PARTICLE_SIZE_DESC tmpdesc;
+		tmpdesc = ScriptPARTICLE_SIZE_DESC::fromInterop(*desc);
+		SPtr<ParticleSize> instance = ParticleSize::create(tmpdesc);
+		new (bs_alloc<ScriptParticleSize>())ScriptParticleSize(managedInstance, instance);
+	}
 }

+ 1 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptParticleSize.generated.h

@@ -22,5 +22,6 @@ namespace bs
 	private:
 		static void Internal_setOptions(ScriptParticleSize* thisPtr, __PARTICLE_SIZE_DESCInterop* options);
 		static void Internal_getOptions(ScriptParticleSize* thisPtr, __PARTICLE_SIZE_DESCInterop* __output);
+		static void Internal_create(MonoObject* managedInstance, __PARTICLE_SIZE_DESCInterop* desc);
 	};
 }

+ 8 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptParticleTextureAnimation.generated.cpp

@@ -4,6 +4,7 @@
 #include "BsMonoUtil.h"
 #include "../../../bsf/Source/Foundation/bsfCore/Particles/BsParticleEvolver.h"
 #include "BsScriptPARTICLE_TEXTURE_ANIMATION_DESC.generated.h"
+#include "BsScriptParticleTextureAnimation.generated.h"
 
 namespace bs
 {
@@ -22,6 +23,7 @@ namespace bs
 	{
 		metaData.scriptClass->addInternalCall("Internal_setOptions", (void*)&ScriptParticleTextureAnimation::Internal_setOptions);
 		metaData.scriptClass->addInternalCall("Internal_getOptions", (void*)&ScriptParticleTextureAnimation::Internal_getOptions);
+		metaData.scriptClass->addInternalCall("Internal_create", (void*)&ScriptParticleTextureAnimation::Internal_create);
 
 	}
 
@@ -48,4 +50,10 @@ namespace bs
 
 		*__output = tmp__output;
 	}
+
+	void ScriptParticleTextureAnimation::Internal_create(MonoObject* managedInstance, PARTICLE_TEXTURE_ANIMATION_DESC* desc)
+	{
+		SPtr<ParticleTextureAnimation> instance = ParticleTextureAnimation::create(*desc);
+		new (bs_alloc<ScriptParticleTextureAnimation>())ScriptParticleTextureAnimation(managedInstance, instance);
+	}
 }

+ 1 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptParticleTextureAnimation.generated.h

@@ -22,5 +22,6 @@ namespace bs
 	private:
 		static void Internal_setOptions(ScriptParticleTextureAnimation* thisPtr, PARTICLE_TEXTURE_ANIMATION_DESC* options);
 		static void Internal_getOptions(ScriptParticleTextureAnimation* thisPtr, PARTICLE_TEXTURE_ANIMATION_DESC* __output);
+		static void Internal_create(MonoObject* managedInstance, PARTICLE_TEXTURE_ANIMATION_DESC* desc);
 	};
 }

+ 10 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptParticleVelocity.generated.cpp

@@ -4,6 +4,7 @@
 #include "BsMonoUtil.h"
 #include "../../../bsf/Source/Foundation/bsfCore/Particles/BsParticleEvolver.h"
 #include "BsScriptPARTICLE_VELOCITY_DESC.generated.h"
+#include "BsScriptParticleVelocity.generated.h"
 
 namespace bs
 {
@@ -22,6 +23,7 @@ namespace bs
 	{
 		metaData.scriptClass->addInternalCall("Internal_setOptions", (void*)&ScriptParticleVelocity::Internal_setOptions);
 		metaData.scriptClass->addInternalCall("Internal_getOptions", (void*)&ScriptParticleVelocity::Internal_getOptions);
+		metaData.scriptClass->addInternalCall("Internal_create", (void*)&ScriptParticleVelocity::Internal_create);
 
 	}
 
@@ -52,4 +54,12 @@ namespace bs
 		interop__output = ScriptPARTICLE_VELOCITY_DESC::toInterop(tmp__output);
 		MonoUtil::valueCopy(__output, &interop__output, ScriptPARTICLE_VELOCITY_DESC::getMetaData()->scriptClass->_getInternalClass());
 	}
+
+	void ScriptParticleVelocity::Internal_create(MonoObject* managedInstance, __PARTICLE_VELOCITY_DESCInterop* desc)
+	{
+		PARTICLE_VELOCITY_DESC tmpdesc;
+		tmpdesc = ScriptPARTICLE_VELOCITY_DESC::fromInterop(*desc);
+		SPtr<ParticleVelocity> instance = ParticleVelocity::create(tmpdesc);
+		new (bs_alloc<ScriptParticleVelocity>())ScriptParticleVelocity(managedInstance, instance);
+	}
 }

+ 1 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptParticleVelocity.generated.h

@@ -22,5 +22,6 @@ namespace bs
 	private:
 		static void Internal_setOptions(ScriptParticleVelocity* thisPtr, __PARTICLE_VELOCITY_DESCInterop* options);
 		static void Internal_getOptions(ScriptParticleVelocity* thisPtr, __PARTICLE_VELOCITY_DESCInterop* __output);
+		static void Internal_create(MonoObject* managedInstance, __PARTICLE_VELOCITY_DESCInterop* desc);
 	};
 }

+ 23 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptVectorField.generated.cpp

@@ -3,6 +3,11 @@
 #include "BsMonoClass.h"
 #include "BsMonoUtil.h"
 #include "../../../bsf/Source/Foundation/bsfCore/Particles/BsVectorField.h"
+#include "BsScriptResourceManager.h"
+#include "Wrappers/BsScriptRRefBase.h"
+#include "../../../bsf/Source/Foundation/bsfCore/Particles/BsVectorField.h"
+#include "Wrappers/BsScriptVector.h"
+#include "BsScriptVECTOR_FIELD_DESC.generated.h"
 
 namespace bs
 {
@@ -14,6 +19,7 @@ namespace bs
 	void ScriptVectorField::initRuntimeData()
 	{
 		metaData.scriptClass->addInternalCall("Internal_GetRef", (void*)&ScriptVectorField::Internal_getRef);
+		metaData.scriptClass->addInternalCall("Internal_create", (void*)&ScriptVectorField::Internal_create);
 
 	}
 
@@ -29,4 +35,21 @@ namespace bs
 		return thisPtr->getRRef();
 	}
 
+	void ScriptVectorField::Internal_create(MonoObject* managedInstance, __VECTOR_FIELD_DESCInterop* desc, MonoArray* values)
+	{
+		VECTOR_FIELD_DESC tmpdesc;
+		tmpdesc = ScriptVECTOR_FIELD_DESC::fromInterop(*desc);
+		Vector<Vector3> vecvalues;
+		if(values != nullptr)
+		{
+			ScriptArray arrayvalues(values);
+			vecvalues.resize(arrayvalues.size());
+			for(int i = 0; i < (int)arrayvalues.size(); i++)
+			{
+				vecvalues[i] = arrayvalues.get<Vector3>(i);
+			}
+		}
+		ResourceHandle<VectorField> instance = VectorField::create(tmpdesc, vecvalues);
+		ScriptResourceManager::instance().createBuiltinScriptResource(instance, managedInstance);
+	}
 }

+ 3 - 0
Source/Scripting/SBansheeEngine/Generated/BsScriptVectorField.generated.h

@@ -2,10 +2,12 @@
 
 #include "BsScriptEnginePrerequisites.h"
 #include "Wrappers/BsScriptResource.h"
+#include "Math/BsVector3.h"
 
 namespace bs
 {
 	class VectorField;
+	struct __VECTOR_FIELD_DESCInterop;
 
 	class BS_SCR_BE_EXPORT ScriptVectorField : public TScriptResource<ScriptVectorField, VectorField>
 	{
@@ -19,5 +21,6 @@ namespace bs
 	private:
 		static MonoObject* Internal_getRef(ScriptVectorField* thisPtr);
 
+		static void Internal_create(MonoObject* managedInstance, __VECTOR_FIELD_DESCInterop* desc, MonoArray* values);
 	};
 }

+ 1 - 1
Source/bsf

@@ -1 +1 @@
-Subproject commit 852c0abe4c9d24b7dc1d2065ea05c879bf03fd92
+Subproject commit 1e88d79b023f5ee331e51707056c66216a55210a