private void On_INPUT_ControllerDisconnected(BEHandle <EControllerID> eventHandle) { EControllerID controllerID = eventHandle.Arg1; if (IS_KEY_CONTAINED(ControllersMap, controllerID)) { EPlayerID playerID = ControllersMap[controllerID]; // Was a joined controller? if (playerID != EPlayerID.SPECTATOR && IS_KEY_CONTAINED(partyStatusMap, playerID)) { partyStatusMap[playerID].Flush(); } // Destroy Player if (ActivePlayers.ContainsKey(playerID)) { DestroyPlayer(playerID); } ControllersMap.Remove(controllerID); BEventsCollection.PLAYERS_PlayerLeft.Invoke(new BEHandle <EPlayerID, EControllerID>(playerID, controllerID)); } }
private void On_INPUT_ControllerConnected(BEHandle <EControllerID> eventHandle) { EControllerID controllerID = eventHandle.Arg1; // Add connected controller as a spectator if (IS_KEY_NOT_CONTAINED(ControllersMap, controllerID)) { ControllersMap.Add(controllerID, EPlayerID.SPECTATOR); BEventsCollection.PLAYERS_PlayerJoined.Invoke(new BEHandle <EPlayerID, EControllerID>(EPlayerID.SPECTATOR, controllerID)); } }