Пример #1
0
        public WorldState PerformAction(Action goapAction, WorldState from)
        {
            var result = new WorldState();

            var postcondition = goapAction.Postconditions;
            var affected = postcondition.Mask;
            var unaffected = affected ^ -1L;

            result.Values = (from.Values & unaffected) | (postcondition.Values & affected);
            result.Mask = from.Mask | postcondition.Mask;

            return result;
        }
Пример #2
0
 public WorldStateNode(GoapGraph graph, WorldState state, ActionPlanner.Action action)
 {
     Graph = graph;
     State = state;
     Action = action;
 }
Пример #3
0
 internal bool Match(WorldState other)
 {
     var mask = other.Mask;
     return (Values & mask) == (other.Values & mask);
 }