Esempio n. 1
0
        public override object Execute(Reasoner ts, Unifier un, ITerm[] args)
        {
            CheckArguments(args);

            ITerm source = BeliefBase.ASelf;

            if (args.Length > 1)
            {
                source = args[1];
            }

            bool before = false;

            if (args.Length > 2)
            {
                before = args[2].ToString().Equals("begin");
            }

            if (args[0].IsList())
            {
                foreach (ITerm t in (IListTerm)args[0])
                {
                    ts.GetAgent().GetPL().Add(Transform2Plan(t), source, before);
                }
            }
            else
            {
                ts.GetAgent().GetPL().Add(Transform2Plan(args[0]), source, before);
            }

            if (ts.GetAgent().GetPL().HasMetaEventPlans())
            {
                ts.AddDesireListener(new Desire(ts));
            }
            return(true);
        }