mirror of
https://github.com/4sval/FModel.git
synced 2026-09-21 16:04:39 -05:00
Merge branch 'dev' of https://github.com/4sval/FModel into dev
This commit is contained in:
@@ -17,6 +17,7 @@ using System.Windows;
|
||||
using System.Windows.Media.Imaging;
|
||||
using CUE4Parse.UE4.Assets.Exports.Texture;
|
||||
using CUE4Parse_Conversion.Textures;
|
||||
using Ookii.Dialogs.Wpf;
|
||||
|
||||
namespace FModel.ViewModels;
|
||||
|
||||
@@ -227,19 +228,20 @@ public class TabItem : ViewModel
|
||||
});
|
||||
}
|
||||
|
||||
public void AddImage(UTexture2D texture) => AddImage(texture.Name, texture.bRenderNearestNeighbor, texture.Decode(UserSettings.Default.OverridedPlatform));
|
||||
public void AddImage(UTexture2D texture, bool bulkTexture)
|
||||
=> AddImage(texture.Name, texture.bRenderNearestNeighbor, texture.Decode(UserSettings.Default.OverridedPlatform), bulkTexture);
|
||||
|
||||
public void AddImage(string name, bool rnn, SKBitmap[] img)
|
||||
public void AddImage(string name, bool rnn, SKBitmap[] img, bool bulkTexture)
|
||||
{
|
||||
foreach (var i in img) AddImage(name, rnn, i);
|
||||
foreach (var i in img) AddImage(name, rnn, i, bulkTexture);
|
||||
}
|
||||
|
||||
public void AddImage(string name, bool rnn, SKBitmap img)
|
||||
public void AddImage(string name, bool rnn, SKBitmap img, bool bulkTexture)
|
||||
{
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
var t = new TabImage(name, rnn, img);
|
||||
if (UserSettings.Default.IsAutoSaveTextures)
|
||||
if (bulkTexture)
|
||||
SaveImage(t, true);
|
||||
|
||||
_images.Add(t);
|
||||
@@ -259,7 +261,7 @@ public class TabItem : ViewModel
|
||||
Document ??= new TextDocument();
|
||||
Document.Text = text;
|
||||
|
||||
if (UserSettings.Default.IsAutoSaveProps || bulkSave)
|
||||
if (bulkSave)
|
||||
SaveProperty(true);
|
||||
});
|
||||
}
|
||||
@@ -273,16 +275,43 @@ public class TabItem : ViewModel
|
||||
});
|
||||
}
|
||||
|
||||
public void SaveImage(bool autoSave) => SaveImage(SelectedImage, autoSave);
|
||||
public void SaveImages(bool bulkTexture)
|
||||
{
|
||||
if (_images.Count == 1)
|
||||
{
|
||||
SaveImage(bulkTexture);
|
||||
return;
|
||||
}
|
||||
|
||||
private void SaveImage(TabImage image, bool autoSave)
|
||||
var directory = Path.Combine(UserSettings.Default.TextureDirectory,
|
||||
UserSettings.Default.KeepDirectoryStructure ? Directory : "").Replace('\\', '/');
|
||||
|
||||
if (!bulkTexture)
|
||||
{
|
||||
var folderBrowser = new VistaFolderBrowserDialog();
|
||||
if (folderBrowser.ShowDialog() == true)
|
||||
directory = folderBrowser.SelectedPath;
|
||||
else return;
|
||||
}
|
||||
else System.IO.Directory.CreateDirectory(directory);
|
||||
|
||||
foreach (var image in _images)
|
||||
{
|
||||
if (image == null) return;
|
||||
var fileName = $"{image.ExportName}.png";
|
||||
SaveImage(image, Path.Combine(directory, fileName), fileName);
|
||||
}
|
||||
}
|
||||
|
||||
public void SaveImage(bool bulkTexture) => SaveImage(SelectedImage, bulkTexture);
|
||||
private void SaveImage(TabImage image, bool bulkTexture)
|
||||
{
|
||||
if (image == null) return;
|
||||
var fileName = $"{image.ExportName}.png";
|
||||
var directory = Path.Combine(UserSettings.Default.TextureDirectory,
|
||||
var path = Path.Combine(UserSettings.Default.TextureDirectory,
|
||||
UserSettings.Default.KeepDirectoryStructure ? Directory : "", fileName!).Replace('\\', '/');
|
||||
|
||||
if (!autoSave)
|
||||
if (!bulkTexture)
|
||||
{
|
||||
var saveFileDialog = new SaveFileDialog
|
||||
{
|
||||
@@ -293,19 +322,23 @@ public class TabItem : ViewModel
|
||||
};
|
||||
var result = saveFileDialog.ShowDialog();
|
||||
if (!result.HasValue || !result.Value) return;
|
||||
directory = saveFileDialog.FileName;
|
||||
}
|
||||
else
|
||||
{
|
||||
System.IO.Directory.CreateDirectory(directory.SubstringBeforeLast('/'));
|
||||
path = saveFileDialog.FileName;
|
||||
}
|
||||
else System.IO.Directory.CreateDirectory(path.SubstringBeforeLast('/'));
|
||||
|
||||
using (var fs = new FileStream(directory, FileMode.Create, FileAccess.Write, FileShare.Read))
|
||||
{
|
||||
fs.Write(image.ImageBuffer, 0, image.ImageBuffer.Length);
|
||||
}
|
||||
SaveImage(image, path, fileName);
|
||||
}
|
||||
|
||||
SaveCheck(directory, fileName);
|
||||
private void SaveImage(TabImage image, string path, string fileName)
|
||||
{
|
||||
SaveImage(image, path);
|
||||
SaveCheck(path, fileName);
|
||||
}
|
||||
|
||||
private void SaveImage(TabImage image, string path)
|
||||
{
|
||||
using var fs = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.Read);
|
||||
fs.Write(image.ImageBuffer, 0, image.ImageBuffer.Length);
|
||||
}
|
||||
|
||||
public void SaveProperty(bool autoSave)
|
||||
|
||||
Reference in New Issue
Block a user