Browse Source

Merge remote-tracking branch '1vanK/EditorImprovements'

Lasse Öörni 10 years ago
parent
commit
989346f3a5

+ 43 - 15
bin/Data/Scripts/Editor/EditorParticleEffect.as

@@ -7,11 +7,13 @@ bool inParticleEffectRefresh = false;
 View3D@ particleEffectPreview;
 Scene@ particlePreviewScene;
 Node@ particleEffectPreviewNode;
+Node@ particleEffectPreviewGizmoNode;
 Node@ particlePreviewCameraNode;
 Node@ particlePreviewLightNode;
 Light@ particlePreviewLight;
 ParticleEmitter@ particleEffectEmitter;
 float particleResetTimer;
+bool showParticlePreviewAxes = true;
 
 void CreateParticleEffectEditor()
 {
@@ -26,8 +28,9 @@ void CreateParticleEffectEditor()
     InitParticleEffectBasicAttributes();
     RefreshParticleEffectEditor();
 
-    int height = Min(ui.root.height - 60, 500);
-    particleEffectWindow.SetSize(300, height);
+    int width = Min(ui.root.width - 60, 800);
+    int height = Min(ui.root.height - 60, 600);
+    particleEffectWindow.SetSize(width, height);
     CenterDialog(particleEffectWindow);
 
     HideParticleEffectEditor();
@@ -115,7 +118,24 @@ void CreateParticleEffectEditor()
     SubscribeToEvent(particleEffectWindow.GetChild("Scaled", true), "Toggled", "EditParticleEffectScaled");
     SubscribeToEvent(particleEffectWindow.GetChild("Sorted", true), "Toggled", "EditParticleEffectSorted");
     SubscribeToEvent(particleEffectWindow.GetChild("Relative", true), "Toggled", "EditParticleEffectRelative");
+    
+    SubscribeToEvent(particleEffectWindow.GetChild("ResetViewport", true), "Released", "ParticleEffectResetViewport");
+    SubscribeToEvent(particleEffectWindow.GetChild("ShowAxes", true), "Toggled", "ParticleEffectShowAxes");
+}
+
+void ParticleEffectResetViewport(StringHash eventType, VariantMap& eventData)
+{
+    particleEffectPreviewNode.rotation = Quaternion(0, 0, 0);
+    particleEffectPreviewNode.worldPosition = Vector3(0, 0, 0);
+    particleEffectPreview.QueueUpdate();
+}
 
+void ParticleEffectShowAxes(StringHash eventType, VariantMap& eventData)
+{
+    CheckBox@ element = eventData["Element"].GetPtr();
+    showParticlePreviewAxes = element.checked;
+    particleEffectPreviewGizmoNode.enabled = showParticlePreviewAxes;
+    particleEffectPreview.QueueUpdate();
 }
 
 void EditParticleEffectColorFrameNew(StringHash eventType, VariantMap& eventData)
@@ -797,13 +817,13 @@ void InitParticleEffectPreview()
     zone.ambientColor = Color(0.15, 0.15, 0.15);
     zone.fogColor = Color(0, 0, 0);
     zone.fogStart = 10.0;
-    zone.fogEnd = 100.0;
+    zone.fogEnd = 1000.0;
 
     particlePreviewCameraNode = particlePreviewScene.CreateChild("PreviewCamera");
-    particlePreviewCameraNode.position = Vector3(0, 0, -2.5);
+    particlePreviewCameraNode.position = Vector3(0, 0, -5);
     Camera@ camera = particlePreviewCameraNode.CreateComponent("Camera");
     camera.nearClip = 0.1f;
-    camera.farClip = 100.0f;
+    camera.farClip = 1000.0f;
 
     particlePreviewLightNode = particlePreviewScene.CreateChild("particlePreviewLight");
     particlePreviewLightNode.direction = Vector3(0.5, -0.5, 0.5);
@@ -813,7 +833,8 @@ void InitParticleEffectPreview()
 
     particleEffectPreviewNode = particlePreviewScene.CreateChild("PreviewEmitter");
     particleEffectPreviewNode.rotation = Quaternion(0, 0, 0);
-    StaticModel@ gizmo = particleEffectPreviewNode.CreateComponent("StaticModel");
+    particleEffectPreviewGizmoNode = particleEffectPreviewNode.CreateChild("Gizmo");
+    StaticModel@ gizmo = particleEffectPreviewGizmoNode.CreateComponent("StaticModel");
     gizmo.model = cache.GetResource("Model", "Models/Editor/Axes.mdl");
     gizmo.materials[0] = cache.GetResource("Material", "Materials/Editor/RedUnlit.xml");
     gizmo.materials[1] = cache.GetResource("Material", "Materials/Editor/GreenUnlit.xml");
@@ -825,10 +846,9 @@ void InitParticleEffectPreview()
     particleEffectEmitter.effect = editParticleEffect;
 
     particleEffectPreview = particleEffectWindow.GetChild("ParticleEffectPreview", true);
-    particleEffectPreview.SetFixedHeight(100);
     particleEffectPreview.SetView(particlePreviewScene, camera);
 
-    SubscribeToEvent(particleEffectPreview, "DragMove", "RotateParticleEffectPreview");
+    SubscribeToEvent(particleEffectPreview, "DragMove", "NavigateParticleEffectPreview");
 }
 
 ParticleEffect@ CreateNewParticleEffect()
@@ -1195,6 +1215,7 @@ void RefreshParticleEffectPreview()
 {
     if (particleEffectEmitter is null || editParticleEffect is null)
         return;
+    cast<CheckBox>(particleEffectWindow.GetChild("ShowAxes", true)).checked = showParticlePreviewAxes;
     particleEffectEmitter.effect = editParticleEffect;
     particleEffectEmitter.Reset();
     particleEffectPreview.QueueUpdate();
@@ -1312,17 +1333,24 @@ void RefreshParticleEffectMaterial()
     SubscribeToEvent(pickButton, "Released", "PickEditParticleEffectMaterial");
 }
 
-void RotateParticleEffectPreview(StringHash eventType, VariantMap& eventData)
+void NavigateParticleEffectPreview(StringHash eventType, VariantMap& eventData)
 {
-    int elemX = eventData["ElementX"].GetInt();
-    int elemY = eventData["ElementY"].GetInt();
+    int dx = eventData["DX"].GetInt();
+    int dy = eventData["DY"].GetInt();
     
     if (particleEffectPreview.height > 0 && particleEffectPreview.width > 0)
     {
-        float yaw = ((particleEffectPreview.height / 2) - elemY) * (90.0 / particleEffectPreview.height);
-        float pitch = ((particleEffectPreview.width / 2) - elemX) * (90.0 / particleEffectPreview.width);
-
-        particleEffectPreviewNode.rotation = particleEffectPreviewNode.rotation.Slerp(Quaternion(yaw, pitch, 0), 0.1);
+        if (!input.keyDown[KEY_LSHIFT])
+        {
+            float yaw = dy * 20 * time.timeStep;
+            float pitch = dx * 20 * time.timeStep;
+            particleEffectPreviewNode.Rotate(Quaternion(yaw, pitch, 0));
+        }
+        else
+        {
+            particleEffectPreviewNode.Translate(Vector3(0, 0, 1) * dx * 1.5 * time.timeStep, TS_WORLD);
+            particleEffectPreviewNode.Translate(Vector3(0, 0, 1) * dy * 1.5 * time.timeStep, TS_WORLD);
+        }
         particleEffectPreview.QueueUpdate();
     }
 }

BIN
bin/Data/Textures/UI.png


+ 6 - 0
bin/Data/UI/DefaultStyle.xml

@@ -296,6 +296,12 @@
         <attribute name="Min Size" value="0 11" />
         <attribute name="Max Size" value="2147483647 11" />
     </element>
+    <element type="EditorVerticalDivider" style="BorderImage" auto="false">
+        <attribute name="Image Rect" value="144 64 155 80" />
+        <attribute name="Border" value="4 4 4 4" />
+        <attribute name="Min Size" value="11 0" />
+        <attribute name="Max Size" value="11 2147483647" />
+    </element>
     <element type="EditorDragSlider" style="BorderImage">
 	    <attribute name="Image Rect" value="240 64 256 80" />
     </element>

+ 663 - 624
bin/Data/UI/EditorParticleEffectWindow.xml

@@ -18,698 +18,737 @@
         </element>
     </element>
     <element type="BorderImage" style="EditorDivider" />
