Example #1
0
		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;
		}
Example #2
0
 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);
     }
 }
Example #3
0
 internal void RemovePlayer(NetPlayer netPlayer)
 {
     players.Remove(netPlayer);
     ChatManager.Instance.RemoveChatUser(netPlayer);
 }
Example #4
0
 public void AddPlayer(NetPlayer netPlayer)
 {
     players.Add(netPlayer);
     ChatManager.Instance.AddChatUser(netPlayer);
 }