示例#1
0
    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));
                    }
                }
            }
        }
    }
示例#2
0
 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>();
 }