// we've processed directchecks through ii
        protected IFailure MakeContinuingFailure(int ii)
        {
            if (directchecks.Count > ii + 1 || parentchecks.Count > 0)
            {
                Thinker clone = (Thinker)Clone();
                clone.directchecks = directchecks.GetRange(ii + 1, directchecks.Count - ii - 1);
                clone.time         = timeEach;
                return(clone);
            }

            return(fail);
        }
        public static void SearchForMatch(double salience, Memory memory, List <Relations.Relation> kinds, Datum check, Context context, IContinuation succ, IFailure fail, Variable.GetValue propfunc, params object[] propargs)
        {
            Thinker thinker = new Thinker(salience, memory, kinds, check, succ, propfunc, propargs);

            thinker.Continue(context, fail);
        }
 public static void SearchForMatch(double salience, Memory memory, List<Relations.Relation> kinds, Datum check, Context context, IContinuation succ, IFailure fail, Variable.GetValue propfunc, params object[] propargs)
 {
     Thinker thinker = new Thinker(salience, memory, kinds, check, succ, propfunc, propargs);
     thinker.Continue(context, fail);
 }
        public static void SearchForMatch(double salience, Memory memory, List <Relations.Relation> kinds, Datum check, Context context, IContinuation succ, IFailure fail)
        {
            Thinker thinker = new Thinker(salience, memory, kinds, check, succ);

            thinker.Continue(context, fail);
        }
 public static void SearchForMatch(double salience, Memory memory, List<Relations.Relation> kinds, Datum check, Context context, IContinuation succ, IFailure fail)
 {
     Thinker thinker = new Thinker(salience, memory, kinds, check, succ);
     thinker.Continue(context, fail);
 }