public CWorkspace() { CKlaxScriptRegistry registry = CKlaxScriptRegistry.Instance; Instance = this; UndoRedoModel = new CUndoRedoModel(); Tools.Add(new CViewportViewModel()); Tools.Add(new CConsoleViewModel()); Tools.Add(new CWorldOutlinerViewModel()); Tools.Add(new CInspectorViewModel()); Tools.Add(new MaterialEditorViewModel()); Tools.Add(new CAssetPreviewerViewModel()); Tools.Add(new CAssetBrowserViewModel()); Tools.Add(new CEntityBuilderViewModel()); Tools.Add(new CEntityBuilderInspectorViewModel()); Tools.Add(new CNodeGraphViewModel()); Tools.Add(new CInterfaceEditorViewmodel()); foreach (var tool in Tools) { tool.PostToolInit(); } InitCommands(); InitUndoRedo(); }
internal void CreateEngineAndShow() { RenderFormSurface surface = new RenderFormSurface(this); CLogger logger = new CLogger("game.log", true, true, true); CInitializer initializer = new CInitializer(); initializer.Add("Viewport"); initializer.Add <IRenderSurface>(surface); initializer.Add(logger); CEngine.Create(initializer, true); CKlaxScriptRegistry dummy = CKlaxScriptRegistry.Instance; Input.SetReferenceHWND(Handle); Input.CursorVisibilitySetter = (arg) => { if (arg) { Cursor.Show(); } else { Cursor.Hide(); } }; Width = WindowWidth; Height = WindowHeight; CEngine.Instance.Dispatch(EEngineUpdatePriority.BeginFrame, () => { CEngine.Instance.LoadWorld(null, WorldLoadedCallback); }); Point size = new Point(ClientSize.Width, ClientSize.Height); System.Drawing.Point topLeft = PointToScreen(new System.Drawing.Point(0, 0)); IntPtr handlePtr = Handle; CRenderer renderer = CRenderer.Instance; CEngine.Instance.Dispatch(EEngineUpdatePriority.BeginFrame, () => { renderer.Resize(size.X, size.Y, topLeft.X, topLeft.Y, handlePtr); CEngine.Instance.CurrentWorld.StartPlayMode(); }); }