public override BaseShape CreateStaticShape(Shape shape, GenerationStrategy strategy, int lowerBoundX, int lowerBoundY, int upperBoundX, int upperBoundY) { Logging.Instance.Write("Abstract Factory -> ImpassableShapeFactory used (" + shape + ")"); switch (shape) { case Shape.Platform: return(impassablePlatformBuilder .Configure() .ConfigureBounds(lowerBoundX, lowerBoundY, upperBoundX, upperBoundY) .ConfigureGenerationStrategy(strategy) .Build()); default: throw new ArgumentException("Shape is not found"); } }