Browse Source

Initial Editor Setup

There are no editors yet, but this does set up the folder and file structures needed to make the editors. It moves the toys out of a "modules" folder and puts them into a "toybox" folder. It also creates an editor folder which will house the editors and a library folder which will hold reusable modules.
Peter Robinson 6 years ago
parent
commit
19adc74c7a
100 changed files with 2137 additions and 602 deletions
  1. 56 0
      editor/AssetAdmin/AssetAdmin.cs
  2. 8 0
      editor/AssetAdmin/module.taml
  3. 130 0
      editor/EditorConsole/EditorConsole.cs
  4. 8 0
      editor/EditorConsole/module.taml
  5. 112 0
      editor/EditorCore/EditorCore.cs
  6. 516 0
      editor/EditorCore/Themes/BaseTheme.cs
  7. 27 0
      editor/EditorCore/Themes/ForestRobeTheme.cs
  8. 27 0
      editor/EditorCore/Themes/LabCoatTheme.cs
  9. 79 0
      editor/EditorCore/Themes/ThemeManager.cs
  10. 12 0
      editor/EditorCore/gui/EditorOverlay.gui.taml
  11. 67 0
      editor/EditorCore/gui/temp.gui
  12. 7 0
      editor/EditorCore/module.taml
  13. 56 0
      editor/ProjectManager/ProjectManager.cs
  14. 8 0
      editor/ProjectManager/module.taml
  15. 34 0
      editor/main.cs
  16. BIN
      engine/compilers/VisualStudio 2017/.vs/Torque 2D/v15/Browse.VC.db
  17. BIN
      engine/compilers/VisualStudio 2017/.vs/Torque 2D/v15/Solution.VC.db
  18. BIN
      engine/compilers/VisualStudio 2017/.vs/Torque 2D/v15/Solution.VC.db-shm
  19. 0 0
      engine/compilers/VisualStudio 2017/.vs/Torque 2D/v15/Solution.VC.db-wal
  20. 0 0
      library/AppCore/1/fonts/.gitignore
  21. 0 0
      library/AppCore/1/main.cs
  22. 0 0
      library/AppCore/1/module.taml
  23. 137 137
      library/AppCore/1/scripts/canvas.cs
  24. 50 50
      library/AppCore/1/scripts/constants.cs
  25. 71 0
      library/AppCore/1/scripts/defaultPreferences.cs
  26. 63 63
      library/AppCore/1/scripts/openal.cs
  27. 9 5
      main.cs
  28. BIN
      modules/Sandbox/1/gui/images/tab.png
  29. 0 0
      toybox/AlphaBlendToy/1/main.cs
  30. 0 0
      toybox/AlphaBlendToy/1/module.taml
  31. 0 0
      toybox/AmbientForceControllerToy/1/main.cs
  32. 0 0
      toybox/AmbientForceControllerToy/1/module.taml
  33. 0 0
      toybox/AngleToy/1/main.cs
  34. 0 0
      toybox/AngleToy/1/module.taml
  35. 4 0
      toybox/AppCore/1/fonts/.gitignore
  36. 50 0
      toybox/AppCore/1/main.cs
  37. 7 0
      toybox/AppCore/1/module.taml
  38. 137 0
      toybox/AppCore/1/scripts/canvas.cs
  39. 51 0
      toybox/AppCore/1/scripts/constants.cs
  40. 71 71
      toybox/AppCore/1/scripts/defaultPreferences.cs
  41. 64 0
      toybox/AppCore/1/scripts/openal.cs
  42. 2 2
      toybox/AquariumToy/1/main.cs
  43. 0 0
      toybox/AquariumToy/1/module.taml
  44. 174 174
      toybox/AquariumToy/1/scripts/aquarium.cs
  45. 79 79
      toybox/AquariumToy/1/scripts/fish.cs
  46. 0 0
      toybox/AudioToy/1/assets/Pause.asset.taml
  47. 0 0
      toybox/AudioToy/1/assets/Pause.png
  48. 0 0
      toybox/AudioToy/1/assets/Play.asset.taml
  49. 0 0
      toybox/AudioToy/1/assets/Play.png
  50. 0 0
      toybox/AudioToy/1/assets/SoundOff.asset.taml
  51. 0 0
      toybox/AudioToy/1/assets/SoundOff.png
  52. 0 0
      toybox/AudioToy/1/assets/SoundOn.asset.taml
  53. 0 0
      toybox/AudioToy/1/assets/SoundOn.png
  54. 0 0
      toybox/AudioToy/1/module.cs
  55. 0 0
      toybox/AudioToy/1/module.taml
  56. 0 0
      toybox/AudioToy/1/objects/Background.taml
  57. 0 0
      toybox/AudioToy/1/objects/Barbarian.taml
  58. 0 0
      toybox/AudioToy/1/objects/Dwarf.taml
  59. 0 0
      toybox/AudioToy/1/objects/Grass.taml
  60. 0 0
      toybox/AudioToy/1/objects/Ground.taml
  61. 0 0
      toybox/AudioToy/1/objects/Knight.taml
  62. 0 0
      toybox/AudioToy/1/objects/MuteButton.taml
  63. 0 0
      toybox/AudioToy/1/objects/PlayButton.taml
  64. 0 0
      toybox/AudioToy/1/objects/Wizard.taml
  65. 0 0
      toybox/AudioToy/1/scripts/AnimationBehavior.cs
  66. 0 0
      toybox/AudioToy/1/scripts/ButtonBehavior.cs
  67. 0 0
      toybox/AudioToy/1/scripts/MusicBehavior.cs
  68. 0 0
      toybox/AudioToy/1/scripts/MuteBehavior.cs
  69. 0 0
      toybox/AudioToy/1/scripts/SoundBehavior.cs
  70. 0 0
      toybox/BridgeToy/1/main.cs
  71. 0 0
      toybox/BridgeToy/1/module.taml
  72. 0 0
      toybox/BuoyancyControllerToy/1/assets/images/waveCrests.asset.taml
  73. 0 0
      toybox/BuoyancyControllerToy/1/assets/images/waveCrests.png
  74. 0 0
      toybox/BuoyancyControllerToy/1/main.cs
  75. 0 0
      toybox/BuoyancyControllerToy/1/module.taml
  76. 0 0
      toybox/ChainToy/1/main.cs
  77. 0 0
      toybox/ChainToy/1/module.taml
  78. 0 0
      toybox/CollisionToy/1/main.cs
  79. 0 0
      toybox/CollisionToy/1/module.taml
  80. 0 0
      toybox/CompositeSpriteToy/1/.gitignore
  81. 0 0
      toybox/CompositeSpriteToy/1/assets/images/isotiles.png
  82. 0 0
      toybox/CompositeSpriteToy/1/assets/images/isotiles2.asset.taml
  83. 0 0
      toybox/CompositeSpriteToy/1/main.cs
  84. 0 0
      toybox/CompositeSpriteToy/1/module.taml
  85. 0 0
      toybox/CompositeSpriteToy/1/scripts/customLayout.cs
  86. 0 0
      toybox/CompositeSpriteToy/1/scripts/isoLayout.cs
  87. 0 0
      toybox/CompositeSpriteToy/1/scripts/noLayout.cs
  88. 0 0
      toybox/CompositeSpriteToy/1/scripts/rectLayout.cs
  89. 0 0
      toybox/CompoundObjectsToy/1/main.cs
  90. 0 0
      toybox/CompoundObjectsToy/1/module.taml
  91. 0 0
      toybox/DeathBallToy/1/assets/animations/dbForwardAnim.asset.taml
  92. 0 0
      toybox/DeathBallToy/1/assets/animations/dbQuarterAnim.asset.taml
  93. 0 0
      toybox/DeathBallToy/1/assets/animations/dbRightAnim.asset.taml
  94. 0 0
      toybox/DeathBallToy/1/assets/animations/soldierAnim.asset.taml
  95. 0 0
      toybox/DeathBallToy/1/assets/animations/soldierDeathAnim.asset.taml
  96. 7 7
      toybox/DeathBallToy/1/assets/images/dbForward.asset.taml
  97. 0 0
      toybox/DeathBallToy/1/assets/images/dbForward.png
  98. 7 7
      toybox/DeathBallToy/1/assets/images/dbQuarter.asset.taml
  99. 0 0
      toybox/DeathBallToy/1/assets/images/dbQuarter.png
  100. 7 7
      toybox/DeathBallToy/1/assets/images/dbRight.asset.taml

+ 56 - 0
editor/AssetAdmin/AssetAdmin.cs

@@ -0,0 +1,56 @@
+//-----------------------------------------------------------------------------
+// Copyright (c) 2013 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.
+//-----------------------------------------------------------------------------
+
+function AssetAdmin::create(%this)
+{
+	%this.guiPage = EditorCore.RegisterEditor("Asset Manager", %this);
+
+	%this.comingSoon = new GuiControl()
+	{
+		Profile = EditorCore.themes.panelProfile;
+		HorizSizing="center";
+		VertSizing="center";
+		Position="412 324";
+		Extent="200 120";
+		minExtent="8 8";
+		Visible="1";
+		Text = "Coming Soon!";
+	};
+	%this.guiPage.add(%this.comingSoon);
+
+	EditorCore.FinishRegistration(%this.guiPage);
+}
+
+function AssetAdmin::destroy(%this)
+{
+
+}
+
+function AssetAdmin::open(%this)
+{
+
+}
+
+function AssetAdmin::close(%this)
+{
+
+}

+ 8 - 0
editor/AssetAdmin/module.taml

@@ -0,0 +1,8 @@
+<ModuleDefinition
+	ModuleId="AssetAdmin"
+	VersionId="1"
+	Dependencies="EditorCore=1"
+	Description="Provides controls to view and edit assets."
+	ScriptFile="AssetAdmin.cs"
+	CreateFunction="create"
+	DestroyFunction="destroy" />

+ 130 - 0
editor/EditorConsole/EditorConsole.cs

@@ -0,0 +1,130 @@
+//-----------------------------------------------------------------------------
+// Copyright (c) 2013 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.
+//-----------------------------------------------------------------------------
+
+function EditorConsole::create(%this)
+{
+	%this.guiPage = EditorCore.RegisterEditor("Console", %this);
+
+	%this.consoleEntry = new GuiConsoleEditCtrl()
+	{
+		Profile = EditorCore.themes.textEditProfile;
+		HorizSizing="width";
+		VertSizing="top";
+		Position="0 738";
+		Extent="924 30";
+		minExtent="120 20";
+		AltCommand="EditorConsole.eval();";
+		MaxLength="255";
+		active = "1";
+		HistorySize="40";
+		password="0";
+		TabComplete="0";
+		SinkAllKeyEvents="1";
+		UseSiblingScroller="1";
+		Text = "Hello World";
+	};
+	%this.guiPage.add(%this.consoleEntry);
+
+	%this.hideLogButton = new GuiButtonCtrl()
+	{
+		Profile = EditorCore.themes.buttonProfile;
+		Text="Close";
+		command="EditorCore.close();";
+		HorizSizing="left";
+		VertSizing="top";
+		Position="924 738";
+		Extent="100 30";
+		MinExtent="80 20";
+	};
+	%this.guiPage.add(%this.hideLogButton);
+
+	%this.scroller = new GuiScrollCtrl()
+	{
+		Name="ConsoleScrollCtrl";
+		Profile="ConsoleScrollProfile";
+		HorizSizing="width";
+		VertSizing="height";
+		Position="0 0";
+		Extent="1024 738";
+		MinExtent="220 200";
+		willFirstRespond="1";
+		hScrollBar="alwaysOn";
+		vScrollBar="alwaysOn";
+		constantThumbHeight="0";
+		childMargin="10 0";
+	};
+	%this.guiPage.add(%this.scroller);
+
+	%this.consoleLog = new GuiConsole()
+	{
+		Profile="GuiConsoleProfile";
+		Position="0 0";
+		Extent="1024 738";
+		HorizSizing="width";
+		VertSizing="height";
+		Visible="1";
+	};
+	%this.scroller.add(%this.consoleLog);
+
+	EditorCore.FinishRegistration(%this.guiPage);
+}
+
+function EditorConsole::destroy(%this)
+{
+
+}
+
+function EditorConsole::open(%this)
+{
+	%this.scroller.scrollToBottom();
+	%this.consoleEntry.setFirstResponder();
+}
+
+function EditorConsole::close(%this)
+{
+
+}
+
+function EditorConsole::eval(%this)
+{
+	%text = trim(%this.consoleEntry.getValue());
+
+    if(strpos(%text, "(") == -1)
+    {
+        if(strpos(%text, "=") == -1 && strpos(%text, " ") == -1)
+        {
+            if(strpos(%text, "{") == -1 && strpos(%text, "}") == -1)
+            {
+                %text = %text @ "()";
+            }
+        }
+    }
+
+    %pos = strlen(%text) - 1;
+
+    if(strpos(%text, ";", %pos) == -1 && strpos(%text, "}") == -1)
+        %text = %text @ ";";
+
+    echo("==>" @ %text);
+    eval(%text);
+    %this.consoleEntry.setValue("");
+}

