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

Adjusted creation of various assets to utilize template files.

Areloch 6 жил өмнө
parent
commit
ff7e580d28

+ 2 - 0
Templates/BaseGame/game/tools/assetBrowser/scripts/assetBrowser.cs

@@ -53,6 +53,8 @@ function AssetBrowser::onWake(%this)
    %this.onlyShowModulesWithAssets = false;
    %this.treeFilterMode = "list";
    
+   %this.templateFilesPath = "tools/assetBrowser/scripts/templateFiles/";
+   
    //First, build our our list of active modules
    %modulesList = ModuleDatabase.findModules(true);
    

+ 24 - 17
Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/component.cs

@@ -23,24 +23,31 @@ function AssetBrowser::createComponentAsset(%this)
    TamlWrite(%asset, %tamlpath);
    
    %file = new FileObject();
+	%templateFile = new FileObject();
 	
-	if(%file.openForWrite(%scriptPath))
-	{
-		//TODO: enable ability to auto-embed a header for copyright or whatnot
-	   %file.writeline("//onAdd is called when the component is created and then added to it's owner entity.\n");
-	   %file.writeline("//You would also add any script-defined component fields via addComponentField().\n");
-		%file.writeline("function " @ %assetName @ "::onAdd(%this)\n{\n\n}\n");
-		%file.writeline("//onAdd is called when the component is removed and deleted from it's owner entity.");
-		%file.writeline("function " @ %assetName @ "::onRemove(%this)\n{\n\n}\n");
-		%file.writeline("//onClientConnect is called any time a new client connects to the server.");
-		%file.writeline("function " @ %assetName @ "::onClientConnect(%this, %client)\n{\n\n}\n");
-		%file.writeline("//onClientDisconnect is called any time a client disconnects from the server.");
-		%file.writeline("function " @ %assetName @ "::onClientDisonnect(%this, %client)\n{\n\n}\n");
-		%file.writeline("//update is called when the component does an update tick.\n");
-		%file.writeline("function " @ %assetName @ "::Update(%this)\n{\n\n}\n");
-		
-		%file.close();
-	}
+   %templateCodeFilePath = %this.templateFilesPath @ "componentFile.cs.template";
+   
+   if(%file.openForWrite(%scriptPath) && %templateFile.openForRead(%templateCodeFilePath))
+   {
+      while( !%templateFile.isEOF() )
+      {
+         %line = %templateFile.readline();
+         %line = strreplace( %line, "@@", %assetName );
+         
+         %file.writeline(%line);
+         echo(%line);
+      }
+      
+      %file.close();
+      %templateFile.close();
+   }
+   else
+   {
+      %file.close();
+      %templateFile.close();
+      
+      warnf("CreateComponentAsset - Something went wrong and we couldn't write the Component script file!");
+   }
 	
 	Canvas.popDialog(AssetBrowser_newComponentAsset);
 	

+ 3 - 5
Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/cpp.cs

@@ -41,15 +41,13 @@ function AssetBrowser::createCppAsset(%this)
 	
 	AssetBrowserFilterTree.onSelect(%smItem);
 	
-	%templateFilesPath = "tools/assetBrowser/scripts/templateFiles/";
-	
 	%file = new FileObject();
 	%templateFile = new FileObject();
 	
 	if(%assetType $= "CppStaticClassAsset")
 	{
-	   %cppTemplateCodeFilePath = %templateFilesPath @ "CppStaticClassFile.cpp";
-	   %cppTemplateHeaderFilePath = %templateFilesPath @ "CppStaticClassFile.h";
+	   %cppTemplateCodeFilePath = %this.templateFilesPath @ "CppStaticClassFile.cpp";
+	   %cppTemplateHeaderFilePath = %this.templateFilesPath @ "CppStaticClassFile.h";
 	}
    
    if(%file.openForWrite(%codePath) && %templateFile.openForRead(%cppTemplateCodeFilePath))
@@ -103,7 +101,7 @@ function AssetBrowser::createCppAsset(%this)
 	   %file = new FileObject();
 	   %templateFile = new FileObject();
    
