1.6.8162
Март — улучшения Keybinds и DI
C# Scripting — прототип Keybinds
Новый инструмент, который позволяет инициализировать горячие клавиши прямо из скриптов.
[Keybind("p")] // Simple example - triggers when 'p' is pressed
[Keybind("Ctrl+2")] // Triggers only when 'Ctrl + 2' is pressed
[Keybind("Ctrl+2", IgnoreModifiers = true)] // Triggers on ANY combination containing 'Ctrl + 2' (e.g., 'Ctrl + Alt + 2')
public void OnKey(){
Log.Info("Key pressed");
}
[Keybind(Hotkey = "4", SuppressKey = false)] // Handles the key, but it will still pass through to other apps
public void HandleKeyWithInjectedServices(IAuraEventLoggingService loggingService){
Log.Info("Key pressed");
loggingService.LogMessage(new AuraEvent(){ Text = "Message", Loglevel = FluentLogLevel.Info });
}
C# Scripting — улучшения Dependency Injection
Если вы где-то в коде используете GetService, значит, вы уже работаете с системой DI в EyeAuras.
Я немного улучшил эту часть, чтобы упростить написание скриптов.
Ниже один и тот же скрипт в трёх вариантах.
Текущий подход — получение API через GetService:
var sendInput = GetService<ISendInputScriptingApi>();
sendInput.MouseMoveTo(200, 100); // Moves the mouse to X200 Y100
sendInput.MouseRightClick(); // Performs a right mouse click
А теперь два новых подхода, которые уже можно (и стоит!) использовать в ваших скриптах.
Я также думаю над автоматическим внедрением текущих API (например, SendInput) прямо в скрипты — это сделает код проще и универсальнее.
Например, для ISendInputScriptingApi имя было бы SendInput (как в примере ниже), для IPlaySoundScriptingApi — PlaySound, а для ComputerVision это могло бы выглядеть примерно так: IComputerVisionExperimentalScriptingApi Cv { get; init; }
Это будет опубликовано отдельным обновлением.
ISendInputScriptingApi SendInput { get; init; } // Automatically initialized when the script starts
SendInput.MouseMoveTo(200, 100); // Moves the mouse to X200 Y100
SendInput.MouseRightClick(); // Performs a right mouse click
И ещё вариант:
[Dependency] ISendInputScriptingApi SendInput { get; set; }
SendInput.MouseMoveTo(200, 100); // Moves the mouse to X200 Y100
SendInput.MouseRightClick(); // Performs a right mouse click
Исправления и улучшения
- [Scripting] Немного улучшена производительность первого запуска скриптов (3-5%)