PlayMode.ts 954 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import EditorEvents = require("../../editor/EditorEvents");
  2. import PlayerOutput = require("./PlayerOutput");
  3. class PlayMode extends Atomic.ScriptObject {
  4. inErrorState: boolean;
  5. constructor() {
  6. super();
  7. this.subscribeToEvent("IPCJSError", (ev: Atomic.IPCJSErrorEvent) => this.handleIPCJSError(ev));
  8. this.subscribeToEvent(EditorEvents.PlayerStarted, (ev) => this.handlePlayerStarted(ev));
  9. }
  10. handlePlayerStarted(ev) {
  11. this.inErrorState = false;
  12. new PlayerOutput();
  13. }
  14. handleIPCJSError(ev: Atomic.IPCJSErrorEvent) {
  15. if (this.inErrorState)
  16. return;
  17. this.inErrorState = true;
  18. var errorMessage = ev.errorFileName + " - " + ev.errorLineNumber + " : " + ev.errorMessage;
  19. this.sendEvent(EditorEvents.ModalError, { title: "Player JavaScript Error", message: errorMessage });
  20. Atomic.graphics.raiseWindow();
  21. }
  22. }
  23. export = PlayMode;