Textures: Un-merge save buttons, make ignore unselectable

This commit is contained in:
Exter-N 2023-08-25 17:59:18 +02:00
parent 42b874413d
commit 781bbb3d26
2 changed files with 28 additions and 21 deletions

View file

@ -15,12 +15,12 @@ public partial class CombinedTexture
{
private enum CombineOp
{
LeftMultiply = -4,
LeftCopy = -3,
RightCopy = -2,
Invalid = -1,
Over = 0,
Under = 1,
LeftMultiply = 2,
RightMultiply = 3,
CopyChannels = 4,
}
@ -47,7 +47,6 @@ public partial class CombinedTexture
{
"Overlay over Input",
"Input over Overlay",
"Ignore Overlay",
"Replace Input",
"Copy Channels",
};
@ -55,9 +54,8 @@ public partial class CombinedTexture
private static readonly IReadOnlyList<string> CombineOpTooltips = new string[]
{
"Standard composition.\nApply the overlay over the input.",
"Standard composition, reversed.\nApply the input over the overlay.",
"Use only the input, and ignore the overlay.",
"Completely replace the input with the overlay.",
"Standard composition, reversed.\nApply the input over the overlay ; can be used to fix some wrong imports.",
"Completely replace the input with the overlay.\nCan be used to select the destination file as input and the source file as overlay.",
"Replace some input channels with those from the overlay.\nUseful for Multi maps.",
};

View file

@ -127,22 +127,14 @@ public partial class ModEditWindow
}
ImGui.SameLine();
if (ImGui.Button("Save as TEX, DDS or PNG", buttonSize2))
{
var fileName = Path.GetFileNameWithoutExtension(_left.Path.Length > 0 ? _left.Path : _right.Path);
_fileDialog.OpenSavePicker("Save Texture as TEX, DDS or PNG...", "Textures{.png,.dds,.tex},.tex,.dds,.png", fileName, ".tex", (a, b) =>
{
if (a)
{
_center.SaveAs(null, _textures, b, (CombinedTexture.TextureSaveType)_currentSaveAs, _addMipMaps);
if (b == _left.Path)
AddReloadTask(_left.Path, false);
else if (b == _right.Path)
AddReloadTask(_right.Path, true);
}
}, _mod!.ModPath.FullName, _forceTextureStartPath);
_forceTextureStartPath = false;
}
if (ImGui.Button("Save as TEX", buttonSize2))
OpenSaveAsDialog(".tex");
if (ImGui.Button("Export as PNG", buttonSize2))
OpenSaveAsDialog(".png");
ImGui.SameLine();
if (ImGui.Button("Export as DDS", buttonSize2))
OpenSaveAsDialog(".dds");
ImGui.NewLine();
@ -204,6 +196,23 @@ public partial class ModEditWindow
_center.Draw(_textures, imageSize);
}
private void OpenSaveAsDialog(string defaultExtension)
{
var fileName = Path.GetFileNameWithoutExtension(_left.Path.Length > 0 ? _left.Path : _right.Path);
_fileDialog.OpenSavePicker("Save Texture as TEX, DDS or PNG...", "Textures{.png,.dds,.tex},.tex,.dds,.png", fileName, defaultExtension, (a, b) =>
{
if (a)
{
_center.SaveAs(null, _textures, b, (CombinedTexture.TextureSaveType)_currentSaveAs, _addMipMaps);
if (b == _left.Path)
AddReloadTask(_left.Path, false);
else if (b == _right.Path)
AddReloadTask(_right.Path, true);
}
}, _mod!.ModPath.FullName, _forceTextureStartPath);
_forceTextureStartPath = false;
}
private void AddReloadTask(string path, bool right)
{
_center.SaveTask.ContinueWith(t =>