Enum ai_behavior::Behavior
[−]
[src]
pub enum Behavior<A> { Pressed(Button), Released(Button), Action(A), Fail(Box<Behavior<A>>), AlwaysSucceed(Box<Behavior<A>>), Select(Vec<Behavior<A>>), Wait(f64), WaitForever, If(Box<Behavior<A>>, Box<Behavior<A>>, Box<Behavior<A>>), Sequence(Vec<Behavior<A>>), While(Box<Behavior<A>>, Vec<Behavior<A>>), WhenAll(Vec<Behavior<A>>), WhenAny(Vec<Behavior<A>>), After(Vec<Behavior<A>>), }
Describes a behavior.
This is used for more complex event logic. Can also be used for game AI.
Variants
Pressed(Button)
A button was pressed.
Released(Button)
A button was released.
Action(A)
A high level description of an action.
Fail(Box<Behavior<A>>)
Converts Success
into Failure
and vice versa.
AlwaysSucceed(Box<Behavior<A>>)
Ignores failures and returns Success
.
Select(Vec<Behavior<A>>)
Runs behaviors one by one until a behavior succeeds.
If a behavior fails it will try the next one. Fails if the last behavior fails. Can be thought of as a short-circuited logical OR gate.
Wait(f64)
Waits an amount of time before continuing.
f64: Time in seconds
WaitForever
Wait forever.
If(Box<Behavior<A>>, Box<Behavior<A>>, Box<Behavior<A>>)
If(condition, success, failure)
Sequence(Vec<Behavior<A>>)
Runs behaviors one by one until all succeeded.
The sequence fails if a behavior fails. The sequence succeeds if all the behavior succeeds. Can be thought of as a short-circuited logical AND gate.
While(Box<Behavior<A>>, Vec<Behavior<A>>)
Loops while conditional behavior is running.
Succeeds if the conditional behavior succeeds. Fails if the conditional behavior fails, or if any behavior in the loop body fails.
WhenAll(Vec<Behavior<A>>)
Runs all behaviors in parallel until all succeeded.
Succeeds if all behaviors succeed. Fails is any behavior fails.
WhenAny(Vec<Behavior<A>>)
Runs all behaviors in parallel until one succeeds.
Succeeds if one behavior succeeds. Fails if all behaviors failed.
After(Vec<Behavior<A>>)
Runs all behaviors in parallel until all succeeds in sequence.
Succeeds if all behaviors succeed, but only if succeeding in sequence. Fails if one behavior fails.
Trait Implementations
impl<A: Clone> Clone for Behavior<A>
[src]
fn clone(&self) -> Behavior<A>
[src]
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more