globalState.ts 2.8 KB

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