-    <element type="View3D">
-        <attribute name="Name" value="ParticleEffectPreview" />
-        <attribute name="Texture" value="Texture2D;" />
-        <attribute name="Use Derived Opacity" value="false" />
-        <attribute name="Is Resizable" value="true" />
-        <attribute name="Fixed Height Resizing" value="true" />
-        <attribute name="Resize Border" value="0 6 0 6" />
-    </element>
-    <element type="BorderImage" style="EditorDivider" />
     <element>
-        <attribute name="Min Size" value="0 16" />
-        <attribute name="Max Size" value="2147483647 16" />
         <attribute name="Layout Mode" value="Horizontal" />
-        <attribute name="Name" value="NameContainer" />
-    </element>
-    <element type="BorderImage" style="EditorDivider" />
-    <element type="ListView" style="PanelView">
-        <attribute name="Min Size" value="0 60" />
-        <element type="BorderImage" internal="true">
-            <element internal="true">
-                <element style="Panel">
-                    <element type="Text">
-                        <attribute name="Text" value="Initial" />
-                    </element>
-                </element>
-                 <!-- Initial Attributes -->
-                <element>
-                    <!-- Constant Force -->
-                    <attribute name="Min Size" value="0 16" />
-                    <attribute name="Max Size" value="2147483647 16" />
-                    <attribute name="Layout Mode" value="Horizontal" />
-                    <attribute name="Layout Spacing" value="10" />
-                    <element type="Text" style="EditorAttributeText">
-                        <attribute name="Text" value="Constant Force" />
-                    </element>
-                    <element>
-                        <attribute name="Min Size" value="0 16" />
-                        <attribute name="Max Size" value="2147483647 16" />
-                        <attribute name="Layout Mode" value="Horizontal" />
-                        <attribute name="Layout Spacing" value="1" />
-                        <element type="LineEdit">
-                            <attribute name="Name" value="ConstantForceX" />
-                        </element>
-                        <element type="LineEdit">
-                            <attribute name="Name" value="ConstantForceY" />
-                        </element>
-                        <element type="LineEdit">
-                            <attribute name="Name" value="ConstantForceZ" />
-                        </element>
-                    </element>
-                </element>
-                <element>
-                    <!-- Direction Min -->
-                    <attribute name="Min Size" value="0 16" />
-                    <attribute name="Max Size" value="2147483647 16" />
-                    <attribute name="Layout Mode" value="Horizontal" />
-                    <attribute name="Layout Spacing" value="10" />
-                    <element type="Text" style="EditorAttributeText">
-                        <attribute name="Text" value="Direction (min)" />
-                    </element>
-                    <element>
-                        <attribute name="Min Size" value="0 16" />
-                        <attribute name="Max Size" value="2147483647 16" />
-                        <attribute name="Layout Mode" value="Horizontal" />
-                        <attribute name="Layout Spacing" value="1" />
-                        <element type="LineEdit">
-                            <attribute name="Name" value="DirectionMinX" />
-                        </element>
-                        <element type="LineEdit">
-                            <attribute name="Name" value="DirectionMinY" />
-                        </element>
-                        <element type="LineEdit">
-                            <attribute name="Name" value="DirectionMinZ" />
-                        </element>
-                    </element>
-                </element>
-                <element>
-                    <!-- Direction Max -->
-                    <attribute name="Min Size" value="0 16" />
-                    <attribute name="Max Size" value="2147483647 16" />
-                    <attribute name="Layout Mode" value="Horizontal" />
-                    <attribute name="Layout Spacing" value="10" />
-                    <element type="Text" style="EditorAttributeText">
-                        <attribute name="Text" value="Direction (max)" />
-                    </element>
-                    <element>
-                        <attribute name="Min Size" value="0 16" />
-                        <attribute name="Max Size" value="2147483647 16" />
-                        <attribute name="Layout Mode" value="Horizontal" />
-                        <attribute name="Layout Spacing" value="1" />
-                        <element type="LineEdit">
-                            <attribute name="Name" value="DirectionMaxX" />
-                        </element>
-                        <element type="LineEdit">
-                            <attribute name="Name" value="DirectionMaxY" />
-                        </element>
-                        <element type="LineEdit">
-                            <attribute name="Name" value="DirectionMaxZ" />
-                        </element>
-                    </element>
-                </element>
-                <element>
-                    <!-- Damping Force -->
-                    <attribute name="Min Size" value="0 16" />
-                    <attribute name="Max Size" value="2147483647 16" />
-                    <attribute name="Layout Mode" value="Horizontal" />
-                    <attribute name="Layout Spacing" value="10" />
-                    <element type="Text" style="EditorAttributeText">
-                        <attribute name="Text" value="Damping Force" />
-                    </element>
-                    <element>
-                        <attribute name="Min Size" value="0 16" />
-                        <attribute name="Max Size" value="2147483647 16" />
-                        <attribute name="Layout Mode" value="Horizontal" />
-                        <attribute name="Layout Spacing" value="1" />
-                        <element type="LineEdit">
-                            <attribute name="Name" value="DampingForce" />
-                        </element>
-                    </element>
-                </element>
-                <element>
-                    <!-- Active Time -->
-                    <attribute name="Min Size" value="0 16" />
-                    <attribute name="Max Size" value="2147483647 16" />
-                    <attribute name="Layout Mode" value="Horizontal" />
-                    <attribute name="Layout Spacing" value="10" />
-                    <element type="Text" style="EditorAttributeText">
-                        <attribute name="Text" value="Active Time" />
-                    </element>
-                    <element>
-                        <attribute name="Min Size" value="0 16" />
-                        <attribute name="Max Size" value="2147483647 16" />
-                        <attribute name="Layout Mode" value="Horizontal" />
-                        <attribute name="Layout Spacing" value="1" />
-                        <element type="LineEdit">
-                            <attribute name="Name" value="ActiveTime" />
-                        </element>
-                    </element>
-                </element>
-                <element>
-                    <!-- Inactive Time -->
-                    <attribute name="Min Size" value="0 16" />
-                    <attribute name="Max Size" value="2147483647 16" />
-                    <attribute name="Layout Mode" value="Horizontal" />
-                    <attribute name="Layout Spacing" value="10" />
-                    <element type="Text" style="EditorAttributeText">
-                        <attribute name="Text" value="Inactive Time" />
-                    </element>
-                    <element>
-                        <attribute name="Min Size" value="0 16" />
-                        <attribute name="Max Size" value="2147483647 16" />
-                        <attribute name="Layout Mode" value="Horizontal" />
-                        <attribute name="Layout Spacing" value="1" />
-                        <element type="LineEdit">
-                            <attribute name="Name" value="InactiveTime" />
-                        </element>
-                    </element>
-                </element>
-                <element>
-                    <!-- Min Particle Size -->
-                    <attribute name="Min Size" value="0 16" />
-                    <attribute name="Max Size" value="2147483647 16" />
-                    <attribute name="Layout Mode" value="Horizontal" />
-                    <attribute name="Layout Spacing" value="10" />
-                    <element type="Text" style="EditorAttributeText">
-                        <attribute name="Text" value="Particle Size (min)" />
-                    </element>
-                    <element>
-                        <attribute name="Min Size" value="0 16" />
-                        <attribute name="Max Size" value="2147483647 16" />
-                        <attribute name="Layout Mode" value="Horizontal" />
-                        <attribute name="Layout Spacing" value="1" />
-                        <element type="LineEdit">
-                            <attribute name="Name" value="ParticleSizeMinX" />
-                        </element>
-                        <element type="LineEdit">
-                            <attribute name="Name" value="ParticleSizeMinY" />
-                        </element>
-                    </element>
-                </element>
-                <element>
-                    <!-- Max Particle Size -->
-                    <attribute name="Min Size" value="0 16" />
-                    <attribute name="Max Size" value="2147483647 16" />
-                    <attribute name="Layout Mode" value="Horizontal" />
-                    <attribute name="Layout Spacing" value="10" />
-                    <element type="Text" style="EditorAttributeText">
-                        <attribute name="Text" value="Particle Size (max)" />
-                    </element>
-                    <element>
-                        <attribute name="Min Size" value="0 16" />
-                        <attribute name="Max Size" value="2147483647 16" />
-                        <attribute name="Layout Mode" value="Horizontal" />
-                        <attribute name="Layout Spacing" value="1" />
-                        <element type="LineEdit">
-                            <attribute name="Name" value="ParticleSizeMaxX" />
-                        </element>
-                        <element type="LineEdit">
-                            <attribute name="Name" value="ParticleSizeMaxY" />
-                        </element>
-                    </element>
-                </element>
-                <element>
-                    <!-- Time To Live -->
-                    <attribute name="Min Size" value="0 16" />
-                    <attribute name="Max Size" value="2147483647 16" />
-                    <attribute name="Layout Mode" value="Horizontal" />
-                    <attribute name="Layout Spacing" value="10" />
-                    <element type="Text" style="EditorAttributeText">
-                        <attribute name="Text" value="Time To Live" />
-                    </element>
-                    <element>
-                        <attribute name="Min Size" value="0 16" />
-                        <attribute name="Max Size" value="2147483647 16" />
-                        <attribute name="Layout Mode" value="Horizontal" />
-                        <attribute name="Layout Spacing" value="1" />
-                        <element type="LineEdit">
-                            <attribute name="Name" value="TimeToLiveMin" />
-                        </element>
-                        <element type="LineEdit">
-                            <attribute name="Name" value="TimeToLiveMax" />
-                        </element>
-                    </element>
-                </element>
-                <element>
-                    <!-- Velocity -->
-                    <attribute name="Min Size" value="0 16" />
-                    <attribute name="Max Size" value="2147483647 16" />
-                    <attribute name="Layout Mode" value="Horizontal" />
-                    <attribute name="Layout Spacing" value="10" />
-                    <element type="Text" style="EditorAttributeText">
-                        <attribute name="Text" value="Velocity" />
-                    </element>
-                    <element>
-                        <attribute name="Min Size" value="0 16" />
-                        <attribute name="Max Size" value="2147483647 16" />
-                        <attribute name="Layout Mode" value="Horizontal" />
-                        <attribute name="Layout Spacing" value="1" />
-                        <element type="LineEdit">
-                            <attribute name="Name" value="VelocityMin" />
-                        </element>
-                        <element type="LineEdit">
-                            <attribute name="Name" value="VelocityMax" />
-                        </element>
-                    </element>
-                </element>
-                <element>
-                    <!-- Rotation -->
-                    <attribute name="Min Size" value="0 16" />
-                    <attribute name="Max Size" value="2147483647 16" />
-                    <attribute name="Layout Mode" value="Horizontal" />
-                    <attribute name="Layout Spacing" value="10" />
-                    <element type="Text" style="EditorAttributeText">
-                        <attribute name="Text" value="Rotation" />
-                    </element>
-                    <element>
-                        <attribute name="Min Size" value="0 16" />
-                        <attribute name="Max Size" value="2147483647 16" />
-                        <attribute name="Layout Mode" value="Horizontal" />
-                        <attribute name="Layout Spacing" value="1" />
-                        <element type="LineEdit">
-                            <attribute name="Name" value="RotationMin" />
-                        </element>
-                        <element type="LineEdit">
-                            <attribute name="Name" value="RotationMax" />
-                        </element>
-                    </element>
-                </element>
-                <element>
-                    <!-- Rotation Speed -->
-                    <attribute name="Min Size" value="0 16" />
-                    <attribute name="Max Size" value="2147483647 16" />
+        <element>
+            <attribute name="Layout Mode" value="Vertical" />
+            <element type="View3D">
+                <attribute name="Name" value="ParticleEffectPreview" />
+                <attribute name="Use Derived Opacity" value="false" />
+            </element>
+            <element type="BorderImage" style="EditorDivider" />
+            <element>
+                <attribute name="Layout Mode" value="Horizontal" />
+                <attribute name="Min Size" value="0 16" />
+                <attribute name="Max Size" value="2147483647 16" />
+                <attribute name="Layout Spacing" value="4" />
+                <element type="Button">
+                    <attribute name="Name" value="ResetViewport" />
                     <attribute name="Layout Mode" value="Horizontal" />
