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);
        }
Exemple #3
0
 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);
     }
 }