static void SetupPoseController(MultiplayerConnectedPlayerFacade playerFacade) { MultiplayerAvatarPoseController multiplayerPoseController = playerFacade.GetComponentInChildren <MultiplayerAvatarPoseController>(); if (!multiplayerPoseController.gameObject.TryGetComponent(out CustomAvatarController _)) { multiplayerPoseController.gameObject.AddComponent <CustomAvatarController>(); } }
internal static void Postfix(MultiplayerCoreInstaller __instance) { MonoInstallerBase mib = __instance; DiContainer container = SiraUtil.Accessors.GetDiContainer(ref mib); MultiplayerPlayersManager manager = container.Resolve <MultiplayerPlayersManager>(); MultiplayerConnectedPlayerFacade playerFacade = PlayerFacade(ref manager); MultiplayerConnectedPlayerFacade duelPlayerFacade = PlayerDuelFacade(ref manager); SetupPoseController(playerFacade); SetupPoseController(duelPlayerFacade); }
private void HandleMultiPlayerGame() { try { if (SceneManager.GetActiveScene().name == "GameCore" && MultiplayerSession.ConnectedMultiplay) { MultiplayerConnectedPlayerFacade player = null; bool TryPlayerFacade; if (MultiplayerSession.playersManager == null) { MultiplayerSession.playersManager = Resources.FindObjectsOfTypeAll <MultiplayerPlayersManager>().FirstOrDefault(); Logger.Log($"{this.name} Set MultiplayerPlayersManager", LogLevel.Notice); } if (Config.MultiPlayerNumber != 0 && MultiplayerSession.playersManager != null) { foreach (IConnectedPlayer connectedPlayer in MultiplayerSession.connectedPlayers) { if (Config.MultiPlayerNumber - 1 == connectedPlayer.sortIndex) { TryPlayerFacade = MultiplayerSession.playersManager.TryGetConnectedPlayerController(connectedPlayer.userId, out player); if (TryPlayerFacade && player != null) { OffsetPosition = player.transform.position; OffsetAngle = player.transform.eulerAngles; } break; } } } } } catch (Exception ex) { Logger.Log($"{this.name} HandleMultiPlayerGame Error {ex.Message}", LogLevel.Error); } }