+ 8 - 0
editor/EditorConsole/module.taml

@@ -0,0 +1,8 @@
+<ModuleDefinition
+	ModuleId="EditorConsole"
+	VersionId="1"
+	Dependencies="EditorCore=1"
+	Description="Console for the Editor"
+	ScriptFile="EditorConsole.cs"
+	CreateFunction="create"
+	DestroyFunction="destroy" />

+ 112 - 0
editor/EditorCore/EditorCore.cs

@@ -0,0 +1,112 @@
+//-----------------------------------------------------------------------------
+// Copyright (c) 2013 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.
+//-----------------------------------------------------------------------------
+
+function EditorCore::create( %this )
+{
+	exec("./Themes/ThemeManager.cs");
+	exec("./Themes/BaseTheme.cs");
+	exec("./Themes/LabCoatTheme.cs");
+	exec("./Themes/ForestRobeTheme.cs");
+
+	%this.themes = new ScriptObject()
+	{
+		class = "ThemeManager";
+	};
+
+	%this.initGui();
+
+	%this.editorKeyMap = new ActionMap();
+    %this.editorKeyMap.bindCmd( "keyboard", "ctrl tilde", "EditorCore.toggleEditor();", "");
+	%this.editorKeyMap.push();
+}
+
+//-----------------------------------------------------------------------------
+
+function EditorCore::destroy( %this )
+{
+}
+
+function EditorCore::initGui(%this)
+{
+	%this.tabBook = new GuiTabBookCtrl()
+	{
+		Profile = %this.themes.tabBookProfileTop;
+		TabProfile = %this.themes.tabProfileTop;
+		HorizSizing = width;
+		VertSizing = height;
+		Position = "0 0";
+		Extent = "1024 768";
+		TabPosition = top;
+	};
+}
+
+function EditorCore::toggleEditor(%this)
+{
+    // Is the console awake?
+    if ( %this.tabBook.isAwake() )
+    {
+        // Yes, so deactivate it.
+        %this.close();
+        return;
+    }
+
+    // Activate it.
+    %this.open();
+}
+
+function EditorCore::open(%this)
+{
+	if ( $enableDirectInput )
+        deactivateKeyboard();
+
+    Canvas.pushDialog(%this.tabBook);
+
+	%this.tabBook.selectPage(0);
+	EditorConsole.open();
+}
+
+function EditorCore::close(%this)
+{
+	if ( $enableDirectInput )
+		activateKeyboard();
+	Canvas.popDialog(%this.tabBook);
+}
+
+function EditorCore::RegisterEditor(%this, %name, %editor)
+{
+	%this.page[%name] = new GuiTabPageCtrl()
+	{
+		Profile = %this.themes.tabPageProfile;
+		HorizSizing = width;
+		VertSizing = height;
+		Position = "0 0";
+		Extent = "1024 768";
+		Text = %name;
+	};
+
+	return %this.page[%name];
+}
+
+function EditorCore::FinishRegistration(%this, %page)
+{
+	%this.tabBook.add(%page);
+}

+ 516 - 0
editor/EditorCore/Themes/BaseTheme.cs

@@ -0,0 +1,516 @@
+function BaseTheme::onAdd(%this)
+{
+	%this.init();
+
+	%this.makeTipProfile();
+	%this.makePanelProfile();
+	%this.makeButtonProfile();
+	%this.makeTabProfile();
+	%this.makeTextEditProfile();
+	%this.makeScrollProfile();
+}
+
+function BaseTheme::init(%this)
+{
+	//fonts and font sizes
+	%this.font = "monaco";
+	%this.fontSize = 12;
+	if ($platform $= "windows")
+	{
+		%this.font = "lucida console";
+	}
+	else if ($platform $= "Android")
+	{
+		%this.font = "Droid";
+		%this.fontSize = 14;
+	}
+	else if($platform $= "ios")
+	{
+		%this.fontSize = 18;
+	}
+
+	%this.color1 = "10 10 10 255";
+	%this.color2 = "70 70 70 255";
+	%this.color3 = "120 120 120 255";
+	%this.color4 = "255 255 255 255";
+	%this.color5 = "255 133 0 255";
+
+	%this.borderSize = 3;
+}
+
+function BaseTheme::makeTipProfile(%this)
+{
+	%tipBorder = new GuiBorderProfile()
+	{
+		padding = 4;
+		border = 1;
+		borderColor = %this.color1;
+	};
+
+	%this.tipProfile = new GuiControlProfile()
+	{
+		fillColor = %this.setAlpha(%this.color2, 200);
+
+		fontType = %this.font;
+		fontSize = %this.fontSize;
+		fontColor = %this.color1;
+
+		borderDefault = %tipBorder;
+	};
+}
+
+function BaseTheme::makePanelProfile(%this)
+{
+	%panelBorder = new GuiBorderProfile()
+	{
+		padding = 10;
+		border = %this.borderSize;
+		borderColor = "0 0 0 60";
+	};
+
+	%this.panelProfile = new GuiControlProfile()
+	{
+		fillColor = %this.color1;
+
+		fontType = %this.font;
+		fontSize = %this.fontSize + 2;
+		fontColor = %this.color4;
+		align = center;
+		vAlign = middle;
+
+		borderDefault = %panelBorder;
+	};
+
+	%paddingBorder = new GuiBorderProfile()
+	{
+		padding = 10;
+	};
+
+	%this.fullPanelProfile = new GuiControlProfile()
+	{
+		fillColor = %this.color1;
+
+		fontType = %this.font;
+		fontSize = %this.fontSize;
+		fontColor = %this.color4;
+		align = center;
+		vAlign = middle;
+
+		borderDefault = %paddingBorder;
+	};
+
+	%this.overlayProfile = new GuiControlProfile()
+	{
+		fillColor = %this.setAlpha(%this.color1, 150);
+
+		fontType = %this.font;
+		fontSize = %this.fontSize;
+		fontColor = %this.color4;
+	};
+}
+
+function BaseTheme::makeButtonProfile(%this)
+{
+	%buttonBorderV = new GuiBorderProfile()
+	{
+		padding = 6;
+		paddingHL = 6 - %this.borderSize;
+		paddingSL = 6 - %this.borderSize;
+		paddingNA = 6;
+
+		border = 0;
+		borderHL = %this.borderSize;
+		borderSL = %this.borderSize;
+		borderNA = 0;
+
+		borderColor = "0 0 0 0";
+		borderColorHL = %this.setAlpha(%this.adjustValue(%this.color2, 10), 170);
+		borderColorSL = %this.setAlpha(%this.adjustValue(%this.color5, 10), 170);
+		borderColorNA = "0 0 0 0";
+
+		underfill = false;
+	};
+
+	%buttonBorderH = new GuiBorderProfile()
+	{
+		padding = 20;
+		paddingHL = 20 - %this.borderSize;
+		paddingSL = 20 - %this.borderSize;
+		paddingNA = 20;
+
+		border = 0;
+		borderHL = %this.borderSize;
+		borderSL = %this.borderSize;
+		borderNA = 0;
+
+		borderColor = "0 0 0 0";
+		borderColorHL = %this.setAlpha(%this.adjustValue(%this.color2, 10), 170);
+		borderColorSL = %this.setAlpha(%this.adjustValue(%this.color5, 10), 170);
+		borderColorNA = "0 0 0 0";
+
+		underfill = false;
+	};
+
+	%this.buttonProfile = new GuiControlProfile()
+	{
+		fillColor = %this.color2;
+		fillColorHL = %this.adjustValue(%this.color2, 10);
+		fillColorSL = %this.color3;
+		fillColorNA = %this.setAlpha(%this.color2, 80);
+
+		fontType = %this.font;
+		fontSize = %this.fontSize + 2;
+		fontColor = %this.color4;
+		fontColorHL = %this.adjustValue(%this.color4, 10);
+		fontColorSL = "0 0 0 255";
+		fontColorNA = %this.setAlpha(%this.color4, 100);
+		align = Center;
+
+		borderDefault = %buttonBorderV;
+		borderRight = %buttonBorderH;
+		borderLeft = %buttonBorderH;
+	};
+}
+
+function BaseTheme::makeTabProfile(%this)
+{
+	%tabBorderTop = new GuiBorderProfile()
+	{
+		margin = 2;
+		marginHL = 1;
+		marginSL = 0;
+		marginNA = 2;
+
+		border = 2;
+		borderHL = 2;
+		borderSL = 2;
+		borderNA = 2;
+
+		padding = 1;
+		paddingHL = 2;
+		paddingSL = 3;
+		paddingNA = 0;
+
+		borderColor = "255 255 255 90";
+		borderColorHL = "255 255 255 90";
+		borderColorSL = "255 255 255 90";
+		borderColorNA = "255 255 255 90";
+	};
+
+	%tabBorderTopAlt = new GuiBorderProfile()
+	{
+		margin = 2;
+		marginHL = 1;
+		marginSL = 0;
+		marginNA = 2;
+
+		border = 2;
+		borderHL = 2;
+		borderSL = 2;
+		borderNA = 2;
+
+		padding = 1;
+		paddingHL = 2;
+		paddingSL = 3;
+		paddingNA = 0;
+
+		borderColor = "0 0 0 90";
+		borderColorHL = "0 0 0 90";
+		borderColorSL = "0 0 0 90";
+		borderColorNA = "0 0 0 90";
+	};
+
+	%tabBorderLeft = new GuiBorderProfile()
+	{
+		margin = 2;
+		marginHL = 1;
+		marginSL = 0;
+		marginNA = 2;
+
+		border = 2;
+		borderHL = 2;
+		borderSL = 2;
+		borderNA = 2;
+
+		padding = 10;
+		paddingHL = 11;
+		paddingSL = 12;
+		paddingNA = 10;
+
+		borderColor = "255 255 255 90";
+		borderColorHL = "255 255 255 90";
+		borderColorSL = "255 255 255 90";
+		borderColorNA = "255 255 255 90";
+	};
+
+	%tabBorderRight = new GuiBorderProfile()
+	{
+		margin = 2;
+		marginHL = 1;
+		marginSL = 0;
+		marginNA = 2;
+
+		border = 2;
+		borderHL = 2;
+		borderSL = 2;
+		borderNA = 2;
+
+		padding = 10;
+		paddingHL = 11;
+		paddingSL = 12;
+		paddingNA = 10;
+
+		borderColor = "0 0 0 90";
+		borderColorHL = "0 0 0 90";
+		borderColorSL = "0 0 0 90";
+		borderColorNA = "0 0 0 90";
+	};
+
+	%tabBorderBottom = new GuiBorderProfile()
+	{
+		padding = 2;
+		paddingHL = 2;
+		paddingSL = 2;
+		paddingNA = 2;
+	};
+
+	%this.tabProfileTop = new GuiControlProfile ()
+	{
+		fillColor = %this.color3;
+		fillColorHL = %this.adjustValue(%this.color3, 10);
+		fillColorSL = %this.color5;
+		fillColorNA = %this.setAlpha(%this.color3, 150);
+
+		fontType = %this.font;
+		fontSize = %this.fontSize + 2;
+		fontColor = %this.color4;
+		fontColorHL = %this.adjustValue(%this.color4, 10);
+		fontColorSL = %this.color1;
+		fontColorNA = %this.setAlpha(%this.color4, 100);
+		align = Center;
+
+		borderTop = %tabBorderTop;
+		borderLeft = %tabBorderLeft;
+		borderRight = %tabBorderRight;
+		borderBottom = %tabBorderBottom;
+	};
+
+	%this.tabProfileBottom = new GuiControlProfile ()
+	{
+		fillColor = %this.color3;
+		fillColorHL = %this.adjustValue(%this.color3, 10);
+		fillColorSL = %this.color5;
+		fillColorNA = %this.setAlpha(%this.color3, 150);
+
+		fontType = %this.font;
+		fontSize = %this.fontSize + 2;
+		fontColor = %this.color4;
+		fontColorHL = %this.adjustValue(%this.color4, 10);
+		fontColorSL = %this.color1;
+		fontColorNA = %this.setAlpha(%this.color4, 100);
+		align = Center;
+
+		borderTop = %tabBorderBottom;
+		borderLeft = %tabBorderLeft;
+		borderRight = %tabBorderRight;
+		borderBottom = %tabBorderTopAlt;
+	};
+
+	%this.tabProfileLeft = new GuiControlProfile ()
+	{
+		fillColor = %this.color3;
+		fillColorHL = %this.adjustValue(%this.color3, 10);
+		fillColorSL = %this.color5;
+		fillColorNA = %this.setAlpha(%this.color3, 150);
+
+		fontType = %this.font;
+		fontSize = %this.fontSize + 2;
+		fontColor = %this.color4;
+		fontColorHL = %this.adjustValue(%this.color4, 10);
+		fontColorSL = %this.color1;
+		fontColorNA = %this.setAlpha(%this.color4, 100);
+		align = Center;
+
+		borderTop = %tabBorderLeft;
+		borderLeft = %tabBorderTop;
+		borderRight = %tabBorderBottom;
+		borderBottom = %tabBorderRight;
+	};
+
+	%this.tabProfileRight = new GuiControlProfile ()
+	{
+		fillColor = %this.color3;
+		fillColorHL = %this.adjustValue(%this.color3, 10);
+		fillColorSL = %this.color5;
+		fillColorNA = %this.setAlpha(%this.color3, 150);
+
+		fontType = %this.font;
+		fontSize = %this.fontSize + 2;
+		fontColor = %this.color4;
+		fontColorHL = %this.adjustValue(%this.color4, 10);
+		fontColorSL = %this.color1;
+		fontColorNA = %this.setAlpha(%this.color4, 100);
+		align = Center;
+
+		borderTop = %tabBorderLeft;
+		borderLeft = %tabBorderBottom;
+		borderRight = %tabBorderTopAlt;
+		borderBottom = %tabBorderRight;
+	};
+
+	%bookBorderBottom = new GuiBorderProfile()
+	{
+		margin = 0;
+		border = %this.borderSize;
+		borderColor = "0 0 0 150";
+		padding = 0;
+	};
+
+	%bookBorderDefault = new GuiBorderProfile()
+	{
+		padding = 10;
+	};
+
+	%this.tabBookProfileTop = new GuiControlProfile ()
+	{
+		borderDefault = %bookBorderDefault;
+		borderBottom = %bookBorderBottom;
+		fillcolor = %this.color2;
+	};
+
+	%this.tabBookProfileBottom = new GuiControlProfile ()
+	{
+		borderDefault = %bookBorderDefault;
+		borderTop = %bookBorderBottom;
+		fillcolor = %this.color2;
+	};
+
+	%this.tabBookProfileLeft = new GuiControlProfile ()
+	{
+		borderDefault = %bookBorderDefault;
+		borderRight = %bookBorderBottom;
+		fillcolor = %this.color2;
+	};
+
+	%this.tabBookProfileRight = new GuiControlProfile ()
+	{
+		borderDefault = %bookBorderDefault;
+		borderLeft = %bookBorderBottom;
+		fillcolor = %this.color2;
+	};
+
+	%this.tabPageProfile = new GuiControlProfile ()
+	{
+	    fillColor = %this.setAlpha(%this.color1, 150);
+	};
+}
+
+function BaseTheme::makeTextEditProfile(%this)
+{
+	//border for text boxes never use the HL state.
+	%textBorderV = new GuiBorderProfile()
+	{
+		padding = 2;
+		paddingSL = 2;
+		paddingNA = 2;
+
+		border = %this.borderSize;
+		borderSL = %this.borderSize;
+		borderNA = %this.borderSize;
+
+		borderColor = %this.color3;
+		borderColorSL = %this.color5;
+		borderColorNA = %this.setAlpha(%this.color3, 100);
+	};
+
+	%textBorderH = new GuiBorderProfile()
+	{
+		padding = 10;
+		paddingSL = 10;
+		paddingNA = 10;
+
+		border = %this.borderSize;
+		borderSL = %this.borderSize;
+		borderNA = %this.borderSize;
+
+		borderColor = %this.color3;
+		borderColorSL = %this.color5;
+		borderColorNA = %this.setAlpha(%this.color3, 100);
+	};
+
+	%this.textEditProfile = new GuiControlProfile()
+	{
+		fillColor = %this.color4;
+		fillColorHL = %this.color5;//used for selected text
+		fillColorSL = %this.color4;
+		fillColorNA = %this.setAlpha(%this.color4, 80);
+
+		fontType = %this.font;
+		fontSize = %this.fontSize + 2;
+		fontColor = %this.setAlpha(%this.color1, 220);
+		fontColorHL = %this.adjustValue(%this.color1, 10);
+		fontColorSL = %this.color1;
+		fontColorNA = %this.setAlpha(%this.color1, 100);
+		align = left;
+		cursorColor = %this.color1;
+
+		borderDefault = %textBorderV;
+		borderRight = %textBorderH;
+		borderLeft = %textBorderH;
+
+		tab = false;
+		canKeyFocus = true;
+		returnTab = true;
+	};
+}
+
+function BaseTheme::makeScrollProfile(%this)
+{
+	%this.scrollProfile = new GuiControlProfile()
+	{
+	    bitmap = "^Sandbox/gui/images/scrollBar.png";
+	    hasBitmapArray = true;
+	    fillColor = "0 0 0 120";
+	    border = 3;
+	    borderThickness = 0;
+	    borderColor = "0 0 0";
+	};
+}
+
+function BaseTheme::adjustValue(%this, %color, %percent)
+{
+	%red = getWord(%color, 0);
+	%green = getWord(%color, 1);
+	%blue = getWord(%color, 2);
+	%alpha = getWord(%color, 3);
+
+	%largest = %red;
+	if(%green > %largest)
+	{
+		%largest = %green;
+	}
+	if(%blue > %largest)
+	{
+		%largest = %blue;
+	}
+	%currentValue = %largest / 255;
+	%fullRed = %red / %currentValue;
+	%fullGreen = %green / %currentValue;
+	%fullBlue = %blue / %currentValue;
+
+	%newValue = %currentValue += (%percent/100);
+	%newValue = mClamp(%newValue, 0, 100);
+	%newColor = mRound(mClamp((%fullRed * %newValue), 0, 255)) SPC
+		mRound(mClamp((%fullGreen * %newValue), 0, 255)) SPC
+		mRound(mClamp((%fullBlue * %newValue), 0, 255)) SPC %alpha;
+
+	return %newColor;
+}
+
+function BaseTheme::setAlpha(%this, %color, %newAlpha)
+{
+	%red = getWord(%color, 0);
+	%green = getWord(%color, 1);
+	%blue = getWord(%color, 2);
+	return %red SPC %green SPC %blue SPC mRound(mClamp(%newAlpha, 0, 255));
+}

