コード例 #1
0
 protected void BoltSetup()
 {
     BoltNetwork.SetCanReceiveEntities(false);
     BoltNetwork.RegisterTokenClass <CoopConnectToken>();
     BoltNetwork.RegisterTokenClass <CoopConstructionExToken>();
     BoltNetwork.RegisterTokenClass <CoopFloorToken>();
     BoltNetwork.RegisterTokenClass <CoopRoofToken>();
     BoltNetwork.RegisterTokenClass <CoopWallChunkToken>();
     BoltNetwork.RegisterTokenClass <CoopBridgeToken>();
     BoltNetwork.RegisterTokenClass <CoopZiplineToken>();
     BoltNetwork.RegisterTokenClass <CoopZiplineTreeToken>();
     BoltNetwork.RegisterTokenClass <CoopCraneToken>();
     BoltNetwork.RegisterTokenClass <CoopGardenToken>();
     BoltNetwork.RegisterTokenClass <CoopFoundationChunkTierToken>();
     BoltNetwork.RegisterTokenClass <CoopSingleAnchorToken>();
     BoltNetwork.RegisterTokenClass <CoopMutantDummyToken>();
     BoltNetwork.RegisterTokenClass <CoopDestroyTagToken>();
     BoltNetwork.RegisterTokenClass <CoopKickToken>();
     BoltNetwork.RegisterTokenClass <CoopCreateBreakToken>();
     BoltNetwork.RegisterTokenClass <CoopJoinDedicatedServerToken>();
     BoltNetwork.RegisterTokenClass <CoopJoinDedicatedServerFailed>();
     BoltNetwork.RegisterTokenClass <CoopWeaponUpgradesToken>();
     BoltNetwork.RegisterTokenClass <CoopSyncGirlPickupToken>();
     BoltNetwork.RegisterTokenClass <CoopRagdollToken>();
 }
コード例 #2
0
        public static BoltEntity AttachLocalPlayer(string name = null)
        {
            if (LocalPlayer.GameObject.GetComponent <BoltEntity>() != null && LocalPlayer.GameObject.GetComponent <BoltEntity>().isAttached)
            {
                return(LocalPlayer.GameObject.GetComponent <BoltEntity>());
            }

            Menu.Values.Self.Visible = true;

            LocalPlayer.GameObject.AddComponent <BoltPlayerSetup>();
            LocalPlayer.GameObject.AddComponent <BoltEntity>();
            using (var settingsModifier = LocalPlayer.GameObject.GetComponent <BoltEntity>().ModifySettings())
            {
                settingsModifier.prefabId                 = BoltPrefabs.player_net;
                settingsModifier.serializerId             = StateSerializerTypeIds.IPlayerState;
                settingsModifier.allowInstantiateOnClient = true;
                settingsModifier.persistThroughSceneLoads = true;
                settingsModifier.clientPredicted          = false;
                settingsModifier.updateRate               = 1;
            }
            var attachedEntity = BoltNetwork.Attach(LocalPlayer.GameObject).GetComponent <BoltEntity>();

            attachedEntity.GetState <IPlayerState>().name = !string.IsNullOrEmpty(name) ? name : GriefClientPro.PlayerName;
            LocalPlayer.Entity = attachedEntity;
            BoltNetwork.SetCanReceiveEntities(true);

            return(attachedEntity);
        }
コード例 #3
0
    public static BoltEntity AttachLocalPlayer(GameObject go, string name, bool attachToRespawn)
    {
        if (go.GetComponent <BoltEntity>() && go.GetComponent <BoltEntity>().isAttached)
        {
            return(go.GetComponent <BoltEntity>());
        }
        go.AddComponent <BoltPlayerSetup>();
        go.AddComponent <BoltEntity>();
        using (BoltEntitySettingsModifier boltEntitySettingsModifier = go.GetComponent <BoltEntity>().ModifySettings())
        {
            boltEntitySettingsModifier.prefabId                 = BoltPrefabs.player_net;
            boltEntitySettingsModifier.serializerId             = StateSerializerTypeIds.IPlayerState;
            boltEntitySettingsModifier.allowInstantiateOnClient = true;
            boltEntitySettingsModifier.persistThroughSceneLoads = true;
            boltEntitySettingsModifier.clientPredicted          = false;
            boltEntitySettingsModifier.updateRate               = 1;
        }
        BoltEntity component = BoltNetwork.Attach(go).GetComponent <BoltEntity>();

        component.GetState <IPlayerState>().name = ((!string.IsNullOrEmpty(name)) ? name : "UNKNOWN");
        LocalPlayer.Entity = component;
        LocalPlayer.State  = component.GetState <IPlayerState>();
        BoltNetwork.SetCanReceiveEntities(true);
        return(component);
    }
コード例 #4
0
    private IEnumerator LoadingDone()
    {
        this.OnLoadingDone();
        yield return(null);

        if (GameSetup.Init == InitTypes.Continue)
        {
            while (LevelSerializer.IsDeserializing || PlayerSpawn.LoadSavedCharacter)
            {
                yield return(null);
            }
        }
        yield return(null);

        string name = "Unknown";

        if (!CoopPeerStarter.DedicatedHost)
        {
            name = SteamFriends.GetPersonaName();
            if (name == null || name.Trim().Length == 0)
            {
                yield return(null);

                name = SteamFriends.GetPersonaName();
                if (name == null || name.Trim().Length == 0)
                {
                    name = "Unknown";
                }
            }
            while (!LocalPlayer.GameObject)
            {
                yield return(null);
            }
            Debug.Log("Attach local player");
            CoopUtils.AttachLocalPlayer(name);
        }
        try
        {
            BoltNetwork.UpdateSceneObjectsLookup();
        }
        catch (Exception exception)
        {
            Debug.LogError("Failed to attach scene objects, ask on slack for a CoopPeerStarter MP debug ASAP");
            Debug.LogException(exception);
        }
        BoltNetwork.SetCanReceiveEntities(true);
        UnityEngine.Object.Destroy(base.gameObject);
        if (this.gui)
        {
            UnityEngine.Object.Destroy(this.gui);
        }
        yield break;
    }
コード例 #5
0
ファイル: CoopPeerStarter.cs プロジェクト: ahvonenj/TheForest
 protected void BoltSetup()
 {
     BoltNetwork.SetCanReceiveEntities(false);
     BoltNetwork.RegisterTokenClass <CoopConnectToken>();
     BoltNetwork.RegisterTokenClass <CoopConstructionExToken>();
     BoltNetwork.RegisterTokenClass <CoopFloorToken>();
     BoltNetwork.RegisterTokenClass <CoopRoofToken>();
     BoltNetwork.RegisterTokenClass <CoopWallChunkToken>();
     BoltNetwork.RegisterTokenClass <CoopBridgeToken>();
     BoltNetwork.RegisterTokenClass <CoopFoundationChunkTierToken>();
     BoltNetwork.RegisterTokenClass <CoopSingleAnchorToken>();
     BoltNetwork.RegisterTokenClass <CoopMutantDummyToken>();
     BoltNetwork.RegisterTokenClass <CoopDestroyTagToken>();
     BoltNetwork.RegisterTokenClass <CoopKickToken>();
     BoltNetwork.RegisterTokenClass <CoopCreateBreakToken>();
     BoltNetwork.RegisterTokenClass <CoopJoinDedicatedServerToken>();
 }
コード例 #6
0
 public override void OnEnter()
 {
     BoltNetwork.SetCanReceiveEntities(canReceiveEntities.Value);
     Finish();
 }