Browse Source

Adding Editor package

Josh Engebretson 10 years ago
parent
commit
81072aea21

+ 3 - 0
Data/AtomicEditor/Resources/EditorData/AtomicEditor/javascript/main.js

@@ -9,6 +9,9 @@ var system = ToolCore.getToolSystem();
 
 
 system.loadProject("/Users/josh/Dev/atomic/AtomicExamples/NewSpaceGame");
 system.loadProject("/Users/josh/Dev/atomic/AtomicExamples/NewSpaceGame");
 
 
+var cool = new Editor.MyJSClass();
+print(cool.aha);
+
 
 
 ( function() {
 ( function() {
 
 

+ 3 - 0
Source/AtomicEditorWork/Application/AEEditorApp.cpp

@@ -27,6 +27,8 @@ namespace ToolCore
 namespace AtomicEditor
 namespace AtomicEditor
 {
 {
 
 
+extern void jsapi_init_editor(JSVM* vm);
+
 AEEditorApp::AEEditorApp(Context* context) :
 AEEditorApp::AEEditorApp(Context* context) :
     Application(context)
     Application(context)
 {
 {
@@ -56,6 +58,7 @@ void AEEditorApp::Start()
     vm_->SetModuleSearchPaths("AtomicEditor/javascript");
     vm_->SetModuleSearchPaths("AtomicEditor/javascript");
 
 
     jsapi_init_toolcore(vm_);
     jsapi_init_toolcore(vm_);
+    jsapi_init_editor(vm_);
 
 
     SharedPtr<File> file (GetSubsystem<ResourceCache>()->GetFile("AtomicEditor/javascript/main.js"));
     SharedPtr<File> file (GetSubsystem<ResourceCache>()->GetFile("AtomicEditor/javascript/main.js"));
 
 

+ 17 - 0
Source/AtomicEditorWork/CMakeLists.txt

@@ -5,6 +5,23 @@ include_directories (${CMAKE_SOURCE_DIR}/Source/ThirdParty/rapidjson/include
 
 
 file (GLOB_RECURSE SOURCE_FILES *.cpp *.h)
 file (GLOB_RECURSE SOURCE_FILES *.cpp *.h)
 
 
+# Create the JSBind files ahead of time, so they are picked up with glob
+set (JSFILES JSPackageEditor.cpp;JSModuleEditor.cpp)
+
+foreach(JSFILE ${JSFILES})
+
+  set (JSFILEPATH "${CMAKE_SOURCE_DIR}/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/Javascript/Packages/Editor/${JSFILE}")
+
+  if (NOT EXISTS ${JSFILEPATH})
+    file(WRITE "${JSFILEPATH}" "// will be created by JSBind")
+  endif()
+
+endforeach()
+
+file (GLOB JAVASCRIPT_BINDINGS_SOURCE ${CMAKE_SOURCE_DIR}/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/Javascript/Packages/Editor/*.cpp)
+
+set (SOURCE_FILES ${SOURCE_FILES} ${JAVASCRIPT_BINDINGS_SOURCE})
+
 if (APPLE)
 if (APPLE)
     set (EXE_TYPE MACOSX_BUNDLE)
     set (EXE_TYPE MACOSX_BUNDLE)
 
 

+ 18 - 0
Source/AtomicEditorWork/JSTest/MyJSClass.cpp

@@ -0,0 +1,18 @@
+
+#include "MyJSClass.h"
+
+namespace AtomicEditor
+{
+
+MyJSClass::MyJSClass(Context* context) : Object(context),
+  aha_("aha!")
+{
+
+}
+
+MyJSClass::~MyJSClass()
+{
+
+}
+
+}

+ 29 - 0
Source/AtomicEditorWork/JSTest/MyJSClass.h

@@ -0,0 +1,29 @@
+
+#pragma once
+
+#include <Atomic/Core/Object.h>
+
+using namespace Atomic;
+
+namespace AtomicEditor
+{
+
+class MyJSClass : public Object
+{
+    OBJECT(MyJSClass);
+
+public:
+    /// Construct.
+    MyJSClass(Context* context);
+    virtual ~MyJSClass();
+
+    const String& GetAha() { return aha_; }
+
+private:
+
+    String aha_;
+
+
+};
+
+}

+ 26 - 0
Source/AtomicEditorWork/Javascript/AEEditorJS.cpp

@@ -0,0 +1,26 @@
+
+#include <AtomicJS/Javascript/JSVM.h>
+
+using namespace Atomic;
+
+namespace Atomic
+{
+    extern void jsb_package_editor_init(JSVM* vm);
+}
+
+namespace AtomicEditor
+{
+
+void jsapi_init_editor(JSVM* vm)
+{
+    duk_context* ctx = vm->GetJSContext();
+
+    duk_push_object(ctx);
+    duk_put_global_string(ctx, "Editor");
+
+    jsb_package_editor_init(vm);
+}
+
+}
+
+

+ 0 - 0
Source/AtomicEditorWork/Javascript/AEEditorJS.h


+ 5 - 0
Source/AtomicJS/Packages/Editor/Editor.json

@@ -0,0 +1,5 @@
+{
+	"name" : "Editor",
+	"sources" : ["Source/AtomicEditorWork/JSTest"],
+	"classes" : ["MyJSClass"]
+}

+ 9 - 0
Source/AtomicJS/Packages/Editor/Package.json

@@ -0,0 +1,9 @@
+
+{
+
+  "name" : "Editor",
+  "namespace" : "AtomicEditor",
+  "dependencies" : ["Source/AtomicJS/Packages/Atomic"],
+  "modules" : ["Editor"]
+
+}

+ 3 - 2
Source/AtomicTool/CMakeLists.txt

@@ -12,13 +12,13 @@ target_link_libraries(AtomicTool ToolCore Poco ${ATOMIC_LINK_LIBRARIES})
 
 
 if (MSVC)
 if (MSVC)
     target_link_libraries(AtomicTool libcurl Iphlpapi Wldap32)
     target_link_libraries(AtomicTool libcurl Iphlpapi Wldap32)
-    
+
     # pre-Windows 8 can't count on D3DCompiler_47.dll being on system
     # pre-Windows 8 can't count on D3DCompiler_47.dll being on system
     # TODO: Remove this dependency
     # TODO: Remove this dependency
     add_custom_command (TARGET AtomicTool POST_BUILD
     add_custom_command (TARGET AtomicTool POST_BUILD
     COMMAND ${CMAKE_COMMAND}
     COMMAND ${CMAKE_COMMAND}
     ARGS -E copy_if_different \"${D3DCOMPILER_47_DLL}\" \"$<TARGET_FILE_DIR:AtomicTool>/D3DCompiler_47.dll\")
     ARGS -E copy_if_different \"${D3DCOMPILER_47_DLL}\" \"$<TARGET_FILE_DIR:AtomicTool>/D3DCompiler_47.dll\")
-    
+
 else()
 else()
     target_link_libraries(AtomicTool curl)
     target_link_libraries(AtomicTool curl)
 endif()
 endif()
@@ -27,4 +27,5 @@ endif()
 add_custom_command(TARGET AtomicTool POST_BUILD
 add_custom_command(TARGET AtomicTool POST_BUILD
                    COMMAND $<TARGET_FILE:AtomicTool> bind "\"${CMAKE_SOURCE_DIR}\"" "Source/AtomicJS/Packages/Atomic/" "${JAVASCRIPT_BINDINGS_PLATFORM}"
                    COMMAND $<TARGET_FILE:AtomicTool> bind "\"${CMAKE_SOURCE_DIR}\"" "Source/AtomicJS/Packages/Atomic/" "${JAVASCRIPT_BINDINGS_PLATFORM}"
                    COMMAND $<TARGET_FILE:AtomicTool> bind "\"${CMAKE_SOURCE_DIR}\"" "Source/AtomicJS/Packages/ToolCore/" "${JAVASCRIPT_BINDINGS_PLATFORM}"
                    COMMAND $<TARGET_FILE:AtomicTool> bind "\"${CMAKE_SOURCE_DIR}\"" "Source/AtomicJS/Packages/ToolCore/" "${JAVASCRIPT_BINDINGS_PLATFORM}"
+                   COMMAND $<TARGET_FILE:AtomicTool> bind "\"${CMAKE_SOURCE_DIR}\"" "Source/AtomicJS/Packages/Editor/" "${JAVASCRIPT_BINDINGS_PLATFORM}"
                    COMMENT "Generating Javascript Bindings")
                    COMMENT "Generating Javascript Bindings")

+ 1 - 1
Source/ToolCore/JSBind/JSBDoc.cpp

@@ -48,7 +48,7 @@ void JSBDoc::Begin()
 {
 {
     source_ += "//Atomic JSDoc Definitions\n\n\n";
     source_ += "//Atomic JSDoc Definitions\n\n\n";
 
 
-    source_ += "/**\n * Atomic Game Engine\n * @namespace\n*/\n var Atomic = {}\n\n";
+    source_ += "/**\n * Atomic Game Engine\n * @namespace\n*/\n var " + package_->GetName() + " = {}\n\n";
 }
 }
 
 
 void JSBDoc::End()
 void JSBDoc::End()

+ 1 - 1
Source/ToolCore/JSBind/JSBTypeScript.cpp

@@ -47,7 +47,7 @@ static String GetScriptType(JSBFunctionType* ftype)
 void JSBTypeScript::Begin()
 void JSBTypeScript::Begin()
 {
 {
     source_ += "//Atomic TypeScript Definitions\n\n\n";
     source_ += "//Atomic TypeScript Definitions\n\n\n";
-    source_ += "declare module Atomic {\n\n";
+    source_ += "declare module "+ package_->GetName() + " {\n\n";
 }
 }
 
 
 void JSBTypeScript::End()
 void JSBTypeScript::End()