public void Update() { current_node = current_node.Transition( current_node.IfNotNull(n => n.Update()), n => n.Resume(), n => n.Suspend() ); }
static public void InitializeIdle(this AIMachineNode item, params AIMachineTransition[] transitions) { item.InitializeIdle((IEnumerable <AIMachineTransition>)transitions); }
public AIMachine(AIMachineNode n) { current_node = n; current_node.IfNotNull(z => z.Resume()); }
static public void Initialize(this AIMachineNode item, Process update, params AIMachineTransition[] transitions) { item.Initialize(update, (IEnumerable <AIMachineTransition>)transitions); }
static public void InitializeIdle(this AIMachineNode item, IEnumerable <AIMachineTransition> transitions) { item.Initialize(new AIMachineBehaviour_Idle(), transitions); }
static public void Initialize(this AIMachineNode item, Process update, IEnumerable <AIMachineTransition> transitions) { item.Initialize(new AIMachineBehaviour_Process(update), transitions); }
public AIMachineTransition(AIMachineNode n) : this(n, new AIMachineCondition_Always()) { }
public AIMachineTransition(AIMachineNode n, Operation <bool> p) : this(n, new AIMachineCondition_Predicate(p)) { }
public AIMachineTransition(AIMachineNode n, Process r, Process s, Operation <bool> p) : this(n, new AIMachineCondition_Predicate(r, s, p)) { }
public AIMachineTransition(AIMachineNode n, AIMachineCondition c) { node = n; condition = c; }