diff --git a/RecrownedAthenaeum.ConsoleTools/TextureAtlasTools/TexturePackerCommand.cs b/RecrownedAthenaeum.ConsoleTools/TextureAtlasTools/TexturePackerCommand.cs index 50f238c..ecd095b 100644 --- a/RecrownedAthenaeum.ConsoleTools/TextureAtlasTools/TexturePackerCommand.cs +++ b/RecrownedAthenaeum.ConsoleTools/TextureAtlasTools/TexturePackerCommand.cs @@ -41,37 +41,44 @@ namespace RecrownedAthenaeum.Tools.TextureAtlasTools texturePacker = new TexturePacker((arguments[i + 1])); } } - texturePacker.Build(); - - for (int i = 0; i < arguments.Length; i++) + if (texturePacker != null) { - if (arguments[i] == "-9p") + texturePacker.Build(); + + for (int i = 0; i < arguments.Length; i++) { - if (i + 5 >= arguments.Length) throw new ArgumentException("-9p is not followed by proper specifiers for a 9Patch (format: \"-9p textureName,a,b,c,d\" where a, b, c, and d are integers definining the border regions for the 9patch.)"); - string[] nPatchArgs = arguments[i + 1].Split(','); - try + if (arguments[i] == "-9p") { - texturePacker.SetNinePatch(nPatchArgs[0], int.Parse(nPatchArgs[1]), int.Parse(nPatchArgs[2]), int.Parse(nPatchArgs[3]), int.Parse(nPatchArgs[4])); - } catch (FormatException) - { - throw new ArgumentException("-9p argument parameters must be in the format \"-9p textureName,a,b,c,d\" where a, b, c, and d are integers definining the border regions for the 9patch."); + if (i + 5 >= arguments.Length) throw new ArgumentException("-9p is not followed by proper specifiers for a 9Patch (format: \"-9p textureName,a,b,c,d\" where a, b, c, and d are integers definining the border regions for the 9patch.)"); + string[] nPatchArgs = arguments[i + 1].Split(','); + try + { + texturePacker.SetNinePatch(nPatchArgs[0], int.Parse(nPatchArgs[1]), int.Parse(nPatchArgs[2]), int.Parse(nPatchArgs[3]), int.Parse(nPatchArgs[4])); + } + catch (FormatException) + { + throw new ArgumentException("-9p argument parameters must be in the format \"-9p textureName,a,b,c,d\" where a, b, c, and d are integers definining the border regions for the 9patch."); + } } } - } - for (int i = 0; i < arguments.Length; i++) + for (int i = 0; i < arguments.Length; i++) + { + if (arguments[i] == "-o") + { + if (i + 1 >= arguments.Length) throw new ArgumentException("-o is not followed by path for output files. (eg. path/to/file where file is the name for the atlas.)"); + texturePacker.Save(Path.GetDirectoryName(arguments[i + 1]), Path.GetFileName(arguments[i + 1])); + return; + } + + if (i == arguments.Length - 1) + { + throw new ArgumentException("no -o argument found to specify output."); + } + } + } else { - if (arguments[i] == "-o") - { - if (i + 1 >= arguments.Length) throw new ArgumentException("-o is not followed by path for output files. (eg. path/to/file where file is the name for the atlas.)"); - texturePacker.Save(Path.GetDirectoryName(arguments[i + 1]), Path.GetFileName(arguments[i + 1])); - return; - } - - if (i == arguments.Length - 1) - { - throw new ArgumentException("no -o argument found to specify output."); - } + throw new ArgumentException("-i not specified."); } } }