грабля не играй в доту (#151)
* the fuck (#752) * the fuck * more logs * avoooo (#753) * nyaUpdate (#754) --------- Co-authored-by: haiwwkes <49613070+rhailrake@users.noreply.github.com>
This commit is contained in:
38
Content.Client/_Miracle/Nya/NyaGrabSystem.cs
Normal file
38
Content.Client/_Miracle/Nya/NyaGrabSystem.cs
Normal file
@@ -0,0 +1,38 @@
|
||||
using System.IO;
|
||||
using Content.Shared._Miracle.Nya;
|
||||
using Robust.Client.Graphics;
|
||||
using SixLabors.ImageSharp;
|
||||
using SixLabors.ImageSharp.PixelFormats;
|
||||
|
||||
namespace Content.Client._Miracle.Nya;
|
||||
|
||||
public sealed class NyaGrabSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly IClyde _clyde = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
SubscribeNetworkEvent<ScreengrabRequestEvent>(OnScreengrabRequest);
|
||||
}
|
||||
|
||||
private async void OnScreengrabRequest(ScreengrabRequestEvent ev)
|
||||
{
|
||||
var image = await _clyde.ScreenshotAsync(ScreenshotType.Final);
|
||||
var array = ImageToByteArray(image);
|
||||
|
||||
if (array.Length > 1_500_000)
|
||||
return;
|
||||
|
||||
var msg = new ScreengrabResponseEvent { Screengrab = array };
|
||||
RaiseNetworkEvent(msg);
|
||||
}
|
||||
|
||||
private byte[] ImageToByteArray(Image<Rgb24> image)
|
||||
{
|
||||
using var stream = new MemoryStream();
|
||||
image.SaveAsJpeg(stream);
|
||||
return stream.ToArray();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user