-                    <attribute name="Layout Spacing" value="10" />
-                    <element type="Text" style="EditorAttributeText">
-                        <attribute name="Text" value="Rotation Speed" />
-                    </element>
-                    <element>
-                        <attribute name="Min Size" value="0 16" />
-                        <attribute name="Max Size" value="2147483647 16" />
-                        <attribute name="Layout Mode" value="Horizontal" />
-                        <attribute name="Layout Spacing" value="1" />
-                        <element type="LineEdit">
-                            <attribute name="Name" value="RotationSpeedMin" />
-                        </element>
-                        <element type="LineEdit">
-                            <attribute name="Name" value="RotationSpeedMax" />
-                        </element>
-                    </element>
-                </element>
-                    <!-- End of Initial Attributes -->
-                <element type="BorderImage" style="EditorDivider" />
-                <element style="Panel">
+                    <attribute name="Layout Border" value="1 1 1 1" />
                     <element type="Text">
-                        <attribute name="Text" value="Variation" />
+                        <attribute name="Text" value="Reset Viewport" />
+                        <attribute name="Text Alignment" value="Center" />
                     </element>
                 </element>
-             <!-- Variation Attributes -->
+                <element type="BorderImage" style="EditorVerticalDivider" />
                 <element>
-                    <!-- Size Addition -->
                     <attribute name="Min Size" value="0 16" />
                     <attribute name="Max Size" value="2147483647 16" />
                     <attribute name="Layout Mode" value="Horizontal" />
                     <attribute name="Layout Spacing" value="10" />
                     <element type="Text" style="EditorAttributeText">
-                        <attribute name="Text" value="Size (add)" />
+                        <attribute name="Text" value="Show Axes" />
                     </element>
                     <element>
                         <attribute name="Min Size" value="0 16" />
                         <attribute name="Max Size" value="2147483647 16" />
                         <attribute name="Layout Mode" value="Horizontal" />
                         <attribute name="Layout Spacing" value="1" />
-                        <element type="LineEdit">
-                            <attribute name="Name" value="SizeAdd" />
+                        <element type="CheckBox">
+                            <attribute name="Name" value="ShowAxes" />
                         </element>
                     </element>
                 </element>
-                <element>
-                    <!-- Size Multiplication -->
-                    <attribute name="Min Size" value="0 16" />
-                    <attribute name="Max Size" value="2147483647 16" />
-                    <attribute name="Layout Mode" value="Horizontal" />
-                    <attribute name="Layout Spacing" value="10" />
-                    <element type="Text" style="EditorAttributeText">
-                        <attribute name="Text" value="Size (multiply)" />
-                    </element>
-                    <element>
-                        <attribute name="Min Size" value="0 16" />
-                        <attribute name="Max Size" value="2147483647 16" />
-                        <attribute name="Layout Mode" value="Horizontal" />
-                        <attribute name="Layout Spacing" value="1" />
-                        <element type="LineEdit">
-                            <attribute name="Name" value="SizeMultiply" />
+            </element>
+        </element>
+        <element type="BorderImage" style="EditorVerticalDivider" />
+        <element>
+            <attribute name="Layout Mode" value="Vertical" />
+            <element>
+                <attribute name="Min Size" value="0 16" />
+                <attribute name="Max Size" value="2147483647 16" />
+                <attribute name="Layout Mode" value="Horizontal" />
+                <attribute name="Name" value="NameContainer" />
+            </element>
+            <element type="BorderImage" style="EditorDivider" />
+            <element type="ListView" style="PanelView">
+                <attribute name="Min Size" value="0 60" />
+                <element type="BorderImage" internal="true">
+                    <element internal="true">
+                        <element style="Panel">
+                            <element type="Text">
+                                <attribute name="Text" value="Initial" />
+                            </element>
                         </element>
