using UnityEngine;
using System.Collections;
using CharacterEngine.Primitives;

namespace CharacterEngine.Controller
{
    public class CEController : MonoBehaviour
    {

        #region Public Custom Fields

        [Range(0.5f, 3.0f)]
        public float skinWidth = 1.0f;

        [Range(0.0f, 5.0f)]
        public float weight = 1.0f;

        #endregion

        private CEPrimitives primitives;

        /*Summary:
            Initializer region contains both native unity initalizers of monobehaviour, Awake is called ONLY ONCE IN 
            LIFE TIME, and is called when the object is being created, before Start. Start in the other hand, is called
            when the object is enable and ready. 
        */

        void Awake ()
        {
            primitives = new CEPrimitives(this);
        }

        // Use this for initialization
        void Start()
        {

        }

        /*Summary:
            In Updates, we have both functions native from unity Monobehaviour: Update & FixedUpdate.
            The difference of this both is that one (Update) excecute every frame, and the other one, is executed
            by a fixed time (Fixed Update) which is by default 0.02s = 20 ms, that means "Update" depends on the framerate
            while "Fixed Update" dont. 
        */

        // Update is called once per frame
        void Update()
        {

        }

        void FixedUpdate ()
        {
            primitives.Step();
        }
    }
}