+ 27 - 0
editor/EditorCore/Themes/ForestRobeTheme.cs

@@ -0,0 +1,27 @@
+function ForestRobeTheme::init(%this)
+{
+	//fonts and font sizes
+	%this.font = "monaco";
+	%this.fontSize = 12;
+	if ($platform $= "windows")
+	{
+		%this.font = "lucida console";
+	}
+	else if ($platform $= "Android")
+	{
+		%this.font = "Droid";
+		%this.fontSize = 14;
+	}
+	else if($platform $= "ios")
+	{
+		%this.fontSize = 18;
+	}
+
+	%this.color1 = "43 53 66 255";
+	%this.color2 = "48 88 84 255";
+	%this.color3 = "85 138 132 255";
+	%this.color4 = "240 207 196 255";
+	%this.color5 = "216 114 107 255";
+
+	%this.borderSize = 3;
+}

+ 27 - 0
editor/EditorCore/Themes/LabCoatTheme.cs

@@ -0,0 +1,27 @@
+function LabCoatTheme::init(%this)
+{
+	//fonts and font sizes
+	%this.font = "monaco";
+	%this.fontSize = 12;
+	if ($platform $= "windows")
+	{
+		%this.font = "lucida console";
+	}
+	else if ($platform $= "Android")
+	{
+		%this.font = "Droid";
+		%this.fontSize = 14;
+	}
+	else if($platform $= "ios")
+	{
+		%this.fontSize = 18;
+	}
+
+	%this.color1 = "255 255 255 255";
+	%this.color2 = "203 217 222 255";
+	%this.color3 = "142 157 161 255";
+	%this.color4 = "33 33 46 255";
+	%this.color5 = "16 162 235 255";
+
+	%this.borderSize = 2;
+}

+ 79 - 0
editor/EditorCore/Themes/ThemeManager.cs

@@ -0,0 +1,79 @@
+//-----------------------------------------------------------------------------
+// Copyright (c) 2013 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.
+//-----------------------------------------------------------------------------
+
+function ThemeManager::onAdd(%this)
+{
+	%this.themeList = new SimSet();
+
+	%tuxedo = new ScriptObject()
+	{
+		class = "BaseTheme";
+	};
+
+	%labCoat = new ScriptObject()
+	{
+		superclass = "BaseTheme";
+		class = "LabCoatTheme";
+	};
+
+	%forestRobe = new ScriptObject()
+	{
+		superclass = "BaseTheme";
+		class = "ForestRobeTheme";
+	};
+
+	%this.registerTheme(%tuxedo);
+	%this.registerTheme(%labCoat);
+	%this.registerTheme(%forestRobe);
+	%this.setTheme(0);
+}
+
+function ThemeManager::setTheme(%this, %i)
+{
+	%theme = %this.themeList.getObject(%i);
+	%this.activateTheme(%theme);
+}
+
+function ThemeManager::registerTheme(%this, %theme)
+{
+	%this.themeList.add(%theme);
+}
+
+function ThemeManager::activateTheme(%this, %theme)
+{
+	%this.panelProfile = %theme.panelProfile;
+	%this.fullPanelProfile = %theme.fullPanelProfile;
+	%this.overlayProfile = %theme.overlayProfile;
+	%this.tipProfile = %theme.tipProfile;
+	%this.buttonProfile = %theme.buttonProfile;
+	%this.tabProfileLeft = %theme.tabProfileLeft;
+	%this.tabProfileRight = %theme.tabProfileRight;
+	%this.tabProfileTop = %theme.tabProfileTop;
+	%this.tabProfileBottom = %theme.tabProfileBottom;
+	%this.tabBookProfileLeft = %theme.tabBookProfileLeft;
+	%this.tabBookProfileRight = %theme.tabBookProfileRight;
+	%this.tabBookProfileTop = %theme.tabBookProfileTop;
+	%this.tabBookProfileBottom = %theme.tabBookProfileBottom;
+	%this.tabPageProfile = %theme.tabPageProfile;
+	%this.textEditProfile = %theme.textEditProfile;
+	%this.scrollProfile = %theme.scrollProfile;
+}

+ 12 - 0
editor/EditorCore/gui/EditorOverlay.gui.taml

@@ -0,0 +1,12 @@
+<GuiControl
+    Name="EditorOverlay"
+    HorizSizing="width"
+    VertSizing="height"
+    Position="0 0"
+    Extent="1024 768"
+    MinExtent="8 8"
+    Visible="1"
+	HelpTag="0">
+
+
+</GuiControl>

+ 67 - 0
editor/EditorCore/gui/temp.gui

