public override void Init(Puzzle puzzle) { base.Init(puzzle); PuzzleSurface = RectInt.CenterAt(renderer.Geometry.C, puzzle.Area); AddAndInitElement(Tutorial); }
public override void Draw() { // Center var selected = Library[PuzzleIndex]; Renderer.DrawLine(Renderer.Geometry.TM, Renderer.Geometry.BM, Style.VerticalLine); var centerRect = RectInt.CenterAt(Renderer.Geometry.C, selected.Puzzle.Area); var outer = centerRect.Outset(2, 2, 2, 2); //Renderer.Box(outer); DrawPuzzle(selected, centerRect); Renderer.DrawText(outer.BM + (0, 2), selected.Name, Style.TextTitle.AsPixel(), TextAlign.Middle); Renderer.DrawText(outer.TM + (0, -2), $"No. {PuzzleIndex+ 1}", Style.TextHilight.AsPixel(), TextAlign.Middle); // Right var r = centerRect.MR + (4, 0); var ii = PuzzleIndex + 1; while (Renderer.Geometry.Contains(r) && Library.Count > ii) { var nextP = Library[ii]; var next = new RectInt(r.X, r.Y - nextP.Puzzle.Height / 2, nextP.Puzzle.Width, nextP.Puzzle.Height); DrawPuzzle(nextP, next); r = next.MR + (2, 0); ii++; } // Left r = centerRect.ML - (3, 0); ii = PuzzleIndex - 1; while (Renderer.Geometry.Contains(r) && ii >= 0) { var nextP = Library[ii]; var next = new RectInt(r.X - nextP.Puzzle.Width, r.Y - nextP.Puzzle.Height / 2, nextP.Puzzle.Width, nextP.Puzzle.Height); DrawPuzzle(nextP, next); r = next.ML - (2, 0); ii--; } }