Switched to dependency injection for console use.
Created interfaces for input and output for better structure and easier testing.
This commit is contained in:
		| @@ -14,25 +14,25 @@ namespace RecrownedGTK.Tools.CommandProcessor | |||||||
|             commands = new List<EngineCommand>(); |             commands = new List<EngineCommand>(); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         public void Run(IUserInput input) |         public void Run(IUserInput input, IUserOutput output) | ||||||
|         { |         { | ||||||
|             while (running) |             while (running) | ||||||
|             { |             { | ||||||
|                 ConsoleUtilities.WriteWrappedLine("\nAwaiting command."); |                 output.WrappedOutput("\nAwaiting command."); | ||||||
|                 string command = input.GetInput(); |                 string command = input.GetInput(); | ||||||
|                 try |                 try | ||||||
|                 { |                 { | ||||||
|                     Process(command); |                     Process(input, output, command); | ||||||
|  |  | ||||||
|                 } |                 } | ||||||
|                 catch (ArgumentException ae) |                 catch (ArgumentException ae) | ||||||
|                 { |                 { | ||||||
|                     ConsoleUtilities.WriteWrappedLine("Error: " + ae.Message); |                     output.WrappedOutput("Error: " + ae.Message); | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         public void Process(string commandAndArguments) |         public void Process(IUserInput userInput, IUserOutput userOutput, string commandAndArguments) | ||||||
|         { |         { | ||||||
|             string command = commandAndArguments; |             string command = commandAndArguments; | ||||||
|             string[] arguments = null; |             string[] arguments = null; | ||||||
| @@ -72,7 +72,7 @@ namespace RecrownedGTK.Tools.CommandProcessor | |||||||
|                 arguments = argumentsList.ToArray(); |                 arguments = argumentsList.ToArray(); | ||||||
|             } |             } | ||||||
|             if (!ContainsCommand(command)) throw new ArgumentException("Command not found. Type \"help\" for a list of commands."); |             if (!ContainsCommand(command)) throw new ArgumentException("Command not found. Type \"help\" for a list of commands."); | ||||||
|             GetCommand(command).Run(arguments); |             GetCommand(command).Run(userInput, userOutput, arguments); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         public bool ContainsCommand(string command) |         public bool ContainsCommand(string command) | ||||||
|   | |||||||
| @@ -9,9 +9,9 @@ namespace RecrownedGTK.Tools.CommandProcessor.Commands | |||||||
|             help = "Clears the console."; |             help = "Clears the console."; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         public override void Run(string[] arguments = null) |         public override void Run(IUserInput userInput, IUserOutput userOutput, string[] arguments = null) | ||||||
|         { |         { | ||||||
|             Console.Clear(); |             userOutput.ClearOutput(); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -13,16 +13,16 @@ namespace RecrownedGTK.Tools.CommandProcessor.Commands | |||||||
|         } |         } | ||||||
|  |  | ||||||
|  |  | ||||||
|         public override void Run(string[] arguments) |         public override void Run(IUserInput userInput, IUserOutput userOutput, string[] arguments) | ||||||
|         { |         { | ||||||
|             if (arguments != null) |             if (arguments != null) | ||||||
|             { |             { | ||||||
|                 if (commandEngine.ContainsCommand(arguments[0])) |                 if (commandEngine.ContainsCommand(arguments[0])) | ||||||
|                 { |                 { | ||||||
|                     if (arguments.Length < 2) ConsoleUtilities.WriteWrappedLine(commandEngine.GetCommand(arguments[0]).Help(null)); |                     if (arguments.Length < 2) userOutput.WrappedOutput(commandEngine.GetCommand(arguments[0]).Help(null)); | ||||||
|                     for (int i = 1; i < arguments.Length; i++) |                     for (int i = 1; i < arguments.Length; i++) | ||||||
|                     { |                     { | ||||||
|                         ConsoleUtilities.WriteWrappedLine(commandEngine.GetCommand(arguments[0]).Help(arguments[i])); |                         userOutput.WrappedOutput(commandEngine.GetCommand(arguments[0]).Help(arguments[i])); | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|                 else |                 else | ||||||
| @@ -32,20 +32,21 @@ namespace RecrownedGTK.Tools.CommandProcessor.Commands | |||||||
|             } |             } | ||||||
|             else |             else | ||||||
|             { |             { | ||||||
|                 ConsoleUtilities.WriteWrappedLine("Tools for RecrownedGTK library. Possible commands are as follows:\n"); |                 userOutput.WrappedOutput("Tools for RecrownedGTK library. Possible commands are as follows:\n"); | ||||||
|                 foreach (EngineCommand engineCommand in commandEngine.commands) |                 foreach (EngineCommand engineCommand in commandEngine.commands) | ||||||
|                 { |                 { | ||||||
|                     for (int i = 0; i < engineCommand.InvokeStrings.Length; i++) |                     for (int i = 0; i < engineCommand.InvokeStrings.Length; i++) | ||||||
|                     { |                     { | ||||||
|                         ConsoleUtilities.WriteWrapped(engineCommand.InvokeStrings[i]); |                         userOutput.WrappedOutput(engineCommand.InvokeStrings[i]); | ||||||
|                         if (i + 1 < engineCommand.InvokeStrings.Length) |                         if (i + 1 < engineCommand.InvokeStrings.Length) | ||||||
|                         { |                         { | ||||||
|                             ConsoleUtilities.WriteWrapped(", "); |                             userOutput.WrappedOutput(", "); | ||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|                     ConsoleUtilities.WriteWrapped(" : "); |                     userOutput.WrappedOutput(" : "); | ||||||
|                     ConsoleUtilities.WriteWrapped(engineCommand.Help().Replace("\n", "\n\t"), true); |                     userOutput.WrappedOutput(engineCommand.Help().Replace("\n", "\n\t")); | ||||||
|                     Console.WriteLine("--------"); |                     userOutput.WrappedOutput("\n"); | ||||||
|  |                     userOutput.Output("--------"); | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ | |||||||
|             help = "Exits the tool."; |             help = "Exits the tool."; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         public override void Run(string[] arguments = null) |         public override void Run(IUserInput userInput, IUserOutput userOutput, string[] arguments = null) | ||||||
|         { |         { | ||||||
|             commandEngine.running = false; |             commandEngine.running = false; | ||||||
|         } |         } | ||||||
|   | |||||||
| @@ -1,5 +1,6 @@ | |||||||
| using System; | using System; | ||||||
| using System.Text; | using System.Text; | ||||||
|  | using RecrownedGTK.Tools.CommandProcessor; | ||||||
|  |  | ||||||
| namespace RecrownedGTK.Tools.CommandProcessor | namespace RecrownedGTK.Tools.CommandProcessor | ||||||
| { | { | ||||||
| @@ -51,7 +52,7 @@ namespace RecrownedGTK.Tools.CommandProcessor | |||||||
|         /// Runs the command. |         /// Runs the command. | ||||||
|         /// </summary> |         /// </summary> | ||||||
|         /// <param name="arguments">arguments to be used. May be null.</param> |         /// <param name="arguments">arguments to be used. May be null.</param> | ||||||
|         public abstract void Run(string[] arguments = null); |         public abstract void Run(IUserInput userInput = null, IUserOutput userOutput = null, string[] arguments = null); | ||||||
|  |  | ||||||
|         /// <summary> |         /// <summary> | ||||||
|         /// Check if given argument is viable for command. |         /// Check if given argument is viable for command. | ||||||
|   | |||||||
							
								
								
									
										8
									
								
								RecrownedGTK.Tools/CommandProcessor/IUserOutput.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								RecrownedGTK.Tools/CommandProcessor/IUserOutput.cs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | |||||||
|  | namespace RecrownedGTK.Tools.CommandProcessor { | ||||||
|  |     public interface IUserOutput | ||||||
|  |     { | ||||||
|  |         void Output(string output); | ||||||
|  |         void WrappedOutput(string output); | ||||||
|  |         void ClearOutput(); | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										68
									
								
								RecrownedGTK.Tools/ConsoleInterface/ConsoleProgarm.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								RecrownedGTK.Tools/ConsoleInterface/ConsoleProgarm.cs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,68 @@ | |||||||
|  | using RecrownedGTK.Tools.CommandProcessor; | ||||||
|  | using RecrownedGTK.Tools.CommandProcessor.Commands; | ||||||
|  | using RecrownedGTK.Tools.NinePatchTools; | ||||||
|  | using RecrownedGTK.Tools.TextureAtlasTools; | ||||||
|  | using System; | ||||||
|  | using System.Reflection; | ||||||
|  | using System.Text; | ||||||
|  |  | ||||||
|  | namespace RecrownedGTK.Tools.ConsoleInterface | ||||||
|  | { | ||||||
|  |     internal class ConsoleProgram | ||||||
|  |     { | ||||||
|  |         private class ConsoleInput : IUserInput { | ||||||
|  |             public string GetInput() { | ||||||
|  |                 return Console.ReadLine(); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         private class ConsoleOutput : IUserOutput { | ||||||
|  |             public void Output(string output) { | ||||||
|  |                 Console.WriteLine(output); | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             public void WrappedOutput(string output) { | ||||||
|  |                 ConsoleUtilities.WrapMessageToConsoleWidth(output); | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             public void ClearOutput() { | ||||||
|  |                 Console.Clear(); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         static void Main(string[] args) | ||||||
|  |         { | ||||||
|  |             ConsoleInput consoleInput = new ConsoleInput(); | ||||||
|  |             ConsoleOutput consoleOutput = new ConsoleOutput(); | ||||||
|  |             CommandEngine ce = new CommandEngine(); | ||||||
|  |             ConsoleUtilities.WrapMessageToConsoleWidth("Recrowned Athenaeum Console Tools version " + Assembly.GetExecutingAssembly().GetName().Version.ToString()); | ||||||
|  |             ConsoleUtilities.WrapMessageToConsoleWidth("Type \"help\" for help."); | ||||||
|  |  | ||||||
|  |             ce.commands.Add(new HelpCommand(ce)); | ||||||
|  |             ce.commands.Add(new TexturePackerCommand()); | ||||||
|  |             ce.commands.Add(new StopCommand(ce)); | ||||||
|  |             ce.commands.Add(new ClearConsoleCommand()); | ||||||
|  |             ce.commands.Add(new NinePatchCommand()); | ||||||
|  |  | ||||||
|  |             if (args.Length > 0) | ||||||
|  |             { | ||||||
|  |                 ConsoleUtilities.WrapMessageToConsoleWidth("Executing as one time use."); | ||||||
|  |                 StringBuilder sb = new StringBuilder(); | ||||||
|  |                 for (int i = 0; i < args.Length; i++) sb.Append(args[i] + ' '); | ||||||
|  |                 string commandAndArgs = sb.ToString().TrimEnd(); | ||||||
|  |                 try | ||||||
|  |                 { | ||||||
|  |                     ConsoleUtilities.WrapMessageToConsoleWidth("Command and argument received: " + commandAndArgs); | ||||||
|  |                     ce.Process(consoleInput, consoleOutput, commandAndArgs); | ||||||
|  |                 } | ||||||
|  |                 catch (ArgumentException e) | ||||||
|  |                 { | ||||||
|  |                     ConsoleUtilities.WrapMessageToConsoleWidth("An error has occurred: " + e.Message); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             else | ||||||
|  |             { | ||||||
|  |                 ce.Run(consoleInput, consoleOutput); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -1,17 +1,10 @@ | |||||||
| using System; | using System; | ||||||
| using System.Text; | using System.Text; | ||||||
| 
 | 
 | ||||||
| namespace RecrownedGTK.Tools | namespace RecrownedGTK.Tools.ConsoleInterface | ||||||
| { | { | ||||||
|     internal class ConsoleUtilities |     internal class ConsoleUtilities | ||||||
|     { |     { | ||||||
|         public static void WriteWrapped(string message, bool line = false) |  | ||||||
|         { |  | ||||||
|             message = WrapMessageToConsoleWidth(message); |  | ||||||
|             if (line) message = message + "\n"; |  | ||||||
|             Console.Write(message); |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         public static string WrapMessageToConsoleWidth(string message) |         public static string WrapMessageToConsoleWidth(string message) | ||||||
|         { |         { | ||||||
|             string[] words = message.Split(' '); |             string[] words = message.Split(' '); | ||||||
| @@ -39,12 +32,8 @@ namespace RecrownedGTK.Tools | |||||||
|                     stringBuilder.Append(' '); |                     stringBuilder.Append(' '); | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|  |             stringBuilder.AppendLine(); | ||||||
|             return stringBuilder.ToString(); |             return stringBuilder.ToString(); | ||||||
|         } |         } | ||||||
| 
 |  | ||||||
|         public static void WriteWrappedLine(string message) |  | ||||||
|         { |  | ||||||
|             WriteWrapped(message, true); |  | ||||||
|         } |  | ||||||
|     } |     } | ||||||
| } | } | ||||||
| @@ -23,7 +23,7 @@ namespace RecrownedGTK.Tools.NinePatchTools | |||||||
|             commandArguments[5] = new EngineCommandArgument("-b", "bottom patch.", true); |             commandArguments[5] = new EngineCommandArgument("-b", "bottom patch.", true); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         public override void Run(string[] arguments = null) |         public override void Run(IUserInput userInput = null, IUserOutput userOutput = null, string[] arguments = null) | ||||||
|         { |         { | ||||||
|             if (arguments == null) throw new ArgumentException("Missing arguments. Type \"help 9p\" for more information."); |             if (arguments == null) throw new ArgumentException("Missing arguments. Type \"help 9p\" for more information."); | ||||||
|             int leftBound = 0, rightBound = 0, topBound = 0, bottomBound = 0; |             int leftBound = 0, rightBound = 0, topBound = 0, bottomBound = 0; | ||||||
| @@ -51,8 +51,8 @@ namespace RecrownedGTK.Tools.NinePatchTools | |||||||
|             File.Move(imagePath, modifiedPath); |             File.Move(imagePath, modifiedPath); | ||||||
|             File.WriteAllText(outPath + ".9p", serialized); |             File.WriteAllText(outPath + ".9p", serialized); | ||||||
|  |  | ||||||
|             ConsoleUtilities.WriteWrappedLine("Done. Written to \"" + outPath + "\" with values: left = " + leftBound + " right = " + rightBound + " top = " + topBound + " bottom = " + bottomBound); |             userOutput.WrappedOutput("Done. Written to \"" + outPath + "\" with values: left = " + leftBound + " right = " + rightBound + " top = " + topBound + " bottom = " + bottomBound); | ||||||
|             ConsoleUtilities.WriteWrappedLine("Image renamed to: " + Path.GetFileName(modifiedPath)); |             userOutput.WrappedOutput("Image renamed to: " + Path.GetFileName(modifiedPath)); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,52 +0,0 @@ | |||||||
| using RecrownedGTK.Tools.CommandProcessor; |  | ||||||
| using RecrownedGTK.Tools.CommandProcessor.Commands; |  | ||||||
| using RecrownedGTK.Tools.NinePatchTools; |  | ||||||
| using RecrownedGTK.Tools.TextureAtlasTools; |  | ||||||
| using System; |  | ||||||
| using System.Reflection; |  | ||||||
| using System.Text; |  | ||||||
|  |  | ||||||
| namespace RecrownedGTK.Tools |  | ||||||
| { |  | ||||||
|     internal class Program |  | ||||||
|     { |  | ||||||
|         private class ConsoleInput : IUserInput { |  | ||||||
|             public string GetInput() { |  | ||||||
|                 return Console.ReadLine(); |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|         static void Main(string[] args) |  | ||||||
|         { |  | ||||||
|             CommandEngine ce = new CommandEngine(); |  | ||||||
|             ConsoleUtilities.WriteWrappedLine("Recrowned Athenaeum Console Tools version " + Assembly.GetExecutingAssembly().GetName().Version.ToString()); |  | ||||||
|             ConsoleUtilities.WriteWrappedLine("Type \"help\" for help."); |  | ||||||
|  |  | ||||||
|             ce.commands.Add(new HelpCommand(ce)); |  | ||||||
|             ce.commands.Add(new TexturePackerCommand()); |  | ||||||
|             ce.commands.Add(new StopCommand(ce)); |  | ||||||
|             ce.commands.Add(new ClearConsoleCommand()); |  | ||||||
|             ce.commands.Add(new NinePatchCommand()); |  | ||||||
|  |  | ||||||
|             if (args.Length > 0) |  | ||||||
|             { |  | ||||||
|                 ConsoleUtilities.WriteWrappedLine("Executing as one time use."); |  | ||||||
|                 StringBuilder sb = new StringBuilder(); |  | ||||||
|                 for (int i = 0; i < args.Length; i++) sb.Append(args[i] + ' '); |  | ||||||
|                 string commandAndArgs = sb.ToString().TrimEnd(); |  | ||||||
|                 try |  | ||||||
|                 { |  | ||||||
|                     ConsoleUtilities.WriteWrappedLine("Command and argument received: " + commandAndArgs); |  | ||||||
|                     ce.Process(commandAndArgs); |  | ||||||
|                 } |  | ||||||
|                 catch (ArgumentException e) |  | ||||||
|                 { |  | ||||||
|                     ConsoleUtilities.WriteWrappedLine("An error has occurred: " + e.Message); |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|             else |  | ||||||
|             { |  | ||||||
|                 ce.Run(new ConsoleInput()); |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| @@ -7,9 +7,8 @@ using SixLabors.Primitives; | |||||||
| using System; | using System; | ||||||
| using System.Collections.Generic; | using System.Collections.Generic; | ||||||
| using System.IO; | using System.IO; | ||||||
| using System.Linq; |  | ||||||
| using System.Security; | using System.Security; | ||||||
|  | using RecrownedGTK.Tools.CommandProcessor; | ||||||
| namespace RecrownedGTK.Tools.TextureAtlas | namespace RecrownedGTK.Tools.TextureAtlas | ||||||
| { | { | ||||||
|  |  | ||||||
| @@ -34,7 +33,7 @@ namespace RecrownedGTK.Tools.TextureAtlas | |||||||
|         /// <param name="rootDirectoryPath">Path to textures.</param> |         /// <param name="rootDirectoryPath">Path to textures.</param> | ||||||
|         /// <param name="powLimit">Power of two limit for auto expanding texture. Default is 12 which is a 4096x4096 texture.</param> |         /// <param name="powLimit">Power of two limit for auto expanding texture. Default is 12 which is a 4096x4096 texture.</param> | ||||||
|         /// <param name="startingPower">What power to start at and build up from. Default is 8 which is a 256x256 texture.</param> |         /// <param name="startingPower">What power to start at and build up from. Default is 8 which is a 256x256 texture.</param> | ||||||
|         internal TexturePacker(string rootDirectoryPath, int powLimit = 12, int startingPower = 8) |         internal TexturePacker(IUserOutput userOutput, string rootDirectoryPath, int powLimit = 12, int startingPower = 8) | ||||||
|         { |         { | ||||||
|             this.powLimit = powLimit; |             this.powLimit = powLimit; | ||||||
|             string[] paths; |             string[] paths; | ||||||
| @@ -54,7 +53,7 @@ namespace RecrownedGTK.Tools.TextureAtlas | |||||||
|                 SupportedExtensions extension; |                 SupportedExtensions extension; | ||||||
|                 if (Enum.TryParse(Path.GetExtension(paths[pathID]).ToLower().Substring(1), out extension)) |                 if (Enum.TryParse(Path.GetExtension(paths[pathID]).ToLower().Substring(1), out extension)) | ||||||
|                 { |                 { | ||||||
|                     ConsoleUtilities.WriteWrappedLine("Reading texture data for: " + paths[pathID]); |                     userOutput.WrappedOutput("Reading texture data for: " + paths[pathID]); | ||||||
|                     ImageHandler image = new ImageHandler(paths[pathID]); |                     ImageHandler image = new ImageHandler(paths[pathID]); | ||||||
|                     imageHandlers.Add(image); |                     imageHandlers.Add(image); | ||||||
|                     minAreaRequired += image.Area; |                     minAreaRequired += image.Area; | ||||||
| @@ -66,7 +65,7 @@ namespace RecrownedGTK.Tools.TextureAtlas | |||||||
|                 else if (Path.GetExtension(paths[pathID]).ToLower() == ".9p") |                 else if (Path.GetExtension(paths[pathID]).ToLower() == ".9p") | ||||||
|                 { |                 { | ||||||
|                     if (ninePatchDictionary == null) ninePatchDictionary = new Dictionary<string, NinePatchInfo>(); |                     if (ninePatchDictionary == null) ninePatchDictionary = new Dictionary<string, NinePatchInfo>(); | ||||||
|                     ConsoleUtilities.WriteWrappedLine("Reading ninepatch data for: " + paths[pathID]); |                     userOutput.WrappedOutput("Reading ninepatch data for: " + paths[pathID]); | ||||||
|                     string serialized = File.ReadAllText(paths[pathID]); |                     string serialized = File.ReadAllText(paths[pathID]); | ||||||
|                     NinePatchInfo npData = JsonConvert.DeserializeObject<NinePatchInfo>(serialized); |                     NinePatchInfo npData = JsonConvert.DeserializeObject<NinePatchInfo>(serialized); | ||||||
|                     ninePatchDictionary.Add(npData.name, npData); |                     ninePatchDictionary.Add(npData.name, npData); | ||||||
|   | |||||||
| @@ -23,7 +23,7 @@ namespace RecrownedGTK.Tools.TextureAtlasTools | |||||||
|             }; |             }; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         public override void Run(string[] arguments) |         public override void Run(IUserInput userInput, IUserOutput userOutput, string[] arguments) | ||||||
|         { |         { | ||||||
|  |  | ||||||
|             TexturePacker texturePacker = null; |             TexturePacker texturePacker = null; | ||||||
| @@ -36,29 +36,29 @@ namespace RecrownedGTK.Tools.TextureAtlasTools | |||||||
|             if (HasArgument("-interactive", arguments)) |             if (HasArgument("-interactive", arguments)) | ||||||
|             { |             { | ||||||
|                 string input; |                 string input; | ||||||
|                 ConsoleUtilities.WriteWrappedLine("Texture packer interactive mode triggered. Type \"q\" at any time to exit."); |                 userOutput.WrappedOutput("Texture packer interactive mode triggered. Type \"q\" at any time to exit."); | ||||||
|                 ConsoleUtilities.WriteWrappedLine("Please enter path of folder containing the textures to be packed."); |                 userOutput.WrappedOutput("Please enter path of folder containing the textures to be packed."); | ||||||
|                 input = Console.ReadLine(); |                 input = userInput.GetInput(); | ||||||
|                 if (input == "q") return; |                 if (input == "q") return; | ||||||
|                 path = input.Replace("\"", ""); |                 path = input.Replace("\"", ""); | ||||||
|  |  | ||||||
|                 ConsoleUtilities.WriteWrappedLine("Please enter output path of file name."); |                 userOutput.WrappedOutput("Please enter output path of file name."); | ||||||
|                 input = Console.ReadLine(); |                 input = userInput.GetInput(); | ||||||
|                 if (input == "q") return; |                 if (input == "q") return; | ||||||
|                 output = input.Replace("\"", ""); |                 output = input.Replace("\"", ""); | ||||||
|  |  | ||||||
|                 do |                 do | ||||||
|                 { |                 { | ||||||
|                     ConsoleUtilities.WriteWrappedLine("Please enter a valid starting power of two for the lengths of the resulting texture atlas. Leave blank for default of " + sp + "."); |                     userOutput.WrappedOutput("Please enter a valid starting power of two for the lengths of the resulting texture atlas. Leave blank for default of " + sp + "."); | ||||||
|                     input = Console.ReadLine(); |                     input = userInput.GetInput(); | ||||||
|                     if (input == "q") return; |                     if (input == "q") return; | ||||||
|                     if (input.Length == 0) break; |                     if (input.Length == 0) break; | ||||||
|                 } while (!int.TryParse(input, out sp)); |                 } while (!int.TryParse(input, out sp)); | ||||||
|  |  | ||||||
|                 do |                 do | ||||||
|                 { |                 { | ||||||
|                     ConsoleUtilities.WriteWrappedLine("Please enter a valid maximum power by two of the lengths of the resulting texture atlas. Leave blank for default of " + mp + "."); |                     userOutput.WrappedOutput("Please enter a valid maximum power by two of the lengths of the resulting texture atlas. Leave blank for default of " + mp + "."); | ||||||
|                     input = Console.ReadLine(); |                     input = userInput.GetInput(); | ||||||
|                     if (input == "q") return; |                     if (input == "q") return; | ||||||
|                     if (input.Length == 0) break; |                     if (input.Length == 0) break; | ||||||
|                 } while (!int.TryParse(input, out mp)); |                 } while (!int.TryParse(input, out mp)); | ||||||
| @@ -83,8 +83,8 @@ namespace RecrownedGTK.Tools.TextureAtlasTools | |||||||
|                 if (HasArgument("-dau", arguments)) dau = true; |                 if (HasArgument("-dau", arguments)) dau = true; | ||||||
|             } |             } | ||||||
|  |  | ||||||
|             texturePacker = new TexturePacker(path, mp, sp); |             texturePacker = new TexturePacker(userOutput, path, mp, sp); | ||||||
|             ConsoleUtilities.WriteWrappedLine("Calculated minimum texture size: " + texturePacker.TextureLength + "x" + texturePacker.TextureLength + " with a total of " + texturePacker.TexturesFound + " textures."); |             userOutput.WrappedOutput("Calculated minimum texture size: " + texturePacker.TextureLength + "x" + texturePacker.TextureLength + " with a total of " + texturePacker.TexturesFound + " textures."); | ||||||
|  |  | ||||||
|             try |             try | ||||||
|             { |             { | ||||||
| @@ -112,7 +112,7 @@ namespace RecrownedGTK.Tools.TextureAtlasTools | |||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|             texturePacker.Save(Path.GetDirectoryName(output), Path.GetFileName(output)); |             texturePacker.Save(Path.GetDirectoryName(output), Path.GetFileName(output)); | ||||||
|             Console.WriteLine("Complete. Final texture size: " + texturePacker.TextureLength + "x" + texturePacker.TextureLength + "."); |             userOutput.Output("Complete. Final texture size: " + texturePacker.TextureLength + "x" + texturePacker.TextureLength + "."); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user