/// <summary>
 /// Initializes a new instance of the <see cref="EntityHierarchyEditorViewModel"/> class.
 /// </summary>
 /// <param name="asset">The asset related to this editor.</param>
 /// <param name="controllerFactory">A factory to create the associated <see cref="IEditorGameController"/>.</param>
 protected EntityHierarchyEditorViewModel([NotNull] EntityHierarchyViewModel asset, [NotNull] Func <GameEditorViewModel, IEditorGameController> controllerFactory)
     : base(asset, controllerFactory)
 {
     Controller.Loader.AssetLoading += (s, e) => asset.Dispatcher.InvokeAsync(() => CompilingAssets = e.ContentLoadingCount > 0);
     Controller.Loader.AssetLoaded  += (s, e) => asset.Dispatcher.InvokeAsync(() => CompilingAssets = e.ContentLoadingCount > 0);
     Camera                         = new EditorCameraViewModel(ServiceProvider, Controller);
     Transform                      = new EntityTransformationViewModel(ServiceProvider, Controller);
     Grid                           = new EditorGridViewModel(ServiceProvider, Controller);
     Navigation                     = new EditorNavigationViewModel(ServiceProvider, Controller, this);
     Lighting                       = new EditorLightingViewModel(ServiceProvider, Controller, this);
     Rendering                      = new EditorRenderingViewModel(ServiceProvider, Controller);
     EntityGizmos                   = new EntityGizmosViewModel(ServiceProvider, Controller);
     CreateEntityCommand            = new AnonymousTaskCommand <IEntityFactory>(ServiceProvider, x => CreateEntity(true, x, ActiveRoot ?? HierarchyRoot));
     CreateEntityInRootCommand      = new AnonymousTaskCommand <IEntityFactory>(ServiceProvider, x => CreateEntity(false, x, ActiveRoot ?? HierarchyRoot));
     CreateFolderInRootCommand      = new AnonymousCommand <IEntityFactory>(ServiceProvider, x => CreateFolder(HierarchyRoot.Asset, ActiveRoot ?? HierarchyRoot, true));
     CreateEntityInSelectionCommand = new AnonymousTaskCommand <IEntityFactory>(ServiceProvider, x => CreateEntity(false, x, (EntityHierarchyItemViewModel)SelectedContent.FirstOrDefault() ?? ActiveRoot ?? HierarchyRoot));
     CreateFolderInSelectionCommand = new AnonymousCommand <IEntityFactory>(ServiceProvider, x =>
     {
         var element = (EntityHierarchyItemViewModel)SelectedContent.FirstOrDefault() ?? ActiveRoot ?? HierarchyRoot;
         CreateFolder(element.Asset, element, true);
     });
     OpenPrefabEditorCommand          = new AnonymousCommand(ServiceProvider, OpenPrefabEditor);
     SelectPrefabCommand              = new AnonymousCommand(ServiceProvider, SelectPrefab);
     SetActiveRootCommand             = new AnonymousCommand(ServiceProvider, SetActiveRoot);
     BreakLinkToPrefabCommand         = new AnonymousCommand(ServiceProvider, BreakLinkToPrefab);
     CreatePrefabFromSelectionCommand = new AnonymousCommand(ServiceProvider, CreatePrefabFromSelection);
     UpdateCommands();
     debugPage = new DebugEntityHierarchyEditorUserControl(this);
     EditorDebugTools.RegisterDebugPage(debugPage);
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="UIBaseViewModel"/> class.
        /// </summary>
        /// <param name="asset">The asset related to this editor.</param>
        /// <param name="controllerFactory">A factory to create the associated <see cref="IEditorGameController"/>.</param>
        protected UIEditorBaseViewModel([NotNull] UIBaseViewModel asset, [NotNull] Func <GameEditorViewModel, IEditorGameController> controllerFactory)
            : base(asset, controllerFactory)
        {
            Camera = new EditorCameraViewModel(ServiceProvider, Controller);

            BreakLinkToLibraryCommand        = new AnonymousCommand(ServiceProvider, BreakLinkToLibrary);
            CreateLibraryCommand             = new AnonymousCommand(ServiceProvider, CreateLibraryFromSelection);
            CreatePageCommand                = new AnonymousCommand(ServiceProvider, CreatePageFromSelection);
            GroupIntoCommand                 = new AnonymousCommand <IUIElementFactory>(ServiceProvider, GroupInto);
            OpenLibraryEditorCommand         = new AnonymousCommand(ServiceProvider, OpenLibraryEditor);
            RefreshSelectableElementsCommand = new AnonymousCommand(ServiceProvider, RefreshSelectableElements);
            ResetZoomCommand                 = new AnonymousCommand(ServiceProvider, ResetZoom);
            SelectLibraryCommand             = new AnonymousCommand(ServiceProvider, SelectLibrary);
            SetCurrentSelectionCommand       = new AnonymousCommand <AbsoluteId>(ServiceProvider, SetCurrentSelection);
            ShowPropertiesCommand            = new AnonymousCommand(ServiceProvider, ShowAssetProperties);
            ZoomInCommand  = new AnonymousCommand(ServiceProvider, () => Zoom(-1));
            ZoomOutCommand = new AnonymousCommand(ServiceProvider, () => Zoom(+1));
            UpdateCommands();
        }