Skip to content

Commit

Permalink
Minor fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
aelurum committed Aug 26, 2023
1 parent 94c8b35 commit cf67815
Show file tree
Hide file tree
Showing 6 changed files with 162 additions and 137 deletions.
7 changes: 4 additions & 3 deletions AssetStudioCLI/CLILogger.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,12 @@ public CLILogger()
{
logOutput = CLIOptions.o_logOutput.Value;
logMinLevel = CLIOptions.o_logLevel.Value;
LogName = $"AssetStudioCLI_{DateTime.Now:yyyy-MM-dd_HH-mm-ss}.log";
var appAssembly = typeof(Program).Assembly.GetName();
LogName = $"{appAssembly.Name}_{DateTime.Now:yyyy-MM-dd_HH-mm-ss}.log";
LogPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, LogName);
var arch = Environment.Is64BitProcess ? "x64" : "x32";

var ver = typeof(Program).Assembly.GetName().Version;
LogToFile(LoggerEvent.Verbose, $"---AssetStudioCLI v{ver} | Logger launched---\n" +
LogToFile(LoggerEvent.Verbose, $"---{appAssembly.Name} v{appAssembly.Version} [{arch}] | Logger launched---\n" +
$"CMD Args: {string.Join(" ", CLIOptions.cliArgs)}");
}

Expand Down
84 changes: 57 additions & 27 deletions AssetStudioCLI/Exporter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,30 @@ public static bool ExportTexture2D(AssetItem item, string exportPath)
var type = CLIOptions.o_imageFormat.Value;
if (!TryExportFile(exportPath, item, "." + type.ToString().ToLower(), out var exportFullPath))
return false;

if (CLIOptions.o_logLevel.Value <= LoggerEvent.Debug)
{
var sb = new StringBuilder();
sb.AppendLine($"Converting \"{m_Texture2D.m_Name}\" to {type}..");
sb.AppendLine($"Width: {m_Texture2D.m_Width}");
sb.AppendLine($"Height: {m_Texture2D.m_Height}");
sb.AppendLine($"Format: {m_Texture2D.m_TextureFormat}");
switch (m_Texture2D.m_TextureSettings.m_FilterMode)
{
case 0: sb.AppendLine("Filter Mode: Point "); break;
case 1: sb.AppendLine("Filter Mode: Bilinear "); break;
case 2: sb.AppendLine("Filter Mode: Trilinear "); break;
}
sb.AppendLine($"Anisotropic level: {m_Texture2D.m_TextureSettings.m_Aniso}");
sb.AppendLine($"Mip map bias: {m_Texture2D.m_TextureSettings.m_MipBias}");
switch (m_Texture2D.m_TextureSettings.m_WrapMode)
{
case 0: sb.AppendLine($"Wrap mode: Repeat"); break;
case 1: sb.AppendLine($"Wrap mode: Clamp"); break;
}
Logger.Debug(sb.ToString());
}

var image = m_Texture2D.ConvertToImage(flip: true);
if (image == null)
{
Expand All @@ -29,7 +53,7 @@ public static bool ExportTexture2D(AssetItem item, string exportPath)
{
image.WriteToStream(file, type);
}
Logger.Debug($"{item.TypeString}: \"{item.Text}\" exported to \"{exportFullPath}\"");
Logger.Debug($"{item.TypeString} \"{item.Text}\" exported to \"{exportFullPath}\"");
return true;
}
}
Expand All @@ -38,7 +62,7 @@ public static bool ExportTexture2D(AssetItem item, string exportPath)
if (!TryExportFile(exportPath, item, ".tex", out var exportFullPath))
return false;
File.WriteAllBytes(exportFullPath, m_Texture2D.image_data.GetData());
Logger.Debug($"{item.TypeString}: \"{item.Text}\" exported to \"{exportFullPath}\"");
Logger.Debug($"{item.TypeString} \"{item.Text}\" exported to \"{exportFullPath}\"");
return true;
}
}
Expand All @@ -59,13 +83,16 @@ public static bool ExportAudioClip(AssetItem item, string exportPath)
if (!TryExportFile(exportPath, item, ".wav", out exportFullPath))
return false;