@@ -0,0 +1,67 @@
+<!-- Console Command Entry -->
+<GuiConsoleEditCtrl
+	Name="ConsoleEntry"
+	Profile="GuiConsoleTextEditProfile"
+	HorizSizing="width"
+	VertSizing="top"
+	Position="0 738"
+	Extent="914 30"
+	minExtent="8 8"
+	Visible="1"
+	AltCommand="ConsoleEntry::eval();"
+	HelpTag="0"
+	MaxLength="255"
+	HistorySize="40"
+	password="0"
+	TabComplete="0"
+	SinkAllKeyEvents="1"
+	UseSiblingScroller="1"
+/>
+<!-- Hide Log -->
+<GuiButtonCtrl
+	Profile="BlueButtonProfile"
+	Text="Hide Log"
+	ButtonType="PushButton"
+	command="ToggleConsole(true);"
+	canSaveDynamicFields="0"
+	isContainer="0"
+	HorizSizing="relative"
+	VertSizing="relative"
+	Position="924 738"
+	Extent="100 30"
+	MinExtent="8 2"
+	canSave="1"
+	Visible="1"
+	Active="1"
+	hovertime="1000"
+	groupNum="-1"
+	useMouseEvents="1" />
+
+<GuiScrollCtrl
+	Name="ConsoleScrollCtrl"
+	canSaveDynamicFields="0"
+	isContainer="1"
+	Profile="ConsoleScrollProfile"
+	HorizSizing="width"
+	VertSizing="height"
+	Position="0 0"
+	Extent="1024 738"
+	MinExtent="8 8"
+	canSave="1"
+	Visible="1"
+	hovertime="1000"
+	willFirstRespond="1"
+	hScrollBar="alwaysOn"
+	vScrollBar="alwaysOn"
+	constantThumbHeight="0"
+	childMargin="0 0">
+
+	<!-- Console Log -->
+	<GuiConsole
+		Profile="GuiConsoleProfile"
+		Position="0 0"
+		Extent="1024 738"
+		HorizSizing="width"
+		VertSizing="height"
+		Visible="1"/>
+</GuiScrollCtrl>

+ 7 - 0
editor/EditorCore/module.taml

@@ -0,0 +1,7 @@
+<ModuleDefinition
+	ModuleId="EditorCore"
+	VersionId="1"
+	Description="Core module for the editor"
+	ScriptFile="EditorCore.cs"
+	CreateFunction="create"
+	DestroyFunction="destroy" />

+ 56 - 0
editor/ProjectManager/ProjectManager.cs

@@ -0,0 +1,56 @@
+//-----------------------------------------------------------------------------
+// Copyright (c) 2013 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.
+//-----------------------------------------------------------------------------
+
+function ProjectManager::create(%this)
+{
+	%this.guiPage = EditorCore.RegisterEditor("Project Manager", %this);
+
+	%this.comingSoon = new GuiControl()
+	{
+		Profile = EditorCore.themes.panelProfile;
+		HorizSizing="center";
+		VertSizing="center";
+		Position="412 324";
+		Extent="200 120";
+		minExtent="8 8";
+		Visible="1";
+		Text = "Coming Soon!";
+	};
+	%this.guiPage.add(%this.comingSoon);
+
+	EditorCore.FinishRegistration(%this.guiPage);
+}
+
+function ProjectManager::destroy(%this)
+{
+
+}
+
+function ProjectManager::open(%this)
+{
+
+}
+
+function ProjectManager::close(%this)
+{
+
+}

+ 8 - 0
editor/ProjectManager/module.taml

@@ -0,0 +1,8 @@
+<ModuleDefinition
+	ModuleId="ProjectManager"
+	VersionId="1"
+	Dependencies="EditorCore=1"
+	Description="Responsible for creating and loading projects."
+	ScriptFile="ProjectManager.cs"
+	CreateFunction="create"
+	DestroyFunction="destroy" />

+ 34 - 0
editor/main.cs

@@ -0,0 +1,34 @@
+//-----------------------------------------------------------------------------
+// Copyright (c) 2013 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.
+//-----------------------------------------------------------------------------
+
+new ModuleManager(EditorManager);
+
+// Scans for the modules that make up the editors.
+EditorManager.scanModules( "." );
+
+// Load the central module
+EditorManager.LoadGroup( "EditorGroup" );
+
+// Load various editors
+EditorManager.LoadExplicit("EditorConsole");
+Editormanager.LoadExplicit("ProjectManager");
+EditorManager.LoadExplicit("AssetAdmin");

BIN
engine/compilers/VisualStudio 2017/.vs/Torque 2D/v15/Browse.VC.db


BIN
engine/compilers/VisualStudio 2017/.vs/Torque 2D/v15/Solution.VC.db


BIN
engine/compilers/VisualStudio 2017/.vs/Torque 2D/v15/Solution.VC.db-shm


+ 0 - 0
engine/compilers/VisualStudio 2017/.vs/Torque 2D/v15/Solution.VC.db-wal


+ 0 - 0
modules/AppCore/1/fonts/.gitignore → library/AppCore/1/fonts/.gitignore


+ 0 - 0
modules/AppCore/1/main.cs → library/AppCore/1/main.cs


+ 0 - 0
modules/AppCore/1/module.taml → library/AppCore/1/module.taml


+ 137 - 137
modules/AppCore/1/scripts/canvas.cs → library/AppCore/1/scripts/canvas.cs

@@ -1,137 +1,137 @@
-//-----------------------------------------------------------------------------
-// Copyright (c) 2013 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.
-//-----------------------------------------------------------------------------
-
-//------------------------------------------------------------------------------
-// initializeCanvas
-// Constructs and initializes the default canvas window.
-//------------------------------------------------------------------------------
-$canvasCreated = false;
-function initializeCanvas(%windowName)
-{
-    // Don't duplicate the canvas.
-    if($canvasCreated)
-    {
-        error("Cannot instantiate more than one canvas!");
-        return;
-    }
-
-    videoSetGammaCorrection($pref::OpenGL::gammaCorrection);
-
-    if ( !createCanvas(%windowName) )
-    {
-        error("Canvas creation failed. Shutting down.");
-        quit();
-    }
-
-    $pref::iOS::ScreenDepth = 32;
-
-    if ($platform $= "iOS")
-    {
-        %resolution = $pref::iOS::Width SPC $pref::iOS::Height SPC 32;
-    }
-    else if ($platform $= "Android")
-    {
-    	%resolution = GetAndroidResolution();
-    }
-    else
-    {
-        if ( $pref::Video::windowedRes !$= "" )
-            %resolution = $pref::Video::windowedRes;
-        else
-            %resolution = $pref::Video::defaultResolution;
-    }
-
-    if ($platform $= "windows" || $platform $= "macos")
-    {
-        setScreenMode( %resolution._0, %resolution._1, %resolution._2, $pref::Video::fullScreen );
-    }
-    else
-    {
-        setScreenMode( %resolution._0, %resolution._1, %resolution._2, false );
-    }
-
-    $canvasCreated = true;
-}
-
-//------------------------------------------------------------------------------
-// resetCanvas
-// Forces the canvas to redraw itself.
-//------------------------------------------------------------------------------
-function resetCanvas()
-{
-    if (isObject(Canvas))
-        Canvas.repaint();
-}
-
-//------------------------------------------------------------------------------
-// iOSResolutionFromSetting
-// Helper function that grabs resolution strings based on device type
-//------------------------------------------------------------------------------
-function iOSResolutionFromSetting( %deviceType, %deviceScreenOrientation )
-{
-    // A helper function to get a string based resolution from the settings given.
-    %x = 0;
-    %y = 0;
-    
-    %scaleFactor = $pref::iOS::RetinaEnabled ? 2 : 1;
-
-    switch(%deviceType)
-    {
-        case $iOS::constant::iPhone:
-            if(%deviceScreenOrientation == $iOS::constant::Landscape)
-            {
-                %x =  $iOS::constant::iPhoneWidth * %scaleFactor;
-                %y =  $iOS::constant::iPhoneHeight * %scaleFactor;
-            }
-            else
-            {
-                %x =  $iOS::constant::iPhoneHeight * %scaleFactor;
-                %y =  $iOS::constant::iPhoneWidth * %scaleFactor;
-            }
-
-        case $iOS::constant::iPad:
-            if(%deviceScreenOrientation == $iOS::constant::Landscape)
-            {
-                %x =  $iOS::constant::iPadWidth * %scaleFactor;
-                %y =  $iOS::constant::iPadHeight * %scaleFactor;
-            }
-            else
-            {
-                %x =  $iOS::constant::iPadHeight * %scaleFactor;
-                %y =  $iOS::constant::iPadWidth * %scaleFactor;
-            }
-
-        case $iOS::constant::iPhone5:
-            if(%deviceScreenOrientation == $iOS::constant::Landscape)
-            {
-                %x =  $iOS::constant::iPhone5Width;
-                %y =  $iOS::constant::iPhone5Height;
-            }
-            else
-            {
-                %x =  $iOS::constant::iPhone5Height;
-                %y =  $iOS::constant::iPhone5Width;
-            }
-    }
-   
-    return %x @ " " @ %y;
-}
+//-----------------------------------------------------------------------------
+// Copyright (c) 2013 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.
+//-----------------------------------------------------------------------------
+
+//------------------------------------------------------------------------------
+// initializeCanvas
+// Constructs and initializes the default canvas window.
+//------------------------------------------------------------------------------
+$canvasCreated = false;
+function initializeCanvas(%windowName)
+{
+    // Don't duplicate the canvas.
+    if($canvasCreated)
+    {
+        error("Cannot instantiate more than one canvas!");
+        return;
+    }
+
+    videoSetGammaCorrection($pref::OpenGL::gammaCorrection);
+
+    if ( !createCanvas(%windowName) )
+    {
+        error("Canvas creation failed. Shutting down.");
+        quit();
+    }
+
+    $pref::iOS::ScreenDepth = 32;
+
+    if ($platform $= "iOS")
+    {
+        %resolution = $pref::iOS::Width SPC $pref::iOS::Height SPC 32;
+    }
+    else if ($platform $= "Android")
+    {
+    	%resolution = GetAndroidResolution();
+    }
+    else
+    {
+        if ( $pref::Video::windowedRes !$= "" )
+            %resolution = $pref::Video::windowedRes;
+        else
+            %resolution = $pref::Video::defaultResolution;
+    }
+
+    if ($platform $= "windows" || $platform $= "macos")
+    {
+        setScreenMode( %resolution._0, %resolution._1, %resolution._2, $pref::Video::fullScreen );
+    }
+    else
+    {
+        setScreenMode( %resolution._0, %resolution._1, %resolution._2, false );
+    }
+
+    $canvasCreated = true;
+}
+
+//------------------------------------------------------------------------------
+// resetCanvas
+// Forces the canvas to redraw itself.
+//------------------------------------------------------------------------------
+function resetCanvas()
+{
+    if (isObject(Canvas))
+        Canvas.repaint();
+}
+
+//------------------------------------------------------------------------------
+// iOSResolutionFromSetting
+// Helper function that grabs resolution strings based on device type
+//------------------------------------------------------------------------------
+function iOSResolutionFromSetting( %deviceType, %deviceScreenOrientation )
+{
+    // A helper function to get a string based resolution from the settings given.
+    %x = 0;
+    %y = 0;
+    
+    %scaleFactor = $pref::iOS::RetinaEnabled ? 2 : 1;
+
+    switch(%deviceType)
+    {
+        case $iOS::constant::iPhone:
+            if(%deviceScreenOrientation == $iOS::constant::Landscape)
+            {
+                %x =  $iOS::constant::iPhoneWidth * %scaleFactor;
+                %y =  $iOS::constant::iPhoneHeight * %scaleFactor;
+            }
+            else
+            {
+                %x =  $iOS::constant::iPhoneHeight * %scaleFactor;
+                %y =  $iOS::constant::iPhoneWidth * %scaleFactor;
+            }
+
+        case $iOS::constant::iPad:
+            if(%deviceScreenOrientation == $iOS::constant::Landscape)
+            {
+                %x =  $iOS::constant::iPadWidth * %scaleFactor;
+                %y =  $iOS::constant::iPadHeight * %scaleFactor;
+            }
+            else
+            {
+                %x =  $iOS::constant::iPadHeight * %scaleFactor;
+                %y =  $iOS::constant::iPadWidth * %scaleFactor;
+            }
+
+        case $iOS::constant::iPhone5:
+            if(%deviceScreenOrientation == $iOS::constant::Landscape)
+            {
+                %x =  $iOS::constant::iPhone5Width;
+                %y =  $iOS::constant::iPhone5Height;
+            }
+            else
+            {
+                %x =  $iOS::constant::iPhone5Height;
+                %y =  $iOS::constant::iPhone5Width;
+            }
+    }
+   
+    return %x @ " " @ %y;
+}

+ 50 - 50
modules/AppCore/1/scripts/constants.cs → library/AppCore/1/scripts/constants.cs

