Browse Source

Getting player JS errors in editor

Josh Engebretson 10 years ago
parent
commit
7f283121d3

+ 4 - 0
Script/AtomicEditor/editor/Editor.ts

@@ -2,6 +2,7 @@
 import EditorUI = require("../ui/EditorUI");
 import UIEvents = require("../ui/UIEvents");
 import AssetImport = require("../assets/AssetImport");
+import PlayMode = require("../ui/playmode/PlayMode");
 import EditorLicense = require("./EditorLicense");
 import EditorEvents = require("./EditorEvents");
 
@@ -10,6 +11,7 @@ class Editor extends Atomic.ScriptObject {
     project: ToolCore.Project;
     assetImport: AssetImport;
     editorLicense:EditorLicense;
+    playMode:PlayMode;
 
     static instance: Editor;
 
@@ -26,6 +28,8 @@ class Editor extends Atomic.ScriptObject {
 
         EditorUI.initialize();
 
+        this.playMode = new PlayMode();
+
         Atomic.getResourceCache().autoReloadResources = true;
 
         this.assetImport = new AssetImport();

+ 2 - 1
Script/AtomicEditor/tsconfig.json

@@ -51,6 +51,7 @@
         "./ui/modal/ModalWindow.ts",
         "./ui/modal/NewProject.ts",
         "./ui/modal/ProgressModal.ts",
-        "./ui/modal/UIResourceOps.ts"
+        "./ui/modal/UIResourceOps.ts",
+        "./ui/playmode/PlayMode.ts"
     ]
 }

+ 23 - 0
Script/AtomicEditor/ui/playmode/PlayMode.ts

@@ -0,0 +1,23 @@
+
+import EditorEvents = require("../../editor/EditorEvents");
+
+class PlayMode extends Atomic.ScriptObject {
+
+  constructor() {
+
+    super();
+
+    this.subscribeToEvent("IPCJSError", (ev:Atomic.IPCJSErrorEvent) => this.handleIPCJSError(ev));
+
+  }
+
+  handleIPCJSError(ev:Atomic.IPCJSErrorEvent) {
+
+    var errorMessage = ev.errorFileName + " - " + ev.errorLineNumber + " : " + ev.errorMessage;
+    this.sendEvent(EditorEvents.ModalError, { title: "Player JavaScript Error", message: errorMessage});
+
+  }
+
+}
+
+export = PlayMode;

+ 10 - 0
Script/TypeScript/AtomicWork.d.ts

@@ -101,6 +101,16 @@ declare module Atomic {
         dragObject: UIDragObject;
     }
 
+    export interface IPCJSErrorEvent {
+
+      errorName:string;
+      errorMessage:string;
+      errorFileName: string;
+      errorLineNumber: number;
+      errorStack:string;
+
+    }
+
     export interface AttributeInfo {
 
         type: VariantType;