var sb = new StringBuilder();
sb.AppendLine($"Converting \"{m_AudioClip.m_Name}\" to wav..");
sb.AppendLine(m_AudioClip.version[0] < 5 ? $"AudioClip type: {m_AudioClip.m_Type}" : $"AudioClip compression format: {m_AudioClip.m_CompressionFormat}");
sb.AppendLine($"AudioClip channel count: {m_AudioClip.m_Channels}");
sb.AppendLine($"AudioClip sample rate: {m_AudioClip.m_Frequency}");
sb.AppendLine($"AudioClip bit depth: {m_AudioClip.m_BitsPerSample}");
Logger.Debug(sb.ToString());
if (CLIOptions.o_logLevel.Value <= LoggerEvent.Debug)
{
var sb = new StringBuilder();
sb.AppendLine($"Converting \"{m_AudioClip.m_Name}\" to wav..");
sb.AppendLine(m_AudioClip.version[0] < 5 ? $"AudioClip type: {m_AudioClip.m_Type}" : $"AudioClip compression format: {m_AudioClip.m_CompressionFormat}");
sb.AppendLine($"AudioClip channel count: {m_AudioClip.m_Channels}");
sb.AppendLine($"AudioClip sample rate: {m_AudioClip.m_Frequency}");
sb.AppendLine($"AudioClip bit depth: {m_AudioClip.m_BitsPerSample}");
Logger.Debug(sb.ToString());
}

var buffer = converter.ConvertToWav(m_AudioData);
if (buffer == null)
Expand All @@ -82,7 +109,7 @@ public static bool ExportAudioClip(AssetItem item, string exportPath)
File.WriteAllBytes(exportFullPath, m_AudioData);
}

Logger.Debug($"{item.TypeString}: \"{item.Text}\" exported to \"{exportFullPath}\"");
Logger.Debug($"{item.TypeString} \"{item.Text}\" exported to \"{exportFullPath}\"");
return true;
}

Expand All @@ -94,16 +121,19 @@ public static bool ExportVideoClip(AssetItem item, string exportPath)
if (!TryExportFile(exportPath, item, Path.GetExtension(m_VideoClip.m_OriginalPath), out var exportFullPath))
return false;

var sb = new StringBuilder();
sb.AppendLine($"VideoClip format: {m_VideoClip.m_Format}");
sb.AppendLine($"VideoClip width: {m_VideoClip.Width}");
sb.AppendLine($"VideoClip height: {m_VideoClip.Height}");
sb.AppendLine($"VideoClip frame rate: {m_VideoClip.m_FrameRate}");
sb.AppendLine($"VideoClip split alpha: {m_VideoClip.m_HasSplitAlpha}");
Logger.Debug(sb.ToString());
if (CLIOptions.o_logLevel.Value <= LoggerEvent.Debug)
{
var sb = new StringBuilder();
sb.AppendLine($"VideoClip format: {m_VideoClip.m_Format}");
sb.AppendLine($"VideoClip width: {m_VideoClip.Width}");
sb.AppendLine($"VideoClip height: {m_VideoClip.Height}");
sb.AppendLine($"VideoClip frame rate: {m_VideoClip.m_FrameRate:.0##}");
sb.AppendLine($"VideoClip split alpha: {m_VideoClip.m_HasSplitAlpha}");
Logger.Debug(sb.ToString());
}

m_VideoClip.m_VideoData.WriteData(exportFullPath);
Logger.Debug($"{item.TypeString}: \"{item.Text}\" exported to \"{exportFullPath}\"");
Logger.Debug($"{item.TypeString} \"{item.Text}\" exported to \"{exportFullPath}\"");
return true;
}
return false;
Expand All @@ -116,7 +146,7 @@ public static bool ExportMovieTexture(AssetItem item, string exportPath)
return false;
File.WriteAllBytes(exportFullPath, m_MovieTexture.m_MovieData);

Logger.Debug($"{item.TypeString}: \"{item.Text}\" exported to \"{exportFullPath}\"");
Logger.Debug($"{item.TypeString} \"{item.Text}\" exported to \"{exportFullPath}\"");
return true;
}

