void VerifySufficientAmountPlayersToBegin() { PM_PlayerMgr playerMgr = gameObject.GetComponent <PM_PlayerMgr>(); if (playerMgr == null) { return; } if (playerMgr.coupledPlayersActive >= PM_PlayerMgr.MINIMUM_PLAYERS) { PermitState resultState = TransitionToNewState(StartButtonState_, NumberPlayers.Enough); if (resultState != StartButtonState_) { StartButtonState_ = resultState; EM_EventMgr.TriggerEvent("enable start button"); } } else if (playerMgr.coupledPlayersActive < PM_PlayerMgr.MINIMUM_PLAYERS) { PermitState resultState = TransitionToNewState(StartButtonState_, NumberPlayers.Not_Enough); if (resultState != StartButtonState_) { StartButtonState_ = resultState; EM_EventMgr.TriggerEvent("disable start button"); } } }
//examining current state only prevents unnecessary computation //this seems overly wordy.. PermitState TransitionToNewState(PermitState currentState, NumberPlayers sufficientNumberPlayers) { if (currentState == PermitState.Disabled && sufficientNumberPlayers == NumberPlayers.Enough) { return(PermitState.Enabled); } if (currentState == PermitState.Enabled && sufficientNumberPlayers == NumberPlayers.Not_Enough) { return(PermitState.Disabled); } return(currentState); }