using System.IO; namespace Sandbox; /// /// Utility methods for screen recording and screenshot functionality /// internal static class ScreenCaptureUtility { /// /// Generates a suitable screenshot filename with timestamp /// public static string GenerateScreenshotFilename( string extension ) { // Extract path component var filePath = "screenshots"; var fileName = ConsoleSystem.GetValue( "screenshot_prefix", "sbox_" ); if ( string.IsNullOrEmpty( fileName ) ) { fileName = "sbox_"; } // Format extension with dot if needed string extensionSeparator = ""; if ( !string.IsNullOrEmpty( extension ) && !extension.StartsWith( "." ) ) { extensionSeparator = "."; } // Get timestamp string timestamp = DateTime.Now.ToString( "yyyy.MM.dd.HH.mm.ss" ); // Generate final filename string screenshotFilename; if ( !string.IsNullOrEmpty( filePath ) ) { screenshotFilename = Path.Combine( filePath, $"{fileName}.{timestamp}{extensionSeparator}{extension}" ); } else { screenshotFilename = $"{fileName}.{timestamp}{extensionSeparator}{extension}"; } return screenshotFilename; } }