Expand All @@ -128,7 +158,7 @@ public static bool ExportShader(AssetItem item, string exportPath)
var str = m_Shader.Convert();
File.WriteAllText(exportFullPath, str);

Logger.Debug($"{item.TypeString}: \"{item.Text}\" exported to \"{exportFullPath}\"");
Logger.Debug($"{item.TypeString} \"{item.Text}\" exported to \"{exportFullPath}\"");
return true;
}

Expand Down Expand Up @@ -156,7 +186,7 @@ public static bool ExportTextAsset(AssetItem item, string exportPath)
return false;
File.WriteAllBytes(exportFullPath, m_TextAsset.m_Script);

Logger.Debug($"{item.TypeString}: \"{item.Text}\" exported to \"{exportFullPath}\"");
Logger.Debug($"{item.TypeString} \"{item.Text}\" exported to \"{exportFullPath}\"");
return true;
}

Expand All @@ -176,7 +206,7 @@ public static bool ExportMonoBehaviour(AssetItem item, string exportPath)
var str = JsonConvert.SerializeObject(type, Formatting.Indented);
File.WriteAllText(exportFullPath, str);

Logger.Debug($"{item.TypeString}: \"{item.Text}\" exported to \"{exportFullPath}\"");
Logger.Debug($"{item.TypeString} \"{item.Text}\" exported to \"{exportFullPath}\"");
return true;
}
return false;
Expand All @@ -196,7 +226,7 @@ public static bool ExportFont(AssetItem item, string exportPath)
return false;
File.WriteAllBytes(exportFullPath, m_Font.m_FontData);

Logger.Debug($"{item.TypeString}: \"{item.Text}\" exported to \"{exportFullPath}\"");
Logger.Debug($"{item.TypeString} \"{item.Text}\" exported to \"{exportFullPath}\"");
return true;
}
return false;
Expand All @@ -217,7 +247,7 @@ public static bool ExportSprite(AssetItem item, string exportPath)
{
image.WriteToStream(file, type);
}
Logger.Debug($"{item.TypeString}: \"{item.Text}\" exported to \"{exportFullPath}\"");
Logger.Debug($"{item.TypeString} \"{item.Text}\" exported to \"{exportFullPath}\"");
return true;
}
}
Expand All @@ -230,7 +260,7 @@ public static bool ExportRawFile(AssetItem item, string exportPath)
return false;
File.WriteAllBytes(exportFullPath, item.Asset.GetRawData());

Logger.Debug($"{item.TypeString}: \"{item.Text}\" exported to \"{exportFullPath}\"");
Logger.Debug($"{item.TypeString} \"{item.Text}\" exported to \"{exportFullPath}\"");
return true;
}

Expand All @@ -247,7 +277,7 @@ public static bool ExportDumpFile(AssetItem item, string exportPath)
if (str != null)
{
File.WriteAllText(exportFullPath, str);
Logger.Debug($"{item.TypeString}: \"{item.Text}\" saved to \"{exportFullPath}\"");
Logger.Debug($"{item.TypeString} \"{item.Text}\" saved to \"{exportFullPath}\"");
return true;
}
return false;
Expand Down Expand Up @@ -365,7 +395,7 @@ private static bool ExportMesh(AssetItem item, string exportPath)

sb.Replace("NaN", "0");
File.WriteAllText(exportFullPath, sb.ToString());
Logger.Debug($"{item.TypeString}: \"{item.Text}\" exported to \"{exportFullPath}\"");
Logger.Debug($"{item.TypeString} \"{item.Text}\" exported to \"{exportFullPath}\"");
return true;
}

Expand Down
3 changes: 2 additions & 1 deletion AssetStudioCLI/Options/CLIOptions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -761,7 +761,8 @@ public static void ShowHelp(bool showUsageOnly = false)
}
else
{
Console.WriteLine($"# {appAssembly.Name}\n# Based on AssetStudioMod v{appAssembly.Version}\n");
var arch = Environment.Is64BitProcess ? "x64" : "x32";
Console.WriteLine($"# {appAssembly.Name} [{arch}]\n# Based on AssetStudioMod v{appAssembly.Version}\n");
Console.WriteLine($"{usage}\n\n{helpMessage}");
}
}
Expand Down
8 changes: 0 additions & 8 deletions AssetStudioGUI/AboutForm.cs
Original file line number Diff line number Diff line change
@@ -1,14 +1,6 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Reflection.Emit;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace AssetStudioGUI
Expand Down
48 changes: 24 additions & 24 deletions AssetStudioGUI/AssetStudioGUIForm.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
using AssetStudio;
using Newtonsoft.Json;
using OpenTK;
using OpenTK.Graphics.OpenGL;
using System;
using System.Collections.Generic;
Expand All @@ -21,6 +20,7 @@
using Font = AssetStudio.Font;
using Microsoft.WindowsAPICodePack.Taskbar;
#if NET472
using OpenTK;
using Vector3 = OpenTK.Vector3;
using Vector4 = OpenTK.Vector4;
#else
Expand Down Expand Up @@ -785,42 +785,42 @@ private void PreviewAsset(AssetItem assetItem)
return;
try
{
switch (assetItem.Asset)
switch (assetItem.Type)
{
case Texture2D m_Texture2D:
PreviewTexture2D(assetItem, m_Texture2D);
case ClassIDType.Texture2D:
PreviewTexture2D(assetItem, assetItem.Asset as Texture2D);
break;
case AudioClip m_AudioClip:
PreviewAudioClip(assetItem, m_AudioClip);
case ClassIDType.AudioClip:
PreviewAudioClip(assetItem, assetItem.Asset as AudioClip);
break;
case Shader m_Shader:
PreviewShader(m_Shader);
case ClassIDType.Shader:
PreviewShader(assetItem.Asset as Shader);
break;
case TextAsset m_TextAsset:
PreviewTextAsset(m_TextAsset);
case ClassIDType.TextAsset:
PreviewTextAsset(assetItem.Asset as TextAsset);
break;
case MonoBehaviour m_MonoBehaviour:
PreviewMonoBehaviour(m_MonoBehaviour);
case ClassIDType.MonoBehaviour:
PreviewMonoBehaviour(assetItem.Asset as MonoBehaviour);
break;
case Font m_Font:
PreviewFont(m_Font);
case ClassIDType.Font:
PreviewFont(assetItem.Asset as Font);
break;
case Mesh m_Mesh:
PreviewMesh(m_Mesh);
case ClassIDType.Mesh:
PreviewMesh(assetItem.Asset as Mesh);
break;
case VideoClip m_VideoClip:
PreviewVideoClip(assetItem, m_VideoClip);
case ClassIDType.VideoClip:
PreviewVideoClip(assetItem, assetItem.Asset as VideoClip);
break;
case MovieTexture _:
case ClassIDType.MovieTexture:
StatusStripUpdate("Only supported export.");
break;
case Sprite m_Sprite:
PreviewSprite(assetItem, m_Sprite);
case ClassIDType.Sprite:
PreviewSprite(assetItem, assetItem.Asset as Sprite);
break;
case Animator _:
case ClassIDType.Animator:
StatusStripUpdate("Can be exported to FBX file.");
break;
case AnimationClip _:
case ClassIDType.AnimationClip:
StatusStripUpdate("Can be exported with Animator or Objects");
break;
default:
Expand Down Expand Up @@ -1029,7 +1029,7 @@ private void PreviewVideoClip(AssetItem assetItem, VideoClip m_VideoClip)
var sb = new StringBuilder();
sb.AppendLine($"Width: {m_VideoClip.Width}");
sb.AppendLine($"Height: {m_VideoClip.Height}");
sb.AppendLine($"Frame rate: {m_VideoClip.m_FrameRate}");
sb.AppendLine($"Frame rate: {m_VideoClip.m_FrameRate:.0##}");
sb.AppendLine($"Split alpha: {m_VideoClip.m_HasSplitAlpha}");
assetItem.InfoText = sb.ToString();

Expand Down
Loading

0 comments on commit cf67815

Please sign in to comment.