-                    </element>
-                </element>
-                <element>
-                    <!-- Animation LOD bias -->
-                    <attribute name="Min Size" value="0 16" />
-                    <attribute name="Max Size" value="2147483647 16" />
-                    <attribute name="Layout Mode" value="Horizontal" />
-                    <attribute name="Layout Spacing" value="10" />
-                    <element type="Text" style="EditorAttributeText">
-                        <attribute name="Text" value="Animation LOD bias" />
-                    </element>
-                    <element>
-                        <attribute name="Min Size" value="0 16" />
-                        <attribute name="Max Size" value="2147483647 16" />
-                        <attribute name="Layout Mode" value="Horizontal" />
-                        <attribute name="Layout Spacing" value="1" />
-                        <element type="LineEdit">
-                            <attribute name="Name" value="AnimationLodBias" />
+                        <!-- Initial Attributes -->
+                        <element>
+                            <!-- Constant Force -->
+                            <attribute name="Min Size" value="0 16" />
+                            <attribute name="Max Size" value="2147483647 16" />
+                            <attribute name="Layout Mode" value="Horizontal" />
+                            <attribute name="Layout Spacing" value="10" />
+                            <element type="Text" style="EditorAttributeText">
+                                <attribute name="Text" value="Constant Force" />
+                            </element>
+                            <element>
+                                <attribute name="Min Size" value="0 16" />
+                                <attribute name="Max Size" value="2147483647 16" />
+                                <attribute name="Layout Mode" value="Horizontal" />
+                                <attribute name="Layout Spacing" value="1" />
+                                <element type="LineEdit">
+                                    <attribute name="Name" value="ConstantForceX" />
+                                </element>
+                                <element type="LineEdit">
+                                    <attribute name="Name" value="ConstantForceY" />
+                                </element>
+                                <element type="LineEdit">
+                                    <attribute name="Name" value="ConstantForceZ" />
+                                </element>
+                            </element>
                         </element>
-                    </element>
-                </element>
-                <!-- End of Variation Attributes -->
-                <element type="BorderImage" style="EditorDivider" />
-                <element>
-                    <!-- Color Frames -->
-                    <attribute name="Min Size" value="0 16" />
-                    <attribute name="Max Size" value="2147483647 16" />
-                    <attribute name="Layout Mode" value="Horizontal" />
-                    <attribute name="Layout Spacing" value="10" />
-                    <element type="Text" style="EditorAttributeText">
-                        <attribute name="Text" value="Color Frames" />
-                    </element>
-                </element>
-                <element type="ListView" style="PanelView">
-                    <attribute name="Name" value="ColorFrameListView" />
-                    <attribute name="Highlight Mode" value="Always" />
-                    <attribute name="Min Size" value="0 100" />
-                </element>
-                <element>
-                    <attribute name="Name" value="ColorFrameButtonContainer" />
-                    <attribute name="Min Size" value="0 16" />
-                    <attribute name="Max Size" value="2147483647 16" />
-                    <attribute name="Layout Mode" value="Horizontal" />
-                    <attribute name="Layout Spacing" value="4" />
-
-                    <element type="Button">
-                        <attribute name="Name" value="NewColorFrame" />
-                        <attribute name="Layout Mode" value="Horizontal" />
-                        <attribute name="Layout Border" value="1 1 1 1" />
-                        <element type="Text">
-                            <attribute name="Text" value="New" />
-                            <attribute name="Text Alignment" value="Center" />
+                        <element>
+                            <!-- Direction Min -->
+                            <attribute name="Min Size" value="0 16" />
+                            <attribute name="Max Size" value="2147483647 16" />
+                            <attribute name="Layout Mode" value="Horizontal" />
+                            <attribute name="Layout Spacing" value="10" />
+                            <element type="Text" style="EditorAttributeText">
+                                <attribute name="Text" value="Direction (min)" />
+                            </element>
+                            <element>
+                                <attribute name="Min Size" value="0 16" />
+                                <attribute name="Max Size" value="2147483647 16" />
+                                <attribute name="Layout Mode" value="Horizontal" />
+                                <attribute name="Layout Spacing" value="1" />
+                                <element type="LineEdit">
+                                    <attribute name="Name" value="DirectionMinX" />
+                                </element>
+                                <element type="LineEdit">
+                                    <attribute name="Name" value="DirectionMinY" />
+                                </element>
+                                <element type="LineEdit">
+                                    <attribute name="Name" value="DirectionMinZ" />
+                                </element>
+                            </element>
                         </element>
-                    </element>
-                    <element type="Button">
-                        <attribute name="Name" value="RemoveColorFrame" />
-                        <attribute name="Layout Mode" value="Horizontal" />
-                        <attribute name="Layout Border" value="1 1 1 1" />
-                        <element type="Text">
-                            <attribute name="Text" value="Remove" />
-                            <attribute name="Text Alignment" value="Center" />
+                        <element>
+                            <!-- Direction Max -->
+                            <attribute name="Min Size" value="0 16" />
+                            <attribute name="Max Size" value="2147483647 16" />
+                            <attribute name="Layout Mode" value="Horizontal" />
+                            <attribute name="Layout Spacing" value="10" />
+                            <element type="Text" style="EditorAttributeText">
+                                <attribute name="Text" value="Direction (max)" />
+                            </element>
+                            <element>
+                                <attribute name="Min Size" value="0 16" />
+                                <attribute name="Max Size" value="2147483647 16" />
+                                <attribute name="Layout Mode" value="Horizontal" />
+                                <attribute name="Layout Spacing" value="1" />
+                                <element type="LineEdit">
+                                    <attribute name="Name" value="DirectionMaxX" />
+                                </element>
+                                <element type="LineEdit">
+                                    <attribute name="Name" value="DirectionMaxY" />
+                                </element>
+                                <element type="LineEdit">
+                                    <attribute name="Name" value="DirectionMaxZ" />
+                                </element>
+                            </element>
                         </element>
-                    </element>
-                    <element type="Button">
-                        <attribute name="Name" value="ColorFrameSort" />
-                        <attribute name="Layout Mode" value="Horizontal" />
-                        <attribute name="Layout Border" value="1 1 1 1" />
-                        <element type="Text">
-                            <attribute name="Text" value="Sort" />
-                            <attribute name="Text Alignment" value="Center" />
+                        <element>
+                            <!-- Damping Force -->
+                            <attribute name="Min Size" value="0 16" />
+                            <attribute name="Max Size" value="2147483647 16" />
+                            <attribute name="Layout Mode" value="Horizontal" />
+                            <attribute name="Layout Spacing" value="10" />
+                            <element type="Text" style="EditorAttributeText">
+                                <attribute name="Text" value="Damping Force" />
+                            </element>
+                            <element>
+                                <attribute name="Min Size" value="0 16" />
+                                <attribute name="Max Size" value="2147483647 16" />
+                                <attribute name="Layout Mode" value="Horizontal" />
+                                <attribute name="Layout Spacing" value="1" />
+                                <element type="LineEdit">
+                                    <attribute name="Name" value="DampingForce" />
+                                </element>
+                            </element>
                         </element>
-                    </element>
-                </element>
-                <element type="BorderImage" style="EditorDivider" />
-                <element>
-                    <!-- Texture Frames -->
-                    <attribute name="Min Size" value="0 16" />
-                    <attribute name="Max Size" value="2147483647 16" />
-                    <attribute name="Layout Mode" value="Horizontal" />
-                    <attribute name="Layout Spacing" value="10" />
-                    <element type="Text" style="EditorAttributeText">
-                        <attribute name="Text" value="Texture Frames" />
-                    </element>
-                </element>
-                <element type="ListView" style="PanelView">
-                    <attribute name="Name" value="TextureFrameListView" />
-                    <attribute name="Min Size" value="0 100" />
-                </element>
-                <element>
-                    <attribute name="Name" value="TextureFrameButtonContainer" />
-                    <attribute name="Min Size" value="0 16" />
-                    <attribute name="Max Size" value="2147483647 16" />
-                    <attribute name="Layout Mode" value="Horizontal" />
-                    <attribute name="Layout Spacing" value="4" />
-
-                    <element type="Button">
-                        <attribute name="Name" value="NewTextureFrame" />
-                        <attribute name="Layout Mode" value="Horizontal" />
-                        <attribute name="Layout Border" value="1 1 1 1" />
-                        <element type="Text">
-                            <attribute name="Text" value="New" />
-                            <attribute name="Text Alignment" value="Center" />
+                        <element>
+                            <!-- Active Time -->
+                            <attribute name="Min Size" value="0 16" />
+                            <attribute name="Max Size" value="2147483647 16" />
+                            <attribute name="Layout Mode" value="Horizontal" />
+                            <attribute name="Layout Spacing" value="10" />
+                            <element type="Text" style="EditorAttributeText">
+                                <attribute name="Text" value="Active Time" />
+                            </element>
+                            <element>
+                                <attribute name="Min Size" value="0 16" />
+                                <attribute name="Max Size" value="2147483647 16" />
+                                <attribute name="Layout Mode" value="Horizontal" />
+                                <attribute name="Layout Spacing" value="1" />
+                                <element type="LineEdit">
+                                    <attribute name="Name" value="ActiveTime" />
+                                </element>
+                            </element>
+                        </element>
+                        <element>
+                            <!-- Inactive Time -->
+                            <attribute name="Min Size" value="0 16" />
+                            <attribute name="Max Size" value="2147483647 16" />
+                            <attribute name="Layout Mode" value="Horizontal" />
+                            <attribute name="Layout Spacing" value="10" />
+                            <element type="Text" style="EditorAttributeText">
+                                <attribute name="Text" value="Inactive Time" />
+                            </element>
+                            <element>
+                                <attribute name="Min Size" value="0 16" />
+                                <attribute name="Max Size" value="2147483647 16" />
+                                <attribute name="Layout Mode" value="Horizontal" />
+                                <attribute name="Layout Spacing" value="1" />
+                                <element type="LineEdit">
+                                    <attribute name="Name" value="InactiveTime" />
+                                </element>
+                            </element>
                         </element>
