globalState.ts 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. import { Observable } from 'babylonjs/Misc/observable';
  2. import { Utilities } from './tools/utilities';
  3. import { CompilationError } from './components/errorDisplayComponent';
  4. import { Nullable } from 'babylonjs/types';
  5. export enum EditionMode {
  6. Desktop,
  7. CodeOnly,
  8. RenderingOnly
  9. }
  10. export enum RuntimeMode {
  11. Editor = 0,
  12. Full = 1,
  13. Frame = 2
  14. }
  15. export class GlobalState {
  16. public readonly MobileSizeTrigger = 1024;
  17. public readonly SnippetServerUrl = "https://snippet.babylonjs.com";
  18. public currentCode: string;
  19. public getCompiledCode: () => Promise<string> = () => {
  20. return Promise.resolve(this.currentCode);
  21. }
  22. public language = Utilities.ReadStringFromStore("language", "JS");
  23. public fpsElement: HTMLDivElement;
  24. public mobileDefaultMode = EditionMode.RenderingOnly;
  25. public runtimeMode = RuntimeMode.Editor;
  26. public inspectorIsOpened = false;
  27. public currentSnippetTitle = "";
  28. public currentSnippetDescription = "";
  29. public currentSnippetTags = "";
  30. public currentSnippetToken = "";
  31. public zipCode = "";
  32. public onRunRequiredObservable = new Observable<void>();
  33. public onRunExecutedObservable = new Observable<void>();
  34. public onSavedObservable = new Observable<void>();
  35. public onNewRequiredObservable = new Observable<void>();
  36. public onClearRequiredObservable = new Observable<void>();
  37. public onSaveRequiredObservable = new Observable<void>();
  38. public onLoadRequiredObservable = new Observable<string>();
  39. public onErrorObservable = new Observable<Nullable<CompilationError>>();
  40. public onMobileDefaultModeChangedObservable = new Observable<void>();
  41. public onDisplayWaitRingObservable = new Observable<boolean>();
  42. public onDisplayMetadataObservable = new Observable<boolean>();
  43. public onMetadataUpdatedObservable = new Observable<void>();
  44. public onMetadataWindowHiddenObservable = new Observable<boolean>();
  45. public onDownloadRequiredObservable = new Observable<void>();
  46. public onInspectorRequiredObservable = new Observable<boolean>();
  47. public onFormatCodeRequiredObservable = new Observable<void>();
  48. public onFullcreenRequiredObservable = new Observable<void>();
  49. public onEditorFullcreenRequiredObservable = new Observable<void>();
  50. public onMinimapChangedObservable = new Observable<boolean>();
  51. public onEditorDisplayChangedObservable = new Observable<boolean>();
  52. public onThemeChangedObservable = new Observable<void>();
  53. public onFontSizeChangedObservable = new Observable<void>();
  54. public onLanguageChangedObservable = new Observable<void>();
  55. public onNavigateRequiredObservable = new Observable<{lineNumber: number, column: number}>();
  56. public onExamplesDisplayChangedObservable = new Observable<void>();
  57. public onQRCodeRequiredObservable = new Observable<boolean>();
  58. public OnNewDropdownButtonClicked = new Observable<any>();
  59. public loadingCodeInProgress = false;
  60. public onCodeLoaded = new Observable<string>();
  61. }