Пример #1
0
        private void OnKeyboardDown(object sender, KeyboardEventArgs args)
        {
            if (args[KeyModifier.Control, Key.F5])
            {
                string filename = Common.CaptureFilename;
                using (GifFile file = new GifFile(Runtime.Bitmap))
                    using (FileStream fs = new FileStream(filename, FileMode.Create, FileAccess.Write))
                    {
                        byte[] output = file.GetBytes();
                        fs.Write(output, 0, output.Length);
                        Runtime.Log($"Screenshot saved: {filename}");
                    }
                return;
            }

            if (args[KeyModifier.Control, Key.F6] && Game.Started)
            {
                string filename = Common.CaptureFilename;
                using (IBitmap tilesPicture = Map.Instance[0, 0, Map.WIDTH, Map.HEIGHT].ToBitmap())
                    using (GifFile file = new GifFile(tilesPicture))
                        using (FileStream fs = new FileStream(filename, FileMode.Create, FileAccess.Write))
                        {
                            byte[] output = file.GetBytes();
                            fs.Write(output, 0, output.Length);
                            Runtime.Log($"Screenshot saved: {filename}");
                        }
                return;
            }

            TopScreen?.KeyDown(args);
        }
Пример #2
0
        private void OnKeyboardDown(object sender, KeyboardEventArgs args)
        {
            if (args[KeyModifier.Control, Key.F5])
            {
                string filename = Common.CaptureFilename;
                if (Runtime.Layers == null)
                {
                    return;
                }
                using (IBitmap bitmap = new Picture(CanvasWidth, CanvasHeight, Common.TopScreen.Palette.Copy()))
                {
                    bitmap.Palette[0] = Colour.Black;
                    if (Common.HasAttribute <Modal>(TopScreen))
                    {
                        bitmap.AddLayer(TopScreen);
                    }
                    else
                    {
                        Runtime.Layers.ToList().ForEach(x => bitmap.AddLayer(x));
                    }

                    using (GifFile file = new GifFile(bitmap))
                        using (FileStream fs = new FileStream(filename, FileMode.Create, FileAccess.Write))
                        {
                            byte[] output = file.GetBytes();
                            fs.Write(output, 0, output.Length);
                            Runtime.Log($"Screenshot saved: {filename}");
                        }
                }
                return;
            }

            if (args[KeyModifier.Control, Key.F6] && Game.Started)
            {
                string filename = Common.CaptureFilename;
                using (IBitmap tilesPicture = Map.Instance[0, 0, Map.WIDTH, Map.HEIGHT].ToBitmap())
                    using (GifFile file = new GifFile(tilesPicture))
                        using (FileStream fs = new FileStream(filename, FileMode.Create, FileAccess.Write))
                        {
                            byte[] output = file.GetBytes();
                            fs.Write(output, 0, output.Length);
                            Runtime.Log($"Screenshot saved: {filename}");
                        }
                return;
            }

            TopScreen?.KeyDown(args);
        }