GameEntities.Crane.TickIntellect C# (CSharp) Method

TickIntellect() private method

private TickIntellect ( ) : void
return void
        void TickIntellect()
        {
            //horizontalMotor
            {
                float throttle = 0;
                throttle += Intellect.GetControlKeyStrength( GameControlKeys.Left );
                throttle -= Intellect.GetControlKeyStrength( GameControlKeys.Right );

                GearedMotor motor = PhysicsModel.GetMotor( "horizontalMotor" ) as GearedMotor;
                if( motor != null )
                    motor.Throttle = throttle;
            }

            //gibbetMotor
            {
                ServoMotor motor = PhysicsModel.GetMotor( "gibbetMotor" ) as ServoMotor;
                if( motor != null )
                {
                    Radian needAngle = motor.DesiredAngle;

                    needAngle += Intellect.GetControlKeyStrength( GameControlKeys.Forward ) * .004f;
                    needAngle -= Intellect.GetControlKeyStrength( GameControlKeys.Backward ) * .004f;

                    MathFunctions.Clamp( ref needAngle,
                        new Degree( -20.0f ).InRadians(), new Degree( 40.0f ).InRadians() );

                    motor.DesiredAngle = needAngle;
                }
            }

            //Change player LookDirection at rotation
            PlayerIntellect intellect = Intellect as PlayerIntellect;
            if( intellect != null )
            {
                Vec3 lookVector = intellect.LookDirection.GetVector();
                lookVector *= OldRotation.GetInverse();
                lookVector *= Rotation;
                intellect.LookDirection = SphereDir.FromVector( lookVector );
            }
        }