using System; using System.Collections.Generic; using BansheeEngine; namespace BansheeEditor { /// /// Entry point to the editor. /// class Program { private static EditorApplication app; /// /// Called by the runtime whenever the editor assembly is loaded. This means initially when editor is started /// and every time assembly refresh occurs. /// static void OnInitialize() { app = new EditorApplication(); } /// /// Called by the runtime when the editor is first started. Called after . /// static void OnEditorLoad() { if (EditorSettings.AutoLoadLastProject) { string projectPath = EditorSettings.LastOpenProject; if (EditorApplication.IsValidProject(projectPath)) EditorApplication.LoadProject(projectPath); else ProjectWindow.Open(); } else ProjectWindow.Open(); CodeEditorType activeCodeEditor = (CodeEditorType)EditorSettings.GetInt(SettingsWindow.ActiveCodeEditorKey, (int) CodeEditorType.None); CodeEditorType[] availableEditors = CodeEditor.AvailableEditors; if (Array.Exists(availableEditors, x => x == activeCodeEditor)) CodeEditor.ActiveEditor = activeCodeEditor; else { if (availableEditors.Length > 0) CodeEditor.ActiveEditor = availableEditors[0]; } } /// /// Called 60 times per second by the runtime. /// static void OnEditorUpdate() { app.OnEditorUpdate(); } } }