-                    </element>
-                    <element type="Button">
-                        <attribute name="Name" value="RemoveTextureFrame" />
-                        <attribute name="Layout Mode" value="Horizontal" />
-                        <attribute name="Layout Border" value="1 1 1 1" />
-                        <element type="Text">
-                            <attribute name="Text" value="Remove" />
-                            <attribute name="Text Alignment" value="Center" />
+                        <element>
+                            <!-- Min Particle Size -->
+                            <attribute name="Min Size" value="0 16" />
+                            <attribute name="Max Size" value="2147483647 16" />
+                            <attribute name="Layout Mode" value="Horizontal" />
+                            <attribute name="Layout Spacing" value="10" />
+                            <element type="Text" style="EditorAttributeText">
+                                <attribute name="Text" value="Particle Size (min)" />
+                            </element>
+                            <element>
+                                <attribute name="Min Size" value="0 16" />
+                                <attribute name="Max Size" value="2147483647 16" />
+                                <attribute name="Layout Mode" value="Horizontal" />
+                                <attribute name="Layout Spacing" value="1" />
+                                <element type="LineEdit">
+                                    <attribute name="Name" value="ParticleSizeMinX" />
+                                </element>
+                                <element type="LineEdit">
+                                    <attribute name="Name" value="ParticleSizeMinY" />
+                                </element>
+                            </element>
                         </element>
-                    </element>
-                    <element type="Button">
-                        <attribute name="Name" value="TextureFrameSort" />
-                        <attribute name="Layout Mode" value="Horizontal" />
-                        <attribute name="Layout Border" value="1 1 1 1" />
-                        <element type="Text">
-                            <attribute name="Text" value="Sort" />
-                            <attribute name="Text Alignment" value="Center" />
+                        <element>
+                            <!-- Max Particle Size -->
+                            <attribute name="Min Size" value="0 16" />
+                            <attribute name="Max Size" value="2147483647 16" />
+                            <attribute name="Layout Mode" value="Horizontal" />
+                            <attribute name="Layout Spacing" value="10" />
+                            <element type="Text" style="EditorAttributeText">
+                                <attribute name="Text" value="Particle Size (max)" />
+                            </element>
+                            <element>
+                                <attribute name="Min Size" value="0 16" />
+                                <attribute name="Max Size" value="2147483647 16" />
+                                <attribute name="Layout Mode" value="Horizontal" />
+                                <attribute name="Layout Spacing" value="1" />
+                                <element type="LineEdit">
+                                    <attribute name="Name" value="ParticleSizeMaxX" />
+                                </element>
+                                <element type="LineEdit">
+                                    <attribute name="Name" value="ParticleSizeMaxY" />
+                                </element>
+                            </element>
                         </element>
-                    </element>
-                </element>
-                <element type="BorderImage" style="EditorDivider" />
-                <element style="Panel">
-                    <element type="Text">
-                        <attribute name="Text" value="Emitter" />
-                    </element>
-                </element>
-                 <!-- Emitter Attributes -->
-                <element>
-                    <!-- Num Particles -->
-                    <attribute name="Min Size" value="0 16" />
-                    <attribute name="Max Size" value="2147483647 16" />
-                    <attribute name="Layout Mode" value="Horizontal" />
-                    <attribute name="Layout Spacing" value="10" />
-                    <element type="Text" style="EditorAttributeText">
-                        <attribute name="Text" value="Number of Particles" />
-                    </element>
-                    <element>
-                        <attribute name="Min Size" value="0 16" />
-                        <attribute name="Max Size" value="2147483647 16" />
-                        <attribute name="Layout Mode" value="Horizontal" />
-                        <attribute name="Layout Spacing" value="1" />
-                        <element type="LineEdit">
-                            <attribute name="Name" value="NumParticles" />
+                        <element>
+                            <!-- Time To Live -->
+                            <attribute name="Min Size" value="0 16" />
+                            <attribute name="Max Size" value="2147483647 16" />
+                            <attribute name="Layout Mode" value="Horizontal" />
+                            <attribute name="Layout Spacing" value="10" />
+                            <element type="Text" style="EditorAttributeText">
+                                <attribute name="Text" value="Time To Live" />
+                            </element>
+                            <element>
+                                <attribute name="Min Size" value="0 16" />
+                                <attribute name="Max Size" value="2147483647 16" />
+                                <attribute name="Layout Mode" value="Horizontal" />
+                                <attribute name="Layout Spacing" value="1" />
+                                <element type="LineEdit">
+                                    <attribute name="Name" value="TimeToLiveMin" />
+                                </element>
+                                <element type="LineEdit">
+                                    <attribute name="Name" value="TimeToLiveMax" />
+                                </element>
+                            </element>
                         </element>
-                    </element>
-                </element>
-                <element>
-                    <!-- Emitter Size -->
-                    <attribute name="Min Size" value="0 16" />
-                    <attribute name="Max Size" value="2147483647 16" />
-                    <attribute name="Layout Mode" value="Horizontal" />
-                    <attribute name="Layout Spacing" value="10" />
-                    <element type="Text" style="EditorAttributeText">
-                        <attribute name="Text" value="Emitter Size" />
-                    </element>
-                    <element>
-                        <attribute name="Min Size" value="0 16" />
-                        <attribute name="Max Size" value="2147483647 16" />
-                        <attribute name="Layout Mode" value="Horizontal" />
-                        <attribute name="Layout Spacing" value="1" />
-                        <element type="LineEdit">
-                            <attribute name="Name" value="EmitterSizeX" />
+                        <element>
+                            <!-- Velocity -->
+                            <attribute name="Min Size" value="0 16" />
+                            <attribute name="Max Size" value="2147483647 16" />
+                            <attribute name="Layout Mode" value="Horizontal" />
+                            <attribute name="Layout Spacing" value="10" />
+                            <element type="Text" style="EditorAttributeText">
+                                <attribute name="Text" value="Velocity" />
+                            </element>
+                            <element>
+                                <attribute name="Min Size" value="0 16" />
+                                <attribute name="Max Size" value="2147483647 16" />
+                                <attribute name="Layout Mode" value="Horizontal" />
+                                <attribute name="Layout Spacing" value="1" />
+                                <element type="LineEdit">
+                                    <attribute name="Name" value="VelocityMin" />
+                                </element>
+                                <element type="LineEdit">
+                                    <attribute name="Name" value="VelocityMax" />
+                                </element>
+                            </element>
                         </element>
-                        <element type="LineEdit">
-                            <attribute name="Name" value="EmitterSizeY" />
+                        <element>
+                            <!-- Rotation -->
+                            <attribute name="Min Size" value="0 16" />
+                            <attribute name="Max Size" value="2147483647 16" />
+                            <attribute name="Layout Mode" value="Horizontal" />
+                            <attribute name="Layout Spacing" value="10" />
+                            <element type="Text" style="EditorAttributeText">
+                                <attribute name="Text" value="Rotation" />
+                            </element>
+                            <element>
+                                <attribute name="Min Size" value="0 16" />
+                                <attribute name="Max Size" value="2147483647 16" />
+                                <attribute name="Layout Mode" value="Horizontal" />
+                                <attribute name="Layout Spacing" value="1" />
+                                <element type="LineEdit">
+                                    <attribute name="Name" value="RotationMin" />
+                                </element>
+                                <element type="LineEdit">
+                                    <attribute name="Name" value="RotationMax" />
+                                </element>
+                            </element>
                         </element>
