public async Task <object?> CreateAsync(StorageFileViewModel item)
        {
            if (item.Parent is null)
            {
                return(null);
            }

            string scenePath = Path.GetFileNameWithoutExtension(item.Name);

            StorageFolderViewModel rootFolder  = item.Parent;
            StorageFileViewModel?  projectFile = (await rootFolder.GetFilesAsync()).FirstOrDefault(s => Path.GetExtension(s.Name).Contains("proj"));

            while (projectFile is null && rootFolder.Parent != null)
            {
                scenePath = Path.Combine(rootFolder.Name, scenePath);

                rootFolder  = rootFolder.Parent;
                projectFile = (await rootFolder.GetFilesAsync()).FirstOrDefault(s => Path.GetExtension(s.Name).Contains("proj"));
            }

            if (projectFile != null)
            {
                await LoadAssemblyAsync(rootFolder.Model, Path.GetFileNameWithoutExtension(projectFile.Name));
            }

            return(new SceneEditorViewModel(rootFolder, scenePath));
        }
        public SceneView(StorageFolderViewModel rootFolder)
        {
            InitializeComponent();

            SharedShadow.Receivers.Add(SwapChainPanel);

            EntityTreeView.Translation += new Vector3(0.0f, 0.0f, 32.0f);

            ((StandardUICommand)Resources["OpenCommand"]).KeyboardAccelerators.Clear();

            EditorGame game = new EditorGame(new XamlGameContext(SwapChainPanel), rootFolder.Model);

            //EditorGame game = new EditorGame(new GameContextWithGraphics(), rootFolder.Model);
            game.Run();

            ViewModel = new SceneViewModel(game);
        }
Beispiel #3
0
        public Task <object?> CreateAsync(StorageFileViewModel item)
        {
            if (item.Parent is null)
            {
                return(Task.FromResult <object?>(null));
            }

            string path = Path.GetFileNameWithoutExtension(item.Name);
            StorageFolderViewModel rootFolder = item.Parent;

            while (rootFolder.Parent != null)
            {
                path       = Path.Combine(rootFolder.Name, path);
                rootFolder = rootFolder.Parent;
            }

            SceneView sceneView = new SceneView(rootFolder);
            Task      sceneTask = sceneView.ViewModel.LoadAsync(path);

            return(Task.FromResult <object?>(sceneView));
        }
 public ProjectLoadedMessage(StorageFolderViewModel rootFolder)
 {
     RootFolder = rootFolder;
 }