namespace Wayne.Lib.StateEngine
{
    ///<summary>
    /// Interface to a State factory, that can use the State Type Container
    ///</summary>
    public interface IStateFactory2 : IStateFactory
    {
        /// <summary>
        /// Create a state object from the specified State name. 
        /// </summary>
        /// <param name="stateFactoryName">Name of the state to be created.</param>
        /// <param name="stateTypeContainer"></param>
        /// <returns>If successful, it returns the object for the state name. If it not was found, it returns null.</returns>
        State CreateState(string stateFactoryName, StateTypeContainer stateTypeContainer);

    }
}