Exemple #1
0
 void Output(IEnumerable <KeyCode> keys, KeyCodeEvent output)
 {
     if (keys == null)
     {
         return;
     }
     foreach (var key in keys)
     {
         output.Invoke(key);
     }
 }
Exemple #2
0
        private async Task OnKeyCodeTick()
        {
            try {
                if (!KeyCodeTest)
                {
                    await BaseScript.Delay(100);

                    return;
                }

                var key   = new KeyCodeEvent();
                var vals  = Enum.GetValues(typeof(Control));
                var count = 0;
                foreach (Control ctrl in vals)
                {
                    if (Game.IsControlJustPressed(2, ctrl))
                    {
                        key.Controls.Add($"{Enum.GetName( typeof( Control ), ctrl ) ?? "UNK_KEY"}[{count}]");
                    }
                    count++;
                }

                if (key.Controls.Any())
                {
                    _keyEvents.Add(key);
                    Log.Info($"[KeyCode] {{ {string.Join( ", ", key.Controls )} }}");
                }

                // Clean up list every 5 seconds
                if ((DateTime.UtcNow - _lastCollection).TotalSeconds > 1f)
                {
                    _keyEvents.RemoveAll(e => (DateTime.UtcNow - e.Time).TotalSeconds > 5f);
                    _lastCollection = DateTime.UtcNow;
                }
            }
            catch (Exception ex) {
                Log.Error(ex);
            }
        }