Explorar el Código

Example browser now working

Josh Engebretson hace 10 años
padre
commit
d2a00f2dce

+ 1 - 0
Data/AtomicEditor/.gitignore

@@ -0,0 +1 @@
+AtomicExamples/*

+ 20 - 1
Script/AtomicEditor/ui/frames/WelcomeFrame.ts

@@ -34,6 +34,14 @@ class WelcomeFrame extends ScriptWidget {
 
     }
 
+    handleClickedExample(example: ExampleFormat) {
+
+      var ops = EditorUI.getModelOps();
+      var env = ToolCore.toolEnvironment;
+      ops.showCreateProject(env.toolDataDir + "AtomicExamples/" + example.folder + "/", this.exampleInfoDir + example.screenshot);
+
+    }
+
     addExample(example: ExampleFormat) {
 
         var exlayout = <Atomic.UILayout>this.getWidget("examples_layout");
@@ -61,6 +69,12 @@ class WelcomeFrame extends ScriptWidget {
         button.id = id;
         var image = new Atomic.UIImageWidget();
 
+        button.onClick = () => {
+
+          this.handleClickedExample(example);
+
+        }
+
         image.image = this.exampleInfoDir + example.screenshot;
         image.skinBg = "ImageFrame";
         var rect = [0, 0, image.imageWidth / 2, image.imageHeight / 2];
@@ -125,13 +139,16 @@ class WelcomeFrame extends ScriptWidget {
 
     initExampleBrowser() {
 
-        this.exampleInfoDir = "/Users/josh/Dev/atomic/AtomicGameEngine/Data/AtomicEditor/ExampleInfo/";
+        var env = ToolCore.toolEnvironment;
+
+        this.exampleInfoDir =env.toolDataDir + "ExampleInfo/";
 
         var exampleJsonFile = this.exampleInfoDir + "Examples.json";
 
         var jsonFile = new Atomic.File(exampleJsonFile, Atomic.FILE_READ);
         if (!jsonFile.isOpen())
             return;
+
         var examples = <ExamplesFormat>JSON.parse(jsonFile.readText());
 
         for (var i in examples.examples) {
@@ -142,6 +159,7 @@ class WelcomeFrame extends ScriptWidget {
     }
 
     handleWidgetEvent(ev: Atomic.UIWidgetEvent) {
+
         if (ev.type == Atomic.UI_EVENT_TYPE_RIGHT_POINTER_UP) {
             if (ev.target.id == "recentList") {
                 this.openFrameMenu(ev.x, ev.y);
@@ -214,6 +232,7 @@ class WelcomeFrame extends ScriptWidget {
     exampleInfoDir: string;
     exampleCount = 0;
     currentExampleLayout: Atomic.UILayout;
+    exampleInfos:[ExampleFormat];
 
     recent: string[] = [];
     recentList: Atomic.UIListView;

+ 2 - 2
Script/AtomicEditor/ui/modal/ModalOps.ts

@@ -24,11 +24,11 @@ class ModalOps extends Atomic.ScriptObject {
 
     }
 
-    showCreateProject(projectTemplateFolder: string) {
+    showCreateProject(projectTemplateFolder: string, imagePath:string = "") {
 
         if (this.show()) {
 
-            this.opWindow = new CreateProject(projectTemplateFolder);
+            this.opWindow = new CreateProject(projectTemplateFolder, imagePath);
 
         }
 

+ 2 - 2
Script/AtomicEditor/ui/modal/NewProject.ts

@@ -37,8 +37,8 @@ class NewProject extends ModalWindow {
 
             if (projectType) {
 
-                var env = ToolCore.getToolEnvironment();
-                var projectTemplateFolder = env.projectTemplatesDir + projectType;
+                var env = ToolCore.toolEnvironment;
+                var projectTemplateFolder = env.toolDataDir + "ProjectTemplates/" + projectType;
 
                 this.hide();
 

+ 3 - 5
Source/ToolCore/ToolEnvironment.cpp

@@ -38,7 +38,7 @@ bool ToolEnvironment::InitFromPackage()
 #endif
 
 	String resourcesDir = GetPath(RemoveTrailingSlash(fileSystem->GetProgramDir())) + "Resources/";
-	projectTemplatesDir_ = resourcesDir + "ProjectTemplates/";
+    toolDataDir_ =  resourcesDir + "ToolData/";
 
     return true;
 }
@@ -46,7 +46,6 @@ bool ToolEnvironment::InitFromPackage()
 bool ToolEnvironment::InitFromJSON(bool atomicTool)
 {
 
-
     // make sure config path is initialized
     GetDevConfigFilename();
 
@@ -119,7 +118,7 @@ void ToolEnvironment::SetRootSourceDir(const String& sourceDir)
     resourcePlayerDataDir_ = rootSourceDir_ + "Resources/PlayerData";
     resourceEditorDataDir_ = rootSourceDir_ + "Resources/EditorData";
 
-    projectTemplatesDir_ = rootSourceDir_ + "Data/AtomicEditor/ProjectTemplates/";
+    toolDataDir_ = rootSourceDir_ + "Data/AtomicEditor/";
 }
 
 void ToolEnvironment::SetRootBuildDir(const String& buildDir, bool setBinaryPaths)
@@ -166,8 +165,7 @@ void ToolEnvironment::Dump()
     LOGINFOF("Tool Binary: %s", toolBinary_.CString());
 
 
-    LOGINFOF("Project Templates Dir: %s", projectTemplatesDir_.CString());
-    LOGINFOF("Examples Dir: %s", examplesDir_.CString());
+    LOGINFOF("Tool Data Dir: %s", toolDataDir_.CString());
 
     LOGINFOF("Deployment Data Dir: %s", deploymentDataDir_.CString());
 

+ 2 - 7
Source/ToolCore/ToolEnvironment.h

@@ -48,8 +48,7 @@ public:
     /// Data directories
     const String& GetDeploymentDataDir() { return toolBinary_; }
 
-    const String& GetProjectTemplatesDir() { return projectTemplatesDir_; }
-    const String& GetExamplesDir() { return examplesDir_; }
+    const String& GetToolDataDir() { return toolDataDir_; }
 
     const String& GetDevConfigFilename();
 
@@ -72,11 +71,7 @@ private:
     // path to the AtomicTool command line binary
     String toolBinary_;
 
-    // examples directory
-    String examplesDir_;
-
-    // project templates directory
-    String projectTemplatesDir_;
+    String toolDataDir_;
 
     // resources
     String resourceCoreDataDir_;