Exemple #1
0
        private void CopyMaterial(object sender, RoutedEventArgs e)
        {
            if (viewmodel.SelectedMaterial == null)
            {
                return;
            }

            var copy = new MaterialAsset()
            {
                Description     = viewmodel.SelectedMaterial.Description,
                Name            = viewmodel.SelectedMaterial.Name + "_copy",
                Textures        = new ObservableCollection <Texture>(viewmodel.SelectedMaterial.Textures.ToList()),
                ParameterGroups = new ObservableCollection <ParameterGroup>(viewmodel.SelectedMaterial.ParameterGroups.ToList())
            };

            MaterialEditor editor = new MaterialEditor(copy);

            editor.AvailableTextures = viewmodel.Textures;

            var result = editor.ShowDialog();

            if (result == true)
            {
                AssetMetadata.createMaterialMetadata(copy);
                viewmodel.Materials.Add(copy);
            }
        }
Exemple #2
0
        private void EditMaterial(object sender, RoutedEventArgs e)
        {
            if (viewmodel.SelectedMaterial == null)
            {
                return;
            }

            string oldName     = viewmodel.SelectedMaterial.Name;
            string oldImported = viewmodel.SelectedMaterial.ImportedFilename;

            MaterialEditor editor = new MaterialEditor(viewmodel.SelectedMaterial);

            editor.AvailableTextures = viewmodel.Textures;

            var result = editor.ShowDialog();

            if (result == true)
            {
                if (oldName != editor.asset.Name)
                {
                    var newName = editor.asset.Name;

                    editor.asset.Name = oldName;

                    //we changed the name, delete the old asset then create a new one
                    System.IO.File.Delete(oldImported);

                    editor.asset.Name = newName;
                }
                else
                {
                    AssetMetadata.createMaterialMetadata(viewmodel.SelectedMaterial);
                }
            }
        }
Exemple #3
0
        private void CreateMaterial(object sender, RoutedEventArgs e)
        {
            var basedStateGroup = new BaseMaterialOnStateGroup(viewmodel.StateGroups.ToList());
            var result          = basedStateGroup.ShowDialog();

            if (result == false)
            {
                return;
            }

            var editor = new MaterialEditor(basedStateGroup.SelectedStateGroup);

            editor.AvailableTextures = viewmodel.Textures;

            result = editor.ShowDialog();

            if (result == true)
            {
                AssetMetadata.createMaterialMetadata(editor.asset);

                viewmodel.Materials.Add(editor.asset);
            }
        }
        public static bool UpdateAsset(Object asset,
                                       out string error, out string successMessage)
        {
            error          = "";
            successMessage = "";

            if (asset is MeshAsset)
            {
                MeshAsset mesh = asset as MeshAsset;

                var result = ImportMesh.import(mesh.SourceFilename, mesh.ImportedFilename);

                if (string.IsNullOrEmpty(result))
                {
                    successMessage = "Successfully updated mesh: " + mesh.Name;

                    mesh.LastUpdated = DateTime.Now;
                    AssetMetadata.createMeshMetadata(mesh);

                    return(true);
                }
            }
            else if (asset is TextureAsset)
            {
                TextureAsset texture = asset as TextureAsset;

                var result = ImportTexture.import(texture.Format, texture.ChannelMappings, texture.ImportedFilename);

                if (string.IsNullOrEmpty(result))
                {
                    successMessage      = "Successfully updated texture: " + texture.Name;
                    texture.LastUpdated = DateTime.Now;
                    AssetMetadata.createTextureMetadata(texture);

                    return(true);
                }
                else
                {
                    error = "ERROR: Updating texture: " + texture.Name + " failed!" + Environment.NewLine + result;
                }
            }
            else if (asset is ShaderAsset)
            {
                ShaderAsset shader = asset as ShaderAsset;

                var result = ImportShader.import(shader.SourceFilename, shader.ImportedFilename);

                if (string.IsNullOrEmpty(result))
                {
                    successMessage     = "Successfully updated shader: " + shader.Name;
                    shader.LastUpdated = DateTime.Now;
                    AssetMetadata.createShaderMetadata(shader);

                    return(true);
                }
                else
                {
                    error = "ERROR: Updating shader: " + shader.Name + " failed!" + Environment.NewLine + result;
                }
            }
            else if (asset is MaterialAsset)
            {
                MaterialAsset material = asset as MaterialAsset;

                var result = MaterialImporter.Import(material);

                if (result)
                {
                    successMessage       = "Successfully updated material: " + material.Name;
                    material.LastUpdated = DateTime.Now;
                    AssetMetadata.createMaterialMetadata(material);

                    return(true);
                }
                else
                {
                    error = "ERROR: Updating material: " + material.Name + " failed!" + Environment.NewLine;
                }
            }
            else if (asset is StateGroupAsset)
            {
                var stateGroup = asset as StateGroupAsset;

                var result = StateGroupImporter.Import(stateGroup);

                if (result)
                {
                    successMessage         = "Successfully updated state group: " + stateGroup.Name;
                    stateGroup.LastUpdated = DateTime.Now;
                    AssetMetadata.createStateGroupMetadata(stateGroup);

                    return(true);
                }
                else
                {
                    error = "ERROR: Updating state group: " + stateGroup.Name + " failed!" + Environment.NewLine + result;
                }
            }

            return(false);
        }