Files
night-shift/src/Godot/MouseCapture.cs
T

43 lines
848 B
C#

using Godot;
namespace Game.Godot;
public static class MouseCapture
{
public static bool IsCaptured => Input.MouseMode == Input.MouseModeEnum.Captured;
public static void Capture() => Input.MouseMode = Input.MouseModeEnum.Captured;
public static void Release() => Input.MouseMode = Input.MouseModeEnum.Visible;
public static void Toggle()
{
if (IsCaptured)
{
Release();
}
else
{
Capture();
}
}
public static Memento SaveCaptureMode()
{
Memento memento = new(IsCaptured);
Release();
return memento;
}
public sealed class Memento(bool wasCaptured)
{
public void RestoreCaptureMode()
{
if (wasCaptured)
{
Capture();
}
}
}
}