globalState.ts 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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 onSavedObservable = new Observable<void>();
  34. public onNewRequiredObservable = new Observable<void>();
  35. public onClearRequiredObservable = new Observable<void>();
  36. public onSaveRequiredObservable = new Observable<void>();
  37. public onLoadRequiredObservable = new Observable<string>();
  38. public onErrorObservable = new Observable<Nullable<CompilationError>>();
  39. public onMobileDefaultModeChangedObservable = new Observable<void>();
  40. public onDisplayWaitRingObservable = new Observable<boolean>();
  41. public onDisplayMetadataObservable = new Observable<boolean>();
  42. public onMetadataUpdatedObservable = new Observable<void>();
  43. public onMetadataWindowHiddenObservable = new Observable<boolean>();
  44. public onDownloadRequiredObservable = new Observable<void>();
  45. public onInspectorRequiredObservable = new Observable<boolean>();
  46. public onFormatCodeRequiredObservable = new Observable<void>();
  47. public onFullcreenRequiredObservable = new Observable<void>();
  48. public onEditorFullcreenRequiredObservable = new Observable<void>();
  49. public onMinimapChangedObservable = new Observable<boolean>();
  50. public onEditorDisplayChangedObservable = new Observable<boolean>();
  51. public onThemeChangedObservable = new Observable<void>();
  52. public onFontSizeChangedObservable = new Observable<void>();
  53. public onLanguageChangedObservable = new Observable<void>();
  54. public onNavigateRequiredObservable = new Observable<{lineNumber: number, column: number}>();
  55. public onExamplesDisplayChangedObservable = new Observable<void>();
  56. public onQRCodeRequiredObservable = new Observable<boolean>();
  57. public loadingCodeInProgress = false;
  58. public onCodeLoaded = new Observable<string>();
  59. }