public void SetAnimationAtChannelSynched(
            string animationName,
            int channelNo,
            float animationSpeed = 1f)
        {
            int animationIndexWithName1 = MBAnimation.GetAnimationIndexWithName(animationName);

            if (GameNetwork.IsServerOrRecorder)
            {
                int  animationIndexWithName2 = MBAnimation.GetAnimationIndexWithName(this.GameEntity.Skeleton.GetAnimationAtChannel(channelNo));
                bool flag = true;
                int  num  = animationIndexWithName1;
                if (animationIndexWithName2 == num && this.GameEntity.Skeleton.GetAnimationSpeedAtChannel(channelNo).ApproximatelyEqualsTo(animationSpeed) && (double)this.GameEntity.Skeleton.GetAnimationParameterAtChannel(channelNo) < 0.0199999995529652)
                {
                    flag = false;
                }
                if (flag)
                {
                    GameNetwork.BeginBroadcastModuleEvent();
                    GameNetwork.WriteMessage((GameNetworkMessage) new SetMissionObjectAnimationAtChannel((MissionObject)this, channelNo, animationIndexWithName1, animationSpeed));
                    GameNetwork.EndBroadcastModuleEvent(GameNetwork.EventBroadcastFlags.AddToMissionRecord);
                    this._initialSynchFlags |= SynchedMissionObject.SynchFlags.SynchAnimation;
                }
            }
            this.GameEntity.Skeleton.SetAnimationAtChannel(animationIndexWithName1, channelNo, animationSpeed);
        }
 public void SetGlobalFrameSynched(ref MatrixFrame frame, bool isClient = false)
 {
     this._duration = 0.0f;
     this._timer    = 0.0f;
     if (!(this.GameEntity.GetGlobalFrame() != frame))
     {
         return;
     }
     if (GameNetwork.IsClientOrReplay)
     {
         this._lastSynchedFrame = (NativeObject)this.GameEntity.Parent != (NativeObject)null ? this.GameEntity.Parent.GetGlobalFrame().TransformToLocalNonOrthogonal(ref frame) : frame;
         this.SetSynchState(SynchedMissionObject.SynchState.SynchronizeFrame);
     }
     else
     {
         if (GameNetwork.IsServerOrRecorder)
         {
             GameNetwork.BeginBroadcastModuleEvent();
             GameNetwork.WriteMessage((GameNetworkMessage) new SetMissionObjectGlobalFrame((MissionObject)this, ref frame));
             GameNetwork.EndBroadcastModuleEvent(GameNetwork.EventBroadcastFlags.AddToMissionRecord);
         }
         this.SetSynchState(SynchedMissionObject.SynchState.SynchronizeCompleted);
         this.GameEntity.SetGlobalFrame(frame);
         this._initialSynchFlags |= SynchedMissionObject.SynchFlags.SynchTransform;
     }
 }
 public virtual void SetTeamColorsSynched(uint color, uint color2)
 {
     if (!((NativeObject)this.GameEntity != (NativeObject)null))
     {
         return;
     }
     if (GameNetwork.IsServerOrRecorder)
     {
         GameNetwork.BeginBroadcastModuleEvent();
         GameNetwork.WriteMessage((GameNetworkMessage) new SetMissionObjectColors((MissionObject)this, color, color2));
         GameNetwork.EndBroadcastModuleEvent(GameNetwork.EventBroadcastFlags.AddToMissionRecord);
     }
     this.SetTeamColors(color, color2);
     this._initialSynchFlags |= SynchedMissionObject.SynchFlags.SyncColors;
 }
 public void RemoveBodyFlagsSynched(BodyFlags flags, bool applyToChildren = true)
 {
     if ((this.GameEntity.BodyFlag & flags) == BodyFlags.None)
     {
         return;
     }
     if (GameNetwork.IsServerOrRecorder)
     {
         GameNetwork.BeginBroadcastModuleEvent();
         GameNetwork.WriteMessage((GameNetworkMessage) new RemoveMissionObjectBodyFlags((MissionObject)this, flags, applyToChildren));
         GameNetwork.EndBroadcastModuleEvent(GameNetwork.EventBroadcastFlags.AddToMissionRecord);
     }
     this.GameEntity.RemoveBodyFlags(flags, applyToChildren);
     this._initialSynchFlags |= SynchedMissionObject.SynchFlags.SynchBodyFlags;
 }
 public void ApplyImpulseSynched(Vec3 position, Vec3 impulse, bool localSpace)
 {
     if (GameNetwork.IsServerOrRecorder)
     {
         GameNetwork.BeginBroadcastModuleEvent();
         GameNetwork.WriteMessage((GameNetworkMessage) new SetMissionObjectImpulse((MissionObject)this, position, impulse, localSpace));
         GameNetwork.EndBroadcastModuleEvent(GameNetwork.EventBroadcastFlags.AddToMissionRecord);
     }
     if (localSpace)
     {
         position += this.GameEntity.GlobalPosition;
     }
     this.GameEntity.ApplyImpulseToDynamicBody(position, impulse);
     this._initialSynchFlags |= SynchedMissionObject.SynchFlags.SynchTransform;
 }
 public void ResumeSkeletonAnimationSynched()
 {
     if (!this.GameEntity.IsSkeletonAnimationPaused())
     {
         return;
     }
     if (GameNetwork.IsServerOrRecorder)
     {
         GameNetwork.BeginBroadcastModuleEvent();
         GameNetwork.WriteMessage((GameNetworkMessage) new SetMissionObjectAnimationPaused((MissionObject)this, false));
         GameNetwork.EndBroadcastModuleEvent(GameNetwork.EventBroadcastFlags.AddToMissionRecord);
     }
     this.GameEntity.ResumeSkeletonAnimation();
     this._initialSynchFlags |= SynchedMissionObject.SynchFlags.SynchAnimation;
 }
 public void SetAnimationChannelParameterSynched(int channelNo, float parameter)
 {
     if (this.GameEntity.Skeleton.GetAnimationParameterAtChannel(channelNo).ApproximatelyEqualsTo(parameter))
     {
         return;
     }
     if (GameNetwork.IsServerOrRecorder)
     {
         GameNetwork.BeginBroadcastModuleEvent();
         GameNetwork.WriteMessage((GameNetworkMessage) new SetMissionObjectAnimationChannelParameter((MissionObject)this, channelNo, parameter));
         GameNetwork.EndBroadcastModuleEvent(GameNetwork.EventBroadcastFlags.AddToMissionRecord);
     }
     this.GameEntity.Skeleton.SetAnimationParameterAtChannel(channelNo, parameter);
     this._initialSynchFlags |= SynchedMissionObject.SynchFlags.SynchAnimation;
 }
 public void SetGlobalFrameSynchedOverTime(ref MatrixFrame frame, float duration, bool isClient = false)
 {
     if (!(this.GameEntity.GetGlobalFrame() != frame) && !duration.ApproximatelyEqualsTo(0.0f))
     {
         return;
     }
     this._firstFrame       = this.GameEntity.GetFrame();
     this._lastSynchedFrame = (NativeObject)this.GameEntity.Parent != (NativeObject)null ? this.GameEntity.Parent.GetGlobalFrame().TransformToLocalNonOrthogonal(ref frame) : frame;
     this.SetSynchState(SynchedMissionObject.SynchState.SynchronizeFrameOverTime);
     this._duration = duration.ApproximatelyEqualsTo(0.0f) ? 0.1f : duration;
     this._timer    = 0.0f;
     if (GameNetwork.IsServerOrRecorder)
     {
         GameNetwork.BeginBroadcastModuleEvent();
         GameNetwork.WriteMessage((GameNetworkMessage) new SetMissionObjectGlobalFrameOverTime((MissionObject)this, ref frame, duration));
         GameNetwork.EndBroadcastModuleEvent(GameNetwork.EventBroadcastFlags.AddToMissionRecord);
     }
     this._initialSynchFlags |= SynchedMissionObject.SynchFlags.SynchTransform;
 }