/// <summary> /// Constructs the state from the input data. /// </summary> /// <param name="init">Input data.</param> /// <param name="idManager">ID manager.</param> public State(InputData.PDDL.Init init, IdManager idManager) : this(idManager) { InitialStateDataBuilder builder = new InitialStateDataBuilder(idManager); builder.Build(init); Predicates = (builder.Predicates.Count != 0) ? builder.Predicates : null; NumericFunctions = (builder.NumericFunctions.Count != 0) ? builder.NumericFunctions : null; ObjectFunctions = (builder.ObjectFunctions.Count != 0) ? builder.ObjectFunctions : null; }
/// <summary> /// Builds PDDL initial state data. /// </summary> /// <param name="init">Initial state input data.</param> public void Build(InputData.PDDL.Init init) { Predicates = new HashSet <IAtom>(); NumericFunctions = new Dictionary <IAtom, double>(); ObjectFunctions = new Dictionary <IAtom, int>(); foreach (var initElement in init) { initElement.Accept(this); } }