private Vector2 CompoundVelocities(VelocityCompoundMethod over, VelocityCompoundMethod add, VelocityCompoundMethod mult)
    {
        Vector2 final = (over == null) ? Vector2.zero : over();

        if (final != Vector2.zero)
        {
            return(final);
        }

        if (add != null)
        {
            final += add();
        }
        if (gravityOn)
        {
            final += CalculateGravityVector(this);
        }
        final += externalVelocity;
        if (inclineVelocity != Vector2.zero)
        {
            final = inclineVelocity * final.magnitude;
        }
        if (mult != null)
        {
            final.Scale(mult());
        }

        return(final);
    }
 /// <summary>
 /// Sets the velocity functions for the Entity.
 /// </summary>
 public void SetVelocityFunctions(VelocityCompoundMethod over, VelocityCompoundMethod add, VelocityCompoundMethod mult)
 {
     vOverride = over;
     vAdd      = add;
     vMult     = mult;
 }