From 72d94cddc61bfeece5b0b24d2b53a46615e4b430 Mon Sep 17 00:00:00 2001 From: Lukasz Baldyga Date: Sun, 25 Oct 2020 09:43:07 +0000 Subject: [PATCH] Added extra options for fill and pen color --- .../Verbs/VerbFactory.cs | 42 +++++++++++++++++-- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/Advanced Software Engineering/Advanced Software Engineering/Verbs/VerbFactory.cs b/Advanced Software Engineering/Advanced Software Engineering/Verbs/VerbFactory.cs index eaa847d..b383285 100644 --- a/Advanced Software Engineering/Advanced Software Engineering/Verbs/VerbFactory.cs +++ b/Advanced Software Engineering/Advanced Software Engineering/Verbs/VerbFactory.cs @@ -132,24 +132,58 @@ namespace Advanced_Software_Engineering { return new Dot(drawer); } else throw new Exception("Command doesn't take parameters"); - + case "clear": if (parameters.Length == 0) { return new Clear(drawer); } else throw new Exception("Command doesn't take parameters"); - + case "reset": if (parameters.Length == 0) { return new ResetPen(drawer); } else throw new Exception("Command doesn't take parameters"); case "pen": - if(parameters.Length == 1) { + if (parameters.Length == 1) { return new PenColor(drawer, Value.TextToColor(parameters[0])); + } else if (parameters.Length == 3) { + return new PenColor(drawer, + Value.IntsToColor( + Value.ConvertToInt(parameters[0]), + Value.ConvertToInt(parameters[1]), + Value.ConvertToInt(parameters[2]) + ) + ); + } else if (parameters.Length == 4) { + return new PenColor(drawer, + Value.IntsToColor( + Value.ConvertToInt(parameters[0]), + Value.ConvertToInt(parameters[1]), + Value.ConvertToInt(parameters[2]), + Value.ConvertToInt(parameters[3]) + ) + ); } else throw new Exception("Command has an incorrect number of parameters"); case "fill": - if(parameters.Length == 1) { + if (parameters.Length == 1) { return new FillColor(drawer, Value.TextToColor(parameters[0])); + } else if (parameters.Length == 3) { + return new FillColor(drawer, + Value.IntsToColor( + Value.ConvertToInt(parameters[0]), + Value.ConvertToInt(parameters[1]), + Value.ConvertToInt(parameters[2]) + ) + ); + } else if (parameters.Length == 4) { + return new FillColor(drawer, + Value.IntsToColor( + Value.ConvertToInt(parameters[0]), + Value.ConvertToInt(parameters[1]), + Value.ConvertToInt(parameters[2]), + Value.ConvertToInt(parameters[3]) + ) + ); } else throw new Exception("Command has an incorrect number of parameters"); default: