public PlannerNode(PlannerNode parent, float runningCost, HashSet <KeyValuePair <string, object> > state, GOAPAction action) { Parent = parent; RunningCost = runningCost; _state = state; Action = action; }
public GOAPAction GetAction(GOAPAction action) { foreach (GOAPAction a in _availableActions) { if (a.GetType().Equals(action.GetType())) { return(a); } } return(null); }
/// <summary> /// create a subset of actions excluding the removeMe one. Creates a new set /// </summary> /// <param name="actions"></param> /// <param name="removeMe"></param> /// <returns></returns> private HashSet <GOAPAction> ActionSubset(HashSet <GOAPAction> actions, GOAPAction removeMe) { HashSet <GOAPAction> subset = new HashSet <GOAPAction>(); foreach (GOAPAction a in actions) { if (!a.Equals(removeMe)) { subset.Add(a); } } return(subset); }
public bool MoveAgent(GOAPAction nextAction) { Debug.Log("Moving"); float step = moveSpeed * Time.deltaTime; gameObject.transform.position = Vector3.MoveTowards(gameObject.transform.position, nextAction.Target.transform.position, step); if (gameObject.transform.position.Equals(nextAction.Target.transform.position)) { nextAction.IsInRange = true; return(true); } else { return(false); } }
public void PlanAborted(GOAPAction aborter) { }
public void RemoveAction(GOAPAction action) { _availableActions.Remove(action); }
public void AddAction(GOAPAction action) { _availableActions.Add(action); }