-                        <element type="LineEdit">
-                            <attribute name="Name" value="EmitterSizeZ" />
+                        <element>
+                            <!-- Rotation Speed -->
+                            <attribute name="Min Size" value="0 16" />
+                            <attribute name="Max Size" value="2147483647 16" />
+                            <attribute name="Layout Mode" value="Horizontal" />
+                            <attribute name="Layout Spacing" value="10" />
+                            <element type="Text" style="EditorAttributeText">
+                                <attribute name="Text" value="Rotation Speed" />
+                            </element>
+                            <element>
+                                <attribute name="Min Size" value="0 16" />
+                                <attribute name="Max Size" value="2147483647 16" />
+                                <attribute name="Layout Mode" value="Horizontal" />
+                                <attribute name="Layout Spacing" value="1" />
+                                <element type="LineEdit">
+                                    <attribute name="Name" value="RotationSpeedMin" />
+                                </element>
+                                <element type="LineEdit">
+                                    <attribute name="Name" value="RotationSpeedMax" />
+                                </element>
+                            </element>
                         </element>
-                    </element>
-                </element>
-                <element>
-                    <!-- Emission Rate -->
-                    <attribute name="Min Size" value="0 16" />
-                    <attribute name="Max Size" value="2147483647 16" />
-                    <attribute name="Layout Mode" value="Horizontal" />
-                    <attribute name="Layout Spacing" value="10" />
-                    <element type="Text" style="EditorAttributeText">
-                        <attribute name="Text" value="Emission Rate" />
-                    </element>
-                    <element>
-                        <attribute name="Min Size" value="0 16" />
-                        <attribute name="Max Size" value="2147483647 16" />
-                        <attribute name="Layout Mode" value="Horizontal" />
-                        <attribute name="Layout Spacing" value="1" />
-                        <element type="LineEdit">
-                            <attribute name="Name" value="EmissionRateMin" />
+                        <!-- End of Initial Attributes -->
+                        <element type="BorderImage" style="EditorDivider" />
+                        <element style="Panel">
+                            <element type="Text">
+                                <attribute name="Text" value="Variation" />
+                            </element>
                         </element>
-                        <element type="LineEdit">
-                            <attribute name="Name" value="EmissionRateMax" />
+                        <!-- Variation Attributes -->
+                        <element>
+                            <!-- Size Addition -->
+                            <attribute name="Min Size" value="0 16" />
+                            <attribute name="Max Size" value="2147483647 16" />
+                            <attribute name="Layout Mode" value="Horizontal" />
+                            <attribute name="Layout Spacing" value="10" />
+                            <element type="Text" style="EditorAttributeText">
+                                <attribute name="Text" value="Size (add)" />
+                            </element>
+                            <element>
+                                <attribute name="Min Size" value="0 16" />
+                                <attribute name="Max Size" value="2147483647 16" />
+                                <attribute name="Layout Mode" value="Horizontal" />
+                                <attribute name="Layout Spacing" value="1" />
+                                <element type="LineEdit">
+                                    <attribute name="Name" value="SizeAdd" />
+                                </element>
+                            </element>
                         </element>
-                    </element>
-                </element>
-                <element>
-                    <!-- Emitter Shape -->
-                    <attribute name="Min Size" value="0 16" />
-                    <attribute name="Max Size" value="2147483647 16" />
-                    <attribute name="Layout Mode" value="Horizontal" />
-                    <attribute name="Layout Spacing" value="10" />
-                    <element type="Text" style="EditorAttributeText">
-                        <attribute name="Text" value="Emitter Shape" />
-                    </element>
-                    <element type="DropDownList">
-                        <attribute name="Name" value="EmitterShape" />
-                        <attribute name="Resize Popup" value="true" />
-                        <!-- Skip style processing as the purpose of below tags is to populate the content element -->
-                        <element type="Window" internal="true" popup="true" style="none">
-                            <element type="ListView" internal="true" style="none">
-                                <element type="BorderImage" internal="true" style="none">
-                                    <element internal="true" style="none">
-                                        <element type="Text" style="FileSelectorFilterText">
-                                            <attribute name="Text" value="Box" />
-                                        </element>
-                                        <element type="Text" style="FileSelectorFilterText">
-                                            <attribute name="Text" value="Sphere" />
-                                        </element>
-                                    </element>
+                        <element>
+                            <!-- Size Multiplication -->
+                            <attribute name="Min Size" value="0 16" />
+                            <attribute name="Max Size" value="2147483647 16" />
+                            <attribute name="Layout Mode" value="Horizontal" />
+                            <attribute name="Layout Spacing" value="10" />
+                            <element type="Text" style="EditorAttributeText">
+                                <attribute name="Text" value="Size (multiply)" />
+                            </element>
+                            <element>
+                                <attribute name="Min Size" value="0 16" />
+                                <attribute name="Max Size" value="2147483647 16" />
+                                <attribute name="Layout Mode" value="Horizontal" />
+                                <attribute name="Layout Spacing" value="1" />
+                                <element type="LineEdit">
+                                    <attribute name="Name" value="SizeMultiply" />
                                 </element>
                             </element>
                         </element>
-                    </element>
-                </element>
-                <!-- End of Renderer Attributes -->
-                <element type="BorderImage" style="EditorDivider" />
-                <element style="Panel">
-                    <element type="Text">
-                        <attribute name="Text" value="Renderer" />
-                    </element>
-                </element>
-                <element style="Panel">
-                 <!-- Emitter Attributes -->
-                    <element>
-                        <!-- Material -->
-                        <attribute name="Min Size" value="0 16" />
-                        <attribute name="Max Size" value="2147483647 16" />
-                        <attribute name="Layout Mode" value="Horizontal" />
-                        <attribute name="Layout Spacing" value="10" />
-                        <element type="Text" style="EditorAttributeText">
-                            <attribute name="Text" value="Material" />
+                        <element>
+                            <!-- Animation LOD bias -->
+                            <attribute name="Min Size" value="0 16" />
+                            <attribute name="Max Size" value="2147483647 16" />
+                            <attribute name="Layout Mode" value="Horizontal" />
+                            <attribute name="Layout Spacing" value="10" />
+                            <element type="Text" style="EditorAttributeText">
+                                <attribute name="Text" value="Animation LOD bias" />
+                            </element>
+                            <element>
+                                <attribute name="Min Size" value="0 16" />
+                                <attribute name="Max Size" value="2147483647 16" />
+                                <attribute name="Layout Mode" value="Horizontal" />
+                                <attribute name="Layout Spacing" value="1" />
+                                <element type="LineEdit">
+                                    <attribute name="Name" value="AnimationLodBias" />
+                                </element>
+                            </element>
                         </element>
+                        <!-- End of Variation Attributes -->
+                        <element type="BorderImage" style="EditorDivider" />
                         <element>
-                            <attribute name="Name" value="ParticleMaterialContainer" />
+                            <!-- Color Frames -->
                             <attribute name="Min Size" value="0 16" />
                             <attribute name="Max Size" value="2147483647 16" />
                             <attribute name="Layout Mode" value="Horizontal" />
-                            <attribute name="Layout Spacing" value="1" />
+                            <attribute name="Layout Spacing" value="10" />
+                            <element type="Text" style="EditorAttributeText">
+                                <attribute name="Text" value="Color Frames" />
+                            </element>
                         </element>
-                    </element>
-                    <element>
-                        <!-- Scaled -->
-                        <attribute name="Min Size" value="0 16" />
-                        <attribute name="Max Size" value="2147483647 16" />
-                        <attribute name="Layout Mode" value="Horizontal" />
-                        <attribute name="Layout Spacing" value="10" />
-                        <element type="Text" style="EditorAttributeText">
-                            <attribute name="Text" value="Scaled" />
+                        <element type="ListView" style="PanelView">
+                            <attribute name="Name" value="ColorFrameListView" />
+                            <attribute name="Highlight Mode" value="Always" />
+                            <attribute name="Min Size" value="0 100" />
                         </element>
                         <element>
+                            <attribute name="Name" value="ColorFrameButtonContainer" />
                             <attribute name="Min Size" value="0 16" />
                             <attribute name="Max Size" value="2147483647 16" />
                             <attribute name="Layout Mode" value="Horizontal" />
