Class Decorator

All Implemented Interfaces:
Goal, Behavior

public class Decorator extends BehaviorGoalAdapter
A decorator is a wrapper over a Behavior, which can add functionality such as filtering BehaviorStatuses, conditions, timer loops and more without knowing the internals of the behavior it wraps. Note that there are often simpler alternatives to a full-blown decorator, which has to be generic for many different scenarios.
  • Method Details

    • reset

      public void reset()
      Description copied from interface: Goal
      Resets the goal and any resources or state it is holding.
    • run

      public BehaviorStatus run()
      Description copied from interface: Behavior
      Runs the behavior for one 'tick', optionally changing the state that it is in.
      Returns:
      The new state
    • shouldExecute

      public boolean shouldExecute()
      Description copied from interface: Behavior
      Returns whether the behavior is ready to run. Note this is called once when deciding whether to start execution of a leaf node. The actual execution status is determined by the return value of Behavior.run() which is repeatedly called by the executing node.
    • invert

      public static Decorator invert(Behavior toWrap)
      Returns:
      Returns a decorator that inverts the status i.e. SUCCESS becomes FAILURE, FAILURE becomes SUCCESS and others are untouched.
    • wrapping

      public static Decorator.Builder wrapping(Behavior toWrap)