diff --git a/AssetStudioCLI/Exporter.cs b/AssetStudioCLI/Exporter.cs index c5159a5..b03f15e 100644 --- a/AssetStudioCLI/Exporter.cs +++ b/AssetStudioCLI/Exporter.cs @@ -111,6 +111,17 @@ namespace AssetStudioCLI return false; } + public static bool ExportMovieTexture(AssetItem item, string exportPath) + { + var m_MovieTexture = (MovieTexture)item.Asset; + if (!TryExportFile(exportPath, item, ".ogv", out var exportFullPath)) + return false; + File.WriteAllBytes(exportFullPath, m_MovieTexture.m_MovieData); + + Logger.Debug($"{item.TypeString}: \"{item.Text}\" exported to \"{exportFullPath}\""); + return true; + } + public static bool ExportShader(AssetItem item, string exportPath) { if (!TryExportFile(exportPath, item, ".shader", out var exportFullPath)) @@ -260,6 +271,8 @@ namespace AssetStudioCLI return ExportAudioClip(item, exportPath, options); case ClassIDType.VideoClip: return ExportVideoClip(item, exportPath); + case ClassIDType.MovieTexture: + return ExportMovieTexture(item, exportPath); case ClassIDType.Shader: return ExportShader(item, exportPath); case ClassIDType.TextAsset: diff --git a/AssetStudioCLI/Options/CLIOptions.cs b/AssetStudioCLI/Options/CLIOptions.cs index e10bb03..6652289 100644 --- a/AssetStudioCLI/Options/CLIOptions.cs +++ b/AssetStudioCLI/Options/CLIOptions.cs @@ -121,6 +121,7 @@ namespace AssetStudioCLI.Options ClassIDType.Shader, ClassIDType.AudioClip, ClassIDType.VideoClip, + ClassIDType.MovieTexture, }; #region Init General Options @@ -142,7 +143,8 @@ namespace AssetStudioCLI.Options optionDefaultValue: supportedAssetTypes, optionName: "-t, --asset-type ", optionDescription: "Specify asset type(s) to export\n" + - "\n" + + "\n" + "All - export all asset types, which are listed in the values\n" + "*To specify multiple asset types, write them separated by ',' or ';' without spaces\n" + "Examples: \"-t sprite\" or \"-t all\" or \"-t tex2d,sprite,audio\" or \"-t tex2d;sprite;font\"\n", @@ -450,6 +452,9 @@ namespace AssetStudioCLI.Options case "videoclip": o_exportAssetTypes.Value.Add(ClassIDType.VideoClip); break; + case "movietexture": + o_exportAssetTypes.Value.Add(ClassIDType.MovieTexture); + break; case "all": o_exportAssetTypes.Value = supportedAssetTypes; break; diff --git a/AssetStudioCLI/Studio.cs b/AssetStudioCLI/Studio.cs index 6d61777..45298de 100644 --- a/AssetStudioCLI/Studio.cs +++ b/AssetStudioCLI/Studio.cs @@ -112,6 +112,7 @@ namespace AssetStudioCLI assetItem.FullSize = asset.byteSize + m_VideoClip.m_ExternalResources.m_Size; assetItem.Text = m_VideoClip.m_Name; break; + case MovieTexture _: case TextAsset _: case Font _: case Sprite _: