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; }