static int RenderPredefinedMaze(FileStream stream, string mazeKind, MazeGridSettings mazeGridSettings) { switch (mazeKind) { case "tree": new TreeLevelWriter().Write(stream, mazeGridSettings); break; case "grass": new GrassLevelWriter().Write(stream, mazeGridSettings); break; case "city": new CityLevelWriter().Write(stream, mazeGridSettings); break; case "town": new TownLevelWriter().Write(stream, mazeGridSettings); break; case "color": new ColorLevelWriter().Write(stream, mazeGridSettings); break; case "color-solve": new ColorSolvingLevelWriter().Write(stream, mazeGridSettings); break; default: PrintUsage("InvalidArgument", $"--kind {mazeKind}"); return(InvalidArgumentCode); } return(0); }
public void Write(Stream stream, MazeGridSettings mazeSettings) { RenderGrid renderGrid = new MazeGridFactory(mazeSettings).CreateRenderGrid(); var factory = new TreeComponentFactory(); var renderer = new NormalGameLevelRenderer( factory.CreateBackgroundRenderers(), factory.CreateGroundRenderers(), factory.CreateWallRenderers(), factory.CreateSettings()); using (renderer) { renderer.Render(renderGrid, stream); } }