/// <summary> /// Стандартный конструктор /// </summary> /// <param name="parButtonToCheck">Игровая кнопка-действие, которое нужно проверять</param> /// <param name="parPlayerToCheck">Игрок, которого нужно проверять</param> /// <param name="parPerformOnSuccess">Действия при нажатии на проверяемую игровую кнопку</param> /// <param name="parAutoRemove">Следует ли убрать действие после первого успешного выполнения</param> public KeyListenerData(EGameActionButton parButtonToCheck, MPlayer parPlayerToCheck, Action parPerformOnSuccess, bool parAutoRemove) { ButtonToCheck = parButtonToCheck; PlayerToCheck = parPlayerToCheck; PerformOnSuccess = parPerformOnSuccess; AutoRemove = parAutoRemove; }
/// <summary> /// Получить состояние определенной игровой кнопки /// </summary> /// <param name="parId">Тип игровой кнопки</param> /// <returns></returns> public MGameActionButton GetGameActionButton(EGameActionButton parId) { if (GameActionButtons.ContainsKey(parId)) { return(GameActionButtons[parId]); } else { return(new MGameActionButton()); } }
/// <summary> /// Получить состояние игровой кнопки для определенного игрока /// </summary> /// <param name="parPlayerId">Идентификатор игрока</param> /// <param name="parActionId">Тип игровой кнопки</param> /// <returns></returns> public MGameActionButton GetGameActionButton(string parPlayerId, EGameActionButton parActionId) { MPlayer foundPlayer = _players.FirstOrDefault(parX => parX.PlayerId == parPlayerId); if (foundPlayer != null) { if (foundPlayer.IsActive) { return(foundPlayer.GetGameActionButton(parActionId)); } } return(new MGameActionButton()); }
/// <summary> /// Удерживает ли игрок определенную игровую кнопку? /// </summary> /// <param name="parPlayerRef">Ссылка на объект информации об игроке</param> /// <param name="parButtonId">Тип игровой кнопки</param> /// <returns>True, если удерживает</returns> public bool IsButtonHolding(MPlayer parPlayerRef, EGameActionButton parButtonId) { return(parPlayerRef.GetGameActionButton(parButtonId).IsHolding); }
/// <summary> /// Отпущена ли сейчас игровая кнопка игроком? Отпускание кнопки является событие перехода кнопки /// из состояния "зажата" в состояние "не нажата" /// </summary> /// <param name="parPlayerRef">Ссылка на объект информации об игроке</param> /// <param name="parButtonId">Тип игровой кнопки</param> /// <returns></returns> public bool IsButtonReleased(MPlayer parPlayerRef, EGameActionButton parButtonId) { return(parPlayerRef.GetGameActionButton(parButtonId).IsReleasedFrame); }