PlayMode.ts 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. //
  2. // Copyright (c) 2014-2015, THUNDERBEAST GAMES LLC All rights reserved
  3. // LICENSE: Atomic Game Engine Editor and Tools EULA
  4. // Please see LICENSE_ATOMIC_EDITOR_AND_TOOLS.md in repository root for
  5. // license information: https://github.com/AtomicGameEngine/AtomicGameEngine
  6. //
  7. import EditorEvents = require("../../editor/EditorEvents");
  8. import PlayerOutput = require("./PlayerOutput");
  9. class PlayMode extends Atomic.ScriptObject {
  10. inErrorState: boolean;
  11. constructor() {
  12. super();
  13. this.subscribeToEvent("IPCJSError", (ev: Atomic.IPCJSErrorEvent) => this.handleIPCJSError(ev));
  14. this.subscribeToEvent(EditorEvents.PlayerStarted, (ev) => this.handlePlayerStarted(ev));
  15. }
  16. handlePlayerStarted(ev) {
  17. this.inErrorState = false;
  18. new PlayerOutput();
  19. }
  20. handleIPCJSError(ev: Atomic.IPCJSErrorEvent) {
  21. if (this.inErrorState)
  22. return;
  23. this.inErrorState = true;
  24. var errorMessage = ev.errorFileName + " - " + ev.errorLineNumber + " : " + ev.errorMessage;
  25. this.sendEvent(EditorEvents.ModalError, { title: "Player JavaScript Error", message: errorMessage });
  26. Atomic.graphics.raiseWindow();
  27. }
  28. }
  29. export = PlayMode;