public ControllerButtonSelecter( IControllerButton selectedButton ) { controllers = new List <IController <ControllerSelect> >(); Focus(selectedButton); }
/// <summary> /// ボタンにフォーカスを当てる /// </summary> /// <param name="next"></param> public void Focus(IControllerButton next) { CursorButton?.Update(ButtonOperation.Exit); next.Update(ButtonOperation.Enter); CursorButton = next; }
/// <summary> /// その向きにボタンを接続する。 /// </summary> /// <param name="dir"></param> /// <param name="button"></param> /// <returns></returns> public IControllerButton SetButton(ButtonDirection dir, IControllerButton button) { if (button == null) { throw new ArgumentNullException(nameof(button)); } connectedButtons[dir] = button; return(this); }
/// <summary> /// ボタンを相互に接続し、繋げていく。 /// </summary> /// <param name="next"></param> /// <param name="dir"></param> /// <returns></returns> public IControllerButton Chain(IControllerButton next, ButtonDirection dir) { if (next == null) { throw new ArgumentNullException(nameof(next)); } this.SetButton(dir, next); next.SetButton(dir.Reverse(), this); return(next); }
public void AddButton(Button button, IControllerButton mapping) { Buttons.Add(button); ButtonMappings[button] = mapping; }