@@ -1,51 +1,51 @@
-//-----------------------------------------------------------------------------
-// Copyright (c) 2013 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.
-//-----------------------------------------------------------------------------
-
-$iOS::constant::iPhone = 0;
-$iOS::constant::iPad = 1;
-$iOS::constant::iPhone5 = 2;
-
-$iOS::constant::Landscape = 0;
-$iOS::constant::Portrait = 1;
-$iOS::constant::ResolutionFull = 0;
-$iOS::constant::ResolutionSmall = 1;
-
-$iOS::constant::iPhoneWidth = 480;
-$iOS::constant::iPhoneHeight = 320;
-
-$iOS::constant::iPhone4Width = 960;
-$iOS::constant::iPhone4Height = 640;
-
-$iOS::constant::iPadWidth = 1024;
-$iOS::constant::iPadHeight = 768;
-
-$iOS::constant::NewiPadWidth = 2048;
-$iOS::constant::NewiPadHeight = 1536;
-
-$iOS::constant::iPhone5Width = 1136;
-$iOS::constant::iPhone5Height = 640;
-
-$iOS::constant::OrientationUnknown = 0;
-$iOS::constant::OrientationLandscapeLeft = 1;
-$iOS::constant::OrientationLandscapeRight = 2;
-$iOS::constant::OrientationPortrait = 3;
+//-----------------------------------------------------------------------------
+// Copyright (c) 2013 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.
+//-----------------------------------------------------------------------------
+
+$iOS::constant::iPhone = 0;
+$iOS::constant::iPad = 1;
+$iOS::constant::iPhone5 = 2;
+
+$iOS::constant::Landscape = 0;
+$iOS::constant::Portrait = 1;
+$iOS::constant::ResolutionFull = 0;
+$iOS::constant::ResolutionSmall = 1;
+
+$iOS::constant::iPhoneWidth = 480;
+$iOS::constant::iPhoneHeight = 320;
+
+$iOS::constant::iPhone4Width = 960;
+$iOS::constant::iPhone4Height = 640;
+
+$iOS::constant::iPadWidth = 1024;
+$iOS::constant::iPadHeight = 768;
+
+$iOS::constant::NewiPadWidth = 2048;
+$iOS::constant::NewiPadHeight = 1536;
+
+$iOS::constant::iPhone5Width = 1136;
+$iOS::constant::iPhone5Height = 640;
+
+$iOS::constant::OrientationUnknown = 0;
+$iOS::constant::OrientationLandscapeLeft = 1;
+$iOS::constant::OrientationLandscapeRight = 2;
+$iOS::constant::OrientationPortrait = 3;
 $iOS::constant::OrientationPortraitUpsideDown = 4;

+ 71 - 0
library/AppCore/1/scripts/defaultPreferences.cs

@@ -0,0 +1,71 @@
+//-----------------------------------------------------------------------------
+// Copyright (c) 2013 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.
+//-----------------------------------------------------------------------------
+
+/// Game
+$Game::CompanyName              = "GarageGames LLC";
+$Game::ProductName              = "Torque 2D";
+
+/// iOS
+$pref::iOS::ScreenOrientation   = $iOS::constant::Landscape;
+$pref::iOS::ScreenDepth		    = 32;
+$pref::iOS::UseGameKit          = 0;
+$pref::iOS::UseMusic            = 0;
+$pref::iOS::UseMoviePlayer      = 0;
+$pref::iOS::UseAutoRotate       = 1;
+$pref::iOS::EnableOrientationRotation = 1;
+$pref::iOS::EnableOtherOrientationRotation = 1;
+$pref::iOS::StatusBarType       = 0;
+
+/// Audio
+$pref::Audio::driver = "OpenAL";
+$pref::Audio::forceMaxDistanceUpdate = 0;
+$pref::Audio::environmentEnabled = 0;
+$pref::Audio::masterVolume   = 1.0;
+$pref::Audio::channelVolume1 = 1.0;
+$pref::Audio::channelVolume2 = 1.0;
+$pref::Audio::channelVolume3 = 1.0;
+$pref::Audio::sfxVolume = 1.0;
+$pref::Audio::musicVolume = 1.0;
+
+/// T2D
+$pref::T2D::ParticlePlayerEmissionRateScale = 1.0;
+$pref::T2D::ParticlePlayerSizeScale = 1.0;
+$pref::T2D::ParticlePlayerForceScale = 1.0;
+$pref::T2D::ParticlePlayerTimeScale = 1.0;
+$pref::T2D::warnFileDeprecated = 1;
+$pref::T2D::warnSceneOccupancy = 1;
+$pref::T2D::imageAssetGlobalFilterMode = Bilinear;
+$pref::T2D::TAMLSchema="";
+$pref::T2D::JSONStrict = 1;
+
+/// Video
+$pref::Video::appliedPref = 0;
+$pref::Video::disableVerticalSync = 1;
+$pref::Video::displayDevice = "OpenGL";
+$pref::Video::preferOpenGL = 1;
+$pref::Video::fullScreen = 1;
+$pref::Video::defaultResolution = "1024 768";
+$pref::Video::windowedRes = "1024 768 32";
+$pref::OpenGL::gammaCorrection = 0.5;
+
+/// Fonts.
+$Gui::fontCacheDirectory = expandPath( "^AppCore/fonts" );

+ 63 - 63
modules/AppCore/1/scripts/openal.cs → library/AppCore/1/scripts/openal.cs

