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; }
private static float RedoneCompareValue(this float value) { return(value.ApproximatelyEqualsTo(0.0f, 1E-05f) ? 0.0f : value); }