public int GetInt32(WorldStateId id) { return(GetInt32(WorldStates.GetState(id).Index)); }
public void SetUInt32(WorldStateId id, uint value) { SetUInt32(WorldStates.GetState(id), value); }
public uint GetUInt32(WorldStateId id) { return(this.GetUInt32(WorldStates.GetState(id).Index)); }
public Queue <GAction> plan(List <GAction> actions, Dictionary <string, int> goal, WorldStates beliefStates) { List <GAction> usableActions = new List <GAction>(); foreach (GAction a in actions) { if (a.IsAchievable()) { usableActions.Add(a); } } List <Node> leaves = new List <Node>(); Node start = new Node(null, 0, GWorld.Instance.GetWorld().GetState(), beliefStates.GetState(), null); bool success = BuildGraph(start, leaves, usableActions, goal); if (!success) { // Debug.Log("NO PLAN"); return(null); } Node cheapest = null; foreach (Node leaf in leaves) { if (cheapest == null) { cheapest = leaf; } else { if (leaf.cost < cheapest.cost) { cheapest = leaf; } } } List <GAction> result = new List <GAction>(); Node n = cheapest; while (n != null) { if (n.action != null) { result.Insert(0, n.action); } n = n.parent; } Queue <GAction> queue = new Queue <GAction>(); foreach (GAction a in result) { queue.Enqueue(a); } //Debug.Log("The Plan is: "); //foreach (GAction a in queue) //{ // Debug.Log("Q: " + a.actionName); //} return(queue); }
public void SetInt32(WorldStateId id, int value) { this.SetInt32(WorldStates.GetState(id), value); }