public SceneAsset ShowSaveSceneWindow(Project project, Scene scene) { var window = this._container.Resolve <SaveSceneDialog>(new ParameterOverride("project", project)); var result = window.ShowDialog(); if (result.HasValue && result.Value) { var fileName = window.ViewModel.FileName + FileHelper.SceneExtension; FolderAsset parent; if (window.ViewModel.SelectedAsset.Type == AssetType.Folder && window.ViewModel.SelectedAsset is FolderAsset folder) { parent = folder; } else { parent = window.ViewModel.SelectedAsset.Parent; } var sceneAsset = new SceneAsset(fileName) { Parent = parent }; scene.SaveToFile(sceneAsset.GetPath(), this._serializer); if (project.StartUpSceneAsset == null) { project.StartUpSceneAsset = sceneAsset; } return(sceneAsset); } return(null); }
private static bool SceneAssetExistsInProject(Project project, SceneAsset sceneAsset) { return(project.SceneAssets.Any(x => x.Name == sceneAsset.Name && x.GetPath() == sceneAsset.GetPath())); }