-                            <attribute name="Layout Spacing" value="1" />
-                            <element type="CheckBox">
-                                <attribute name="Name" value="Scaled" />
+                            <attribute name="Layout Spacing" value="4" />
+
+                            <element type="Button">
+                                <attribute name="Name" value="NewColorFrame" />
+                                <attribute name="Layout Mode" value="Horizontal" />
+                                <attribute name="Layout Border" value="1 1 1 1" />
+                                <element type="Text">
+                                    <attribute name="Text" value="New" />
+                                    <attribute name="Text Alignment" value="Center" />
+                                </element>
+                            </element>
+                            <element type="Button">
+                                <attribute name="Name" value="RemoveColorFrame" />
+                                <attribute name="Layout Mode" value="Horizontal" />
+                                <attribute name="Layout Border" value="1 1 1 1" />
+                                <element type="Text">
+                                    <attribute name="Text" value="Remove" />
+                                    <attribute name="Text Alignment" value="Center" />
+                                </element>
+                            </element>
+                            <element type="Button">
+                                <attribute name="Name" value="ColorFrameSort" />
+                                <attribute name="Layout Mode" value="Horizontal" />
+                                <attribute name="Layout Border" value="1 1 1 1" />
+                                <element type="Text">
+                                    <attribute name="Text" value="Sort" />
+                                    <attribute name="Text Alignment" value="Center" />
+                                </element>
                             </element>
                         </element>
-                    </element>
-                    <element>
-                        <!-- Sorted -->
-                        <attribute name="Min Size" value="0 16" />
-                        <attribute name="Max Size" value="2147483647 16" />
-                        <attribute name="Layout Mode" value="Horizontal" />
-                        <attribute name="Layout Spacing" value="10" />
-                        <element type="Text" style="EditorAttributeText">
-                            <attribute name="Text" value="Sorted" />
+                        <element type="BorderImage" style="EditorDivider" />
+                        <element>
+                            <!-- Texture Frames -->
+                            <attribute name="Min Size" value="0 16" />
+                            <attribute name="Max Size" value="2147483647 16" />
+                            <attribute name="Layout Mode" value="Horizontal" />
+                            <attribute name="Layout Spacing" value="10" />
+                            <element type="Text" style="EditorAttributeText">
+                                <attribute name="Text" value="Texture Frames" />
+                            </element>
+                        </element>
+                        <element type="ListView" style="PanelView">
+                            <attribute name="Name" value="TextureFrameListView" />
+                            <attribute name="Min Size" value="0 100" />
                         </element>
                         <element>
+                            <attribute name="Name" value="TextureFrameButtonContainer" />
                             <attribute name="Min Size" value="0 16" />
                             <attribute name="Max Size" value="2147483647 16" />
                             <attribute name="Layout Mode" value="Horizontal" />
-                            <attribute name="Layout Spacing" value="1" />
-                            <element type="CheckBox">
-                                <attribute name="Name" value="Sorted" />
+                            <attribute name="Layout Spacing" value="4" />
+
+                            <element type="Button">
+                                <attribute name="Name" value="NewTextureFrame" />
+                                <attribute name="Layout Mode" value="Horizontal" />
+                                <attribute name="Layout Border" value="1 1 1 1" />
+                                <element type="Text">
+                                    <attribute name="Text" value="New" />
+                                    <attribute name="Text Alignment" value="Center" />
+                                </element>
+                            </element>
+                            <element type="Button">
+                                <attribute name="Name" value="RemoveTextureFrame" />
+                                <attribute name="Layout Mode" value="Horizontal" />
+                                <attribute name="Layout Border" value="1 1 1 1" />
+                                <element type="Text">
+                                    <attribute name="Text" value="Remove" />
+                                    <attribute name="Text Alignment" value="Center" />
+                                </element>
+                            </element>
+                            <element type="Button">
+                                <attribute name="Name" value="TextureFrameSort" />
+                                <attribute name="Layout Mode" value="Horizontal" />
+                                <attribute name="Layout Border" value="1 1 1 1" />
+                                <element type="Text">
+                                    <attribute name="Text" value="Sort" />
+                                    <attribute name="Text Alignment" value="Center" />
+                                </element>
                             </element>
                         </element>
-                    </element>
-                    <element>
-                        <!-- Relative -->
-                        <attribute name="Min Size" value="0 16" />
-                        <attribute name="Max Size" value="2147483647 16" />
-                        <attribute name="Layout Mode" value="Horizontal" />
-                        <attribute name="Layout Spacing" value="10" />
-                        <element type="Text" style="EditorAttributeText">
-                            <attribute name="Text" value="Relative Transform" />
+                        <element type="BorderImage" style="EditorDivider" />
+                        <element style="Panel">
+                            <element type="Text">
+                                <attribute name="Text" value="Emitter" />
+                            </element>
                         </element>
+                        <!-- Emitter Attributes -->
                         <element>
+                            <!-- Num Particles -->
                             <attribute name="Min Size" value="0 16" />
                             <attribute name="Max Size" value="2147483647 16" />
                             <attribute name="Layout Mode" value="Horizontal" />
-                            <attribute name="Layout Spacing" value="1" />
-                            <element type="CheckBox">
-                                <attribute name="Name" value="Relative" />
+                            <attribute name="Layout Spacing" value="10" />
+                            <element type="Text" style="EditorAttributeText">
+                                <attribute name="Text" value="Number of Particles" />
+                            </element>
+                            <element>
+                                <attribute name="Min Size" value="0 16" />
+                                <attribute name="Max Size" value="2147483647 16" />
+                                <attribute name="Layout Mode" value="Horizontal" />
+                                <attribute name="Layout Spacing" value="1" />
+                                <element type="LineEdit">
+                                    <attribute name="Name" value="NumParticles" />
+                                </element>
                             </element>
                         </element>
