using System; using System.Collections.Generic; using BizHawk.Common; using BizHawk.Emulation.Common; namespace BizHawk.Client.Common { /// /// A basic implementation of IController /// public class SimpleController : IController { public ControllerDefinition Definition { get; set; } protected WorkingDictionary Buttons { get; private set; } = new WorkingDictionary(); protected WorkingDictionary Floats { get; private set; } = new WorkingDictionary(); public void Clear() { Buttons = new WorkingDictionary(); Floats = new WorkingDictionary(); } public bool this[string button] { get => Buttons[button]; set => Buttons[button] = value; } public virtual bool IsPressed(string button) { return this[button]; } public float GetFloat(string name) { return Floats[name]; } public IEnumerable> BoolButtons() { return Buttons; } public void AcceptNewFloats(IEnumerable> newValues) { foreach (var sv in newValues) { Floats[sv.Item1] = sv.Item2; } } } }