Пример #1
0
        /// <summary> Draws the currently open <see cref="MenuObject"/>s on the screen </summary>
        /// <param name="game"> <see cref="Game"/> to draw to </param>
        /// <param name="sheet"> <see cref="Sprite"/> to use as a sheet </param>
        /// <param name="offset"> Offset on screen </param>
        public void Draw(Game game, Sprite sheet, Vector2Int?offset)
        {
            if (!Panels.Any())
            {
                return;
            }
            Vector2Int screenOffset = offset ?? Vector2Int.zero;

            foreach (var panel in Panels)
            {
                panel.Draw(game, sheet, screenOffset);
                screenOffset += WindowOffset;
            }

            Pixel.Mode previousPixelMode = game.PixelMode;
            game.PixelMode = Pixel.Mode.Mask;
            MenuObject last      = Panels.Last();
            Vector2Int patchSize = last.PatchSize;

            game.DrawPartialSprite(last.CursorPos, sheet, CURSOR_PATCH * patchSize, patchSize.x * 2, 2 * patchSize.y);
            game.PixelMode = previousPixelMode;
        }
Пример #2
0
 /// <summary> Close any open menus, and show the given <see cref="MenuObject"/>. </summary>
 /// <param name="menuObject"> <see cref="MenuObject"/> to show. </param>
 public void Open(MenuObject menuObject)
 {
     Close();
     Panels.AddLast(menuObject);
 }