public static NetPlayer SpawnPlayer(uint id, NetHost host, bool isLocal, string skinUserId, uint localCoopIndex, byte[] skinCRC) { NetPlayer component = Object.Instantiate(Game.instance.playerPrefab).GetComponent<NetPlayer>(); component.human.player = component; component.human.ragdoll = Object.Instantiate(Game.instance.ragdollPrefab.gameObject, component.human.transform, worldPositionStays: false).GetComponent<Ragdoll>(); component.human.ragdoll.BindBall(component.human.transform); component.human.Initialize(); RagdollPresetMetadata ragdollPresetMetadata; if (isLocal) { ragdollPresetMetadata = GetLocalSkin(localCoopIndex); } else { ragdollPresetMetadata = RagdollPresetMetadata.LoadNetSkin(localCoopIndex, skinUserId); if (ragdollPresetMetadata != null && !ragdollPresetMetadata.CheckCRC(skinCRC)) { ragdollPresetMetadata = null; } } component.netId = id; component.host = host; component.localCoopIndex = localCoopIndex; component.isLocalPlayer = isLocal; component.skin = ragdollPresetMetadata; component.skinUserId = skinUserId; component.skinCRC = skinCRC; if (isLocal && ragdollPresetMetadata != null && isPlayingGame()) { App.StartPlaytimeForItem(ragdollPresetMetadata.workshopId); } host.AddPlayer(component); if (ragdollPresetMetadata != null) { component.ApplyPreset(ragdollPresetMetadata); } else { component.ApplyPreset(PresetRepository.CreateDefaultSkin(), bake: false); } component.SetupBodies(); if (isLocal) { MenuCameraEffects.instance.AddHuman(component); Listener.instance.AddHuman(component.human); PlayerManager.instance.OnLocalPlayerAdded(component); } else { component.cameraController.gameObject.SetActive(value: false); } if (NetGame.netlog) { Debug.LogFormat("Spawning {0}", component.netId); } return component; }
public void HideUI() { if (NetGame.instance.local.players.Count >= 1) { uiVisible = false; MenuCameraEffects.instance.RemoveOverride(); gameCamera.gameObject.SetActive(value: false); MenuSystem.instance.HideMenus(); NetPlayer netPlayer = NetGame.instance.local.players[0]; netPlayer.cameraController.TransitionFrom(gameCamera, 10f, 1f); } }
internal void RemovePlayer(NetPlayer netPlayer) { players.Remove(netPlayer); ChatManager.Instance.RemoveChatUser(netPlayer); }
public void AddPlayer(NetPlayer netPlayer) { players.Add(netPlayer); ChatManager.Instance.AddChatUser(netPlayer); }