Asgard.Client.AsgardClient.BeforePhysics C# (CSharp) Method

BeforePhysics() protected method

protected BeforePhysics ( float delta ) : void
delta float
return void
        protected override void BeforePhysics(float delta)
        {
            base.BeforePhysics(delta);
            MergeJitterBuffer();
            ApplyLagComp();

            var ents = EntityManager.GetEntities(Aspect.One(typeof(NetPhysicsObject)));
            foreach (var ent in ents)
            {
                var dObj = ent.GetComponent<NetPhysicsObject>();
                float X = dObj.position_error.X;
                float Y = dObj.position_error.Y;

                if (Math.Abs(dObj.position_error.X) >= 0.00001f)
                    if (Math.Abs(dObj.position_error.X) >= 1f)
                        X *= 0.975f;
                    else
                        X *= 0.975f;
                else
                    X = 0;

                if (Math.Abs(dObj.position_error.Y) >= 0.00001f)
                    if (Math.Abs(dObj.position_error.Y) >= 1f)
                        Y *= 0.975f;
                    else
                        Y *= 0.975f;
                else
                    Y = 0;

                var phyComp = ent.GetComponent<Physics2dComponent>();
                if (phyComp != null && phyComp.Body != null)
                {
                    float d = dObj.rotation_slerp - phyComp.Body.Rotation;

                    if (!dObj.PlayerControlled && Math.Abs(d) >= 0.01f)
                    {
                        dObj.rotation_slerp = phyComp.Body.Rotation;
                        //                    dObj.rotation_slerp = MathHelper.Lerp(dObj.rotation_slerp, phyComp.Body.Rotation, 0.2f);
                        //                     System.Diagnostics.Trace.WriteLine("slerp => " + dObj.rotation_slerp + " "
                        //                         + dObj.rotation_error + " " + phyComp.Body.Rotation);
                        //dObj.rotation_error = dObj.rotation_slerp;
                    }
                    else if (!dObj.PlayerControlled)
                    {
                        //                    System.Diagnostics.Trace.WriteLine("break out => " + phyComp.Body.Rotation);
                        dObj.rotation_slerp = phyComp.Body.Rotation;
                    }
                }

                dObj.position_error = new Vector2(X, Y);
            }
        }