/// <summary>
        /// Checks if position of entity has changed and sets y attribute to ground level if y and ground level
        /// are different
        /// </summary>
        /// <param name="accumulatedTransforms">Accumulated transformation that happened in the service chain</param>
        /// <returns>Accumulated changes with adaptions added by AvatarCollison</returns>
        internal AccumulatedAttributeTransform Transform(AccumulatedAttributeTransform accumulatedTransforms)
        {
            if (!accumulatedTransforms.Entity.ContainsComponent("avatar"))
                return accumulatedTransforms;

            Vector entityPosition = (Vector)accumulatedTransforms.CurrentAttributeValue("location", "position");
            Vector adaptedPosition = new Vector (entityPosition.x,
                (float)accumulatedTransforms.Entity["avatarCollision"]["groundLevel"].Value,
                entityPosition.z);

            accumulatedTransforms.AddAttributeTransformation("location", "position", adaptedPosition);
            return accumulatedTransforms;
        }