using System.Collections.Generic; using System.Linq; using Domain.Input; namespace Domain { public enum VKeyCode { A = 0x41, B = 0x42, C = 0x43, D = 0x44, E = 0x45, F = 0x46, G = 0x47, H = 0x48, I = 0x49, J = 0x4A, K = 0x4B, L = 0x4C, M = 0x4D, N = 0x4E, O = 0x4F, P = 0x50, Q = 0x51, R = 0x52, S = 0x53, T = 0x54, U = 0x55, V = 0x56, W = 0x57, X = 0x58, Y = 0x59, Z = 0x5A, Interpunct = 0x33, Cedilla = 0xBF, AccentOpen = 0xBA, AccentClosed = 0xDE, Shift = 0x10 } public class CustomInput { private readonly List _readers = new(); private readonly KeyHistory _history; public CustomInput() { _history = new KeyHistory(); _readers.Add(new CedillaReader(_history)); _readers.Add(new GeminadaReader(_history)); _readers.Add(new TxReader(_history)); _readers.Add(new IxReader(_history)); _readers.Add(new NyReader(_history)); _readers.Add(new TgReader(_history)); _readers.Add(new TjReader(_history)); _readers.Add(new LlReader(_history)); _readers.Add(new SsReader(_history)); _readers.Add(new AObertaReader(_history)); _readers.Add(new EObertaReader(_history)); _readers.Add(new OObertaReader(_history)); _readers.Add(new IDieresiReader(_history)); } public void UpdateInput() { _history.CheckPresses(); foreach (InputReader reader in _readers) reader.UpdateInput(); } public bool AnyKeyDown() => _readers.Any(reader => reader.KeyDown()); } }