private void UpdateOwner()
 {
     if (this.entity.IsOwner())
     {
         base.state.MecanimSpeed = this.TargetAnimator.speed;
         for (int i = 0; i < this.LayersToSync.Length; i++)
         {
             MecanimLayerConfig mecanimLayerConfig       = this.LayersToSync[i];
             AnimatorStateInfo  currentAnimatorStateInfo = this.TargetAnimator.GetCurrentAnimatorStateInfo(mecanimLayerConfig.LayerIndex);
             if (currentAnimatorStateInfo.fullPathHash != mecanimLayerConfig.Hash)
             {
                 base.state.MecanimLayerHashes[i] = (mecanimLayerConfig.Hash = currentAnimatorStateInfo.fullPathHash);
                 base.state.MecanimLayerTimes[i]  = (mecanimLayerConfig.NormalizedTime = currentAnimatorStateInfo.normalizedTime);
             }
             if (mecanimLayerConfig.SyncWeight)
             {
                 float layerWeight = this.TargetAnimator.GetLayerWeight(mecanimLayerConfig.LayerIndex);
                 if (layerWeight != mecanimLayerConfig.Weight)
                 {
                     base.state.MecanimLayerWeights[i] = (mecanimLayerConfig.Weight = layerWeight);
                 }
             }
         }
     }
 }
 private void UpdateRemote(float?transitionDuration, float?stateNormalizedTime)
 {
     if (base.entity.IsAttached())
     {
         this.TargetAnimator.speed = base.state.MecanimSpeed;
         for (int i = 0; i < this.LayersToSync.Length; i++)
         {
             MecanimLayerConfig mecanimLayerConfig = this.LayersToSync[i];
             if (mecanimLayerConfig.Hash != 0)
             {
                 AnimatorStateInfo currentAnimatorStateInfo = this.TargetAnimator.GetCurrentAnimatorStateInfo(mecanimLayerConfig.LayerIndex);
                 if (!this.TargetAnimator.IsInTransition(mecanimLayerConfig.LayerIndex))
                 {
                     if (currentAnimatorStateInfo.fullPathHash != mecanimLayerConfig.Hash)
                     {
                         MecanimTransitionOverride mecanimTransitionOverride;
                         Dictionary <bool, float>  dictionary;
                         float value;
                         if (this.overrideLookup.TryGetValue(mecanimLayerConfig.Hash, out mecanimTransitionOverride))
                         {
                             if (transitionDuration == null)
                             {
                                 transitionDuration = new float?(mecanimLayerConfig.TransitionTime);
                             }
                             if (stateNormalizedTime == 0f)
                             {
                                 stateNormalizedTime = new float?(mecanimTransitionOverride.TransitionOffset);
                             }
                         }
                         else if (this.TransitionData && transitionDuration == null && this.TransitionData.Lookup != null && this.TransitionData.Lookup.TryGetValue(currentAnimatorStateInfo.fullPathHash, out dictionary) && dictionary.TryGetValue(true, out value))
                         {
                             transitionDuration = new float?(value);
                         }
                     }
                     if (transitionDuration != null)
                     {
                         transitionDuration = new float?(transitionDuration.Value * this.CrossFadeMultiplier);
                     }
                     else
                     {
                         transitionDuration = new float?(mecanimLayerConfig.TransitionTime);
                     }
                     if (stateNormalizedTime == null)
                     {
                         stateNormalizedTime = new float?(mecanimLayerConfig.NormalizedTime);
                     }
                     this.TargetAnimator.CrossFade(mecanimLayerConfig.Hash, Mathf.Max(0f, transitionDuration.Value), mecanimLayerConfig.LayerIndex, stateNormalizedTime.Value);
                     mecanimLayerConfig.Hash = 0;
                 }
             }
             if (mecanimLayerConfig.SyncWeight && mecanimLayerConfig.Weight != base.state.MecanimLayerWeights[i])
             {
                 float num = mecanimLayerConfig.Weight;
                 num = Mathf.Lerp(num, base.state.MecanimLayerWeights[i], Time.deltaTime * 10f);
                 this.TargetAnimator.SetLayerWeight(mecanimLayerConfig.LayerIndex, mecanimLayerConfig.Weight = num);
             }
         }
     }
 }
    public void ApplyHashToRemote(int layer, int hash, float transitionTime, float normalizedTime)
    {
        MecanimLayerConfig arg_19_0 = this.LayersToSync[layer];

        this.LayersToSync[layer].Hash = hash;
        arg_19_0.Hash_Recv            = hash;
        this.UpdateRemote(new float?(transitionTime), new float?(normalizedTime));
    }
    public void ApplyHashToRemote(int layer, int hash, bool anyState, float normalizedTime, bool instantTransition)
    {
        MecanimLayerConfig mecanimLayerConfig = this.LayersToSync[layer];

        this.LayersToSync[layer].Hash = hash;
        mecanimLayerConfig.Hash_Recv  = hash;
        this.UpdateRemoteEvent(null, new float?(normalizedTime), hash, layer, anyState, instantTransition);
    }
 private void UpdateOwnerWithEvents()
 {
     if (base.entity.IsOwner())
     {
         base.state.MecanimSpeed = this.TargetAnimator.speed;
         for (int i = 0; i < this.LayersToSync.Length; i++)
         {
             MecanimLayerConfig mecanimLayerConfig = this.LayersToSync[i];
             if (mecanimLayerConfig.LayerIndex == -1)
             {
                 this.forceLayerIndexSync();
             }
             AnimatorStateInfo animatorStateInfo = this.TargetAnimator.GetCurrentAnimatorStateInfo(mecanimLayerConfig.LayerIndex);
             int fullPathHash = animatorStateInfo.fullPathHash;
             if (this.TargetAnimator.IsInTransition(mecanimLayerConfig.LayerIndex))
             {
                 animatorStateInfo = this.TargetAnimator.GetNextAnimatorStateInfo(mecanimLayerConfig.LayerIndex);
                 AnimatorTransitionInfo animatorTransitionInfo = this.TargetAnimator.GetAnimatorTransitionInfo(mecanimLayerConfig.LayerIndex);
                 float normalizedTime = animatorTransitionInfo.normalizedTime;
                 if (animatorStateInfo.fullPathHash != mecanimLayerConfig.Hash && this.TransitionData.Lookup != null)
                 {
                     int key = fullPathHash - animatorStateInfo.fullPathHash;
                     if (animatorTransitionInfo.anyState)
                     {
                         key = 1111 - animatorStateInfo.fullPathHash;
                     }
                     Dictionary <bool, float> dictionary;
                     if (this.TransitionData.Lookup.TryGetValue(key, out dictionary))
                     {
                         if ((animatorStateInfo.tagHash == this.runHash || animatorStateInfo.tagHash == this.walkHash) && !this.isPlayer)
                         {
                             base.StartCoroutine(this.sendTransitionEventDelayed(animatorStateInfo.fullPathHash, mecanimLayerConfig.LayerIndex, animatorStateInfo.normalizedTime, base.entity, animatorTransitionInfo.anyState, 7));
                         }
                         else
                         {
                             base.StartCoroutine(this.sendTransitionEventDelayed(animatorStateInfo.fullPathHash, mecanimLayerConfig.LayerIndex, animatorStateInfo.normalizedTime, base.entity, animatorTransitionInfo.anyState, 0));
                         }
                     }
                     base.state.MecanimLayerHashes[i] = (mecanimLayerConfig.Hash = animatorStateInfo.fullPathHash);
                     base.state.MecanimLayerTimes[i]  = (mecanimLayerConfig.NormalizedTime = animatorStateInfo.normalizedTime);
                 }
             }
             if (this.setup && this.setup.animControl && animatorStateInfo.tagHash == this.setup.animControl.deathHash)
             {
                 base.state.MecanimLayerHashes[i] = (mecanimLayerConfig.Hash = animatorStateInfo.fullPathHash);
                 base.state.MecanimLayerTimes[i]  = (mecanimLayerConfig.NormalizedTime = animatorStateInfo.normalizedTime);
             }
             if (mecanimLayerConfig.SyncWeight)
             {
                 float layerWeight = this.TargetAnimator.GetLayerWeight(mecanimLayerConfig.LayerIndex);
                 if (layerWeight != mecanimLayerConfig.Weight)
                 {
                     base.state.MecanimLayerWeights[i] = (mecanimLayerConfig.Weight = layerWeight);
                 }
             }
         }
     }
 }
 public void ForceStatelayerSync()
 {
     for (int i = 0; i < this.LayersToSync.Length; i++)
     {
         if (this.LayersToSync[i].Hash_Recv != base.state.MecanimLayerHashes[i])
         {
             MecanimLayerConfig mecanimLayerConfig = this.LayersToSync[i];
             this.ApplyHashToRemote(mecanimLayerConfig.LayerIndex, base.state.MecanimLayerHashes[i], false, base.state.MecanimLayerTimes[i], false);
         }
     }
 }
 public void forceStateUpdate()
 {
     if (base.entity.IsOwner())
     {
         for (int i = 0; i < this.LayersToSync.Length; i++)
         {
             MecanimLayerConfig mecanimLayerConfig       = this.LayersToSync[i];
             AnimatorStateInfo  currentAnimatorStateInfo = this.TargetAnimator.GetCurrentAnimatorStateInfo(mecanimLayerConfig.LayerIndex);
             int fullPathHash = currentAnimatorStateInfo.fullPathHash;
             base.StartCoroutine(this.sendTransitionEventDelayed(currentAnimatorStateInfo.fullPathHash, mecanimLayerConfig.LayerIndex, currentAnimatorStateInfo.normalizedTime, base.entity, false, 0));
         }
     }
 }
 private void UpdateRemoteLayers(float?transitionDuration, float?stateNormalizedTime)
 {
     if (base.entity.IsAttached())
     {
         this.TargetAnimator.speed = base.state.MecanimSpeed;
         for (int i = 0; i < this.LayersToSync.Length; i++)
         {
             MecanimLayerConfig mecanimLayerConfig = this.LayersToSync[i];
             if (mecanimLayerConfig.SyncWeight && mecanimLayerConfig.Weight != base.state.MecanimLayerWeights[i])
             {
                 float num = mecanimLayerConfig.Weight;
                 num = Mathf.Lerp(num, base.state.MecanimLayerWeights[i], Time.deltaTime * 10f);
                 this.TargetAnimator.SetLayerWeight(mecanimLayerConfig.LayerIndex, mecanimLayerConfig.Weight = num);
             }
         }
     }
 }
 public void forceMecanimSync()
 {
     for (int i = 0; i < this.LayersToSync.Length; i++)
     {
         MecanimLayerConfig mecanimLayerConfig = this.LayersToSync[i];
         if (mecanimLayerConfig.Hash != 0)
         {
             this.ApplyHashToRemote(mecanimLayerConfig.LayerIndex, mecanimLayerConfig.Hash, false, 0.2f, false);
         }
     }
     for (int j = 0; j < this.LayersToSync.Length; j++)
     {
         if (this.LayersToSync[j].Hash_Recv != base.state.MecanimLayerHashes[j])
         {
             MecanimLayerConfig mecanimLayerConfig2 = this.LayersToSync[j];
             this.ApplyHashToRemote(mecanimLayerConfig2.LayerIndex, base.state.MecanimLayerHashes[j], false, 0.2f, false);
             Debug.Log("forced a SYNC on " + base.gameObject.name);
         }
     }
 }