/// <summary>Clones this object</summary> /// <returns>The new object</returns> public AnimatedObject Clone() { AnimatedObject Result = new AnimatedObject(currentHost) { States = States.Select(x => (ObjectState)x.Clone()).ToArray() }; Result.TrackFollowerFunction = TrackFollowerFunction?.Clone(); Result.FrontAxlePosition = this.FrontAxlePosition; Result.RearAxlePosition = this.RearAxlePosition; Result.TranslateXScriptFile = this.TranslateXScriptFile; Result.StateFunction = StateFunction?.Clone(); Result.CurrentState = this.CurrentState; Result.TranslateZDirection = this.TranslateZDirection; Result.TranslateYDirection = this.TranslateYDirection; Result.TranslateXDirection = this.TranslateXDirection; Result.TranslateXFunction = TranslateXFunction?.Clone(); Result.TranslateYFunction = TranslateYFunction?.Clone(); Result.TranslateZFunction = TranslateZFunction?.Clone(); Result.RotateXDirection = this.RotateXDirection; Result.RotateYDirection = this.RotateYDirection; Result.RotateZDirection = this.RotateZDirection; Result.RotateXFunction = RotateXFunction?.Clone(); Result.RotateXDamping = RotateXDamping?.Clone(); Result.RotateYFunction = RotateYFunction?.Clone(); Result.RotateYDamping = RotateYDamping?.Clone(); Result.RotateZFunction = RotateZFunction?.Clone(); Result.RotateZDamping = RotateZDamping?.Clone(); Result.TextureShiftXDirection = this.TextureShiftXDirection; Result.TextureShiftYDirection = this.TextureShiftYDirection; Result.TextureShiftXFunction = TextureShiftXFunction?.Clone(); Result.TextureShiftYFunction = TextureShiftYFunction?.Clone(); Result.LEDClockwiseWinding = this.LEDClockwiseWinding; Result.LEDInitialAngle = this.LEDInitialAngle; Result.LEDLastAngle = this.LEDLastAngle; if (this.LEDVectors != null) { Result.LEDVectors = new Vector3[this.LEDVectors.Length]; for (int i = 0; i < this.LEDVectors.Length; i++) { Result.LEDVectors[i] = this.LEDVectors[i]; } } else { Result.LEDVectors = null; } Result.LEDFunction = LEDFunction?.Clone(); Result.RefreshRate = this.RefreshRate; Result.SecondsSinceLastUpdate = 0.0; if (isTimeTableObject) { Result.isTimeTableObject = true; currentHost.AddObjectForCustomTimeTable(this); } return(Result); }
/// <inheritdoc/> public override WorldObject Clone() { WorldSound ws = (WorldSound)base.Clone(); ws.Source = null; ws.Follower = Follower?.Clone(); ws.TrackFollowerFunction = TrackFollowerFunction?.Clone(); ws.VolumeFunction = VolumeFunction?.Clone(); ws.PitchFunction = PitchFunction?.Clone(); return(ws); }