public void DrawFrame(List <RecFrameData> FrameData) { foreach (RecFrameData TS in FrameData) { RecordableVehicle rv = (RecordableVehicle)Recbles.Where(v => v.VId == TS.VId).FirstOrDefault(); rv.Transform.position = TS.Pos; rv.Transform.rotation = TS.Rot; ReplayerInput ri = (ReplayerInput)(rv.InputManager); rv.WCFL.steerAngle = TS.XMovement; rv.WCFR.steerAngle = TS.XMovement; //ri.zMovement = TS.ZMovement; rv.WCFL.angularVelocity = TS.FAV; rv.WCRL.angularVelocity = TS.RAV; rv.WCFR.angularVelocity = TS.FAV; rv.WCRR.angularVelocity = TS.RAV; rv.WCFL.springLengthInst = (float)TS.FLSprL / 100; rv.WCFR.springLengthInst = (float)TS.FRSprL / 100; rv.WCRL.springLengthInst = (float)TS.RLSprL / 100; rv.WCRR.springLengthInst = (float)TS.RRSprL / 100; rv.WCFL.isGrounded = TS.FLGnd; rv.WCFR.isGrounded = TS.FRGnd; rv.WCRL.isGrounded = TS.RLGnd; rv.WCRR.isGrounded = TS.RRGnd; if (TS.Events != null) { foreach (RecEvent e in TS.Events) { if (e.Type == RecEventType.JointBreak) { rv.DMC.BreakOffPart(e.Data.ToString()); } if (e.Type == RecEventType.Crunch) { rv.DMC.CrunchPart(e.Data.ToString(), e.Data2.ToString()); } if (e.Type == RecEventType.AddHinge) { rv.DMC.AddHingeToPart(e.Data.ToString(), e.Data2.ToString()); } if (e.Type == RecEventType.Scratch) { rv.DMC.ScratchPart(e.Data.ToString()); } if (e.Type == RecEventType.CamChange) { _replayer.ChooseCam(System.Convert.ToInt32(e.Data)); } } } } }
public RecFrameData(RecordableVehicle recbl) { VId = recbl.VId; Pos = recbl.Transform.position; Rot = recbl.Transform.rotation; XMovement = recbl.WCFR.steerAngle; //ZMovement = recbl.InputManager.ZMovement(); FAV = (sbyte)recbl.WCFR.angularVelocity; RAV = (sbyte)recbl.WCRR.angularVelocity; FLSprL = (sbyte)(recbl.WCFL.springLengthInst * 100); FRSprL = (sbyte)(recbl.WCFR.springLengthInst * 100); RLSprL = (sbyte)(recbl.WCRL.springLengthInst * 100); RRSprL = (sbyte)(recbl.WCRR.springLengthInst * 100); FLGnd = recbl.WCFL.isGrounded; FRGnd = recbl.WCFR.isGrounded; RLGnd = recbl.WCRL.isGrounded; RRGnd = recbl.WCRR.isGrounded; Events = new List <RecEvent>(); }