@@ -1,64 +1,64 @@
-//-----------------------------------------------------------------------------
-// Copyright (c) 2013 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.
-//-----------------------------------------------------------------------------
-
-//------------------------------------------------------------------------------
-// Audio channel descriptions.
-//------------------------------------------------------------------------------
-$musicAudioType = 1;
-$effectsAudioType = 2;
-
-//------------------------------------------------------------------------------
-// initializeOpenAL
-// Starts up the OpenAL driver.
-//------------------------------------------------------------------------------
-function initializeOpenAL()
-{
-    // Just in case it is already started.
-    shutdownOpenAL();
-
-    echo("OpenAL Driver Init");
-
-    if (!OpenALInitDriver())
-    {
-        echo("OpenALInitDriver() failed");
-        $Audio::initFailed = true;
-    }
-    else
-    {
-        // Set the master volume.
-        alxListenerf(AL_GAIN_LINEAR, $pref::Audio::masterVolume);
-
-        // Set the channel volumes.
-        for (%channel = 1; %channel <= 3; %channel++)
-            alxSetChannelVolume(%channel, $pref::Audio::channelVolume[%channel]);
-
-        echo("OpenAL Driver Init Success");
-    }
-}
-
-//------------------------------------------------------------------------------
-// shutdownOpenAL
-//------------------------------------------------------------------------------
-function shutdownOpenAL()
-{
-    OpenALShutdownDriver();
+//-----------------------------------------------------------------------------
+// Copyright (c) 2013 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.
+//-----------------------------------------------------------------------------
+
+//------------------------------------------------------------------------------
+// Audio channel descriptions.
+//------------------------------------------------------------------------------
+$musicAudioType = 1;
+$effectsAudioType = 2;
+
+//------------------------------------------------------------------------------
+// initializeOpenAL
+// Starts up the OpenAL driver.
+//------------------------------------------------------------------------------
+function initializeOpenAL()
+{
+    // Just in case it is already started.
+    shutdownOpenAL();
+
+    echo("OpenAL Driver Init");
+
+    if (!OpenALInitDriver())
+    {
+        echo("OpenALInitDriver() failed");
+        $Audio::initFailed = true;
+    }
+    else
+    {
+        // Set the master volume.
+        alxListenerf(AL_GAIN_LINEAR, $pref::Audio::masterVolume);
+
+        // Set the channel volumes.
+        for (%channel = 1; %channel <= 3; %channel++)
+            alxSetChannelVolume(%channel, $pref::Audio::channelVolume[%channel]);
+
+        echo("OpenAL Driver Init Success");
+    }
+}
+
+//------------------------------------------------------------------------------
+// shutdownOpenAL
+//------------------------------------------------------------------------------
+function shutdownOpenAL()
+{
+    OpenALShutdownDriver();
 }

+ 9 - 5
main.cs

@@ -41,7 +41,7 @@ $Scripts::ignoreDSOs = true;
 // The name of the game. Used to form the path to save preferences. Defaults to C++ engine define TORQUE_GAME_NAME
 // if not specified.
 // Appending version string to avoid conflicts with existing versions and other versions.
-setCompanyAndProduct("GarageGames", "Torque 2D" );
+setCompanyAndProduct("GarageGames", "Torque2D" );
 
 // Set module database information echo.
 ModuleDatabase.EchoInfo = false;
@@ -53,17 +53,21 @@ AssetDatabase.EchoInfo = false;
 // This cases assets to stay in memory unless assets are purged.
 AssetDatabase.IgnoreAutoUnload = true;
 
-// Scan modules.
-ModuleDatabase.scanModules( "./modules" );
+// Scan modules in your game. This defaults to the toybox for now. You should make an empty game folder, move some modules into it from the library, and change this to scan it.
+ModuleDatabase.scanModules( "./toybox" );
 
-// Load AppCore module.
+// You'll need to load a starting module for your game. This will likely be the AppCore.
 ModuleDatabase.LoadExplicit( "AppCore" );
 
+// Starts the editor.
+exec("./editor/main.cs");
+
 //-----------------------------------------------------------------------------
 
 function onExit()
 {
-    // Unload the AppCore module.
+    // Unload the AppCore or EditorCore modules.
+    EditorManager.unloadGroup( "EditorGroup" );
     ModuleDatabase.unloadExplicit( "AppCore" );
 }
 

BIN
modules/Sandbox/1/gui/images/tab.png


+ 0 - 0
modules/AlphaBlendToy/1/main.cs → toybox/AlphaBlendToy/1/main.cs


+ 0 - 0
modules/AlphaBlendToy/1/module.taml → toybox/AlphaBlendToy/1/module.taml


+ 0 - 0
modules/AmbientForceControllerToy/1/main.cs → toybox/AmbientForceControllerToy/1/main.cs


+ 0 - 0
modules/AmbientForceControllerToy/1/module.taml → toybox/AmbientForceControllerToy/1/module.taml


+ 0 - 0
modules/AngleToy/1/main.cs → toybox/AngleToy/1/main.cs


+ 0 - 0
modules/AngleToy/1/module.taml → toybox/AngleToy/1/module.taml


+ 4 - 0
toybox/AppCore/1/fonts/.gitignore

@@ -0,0 +1,4 @@
+# Ignore everything in this directory
+*
+# Except this file
+!.gitignore

+ 50 - 0
toybox/AppCore/1/main.cs

@@ -0,0 +1,50 @@
+//-----------------------------------------------------------------------------
+// Copyright (c) 2013 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.
+//-----------------------------------------------------------------------------
+
+function AppCore::create( %this )
+{
+    // Load system scripts
+    exec("./scripts/constants.cs");
+    exec("./scripts/defaultPreferences.cs");
+    exec("./scripts/canvas.cs");
+    exec("./scripts/openal.cs");
+    
+    // Initialize the canvas
+    initializeCanvas("Torque 2D");
+    
+    // Set the canvas color
+    Canvas.BackgroundColor = "CornflowerBlue";
+    Canvas.UseBackgroundColor = true;
+    
+    // Initialize audio
+    initializeOpenAL();
+    
+    ModuleDatabase.loadGroup("gameBase");
+}
+
+//-----------------------------------------------------------------------------
+
+function AppCore::destroy( %this )
+{
+
+}
+

+ 7 - 0
toybox/AppCore/1/module.taml

@@ -0,0 +1,7 @@
+<ModuleDefinition
+	ModuleId="AppCore"
+	VersionId="1"
+	Description="Barebones startup module"
+	ScriptFile="main.cs"
+	CreateFunction="create"
+	DestroyFunction="destroy" />

+ 137 - 0
toybox/AppCore/1/scripts/canvas.cs

@@ -0,0 +1,137 @@
+//-----------------------------------------------------------------------------
+// Copyright (c) 2013 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.
+//-----------------------------------------------------------------------------
+
+//------------------------------------------------------------------------------
+// initializeCanvas
+// Constructs and initializes the default canvas window.
+//------------------------------------------------------------------------------
+$canvasCreated = false;
+function initializeCanvas(%windowName)
+{
+    // Don't duplicate the canvas.
+    if($canvasCreated)
+    {
+        error("Cannot instantiate more than one canvas!");
+        return;
+    }
+
+    videoSetGammaCorrection($pref::OpenGL::gammaCorrection);
+
+    if ( !createCanvas(%windowName) )
+    {
+        error("Canvas creation failed. Shutting down.");
+        quit();
+    }
+
+    $pref::iOS::ScreenDepth = 32;
+
+    if ($platform $= "iOS")
+    {
+        %resolution = $pref::iOS::Width SPC $pref::iOS::Height SPC 32;
+    }
+    else if ($platform $= "Android")
+    {
+    	%resolution = GetAndroidResolution();
+    }
+    else
+    {
+        if ( $pref::Video::windowedRes !$= "" )
+            %resolution = $pref::Video::windowedRes;
+        else
+            %resolution = $pref::Video::defaultResolution;
+    }
+
+    if ($platform $= "windows" || $platform $= "macos")
+    {
+        setScreenMode( %resolution._0, %resolution._1, %resolution._2, $pref::Video::fullScreen );
+    }
+    else
+    {
+        setScreenMode( %resolution._0, %resolution._1, %resolution._2, false );
+    }
+
+    $canvasCreated = true;
+}
+
+//------------------------------------------------------------------------------
+// resetCanvas
+// Forces the canvas to redraw itself.
+//------------------------------------------------------------------------------
+function resetCanvas()
+{
+    if (isObject(Canvas))
+        Canvas.repaint();
+}
+
+//------------------------------------------------------------------------------
+// iOSResolutionFromSetting
+// Helper function that grabs resolution strings based on device type
+//------------------------------------------------------------------------------
+function iOSResolutionFromSetting( %deviceType, %deviceScreenOrientation )
+{
+    // A helper function to get a string based resolution from the settings given.
+    %x = 0;
+    %y = 0;
+    
+    %scaleFactor = $pref::iOS::RetinaEnabled ? 2 : 1;
+
+    switch(%deviceType)
+    {
+        case $iOS::constant::iPhone:
+            if(%deviceScreenOrientation == $iOS::constant::Landscape)
+            {
+                %x =  $iOS::constant::iPhoneWidth * %scaleFactor;
+                %y =  $iOS::constant::iPhoneHeight * %scaleFactor;
+            }
+            else
+            {
+                %x =  $iOS::constant::iPhoneHeight * %scaleFactor;
+                %y =  $iOS::constant::iPhoneWidth * %scaleFactor;
+            }
+
+        case $iOS::constant::iPad:
+            if(%deviceScreenOrientation == $iOS::constant::Landscape)
+            {
+                %x =  $iOS::constant::iPadWidth * %scaleFactor;
+                %y =  $iOS::constant::iPadHeight * %scaleFactor;
+            }
+            else
+            {
+                %x =  $iOS::constant::iPadHeight * %scaleFactor;
+                %y =  $iOS::constant::iPadWidth * %scaleFactor;
+            }
+
+        case $iOS::constant::iPhone5:
+            if(%deviceScreenOrientation == $iOS::constant::Landscape)
+            {
+                %x =  $iOS::constant::iPhone5Width;
+                %y =  $iOS::constant::iPhone5Height;
+            }
+            else
+            {
+                %x =  $iOS::constant::iPhone5Height;
+                %y =  $iOS::constant::iPhone5Width;
+            }
+    }
+   
+    return %x @ " " @ %y;
+}

+ 51 - 0
toybox/AppCore/1/scripts/constants.cs

@@ -0,0 +1,51 @@
+//-----------------------------------------------------------------------------
+// Copyright (c) 2013 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.
+//-----------------------------------------------------------------------------
+
+$iOS::constant::iPhone = 0;
+$iOS::constant::iPad = 1;
+$iOS::constant::iPhone5 = 2;
+
+$iOS::constant::Landscape = 0;
+$iOS::constant::Portrait = 1;
+$iOS::constant::ResolutionFull = 0;
+$iOS::constant::ResolutionSmall = 1;
+
+$iOS::constant::iPhoneWidth = 480;
+$iOS::constant::iPhoneHeight = 320;
+
+$iOS::constant::iPhone4Width = 960;
+$iOS::constant::iPhone4Height = 640;
+
+$iOS::constant::iPadWidth = 1024;
+$iOS::constant::iPadHeight = 768;
+
+$iOS::constant::NewiPadWidth = 2048;
+$iOS::constant::NewiPadHeight = 1536;
+
+$iOS::constant::iPhone5Width = 1136;
+$iOS::constant::iPhone5Height = 640;
+
+$iOS::constant::OrientationUnknown = 0;
+$iOS::constant::OrientationLandscapeLeft = 1;
+$iOS::constant::OrientationLandscapeRight = 2;
+$iOS::constant::OrientationPortrait = 3;
+$iOS::constant::OrientationPortraitUpsideDown = 4;

+ 71 - 71
modules/AppCore/1/scripts/defaultPreferences.cs → toybox/AppCore/1/scripts/defaultPreferences.cs

@@ -1,71 +1,71 @@
-//-----------------------------------------------------------------------------
-// Copyright (c) 2013 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.
-//-----------------------------------------------------------------------------
-
-/// Game
-$Game::CompanyName              = "GarageGames LLC";
-$Game::ProductName              = "Torque 2D";
-
-/// iOS
-$pref::iOS::ScreenOrientation   = $iOS::constant::Landscape;
-$pref::iOS::ScreenDepth		    = 32;
-$pref::iOS::UseGameKit          = 0;
-$pref::iOS::UseMusic            = 0;
-$pref::iOS::UseMoviePlayer      = 0;
-$pref::iOS::UseAutoRotate       = 1;
-$pref::iOS::EnableOrientationRotation = 1;
-$pref::iOS::EnableOtherOrientationRotation = 1;   
-$pref::iOS::StatusBarType       = 0;
-
-/// Audio
-$pref::Audio::driver = "OpenAL";
-$pref::Audio::forceMaxDistanceUpdate = 0;
-$pref::Audio::environmentEnabled = 0;
-$pref::Audio::masterVolume   = 1.0;
-$pref::Audio::channelVolume1 = 1.0;
-$pref::Audio::channelVolume2 = 1.0;
-$pref::Audio::channelVolume3 = 1.0;
-$pref::Audio::sfxVolume = 1.0;
-$pref::Audio::musicVolume = 1.0;
-
-/// T2D
-$pref::T2D::ParticlePlayerEmissionRateScale = 1.0;
-$pref::T2D::ParticlePlayerSizeScale = 1.0;
-$pref::T2D::ParticlePlayerForceScale = 1.0;
-$pref::T2D::ParticlePlayerTimeScale = 1.0;
-$pref::T2D::warnFileDeprecated = 1;
-$pref::T2D::warnSceneOccupancy = 1;
-$pref::T2D::imageAssetGlobalFilterMode = Bilinear;
-$pref::T2D::TAMLSchema="";
-$pref::T2D::JSONStrict = 1;
-
-/// Video
-$pref::Video::appliedPref = 0;
-$pref::Video::disableVerticalSync = 1;
-$pref::Video::displayDevice = "OpenGL";
-$pref::Video::preferOpenGL = 1;
-$pref::Video::fullScreen = 0;
-$pref::Video::defaultResolution = "1024 768";
-$pref::Video::windowedRes = "1024 768 32";
-$pref::OpenGL::gammaCorrection = 0.5;
-
-/// Fonts.
-$Gui::fontCacheDirectory = expandPath( "^AppCore/fonts" );
+//-----------------------------------------------------------------------------
+// Copyright (c) 2013 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.
+//-----------------------------------------------------------------------------
+
+/// Game
+$Game::CompanyName              = "GarageGames LLC";
+$Game::ProductName              = "Torque 2D";
+
+/// iOS
+$pref::iOS::ScreenOrientation   = $iOS::constant::Landscape;
+$pref::iOS::ScreenDepth		    = 32;
+$pref::iOS::UseGameKit          = 0;
+$pref::iOS::UseMusic            = 0;
+$pref::iOS::UseMoviePlayer      = 0;
+$pref::iOS::UseAutoRotate       = 1;
+$pref::iOS::EnableOrientationRotation = 1;
+$pref::iOS::EnableOtherOrientationRotation = 1;   
+$pref::iOS::StatusBarType       = 0;
+
+/// Audio
+$pref::Audio::driver = "OpenAL";
+$pref::Audio::forceMaxDistanceUpdate = 0;
+$pref::Audio::environmentEnabled = 0;
+$pref::Audio::masterVolume   = 1.0;
+$pref::Audio::channelVolume1 = 1.0;
+$pref::Audio::channelVolume2 = 1.0;
+$pref::Audio::channelVolume3 = 1.0;
+$pref::Audio::sfxVolume = 1.0;
+$pref::Audio::musicVolume = 1.0;
+
+/// T2D
+$pref::T2D::ParticlePlayerEmissionRateScale = 1.0;
+$pref::T2D::ParticlePlayerSizeScale = 1.0;
+$pref::T2D::ParticlePlayerForceScale = 1.0;
+$pref::T2D::ParticlePlayerTimeScale = 1.0;
+$pref::T2D::warnFileDeprecated = 1;
+$pref::T2D::warnSceneOccupancy = 1;
+$pref::T2D::imageAssetGlobalFilterMode = Bilinear;
+$pref::T2D::TAMLSchema="";
+$pref::T2D::JSONStrict = 1;
+
+/// Video
+$pref::Video::appliedPref = 0;
+$pref::Video::disableVerticalSync = 1;
+$pref::Video::displayDevice = "OpenGL";
+$pref::Video::preferOpenGL = 1;
+$pref::Video::fullScreen = 0;
+$pref::Video::defaultResolution = "1024 768";
+$pref::Video::windowedRes = "1024 768 32";
+$pref::OpenGL::gammaCorrection = 0.5;
+
+/// Fonts.
+$Gui::fontCacheDirectory = expandPath( "^AppCore/fonts" );

+ 64 - 0
toybox/AppCore/1/scripts/openal.cs

@@ -0,0 +1,64 @@
+//-----------------------------------------------------------------------------
+// Copyright (c) 2013 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.
+//-----------------------------------------------------------------------------
+
+//------------------------------------------------------------------------------
+// Audio channel descriptions.
+//------------------------------------------------------------------------------
+$musicAudioType = 1;
+$effectsAudioType = 2;
+
+//------------------------------------------------------------------------------
+// initializeOpenAL
+// Starts up the OpenAL driver.
+//------------------------------------------------------------------------------
+function initializeOpenAL()
+{
+    // Just in case it is already started.
+    shutdownOpenAL();
+
+    echo("OpenAL Driver Init");
+
+    if (!OpenALInitDriver())
+    {
+        echo("OpenALInitDriver() failed");
+        $Audio::initFailed = true;
+    }
+    else
+    {
+        // Set the master volume.
+        alxListenerf(AL_GAIN_LINEAR, $pref::Audio::masterVolume);
+
+        // Set the channel volumes.
+        for (%channel = 1; %channel <= 3; %channel++)
+            alxSetChannelVolume(%channel, $pref::Audio::channelVolume[%channel]);
+
+        echo("OpenAL Driver Init Success");
+    }
+}
+
+//------------------------------------------------------------------------------
+// shutdownOpenAL
+//------------------------------------------------------------------------------
+function shutdownOpenAL()
+{
+    OpenALShutdownDriver();
+}

+ 2 - 2
modules/AquariumToy/1/main.cs → toybox/AquariumToy/1/main.cs

@@ -22,7 +22,7 @@
 
 function AquariumToy::create( %this )
 {
-    exec("./scripts/aquarium.cs");
+    exec("./scripts/aquarium.cs");
     exec("./scripts/fish.cs");
 
     // Configure settings.
@@ -90,7 +90,7 @@ function AquariumToy::spawnFish(%this)
         maxSpeed = "15";
         CollisionCallback = true;
     };
-
+
     // aquarium boundary triggers are in group 15.  See TropicalAssets/scripts/aquarium.cs
     %fish.setCollisionGroups( 15 );
     %fish.createPolygonBoxCollisionShape(%fishSize);

+ 0 - 0
modules/AquariumToy/1/module.taml → toybox/AquariumToy/1/module.taml


+ 174 - 174
modules/AquariumToy/1/scripts/aquarium.cs → toybox/AquariumToy/1/scripts/aquarium.cs

@@ -1,174 +1,174 @@
-//-----------------------------------------------------------------------------
-// Copyright (c) 2013 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.
-//-----------------------------------------------------------------------------
-
-function getFishAnimationList()
-{
-   %list = "TropicalAssets:angelfish1Anim" @ "," @ "TropicalAssets:angelfish2Anim" @ "," @ "TropicalAssets:butterflyfishAnim";
-   %list = %list @ "," @ "TropicalAssets:pufferfishAnim" @ "," @ "TropicalAssets:rockfishAnim" @ "," @ "TropicalAssets:seahorseAnim";
-   %list = %list @ "," @ "TropicalAssets:triggerfish1Anim" @ "," @ "TropicalAssets:eelAnim";
-}
-
-//-----------------------------------------------------------------------------
-
-function getFishSize(%anim)
-{
-    switch$(%anim)
-    {
-        case "TropicalAssets:angelfish1Anim":
-        %fishInfo = "15 15";
-
-        case "TropicalAssets:angelfish2Anim":
-        %fishInfo = "15 15";
-        
-        case "TropicalAssets:butterflyfishAnim":
-        %fishInfo = "15 15";
-        
-        case "TropicalAssets:pufferfishAnim":
-        %fishInfo = "15 15";
-        
-        case "TropicalAssets:rockfishAnim":
-        %fishInfo = "15 7.5";
-        
-        case "TropicalAssets:seahorseAnim":
-        %fishInfo = "7.5 15";
-        
-        case "TropicalAssets:triggerfish1Anim":
-        %fishInfo = "15 15";
-
-        case "TropicalAssets:eelAnim":
-        %fishInfo = "7.5 3.75";
-    }
-
-    return %fishInfo;
-}
-
-//-----------------------------------------------------------------------------
-
-function buildAquarium(%scene)
-{
-    // A pre-built aquarium of size 100x75, with blue water, some haze, and some nice rocks.
-    // Triggers will be provide around the edges to let the developer know when objects in the
-    // aquarium have reached the edges.
-
-    // Background
-    %background = new Sprite();
-    %background.setBodyType( "static" );
-    %background.setImage( "TropicalAssets:background" );
-    %background.setSize( 100, 75 );
-    %background.setCollisionSuppress();
-    %background.setAwake( false );
-    %background.setActive( false );
-    %background.setSceneLayer(30);
-    %scene.add( %background );
-    
-    // Far rocks
-    %farRocks = new Sprite();
-    %farRocks.setBodyType( "static" );
-    %farRocks.setPosition( 0, -7.5 );
-    %farRocks.setImage( "TropicalAssets:rocksfar" );
-    %farRocks.setSize( 100, 75 );
-    %farRocks.setCollisionSuppress();
-    %farRocks.setAwake( false );
-    %farRocks.setActive( false );
-    %farRocks.setSceneLayer(20);
-    %scene.add( %farRocks );
-    
-    // Near rocks
-    %nearRocks = new Sprite();
-    %nearRocks.setBodyType( "static" );
-    %nearRocks.setPosition( 0, -8.5 );
-    %nearRocks.setImage( "TropicalAssets:rocksnear" );
-    %nearRocks.setSize( 100, 75 );
-    %nearRocks.setCollisionSuppress();
-    %nearRocks.setAwake( false );
-    %nearRocks.setActive( false );
-    %nearRocks.setSceneLayer(10);
-    %scene.add( %nearRocks );
-    
-    addAquariumBoundaries( %scene, 100, 75 );
-}
-
-//-----------------------------------------------------------------------------
-
-function addAquariumBoundaries(%scene, %width, %height)
-{
-    // add boundaries on all sides of the aquarium a bit outside of the border of the tank.
-    // The triggers allow for onCollision to be sent to any fish or other object that touches the edges.
-    // The triggers are far enough outside the tank so that objects will most likely be just out of view
-    // before they are sent the onCollision callback.  This way will they can adjust "off stage".
-
-    // Calculate a width and height to use for the bounds.
-    // They should be bigger than the aquarium itself.
-    %wrapWidth = %width * 1.5;
-    %wrapHeight = %height * 1.5;
-
-    %scene.add( createOneAquariumBoundary( "left",   -%wrapWidth/2 SPC 0,  5 SPC %wrapHeight) );
-    %scene.add( createOneAquariumBoundary( "right",  %wrapWidth/2 SPC 0,   5 SPC %wrapHeight) );
-    %scene.add( createOneAquariumBoundary( "top",    0 SPC -%wrapHeight/2, %wrapWidth SPC 5 ) );
-    %scene.add( createOneAquariumBoundary( "bottom", 0 SPC %wrapHeight/2,  %wrapWidth SPC 5 ) );
-}
-
-//-----------------------------------------------------------------------------
-
-function createOneAquariumBoundary(%side, %position, %size)
-{
-    %boundary = new SceneObject() { class = "AquariumBoundary"; };
-    
-    %boundary.setSize( %size );
-    %boundary.side = %side;
-    %boundary.setPosition( %position );
-    %boundary.setSceneLayer( 1 );
-    %boundary.createPolygonBoxCollisionShape( %size );
-    // the objects that collide with us should handle any callbacks.
-    // remember to set those scene objects to collide with scene group 15 (which is our group)!
-    %boundary.setSceneGroup( 15 );
-    %boundary.setCollisionCallback(false);
-    %boundary.setBodyType( "static" );
-    %boundary.setCollisionShapeIsSensor(0, true);
-    return %boundary;
-}
-
-//-----------------------------------------------------------------------------
-
-function createAquariumEffects(%scene)
-{
-    %obj = new Scroller();
-    %obj.setBodyType( "static" );
-    %obj.setImage( "TropicalAssets:wave" );
-    %obj.setPosition( 0, 0 );
-    %obj.setScrollX(2);
-    %obj.setSize( 100, 75 );
-    %obj.setRepeatX( 0.2 );   
-    %obj.setSceneLayer( 0 );
-    %obj.setSceneGroup( 0 );
-    %obj.setCollisionSuppress();
-    %obj.setAwake( false );
-    %obj.setActive( false );
-    %scene.add( %obj );
-    
-    // Add the caustics particle.
-    %caustics = new ParticlePlayer();
-    %caustics.Particle = "TropicalAssets:Caustics";
-    %scene.add( %caustics ); 
-}
-
-//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
+// Copyright (c) 2013 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.
+//-----------------------------------------------------------------------------
+
+function getFishAnimationList()
+{
+   %list = "TropicalAssets:angelfish1Anim" @ "," @ "TropicalAssets:angelfish2Anim" @ "," @ "TropicalAssets:butterflyfishAnim";
+   %list = %list @ "," @ "TropicalAssets:pufferfishAnim" @ "," @ "TropicalAssets:rockfishAnim" @ "," @ "TropicalAssets:seahorseAnim";
+   %list = %list @ "," @ "TropicalAssets:triggerfish1Anim" @ "," @ "TropicalAssets:eelAnim";
+}
+
+//-----------------------------------------------------------------------------
+
+function getFishSize(%anim)
+{
+    switch$(%anim)
+    {
+        case "TropicalAssets:angelfish1Anim":
+        %fishInfo = "15 15";
+
+        case "TropicalAssets:angelfish2Anim":
+        %fishInfo = "15 15";
+        
+        case "TropicalAssets:butterflyfishAnim":
+        %fishInfo = "15 15";
+        
+        case "TropicalAssets:pufferfishAnim":
+        %fishInfo = "15 15";
+        
+        case "TropicalAssets:rockfishAnim":
+        %fishInfo = "15 7.5";
+        
+        case "TropicalAssets:seahorseAnim":
+        %fishInfo = "7.5 15";
+        
+        case "TropicalAssets:triggerfish1Anim":
+        %fishInfo = "15 15";
+
+        case "TropicalAssets:eelAnim":
+        %fishInfo = "7.5 3.75";
+    }
+
+    return %fishInfo;
+}
+
+//-----------------------------------------------------------------------------
+
+function buildAquarium(%scene)
+{
+    // A pre-built aquarium of size 100x75, with blue water, some haze, and some nice rocks.
+    // Triggers will be provide around the edges to let the developer know when objects in the
+    // aquarium have reached the edges.
+
+    // Background
+    %background = new Sprite();
+    %background.setBodyType( "static" );
+    %background.setImage( "TropicalAssets:background" );
+    %background.setSize( 100, 75 );
+    %background.setCollisionSuppress();
+    %background.setAwake( false );
+    %background.setActive( false );
+    %background.setSceneLayer(30);
+    %scene.add( %background );
+    
+    // Far rocks
+    %farRocks = new Sprite();
+    %farRocks.setBodyType( "static" );
+    %farRocks.setPosition( 0, -7.5 );
+    %farRocks.setImage( "TropicalAssets:rocksfar" );
+    %farRocks.setSize( 100, 75 );
+    %farRocks.setCollisionSuppress();
+    %farRocks.setAwake( false );
+    %farRocks.setActive( false );
+    %farRocks.setSceneLayer(20);
+    %scene.add( %farRocks );
+    
+    // Near rocks
+    %nearRocks = new Sprite();
+    %nearRocks.setBodyType( "static" );
+    %nearRocks.setPosition( 0, -8.5 );
+    %nearRocks.setImage( "TropicalAssets:rocksnear" );
+    %nearRocks.setSize( 100, 75 );
+    %nearRocks.setCollisionSuppress();
+    %nearRocks.setAwake( false );
+    %nearRocks.setActive( false );
+    %nearRocks.setSceneLayer(10);
+    %scene.add( %nearRocks );
+    
+    addAquariumBoundaries( %scene, 100, 75 );
+}
+
+//-----------------------------------------------------------------------------
+
+function addAquariumBoundaries(%scene, %width, %height)
+{
+    // add boundaries on all sides of the aquarium a bit outside of the border of the tank.
+    // The triggers allow for onCollision to be sent to any fish or other object that touches the edges.
+    // The triggers are far enough outside the tank so that objects will most likely be just out of view
+    // before they are sent the onCollision callback.  This way will they can adjust "off stage".
+
+    // Calculate a width and height to use for the bounds.
+    // They should be bigger than the aquarium itself.
+    %wrapWidth = %width * 1.5;
+    %wrapHeight = %height * 1.5;
+
+    %scene.add( createOneAquariumBoundary( "left",   -%wrapWidth/2 SPC 0,  5 SPC %wrapHeight) );
+    %scene.add( createOneAquariumBoundary( "right",  %wrapWidth/2 SPC 0,   5 SPC %wrapHeight) );
+    %scene.add( createOneAquariumBoundary( "top",    0 SPC -%wrapHeight/2, %wrapWidth SPC 5 ) );
+    %scene.add( createOneAquariumBoundary( "bottom", 0 SPC %wrapHeight/2,  %wrapWidth SPC 5 ) );
+}
+
+//-----------------------------------------------------------------------------
+
+function createOneAquariumBoundary(%side, %position, %size)
+{
+    %boundary = new SceneObject() { class = "AquariumBoundary"; };
+    
+    %boundary.setSize( %size );
+    %boundary.side = %side;
+    %boundary.setPosition( %position );
+    %boundary.setSceneLayer( 1 );
+    %boundary.createPolygonBoxCollisionShape( %size );
+    // the objects that collide with us should handle any callbacks.
+    // remember to set those scene objects to collide with scene group 15 (which is our group)!
+    %boundary.setSceneGroup( 15 );
+    %boundary.setCollisionCallback(false);
+    %boundary.setBodyType( "static" );
+    %boundary.setCollisionShapeIsSensor(0, true);
+    return %boundary;
+}
+
+//-----------------------------------------------------------------------------
+
+function createAquariumEffects(%scene)
+{
+    %obj = new Scroller();
+    %obj.setBodyType( "static" );
+    %obj.setImage( "TropicalAssets:wave" );
+    %obj.setPosition( 0, 0 );
+    %obj.setScrollX(2);
+    %obj.setSize( 100, 75 );
+    %obj.setRepeatX( 0.2 );   
+    %obj.setSceneLayer( 0 );
+    %obj.setSceneGroup( 0 );
+    %obj.setCollisionSuppress();
+    %obj.setAwake( false );
+    %obj.setActive( false );
+    %scene.add( %obj );
+    
+    // Add the caustics particle.
+    %caustics = new ParticlePlayer();
+    %caustics.Particle = "TropicalAssets:Caustics";
+    %scene.add( %caustics ); 
+}
+
+//-----------------------------------------------------------------------------

+ 79 - 79
modules/AquariumToy/1/scripts/fish.cs → toybox/AquariumToy/1/scripts/fish.cs

@@ -1,80 +1,80 @@
-//-----------------------------------------------------------------------------
-// Copyright (c) 2013 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.
-//-----------------------------------------------------------------------------
-
-
-function FishClass::onCollision(%this, %object, %collisionDetails)
-{
-    if (%object.class $= "AquariumBoundary")
-        %this.recycle(%object.side);
-}
-
-//-----------------------------------------------------------------------------
-
-function FishClass::onAdd(%this)
-{
-    // Set a random speed for the fish
-    %this.setSpeed();
-   
-    if (getRandom(0, 10) > 5)
-    {
-        %this.setLinearVelocityX(%this.speed);
-        %this.setFlipX(false);
-    }
-    else
-    {
-        %this.setLinearVelocityX(-%this.speed);
-        %this.setFlipX(true);
-    }
-}
-
-//-----------------------------------------------------------------------------
-
-function FishClass::recycle(%this, %side)
-{
-    // Fish has turned around, so set a new random speed
-    %this.setSpeed();
-    %layer = getRandom(0, 5);
-    %this.setLinearVelocityY(getRandom(-3, 3));
-    %this.setPositionY(getRandom(-15, 15));
-    %this.setSceneLayer(%layer);
-
-    if (%side $= "left")
-    {
-        %this.setLinearVelocityX(%this.speed);
-        %this.setFlipX(false);
-    }
-    else if (%side $= "right")
-    {
-        %this.setLinearVelocityX(-%this.speed);
-        %this.setFlipX(true);
-    }
-}
-
-//-----------------------------------------------------------------------------
-
-function FishClass::setSpeed(%this)
-{
-   // Speed is a dynamic variable created when this function is first called
-   // Every other time after the first call will simply modify the variable
-   // .minSpeed and .maxSpeed are declared in the Dynamic Fields rollout of the editor
-   %this.speed = getRandom(%this.minSpeed, %this.maxSpeed);
+//-----------------------------------------------------------------------------
+// Copyright (c) 2013 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.
+//-----------------------------------------------------------------------------
+
+
+function FishClass::onCollision(%this, %object, %collisionDetails)
+{
+    if (%object.class $= "AquariumBoundary")
+        %this.recycle(%object.side);
+}
+
+//-----------------------------------------------------------------------------
+
+function FishClass::onAdd(%this)
+{
+    // Set a random speed for the fish
+    %this.setSpeed();
+   
+    if (getRandom(0, 10) > 5)
+    {
+        %this.setLinearVelocityX(%this.speed);
+        %this.setFlipX(false);
+    }
+    else
+    {
+        %this.setLinearVelocityX(-%this.speed);
+        %this.setFlipX(true);
+    }
+}
+
+//-----------------------------------------------------------------------------
+
+function FishClass::recycle(%this, %side)
+{
+    // Fish has turned around, so set a new random speed
+    %this.setSpeed();
+    %layer = getRandom(0, 5);
+    %this.setLinearVelocityY(getRandom(-3, 3));
+    %this.setPositionY(getRandom(-15, 15));
+    %this.setSceneLayer(%layer);
+
+    if (%side $= "left")
+    {
+        %this.setLinearVelocityX(%this.speed);
+        %this.setFlipX(false);
+    }
+    else if (%side $= "right")
+    {
+        %this.setLinearVelocityX(-%this.speed);
+        %this.setFlipX(true);
+    }
+}
+
+//-----------------------------------------------------------------------------
+
+function FishClass::setSpeed(%this)
+{
+   // Speed is a dynamic variable created when this function is first called
+   // Every other time after the first call will simply modify the variable
+   // .minSpeed and .maxSpeed are declared in the Dynamic Fields rollout of the editor
+   %this.speed = getRandom(%this.minSpeed, %this.maxSpeed);
 }

+ 0 - 0
modules/AudioToy/1/assets/Pause.asset.taml → toybox/AudioToy/1/assets/Pause.asset.taml


+ 0 - 0
modules/AudioToy/1/assets/Pause.png → toybox/AudioToy/1/assets/Pause.png


+ 0 - 0
modules/AudioToy/1/assets/Play.asset.taml → toybox/AudioToy/1/assets/Play.asset.taml


+ 0 - 0
modules/AudioToy/1/assets/Play.png → toybox/AudioToy/1/assets/Play.png


+ 0 - 0
modules/AudioToy/1/assets/SoundOff.asset.taml → toybox/AudioToy/1/assets/SoundOff.asset.taml


+ 0 - 0
modules/AudioToy/1/assets/SoundOff.png → toybox/AudioToy/1/assets/SoundOff.png


+ 0 - 0
modules/AudioToy/1/assets/SoundOn.asset.taml → toybox/AudioToy/1/assets/SoundOn.asset.taml


+ 0 - 0
modules/AudioToy/1/assets/SoundOn.png → toybox/AudioToy/1/assets/SoundOn.png


+ 0 - 0
modules/AudioToy/1/module.cs → toybox/AudioToy/1/module.cs


+ 0 - 0
modules/AudioToy/1/module.taml → toybox/AudioToy/1/module.taml


+ 0 - 0
modules/AudioToy/1/objects/Background.taml → toybox/AudioToy/1/objects/Background.taml


+ 0 - 0
modules/AudioToy/1/objects/Barbarian.taml → toybox/AudioToy/1/objects/Barbarian.taml


+ 0 - 0
modules/AudioToy/1/objects/Dwarf.taml → toybox/AudioToy/1/objects/Dwarf.taml


+ 0 - 0
modules/AudioToy/1/objects/Grass.taml → toybox/AudioToy/1/objects/Grass.taml


+ 0 - 0
modules/AudioToy/1/objects/Ground.taml → toybox/AudioToy/1/objects/Ground.taml


+ 0 - 0
modules/AudioToy/1/objects/Knight.taml → toybox/AudioToy/1/objects/Knight.taml


+ 0 - 0
modules/AudioToy/1/objects/MuteButton.taml → toybox/AudioToy/1/objects/MuteButton.taml


+ 0 - 0
modules/AudioToy/1/objects/PlayButton.taml → toybox/AudioToy/1/objects/PlayButton.taml


+ 0 - 0
modules/AudioToy/1/objects/Wizard.taml → toybox/AudioToy/1/objects/Wizard.taml


+ 0 - 0
modules/AudioToy/1/scripts/AnimationBehavior.cs → toybox/AudioToy/1/scripts/AnimationBehavior.cs


+ 0 - 0
modules/AudioToy/1/scripts/ButtonBehavior.cs → toybox/AudioToy/1/scripts/ButtonBehavior.cs


+ 0 - 0
modules/AudioToy/1/scripts/MusicBehavior.cs → toybox/AudioToy/1/scripts/MusicBehavior.cs


+ 0 - 0
modules/AudioToy/1/scripts/MuteBehavior.cs → toybox/AudioToy/1/scripts/MuteBehavior.cs


+ 0 - 0
modules/AudioToy/1/scripts/SoundBehavior.cs → toybox/AudioToy/1/scripts/SoundBehavior.cs


+ 0 - 0
modules/BridgeToy/1/main.cs → toybox/BridgeToy/1/main.cs


+ 0 - 0
modules/BridgeToy/1/module.taml → toybox/BridgeToy/1/module.taml


+ 0 - 0
modules/BuoyancyControllerToy/1/assets/images/waveCrests.asset.taml → toybox/BuoyancyControllerToy/1/assets/images/waveCrests.asset.taml


+ 0 - 0
modules/BuoyancyControllerToy/1/assets/images/waveCrests.png → toybox/BuoyancyControllerToy/1/assets/images/waveCrests.png


+ 0 - 0
modules/BuoyancyControllerToy/1/main.cs → toybox/BuoyancyControllerToy/1/main.cs


+ 0 - 0
modules/BuoyancyControllerToy/1/module.taml → toybox/BuoyancyControllerToy/1/module.taml


+ 0 - 0
modules/ChainToy/1/main.cs → toybox/ChainToy/1/main.cs


+ 0 - 0
modules/ChainToy/1/module.taml → toybox/ChainToy/1/module.taml


+ 0 - 0
modules/CollisionToy/1/main.cs → toybox/CollisionToy/1/main.cs


+ 0 - 0
modules/CollisionToy/1/module.taml → toybox/CollisionToy/1/module.taml


+ 0 - 0
modules/CompositeSpriteToy/1/.gitignore → toybox/CompositeSpriteToy/1/.gitignore


+ 0 - 0
modules/CompositeSpriteToy/1/assets/images/isotiles.png → toybox/CompositeSpriteToy/1/assets/images/isotiles.png


+ 0 - 0
modules/CompositeSpriteToy/1/assets/images/isotiles2.asset.taml → toybox/CompositeSpriteToy/1/assets/images/isotiles2.asset.taml


+ 0 - 0
modules/CompositeSpriteToy/1/main.cs → toybox/CompositeSpriteToy/1/main.cs


+ 0 - 0
modules/CompositeSpriteToy/1/module.taml → toybox/CompositeSpriteToy/1/module.taml


+ 0 - 0
modules/CompositeSpriteToy/1/scripts/customLayout.cs → toybox/CompositeSpriteToy/1/scripts/customLayout.cs


+ 0 - 0
modules/CompositeSpriteToy/1/scripts/isoLayout.cs → toybox/CompositeSpriteToy/1/scripts/isoLayout.cs


+ 0 - 0
modules/CompositeSpriteToy/1/scripts/noLayout.cs → toybox/CompositeSpriteToy/1/scripts/noLayout.cs


+ 0 - 0
modules/CompositeSpriteToy/1/scripts/rectLayout.cs → toybox/CompositeSpriteToy/1/scripts/rectLayout.cs


+ 0 - 0
modules/CompoundObjectsToy/1/main.cs → toybox/CompoundObjectsToy/1/main.cs


+ 0 - 0
modules/CompoundObjectsToy/1/module.taml → toybox/CompoundObjectsToy/1/module.taml


+ 0 - 0
modules/DeathBallToy/1/assets/animations/dbForwardAnim.asset.taml → toybox/DeathBallToy/1/assets/animations/dbForwardAnim.asset.taml


+ 0 - 0
modules/DeathBallToy/1/assets/animations/dbQuarterAnim.asset.taml → toybox/DeathBallToy/1/assets/animations/dbQuarterAnim.asset.taml


+ 0 - 0
modules/DeathBallToy/1/assets/animations/dbRightAnim.asset.taml → toybox/DeathBallToy/1/assets/animations/dbRightAnim.asset.taml


+ 0 - 0
modules/DeathBallToy/1/assets/animations/soldierAnim.asset.taml → toybox/DeathBallToy/1/assets/animations/soldierAnim.asset.taml


+ 0 - 0
modules/DeathBallToy/1/assets/animations/soldierDeathAnim.asset.taml → toybox/DeathBallToy/1/assets/animations/soldierDeathAnim.asset.taml


+ 7 - 7
modules/DeathBallToy/1/assets/images/dbForward.asset.taml → toybox/DeathBallToy/1/assets/images/dbForward.asset.taml

@@ -1,7 +1,7 @@
-<ImageAsset
-    AssetName="dbForward"
-    ImageFile="dbForward.png"
-    CellCountX="4"
-    CellCountY="4"
-    CellWidth="256"
-    CellHeight="256" />
+<ImageAsset
+    AssetName="dbForward"
+    ImageFile="dbForward.png"
+    CellCountX="4"
+    CellCountY="4"
+    CellWidth="256"
+    CellHeight="256" />

+ 0 - 0
modules/DeathBallToy/1/assets/images/dbForward.png → toybox/DeathBallToy/1/assets/images/dbForward.png


+ 7 - 7
modules/DeathBallToy/1/assets/images/dbQuarter.asset.taml → toybox/DeathBallToy/1/assets/images/dbQuarter.asset.taml

@@ -1,7 +1,7 @@
-<ImageAsset
-    AssetName="dbQuarter"
-    ImageFile="dbQuarter.png"
-    CellCountX="4"
-    CellCountY="4"
-    CellWidth="256"
-    CellHeight="256" />
+<ImageAsset
+    AssetName="dbQuarter"
+    ImageFile="dbQuarter.png"
+    CellCountX="4"
+    CellCountY="4"
+    CellWidth="256"
+    CellHeight="256" />

+ 0 - 0
modules/DeathBallToy/1/assets/images/dbQuarter.png → toybox/DeathBallToy/1/assets/images/dbQuarter.png


+ 7 - 7
modules/DeathBallToy/1/assets/images/dbRight.asset.taml → toybox/DeathBallToy/1/assets/images/dbRight.asset.taml

@@ -1,7 +1,7 @@
-<ImageAsset
-    AssetName="dbRight"
-    ImageFile="dbRight.png"
-    CellCountX="4"
-    CellCountY="4"
-    CellWidth="256"
-    CellHeight="256" />
+<ImageAsset
+    AssetName="dbRight"
+    ImageFile="dbRight.png"
+    CellCountX="4"
+    CellCountY="4"
+    CellWidth="256"
+    CellHeight="256" />

Some files were not shown because too many files changed in this diff