-      if(%file.openForWrite(%cppModuleFilePath) && %templateFile.openForRead(%templateFilesPath @ "CppModuleFile.cpp"))
+      if(%file.openForWrite(%cppModuleFilePath) && %templateFile.openForRead(%this.templateFilesPath @ "CppModuleFile.cpp"))
       {
          while( !%templateFile.isEOF() )
          {

+ 49 - 20
Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/gui.cs

@@ -20,27 +20,56 @@ function AssetBrowser::createGUIAsset(%this)
    TamlWrite(%asset, %tamlpath);
    
    %file = new FileObject();
+   %templateFile = new FileObject();
+   
+   %guiTemplateCodeFilePath = %this.templateFilesPath @ "guiFile.gui.template";
+   
+   if(%file.openForWrite(%guipath) && %templateFile.openForRead(%guiTemplateCodeFilePath))
+   {
+      while( !%templateFile.isEOF() )
+      {
+         %line = %templateFile.readline();
+         %line = strreplace( %line, "@@", %assetName );
+         
+         %file.writeline(%line);
+         echo(%line);
+      }
+      
+      %file.close();
+      %templateFile.close();
+   }
+   else
+   {
+      %file.close();
+      %templateFile.close();
+      
+      warnf("CreateGUIAsset - Something went wrong and we couldn't write the GUI file!");
+   }
+   
+   %scriptTemplateCodeFilePath = %this.templateFilesPath @ "guiFile.cs.template";
+   
+   if(%file.openForWrite(%scriptPath) && %templateFile.openForRead(%scriptTemplateCodeFilePath))
+   {
+      while( !%templateFile.isEOF() )
+      {
+         %line = %templateFile.readline();
+         %line = strreplace( %line, "@@", %assetName );
+         
+         %file.writeline(%line);
+         echo(%line);
+      }
+      
+      %file.close();
+      %templateFile.close();
+   }
+   else
+   {
+      %file.close();
+      %templateFile.close();
+      
+      warnf("CreateGUIAsset - Something went wrong and we couldn't write the GUI script file!");
+   }
    
-   if(%file.openForWrite(%guipath))
-	{
-	   %file.writeline("//--- OBJECT WRITE BEGIN ---");
-		%file.writeline("%guiContent = new GuiControl(" @ %assetName @ ") {");
-		%file.writeline("   position = \"0 0\";");
-		%file.writeline("   extent = \"100 100\";");
-		%file.writeline("};");
-		%file.writeline("//--- OBJECT WRITE END ---");
-		
-		%file.close();
-	}
-	
-	if(%file.openForWrite(%scriptPath))
-	{
-		%file.writeline("function " @ %assetName @ "::onWake(%this)\n{\n\n}\n");
-		%file.writeline("function " @ %assetName @ "::onSleep(%this)\n{\n\n}\n");
-		
-		%file.close();
-	}
-	
 	//load the gui
 	exec(%guipath);
 	exec(%scriptPath);

+ 25 - 5
Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/postFX.cs

@@ -27,12 +27,32 @@ function AssetBrowser::createPostEffectAsset(%this)
 	
 	AssetBrowserFilterTree.onSelect(%smItem);
 	
-	%file = new FileObject();
+   %file = new FileObject();
+	%templateFile = new FileObject();
+	
+   %postFXTemplateCodeFilePath = %this.templateFilesPath @ "postFXFile.cs.template";
    
-   if(%file.openForWrite(%scriptPath))
-	{
-		%file.close();
-	}
+   if(%file.openForWrite(%scriptPath) && %templateFile.openForRead(%postFXTemplateCodeFilePath))
+   {
+      while( !%templateFile.isEOF() )
+      {
+         %line = %templateFile.readline();
+         %line = strreplace( %line, "@@", %assetName );
+         
+         %file.writeline(%line);
+         echo(%line);
+      }
+      
+      %file.close();
+      %templateFile.close();
+   }
+   else
+   {
+      %file.close();
+      %templateFile.close();
+      
+      warnf("CreatePostFXAsset - Something went wrong and we couldn't write the PostFX script file!");
+   }
    
 	return %tamlpath;
 }

+ 26 - 0
Templates/BaseGame/game/tools/assetBrowser/scripts/templateFiles/componentFile.cs.template

@@ -0,0 +1,26 @@
+//onAdd is called when the component is created and then added to it's owner entity.
+//You would also add any script-defined component fields via addComponentField().
+function @@::onAdd(%this)
+{
+    
+}
+//onAdd is called when the component is removed and deleted from it's owner entity.
+function @@::onRemove(%this)
+{
+    
+}
+//onClientConnect is called any time a new client connects to the server.
+function @@::onClientConnect(%this, %client)
+{
+    
+}
+//onClientDisconnect is called any time a client disconnects from the server.
+%function @@::onClientDisonnect(%this, %client)
+{
+
+}
+//update is called when the component does an update tick.
+function @@::Update(%this)
+{
+    
+}

+ 9 - 0
Templates/BaseGame/game/tools/assetBrowser/scripts/templateFiles/guiFile.cs.template

@@ -0,0 +1,9 @@
+function @@::onWake(%this)
+{
+    
+}
+
+function @@::onSleep(%this)
+{
+    
+}

+ 7 - 0
Templates/BaseGame/game/tools/assetBrowser/scripts/templateFiles/guiFile.gui.template

@@ -0,0 +1,7 @@
+//--- OBJECT WRITE BEGIN ---
+%guiContent = new GuiControl(@@) 
+{
+    position = "0 0";
+	extent = "100 100";
+};
+//--- OBJECT WRITE END ---

+ 96 - 0
Templates/BaseGame/game/tools/assetBrowser/scripts/templateFiles/postFXFile.cs.template

@@ -0,0 +1,96 @@
+//-----------------------------------------------------------------------------
+// Copyright (c) 2012 GarageGames, LLC
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to
+// deal in the Software without restriction, including without limitation the
+// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+// sell copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+// IN THE SOFTWARE.
+//-----------------------------------------------------------------------------
+
+singleton ShaderData( @@_Shader )
+{
+   DXVertexShaderFile 	= $Core::CommonShaderPath @ "/postFX/postFxV.hlsl";
+   DXPixelShaderFile 	= $Core:modulePath @ "@@P.hlsl";   
+   OGLVertexShaderFile  = $Core::CommonShaderPath @ "/postFX/gl/postFxV.glsl";
+   OGLPixelShaderFile   = $Core:modulePath @ "@@P.glsl";
+   
+   samplerNames[0] = "$inputTex";
+   
+   pixVersion = 3.0;
+};
+
+singleton GFXStateBlockData( @@_StateBlock )
+{
+   samplersDefined = true;
+   samplerStates[0] = SamplerClampLinear;
+   samplerStates[1] = SamplerClampLinear;
+   samplerStates[2] = SamplerClampLinear;
+   samplerStates[3] = SamplerClampLinear;
+   
+   blendDefined = true;
+   blendDest = GFXBlendOne;
+   blendSrc = GFXBlendZero;
+   
+   zDefined = true;
+   zEnable = false;
+   zWriteEnable = false;
+   
+   cullDefined = true;
+   cullMode = GFXCullNone;
+};
+
+
+function @@::setShaderConsts( %this )
+{
+}
+
+function @@::preProcess( %this )
+{
+}
+
+function @@::onEnabled( %this )
+{
+   return true;
+}
+
+function @@::onDisabled( %this )
+{
+}
+
+singleton PostEffect( @@ )
+{
+   isEnabled = false;
+   allowReflectPass = false;
+
+   // Resolve the HDR before we render any editor stuff
+   // and before we resolve the scene to the backbuffer.
+   renderTime = "PFXBeforeBin";
+   renderBin = "EditorBin";
+   renderPriority = 9999;
+      
+   // The bright pass generates a bloomed version of 
+   // the scene for pixels which are brighter than a 
+   // fixed threshold value.
+   //
+   // This is then used in the final HDR combine pass
+   // at the end of this post effect chain.
+   shader = @@_Shader;
+   stateBlock = @@_StateBlock;
+   texture[0] = "$backBuffer";
+   target = "$outTex";
+   targetFormat = "GFXFormatR16G16B16A16F"; 
+   targetScale = "1 1";
+};

+ 35 - 0
Templates/BaseGame/game/tools/assetBrowser/scripts/templateFiles/postFXFileP.glsl.template

@@ -0,0 +1,35 @@
+//-----------------------------------------------------------------------------
+// Copyright (c) 2012 GarageGames, LLC
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to
+// deal in the Software without restriction, including without limitation the
+// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+// sell copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+// IN THE SOFTWARE.
+//-----------------------------------------------------------------------------
+
+#include "core/rendering/shaders/gl/torque.glsl"
+#include "core/rendering/shaders/gl/hlslCompat.glsl"
+#include "shadergen:/autogenConditioners.h"
+#include "core/rendering/shaders/postFX/gl/postFX.glsl"
+
+uniform sampler2D inputTex;
+
+out vec4 OUT_col;
+
+void main()
+{
+   OUT_col = hdrEncode( vec4(1,1,1,1) );
+}

+ 31 - 0
Templates/BaseGame/game/tools/assetBrowser/scripts/templateFiles/postFXFileP.hlsl.template

@@ -0,0 +1,31 @@
+//-----------------------------------------------------------------------------
+// Copyright (c) 2012 GarageGames, LLC
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to
+// deal in the Software without restriction, including without limitation the
+// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+// sell copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+// IN THE SOFTWARE.
+//-----------------------------------------------------------------------------
+
+#include "core/rendering/shaders/postFX/postFx.hlsl"
+#include "core/rendering/shaders/torque.hlsl"
+
+TORQUE_UNIFORM_SAMPLER2D(inputTex, 0);
+
+float4 main( PFXVertToPix IN ) : TORQUE_TARGET0
+{
+   return hdrEncode( float4(1,1,1,1) );
+}

+ 112 - 112
Templates/BaseGame/game/tools/settings.xml

@@ -1,140 +1,108 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <EditorSettings>
+    <Group name="TerrainEditor">
+        <Setting name="currentAction">raiseHeight</Setting>
+        <Group name="ActionValues">
+            <Setting name="smoothFactor">0.1</Setting>
+            <Setting name="noiseFactor">1</Setting>
+            <Setting name="softSelectRadius">50</Setting>
+            <Setting name="SlopeMinAngle">0</Setting>
+            <Setting name="adjustHeightVal">10</Setting>
+            <Setting name="SlopeMaxAngle">90</Setting>
+            <Setting name="scaleVal">1</Setting>
+            <Setting name="setHeightVal">100</Setting>
+            <Setting name="softSelectDefaultFilter">1.000000 0.833333 0.666667 0.500000 0.333333 0.166667 0.000000</Setting>
+            <Setting name="softSelectFilter">1.000000 0.833333 0.666667 0.500000 0.333333 0.166667 0.000000</Setting>
+        </Group>
+        <Group name="Brush">
+            <Setting name="maxBrushSize">40 40</Setting>
+            <Setting name="brushSize">1 1</Setting>
+            <Setting name="brushType">ellipse</Setting>
+            <Setting name="brushPressure">1</Setting>
+            <Setting name="brushSoftness">1</Setting>
+        </Group>
+    </Group>
     <Group name="WorldEditor">
-        <Setting name="orthoShowGrid">1</Setting>
-        <Setting name="forceLoadDAE">0</Setting>
-        <Setting name="undoLimit">40</Setting>
         <Setting name="dropType">screenCenter</Setting>
+        <Setting name="torsionPath">AssetWork_Debug.exe</Setting>
         <Setting name="displayType">6</Setting>
+        <Setting name="forceLoadDAE">0</Setting>
         <Setting name="currentEditor">WorldEditorInspectorPlugin</Setting>
+        <Setting name="orthoShowGrid">1</Setting>
+        <Setting name="undoLimit">40</Setting>
         <Setting name="orthoFOV">50</Setting>
-        <Setting name="torsionPath">AssetWork_Debug.exe</Setting>
-        <Group name="Tools">
-            <Setting name="snapGround">0</Setting>
-            <Setting name="boundingBoxCollision">0</Setting>
-            <Setting name="snapSoft">0</Setting>
-            <Setting name="dropAtScreenCenterScalar">1</Setting>
-            <Setting name="dropAtScreenCenterMax">100</Setting>
-            <Setting name="snapSoftSize">2</Setting>
-            <Setting name="objectsUseBoxCenter">1</Setting>
-        </Group>
         <Group name="ObjectIcons">
-            <Setting name="fadeIconsEndAlpha">0</Setting>
-            <Setting name="fadeIconsStartAlpha">255</Setting>
             <Setting name="fadeIconsEndDist">20</Setting>
             <Setting name="fadeIconsStartDist">8</Setting>
             <Setting name="fadeIcons">1</Setting>
+            <Setting name="fadeIconsEndAlpha">0</Setting>
+            <Setting name="fadeIconsStartAlpha">255</Setting>
         </Group>
-        <Group name="Docs">
-            <Setting name="documentationReference">../../../Documentation/Torque 3D - Script Manual.chm</Setting>
-            <Setting name="documentationURL">http://www.garagegames.com/products/torque-3d/documentation/user</Setting>
-            <Setting name="forumURL">http://www.garagegames.com/products/torque-3d/forums</Setting>
-            <Setting name="documentationLocal">../../../Documentation/Official Documentation.html</Setting>
+        <Group name="Color">
+            <Setting name="popupBackgroundColor">100 100 100 255</Setting>
+            <Setting name="objMouseOverColor">0 255 0 255</Setting>
+            <Setting name="objSelectColor">255 0 0 255</Setting>
+            <Setting name="selectionBoxColor">255 255 0 255</Setting>
+            <Setting name="objectTextColor">255 255 255 255</Setting>
+            <Setting name="dragRectColor">255 255 0 255</Setting>
+            <Setting name="objMouseOverSelectColor">0 0 255 255</Setting>
         </Group>
         <Group name="Render">
-            <Setting name="showMousePopupInfo">1</Setting>
             <Setting name="renderObjText">1</Setting>
-            <Setting name="renderPopupBackground">1</Setting>
             <Setting name="renderObjHandle">1</Setting>
+            <Setting name="renderPopupBackground">1</Setting>
+            <Setting name="showMousePopupInfo">1</Setting>
             <Setting name="renderSelectionBox">1</Setting>
         </Group>
+        <Group name="Grid">
+            <Setting name="gridSnap">0</Setting>
+            <Setting name="gridMinorColor">51 51 51 100</Setting>
+            <Setting name="gridColor">102 102 102 100</Setting>
+            <Setting name="gridSize">1</Setting>
+            <Setting name="gridOriginColor">255 255 255 100</Setting>
+        </Group>
+        <Group name="Docs">
+            <Setting name="documentationReference">../../../Documentation/Torque 3D - Script Manual.chm</Setting>
+            <Setting name="forumURL">http://www.garagegames.com/products/torque-3d/forums</Setting>
+            <Setting name="documentationLocal">../../../Documentation/Official Documentation.html</Setting>
+            <Setting name="documentationURL">http://www.garagegames.com/products/torque-3d/documentation/user</Setting>
+        </Group>
+        <Group name="Tools">
+            <Setting name="snapSoftSize">2</Setting>
+            <Setting name="snapGround">0</Setting>
+            <Setting name="dropAtScreenCenterScalar">1</Setting>
+            <Setting name="dropAtScreenCenterMax">100</Setting>
+            <Setting name="snapSoft">0</Setting>
+            <Setting name="boundingBoxCollision">0</Setting>
+            <Setting name="objectsUseBoxCenter">1</Setting>
+        </Group>
         <Group name="Theme">
+            <Setting name="windowTitleFontColor">215 215 215 255</Setting>
             <Setting name="windowTitleBGHLColor">48 48 48 255</Setting>
             <Setting name="windowTitleBGColor">50 50 50 255</Setting>
-            <Setting name="windowTitleBGNAColor">180 180 180 255</Setting>
-            <Setting name="windowTitleFontColor">215 215 215 255</Setting>
             <Setting name="windowTitleFontHLColor">255 255 255 255</Setting>
-        </Group>
-        <Group name="Color">
-            <Setting name="objMouseOverColor">0 255 0 255</Setting>
-            <Setting name="dragRectColor">255 255 0 255</Setting>
-            <Setting name="objectTextColor">255 255 255 255</Setting>
-            <Setting name="selectionBoxColor">255 255 0 255</Setting>
-            <Setting name="popupBackgroundColor">100 100 100 255</Setting>
-            <Setting name="objSelectColor">255 0 0 255</Setting>
-            <Setting name="objMouseOverSelectColor">0 0 255 255</Setting>
-        </Group>
-        <Group name="Grid">
-            <Setting name="gridSnap">0</Setting>
-            <Setting name="gridOriginColor">255 255 255 100</Setting>
-            <Setting name="gridSize">1</Setting>
-            <Setting name="gridColor">102 102 102 100</Setting>
-            <Setting name="gridMinorColor">51 51 51 100</Setting>
+            <Setting name="windowTitleBGNAColor">180 180 180 255</Setting>
         </Group>
         <Group name="Images">
+            <Setting name="lockedHandle">tools/worldEditor/images/LockedHandle</Setting>
             <Setting name="defaultHandle">tools/worldEditor/images/DefaultHandle</Setting>
             <Setting name="selectHandle">tools/worldEditor/images/SelectHandle</Setting>
-            <Setting name="lockedHandle">tools/worldEditor/images/LockedHandle</Setting>
-        </Group>
-    </Group>
-    <Group name="Theme">
-        <Setting name="fieldTextColor">178 175 172 255</Setting>
-        <Setting name="headerTextColor">236 234 232 255</Setting>
-        <Setting name="dividerDarkColor">17 16 15 255</Setting>
-        <Setting name="dividerMidColor">50 49 48 255</Setting>
-        <Setting name="fieldTextSELColor">240 240 240 255</Setting>
-        <Setting name="fieldBGSELColor">100 98 96 255</Setting>
-        <Setting name="headerColor">50 49 48 255</Setting>
-        <Setting name="fieldBGColor">59 58 57 255</Setting>
-        <Setting name="tabsColor">37 36 35 255</Setting>
-        <Setting name="tooltipTextColor">255 255 255 255</Setting>
-        <Setting name="tabsHLColor">50 49 48 255</Setting>
-        <Setting name="tooltipDividerColor">72 70 68 255</Setting>
-        <Setting name="fieldTextHLColor">234 232 230 255</Setting>
-        <Setting name="fieldBGHLColor">72 70 68 255</Setting>
-        <Setting name="windowBackgroundColor">32 31 30 255</Setting>
-        <Setting name="tooltipBGColor">43 43 43 255</Setting>
-        <Setting name="dividerLightColor">96 94 92 255</Setting>
-        <Setting name="tabsSELColor">59 58 57 255</Setting>
-    </Group>
-    <Group name="TerrainEditor">
-        <Setting name="currentAction">raiseHeight</Setting>
-        <Group name="Brush">
-            <Setting name="brushPressure">1</Setting>
-            <Setting name="brushType">ellipse</Setting>
-            <Setting name="brushSize">1 1</Setting>
-            <Setting name="maxBrushSize">40 40</Setting>
-            <Setting name="brushSoftness">1</Setting>
-        </Group>
-        <Group name="ActionValues">
-            <Setting name="SlopeMaxAngle">90</Setting>
-            <Setting name="smoothFactor">0.1</Setting>
-            <Setting name="softSelectRadius">50</Setting>
-            <Setting name="setHeightVal">100</Setting>
-            <Setting name="SlopeMinAngle">0</Setting>
-            <Setting name="scaleVal">1</Setting>
-            <Setting name="adjustHeightVal">10</Setting>
-            <Setting name="softSelectFilter">1.000000 0.833333 0.666667 0.500000 0.333333 0.166667 0.000000</Setting>
-            <Setting name="noiseFactor">1</Setting>
-            <Setting name="softSelectDefaultFilter">1.000000 0.833333 0.666667 0.500000 0.333333 0.166667 0.000000</Setting>
-        </Group>
-    </Group>
-    <Group name="AxisGizmo">
-        <Setting name="rotationSnap">15</Setting>
-        <Setting name="renderWhenUsed">0</Setting>
-        <Setting name="snapRotations">0</Setting>
-        <Setting name="renderInfoText">1</Setting>
-        <Setting name="mouseRotateScalar">0.8</Setting>
-        <Setting name="axisGizmoMaxScreenLen">100</Setting>
-        <Setting name="mouseScaleScalar">0.8</Setting>
-        <Group name="Grid">
-            <Setting name="gridSize">10 10 10</Setting>
-            <Setting name="snapToGrid">0</Setting>
-            <Setting name="gridColor">255 255 255 20</Setting>
-            <Setting name="planeDim">500</Setting>
-            <Setting name="renderPlane">0</Setting>
-            <Setting name="renderPlaneHashes">0</Setting>
         </Group>
     </Group>
     <Group name="GuiEditor">
         <Setting name="lastPath">tools/gui</Setting>
         <Setting name="previewResolution">1024 768</Setting>
         <Group name="Help">
+            <Setting name="documentationLocal">../../../Documentation/Official Documentation.html</Setting>
             <Setting name="documentationURL">http://www.garagegames.com/products/torque-3d/documentation/user</Setting>
             <Setting name="documentationReference">../../../Documentation/Torque 3D - Script Manual.chm</Setting>
-            <Setting name="documentationLocal">../../../Documentation/Official Documentation.html</Setting>
+        </Group>
+        <Group name="Rendering">
+            <Setting name="drawGuides">1</Setting>
+            <Setting name="drawBorderLines">1</Setting>
         </Group>
         <Group name="Snapping">
+            <Setting name="snapToGuides">1</Setting>
             <Setting name="snapToControls">1</Setting>
             <Setting name="snap2Grid">0</Setting>
             <Setting name="sensitivity">2</Setting>
@@ -142,24 +110,59 @@
             <Setting name="snap2GridSize">8</Setting>
             <Setting name="snapToCenters">1</Setting>
             <Setting name="snapToCanvas">1</Setting>
-            <Setting name="snapToGuides">1</Setting>
         </Group>
         <Group name="Library">
             <Setting name="viewType">Categorized</Setting>
         </Group>
-        <Group name="Selection">
-            <Setting name="fullBox">0</Setting>
-        </Group>
         <Group name="EngineDevelopment">
+            <Setting name="showEditorProfiles">0</Setting>
             <Setting name="toggleIntoEditor">0</Setting>
             <Setting name="showEditorGuis">0</Setting>
-            <Setting name="showEditorProfiles">0</Setting>
         </Group>
-        <Group name="Rendering">
-            <Setting name="drawGuides">1</Setting>
-            <Setting name="drawBorderLines">1</Setting>
+        <Group name="Selection">
+            <Setting name="fullBox">0</Setting>
+        </Group>
+    </Group>
+    <Group name="AxisGizmo">
+        <Setting name="axisGizmoMaxScreenLen">100</Setting>
+        <Setting name="snapRotations">0</Setting>
+        <Setting name="mouseScaleScalar">0.8</Setting>
+        <Setting name="renderInfoText">1</Setting>
+        <Setting name="rotationSnap">15</Setting>
+        <Setting name="mouseRotateScalar">0.8</Setting>
+        <Setting name="renderWhenUsed">0</Setting>
+        <Group name="Grid">
+            <Setting name="gridSize">10 10 10</Setting>
+            <Setting name="renderPlane">0</Setting>
+            <Setting name="snapToGrid">0</Setting>
+            <Setting name="renderPlaneHashes">0</Setting>
+            <Setting name="gridColor">255 255 255 20</Setting>
+            <Setting name="planeDim">500</Setting>
         </Group>
     </Group>
+    <Group name="Theme">
+        <Setting name="tooltipDividerColor">72 70 68 255</Setting>
+        <Setting name="headerColor">50 49 48 255</Setting>
+        <Setting name="headerTextColor">236 234 232 255</Setting>
+        <Setting name="fieldTextSELColor">240 240 240 255</Setting>
+        <Setting name="fieldBGSELColor">100 98 96 255</Setting>
+        <Setting name="fieldBGHLColor">72 70 68 255</Setting>
+        <Setting name="fieldTextHLColor">234 232 230 255</Setting>
+        <Setting name="tabsHLColor">50 49 48 255</Setting>
+        <Setting name="tabsSELColor">59 58 57 255</Setting>
+        <Setting name="windowBackgroundColor">32 31 30 255</Setting>
+        <Setting name="dividerLightColor">96 94 92 255</Setting>
+        <Setting name="tooltipTextColor">255 255 255 255</Setting>
+        <Setting name="dividerMidColor">50 49 48 255</Setting>
+        <Setting name="dividerDarkColor">17 16 15 255</Setting>
+        <Setting name="fieldTextColor">178 175 172 255</Setting>
+        <Setting name="tooltipBGColor">43 43 43 255</Setting>
+        <Setting name="fieldBGColor">59 58 57 255</Setting>
+        <Setting name="tabsColor">37 36 35 255</Setting>
+    </Group>
+    <Group name="ConvexEditor">
+        <Setting name="materialName">Grid_512_Orange</Setting>
+    </Group>
     <Group name="LevelInformation">
         <Setting name="levelsDirectory">data/FPSGameplay/levels</Setting>
         <Group name="levels">
@@ -171,9 +174,6 @@
             </Group>
         </Group>
     </Group>
-    <Group name="ConvexEditor">
-        <Setting name="materialName">Grid_512_Orange</Setting>
-    </Group>
     <Group name="NavEditor">
         <Setting name="SpawnClass">AIPlayer</Setting>
     </Group>