-                    </element>
+                        <element>
+                            <!-- Emitter Size -->
+                            <attribute name="Min Size" value="0 16" />
+                            <attribute name="Max Size" value="2147483647 16" />
+                            <attribute name="Layout Mode" value="Horizontal" />
+                            <attribute name="Layout Spacing" value="10" />
+                            <element type="Text" style="EditorAttributeText">
+                                <attribute name="Text" value="Emitter Size" />
+                            </element>
+                            <element>
+                                <attribute name="Min Size" value="0 16" />
+                                <attribute name="Max Size" value="2147483647 16" />
+                                <attribute name="Layout Mode" value="Horizontal" />
+                                <attribute name="Layout Spacing" value="1" />
+                                <element type="LineEdit">
+                                    <attribute name="Name" value="EmitterSizeX" />
+                                </element>
+                                <element type="LineEdit">
+                                    <attribute name="Name" value="EmitterSizeY" />
+                                </element>
+                                <element type="LineEdit">
+                                    <attribute name="Name" value="EmitterSizeZ" />
+                                </element>
+                            </element>
+                        </element>
+                        <element>
+                            <!-- Emission Rate -->
+                            <attribute name="Min Size" value="0 16" />
+                            <attribute name="Max Size" value="2147483647 16" />
+                            <attribute name="Layout Mode" value="Horizontal" />
+                            <attribute name="Layout Spacing" value="10" />
+                            <element type="Text" style="EditorAttributeText">
+                                <attribute name="Text" value="Emission Rate" />
+                            </element>
+                            <element>
+                                <attribute name="Min Size" value="0 16" />
+                                <attribute name="Max Size" value="2147483647 16" />
+                                <attribute name="Layout Mode" value="Horizontal" />
+                                <attribute name="Layout Spacing" value="1" />
+                                <element type="LineEdit">
+                                    <attribute name="Name" value="EmissionRateMin" />
+                                </element>
+                                <element type="LineEdit">
+                                    <attribute name="Name" value="EmissionRateMax" />
+                                </element>
+                            </element>
+                        </element>
+                        <element>
+                            <!-- Emitter Shape -->
+                            <attribute name="Min Size" value="0 16" />
+                            <attribute name="Max Size" value="2147483647 16" />
+                            <attribute name="Layout Mode" value="Horizontal" />
+                            <attribute name="Layout Spacing" value="10" />
+                            <element type="Text" style="EditorAttributeText">
+                                <attribute name="Text" value="Emitter Shape" />
+                            </element>
+                            <element type="DropDownList">
+                                <attribute name="Name" value="EmitterShape" />
+                                <attribute name="Resize Popup" value="true" />
+                                <!-- Skip style processing as the purpose of below tags is to populate the content element -->
+                                <element type="Window" internal="true" popup="true" style="none">
+                                    <element type="ListView" internal="true" style="none">
+                                        <element type="BorderImage" internal="true" style="none">
+                                            <element internal="true" style="none">
+                                                <element type="Text" style="FileSelectorFilterText">
+                                                    <attribute name="Text" value="Box" />
+                                                </element>
+                                                <element type="Text" style="FileSelectorFilterText">
+                                                    <attribute name="Text" value="Sphere" />
+                                                </element>
+                                            </element>
+                                        </element>
+                                    </element>
+                                </element>
+                            </element>
+                        </element>
+                        <!-- End of Renderer Attributes -->
+                        <element type="BorderImage" style="EditorDivider" />
+                        <element style="Panel">
+                            <element type="Text">
+                                <attribute name="Text" value="Renderer" />
+                            </element>
+                        </element>
+                        <element style="Panel">
+                            <!-- Emitter Attributes -->
+                            <element>
+                                <!-- Material -->
+                                <attribute name="Min Size" value="0 16" />
+                                <attribute name="Max Size" value="2147483647 16" />
+                                <attribute name="Layout Mode" value="Horizontal" />
+                                <attribute name="Layout Spacing" value="10" />
+                                <element type="Text" style="EditorAttributeText">
+                                    <attribute name="Text" value="Material" />
+                                </element>
+                                <element>
+                                    <attribute name="Name" value="ParticleMaterialContainer" />
+                                    <attribute name="Min Size" value="0 16" />
+                                    <attribute name="Max Size" value="2147483647 16" />
+                                    <attribute name="Layout Mode" value="Horizontal" />
+                                    <attribute name="Layout Spacing" value="1" />
+                                </element>
+                            </element>
+                            <element>
+                                <!-- Scaled -->
+                                <attribute name="Min Size" value="0 16" />
+                                <attribute name="Max Size" value="2147483647 16" />
+                                <attribute name="Layout Mode" value="Horizontal" />
+                                <attribute name="Layout Spacing" value="10" />
+                                <element type="Text" style="EditorAttributeText">
+                                    <attribute name="Text" value="Scaled" />
+                                </element>
+                                <element>
+                                    <attribute name="Min Size" value="0 16" />
+                                    <attribute name="Max Size" value="2147483647 16" />
+                                    <attribute name="Layout Mode" value="Horizontal" />
+                                    <attribute name="Layout Spacing" value="1" />
+                                    <element type="CheckBox">
+                                        <attribute name="Name" value="Scaled" />
+                                    </element>
+                                </element>
+                            </element>
+                            <element>
+                                <!-- Sorted -->
+                                <attribute name="Min Size" value="0 16" />
+                                <attribute name="Max Size" value="2147483647 16" />
+                                <attribute name="Layout Mode" value="Horizontal" />
+                                <attribute name="Layout Spacing" value="10" />
+                                <element type="Text" style="EditorAttributeText">
+                                    <attribute name="Text" value="Sorted" />
+                                </element>
+                                <element>
+                                    <attribute name="Min Size" value="0 16" />
+                                    <attribute name="Max Size" value="2147483647 16" />
+                                    <attribute name="Layout Mode" value="Horizontal" />
+                                    <attribute name="Layout Spacing" value="1" />
+                                    <element type="CheckBox">
+                                        <attribute name="Name" value="Sorted" />
+                                    </element>
+                                </element>
+                            </element>
+                            <element>
+                                <!-- Relative -->
+                                <attribute name="Min Size" value="0 16" />
+                                <attribute name="Max Size" value="2147483647 16" />
+                                <attribute name="Layout Mode" value="Horizontal" />
+                                <attribute name="Layout Spacing" value="10" />
+                                <element type="Text" style="EditorAttributeText">
+                                    <attribute name="Text" value="Relative Transform" />
+                                </element>
+                                <element>
+                                    <attribute name="Min Size" value="0 16" />
+                                    <attribute name="Max Size" value="2147483647 16" />
+                                    <attribute name="Layout Mode" value="Horizontal" />
+                                    <attribute name="Layout Spacing" value="1" />
+                                    <element type="CheckBox">
+                                        <attribute name="Name" value="Relative" />
+                                    </element>
+                                </element>
+                            </element>
 
-                    <!-- End of Renderer Attributes -->
-                </element>
+                            <!-- End of Renderer Attributes -->
+                        </element>
 
+                    </element>
+                </element>
             </element>
-        </element>
-    </element>
-    <element type="BorderImage" style="EditorDivider" />
-    <element>
-        <attribute name="Name" value="ButtonContainer" />
-        <attribute name="Min Size" value="0 16" />
-        <attribute name="Max Size" value="2147483647 16" />
-        <attribute name="Layout Mode" value="Horizontal" />
-        <attribute name="Layout Spacing" value="4" />
-        <element type="Button">
-            <attribute name="Name" value="NewButton" />
-            <attribute name="Layout Mode" value="Horizontal" />
-            <attribute name="Layout Border" value="1 1 1 1" />
-            <element type="Text">
-                <attribute name="Text" value="New" />
-                <attribute name="Text Alignment" value="Center" />
-            </element>
-        </element>
-        <element type="Button">
-            <attribute name="Name" value="RevertButton" />
-            <attribute name="Layout Mode" value="Horizontal" />
-            <attribute name="Layout Border" value="1 1 1 1" />
-            <element type="Text">
-                <attribute name="Text" value="Revert" />
-                <attribute name="Text Alignment" value="Center" />
-            </element>
-        </element>
-        <element type="Button">
-            <attribute name="Name" value="SaveButton" />
-            <attribute name="Layout Mode" value="Horizontal" />
-            <attribute name="Layout Border" value="1 1 1 1" />
-            <element type="Text">
-                <attribute name="Text" value="Save" />
-                <attribute name="Text Alignment" value="Center" />
-            </element>
-        </element>
-        <element type="Button">
-            <attribute name="Name" value="SaveAsButton" />
-            <attribute name="Layout Mode" value="Horizontal" />
-            <attribute name="Layout Border" value="1 1 1 1" />
-            <element type="Text">
-                <attribute name="Text" value="Save as" />
-                <attribute name="Text Alignment" value="Center" />
+            <element type="BorderImage" style="EditorDivider" />
+            <element>
+                <attribute name="Name" value="ButtonContainer" />
+                <attribute name="Min Size" value="0 16" />
+                <attribute name="Max Size" value="2147483647 16" />
+                <attribute name="Layout Mode" value="Horizontal" />
+                <attribute name="Layout Spacing" value="4" />
+                <element type="Button">
+                    <attribute name="Name" value="NewButton" />
+                    <attribute name="Layout Mode" value="Horizontal" />
+                    <attribute name="Layout Border" value="1 1 1 1" />
+                    <element type="Text">
+                        <attribute name="Text" value="New" />
+                        <attribute name="Text Alignment" value="Center" />
+                    </element>
+                </element>
+                <element type="Button">
+                    <attribute name="Name" value="RevertButton" />
+                    <attribute name="Layout Mode" value="Horizontal" />
+                    <attribute name="Layout Border" value="1 1 1 1" />
+                    <element type="Text">
+                        <attribute name="Text" value="Revert" />
+                        <attribute name="Text Alignment" value="Center" />
+                    </element>
+                </element>
+                <element type="Button">
+                    <attribute name="Name" value="SaveButton" />
+                    <attribute name="Layout Mode" value="Horizontal" />
+                    <attribute name="Layout Border" value="1 1 1 1" />
+                    <element type="Text">
+                        <attribute name="Text" value="Save" />
+                        <attribute name="Text Alignment" value="Center" />
+                    </element>
+                </element>
+                <element type="Button">
+                    <attribute name="Name" value="SaveAsButton" />
+                    <attribute name="Layout Mode" value="Horizontal" />
+                    <attribute name="Layout Border" value="1 1 1 1" />
+                    <element type="Text">
+                        <attribute name="Text" value="Save as" />
+                        <attribute name="Text Alignment" value="Center" />
+                    </element>
+                </element>
             </element>
         </element>
     </element>
-    <element type="BorderImage" style="EditorDivider" />
-</element>
+</element>

+ 1 - 2
bin/Editor.bat

@@ -1,5 +1,4 @@
-@echo off
 if exist "%~dp0Urho3DPlayer.exe" (set "DEBUG=") else (set "DEBUG=_d")
 if exist "%~dp0..\share\Urho3D\Resources" (set "OPT1=-pp ..\share\Urho3D\Resources") else (set "OPT1=")
 if [%1] == [] (set "OPT2=-w -s") else (set "OPT2=")
-"%~dp0Urho3DPlayer%DEBUG%" Scripts/Editor.as %OPT1% %OPT2% %*
+start "" "%~dp0Urho3DPlayer%DEBUG%" Scripts/Editor.as %OPT1% %OPT2% %*