Enum ai_behavior::Behavior
[−]
[src]
pub enum Behavior<A> { WaitForPressed(Button), WaitForReleased(Button), Wait(f64), WaitForever, Action(A), Fail(Box<Behavior<A>>), AlwaysSucceed(Box<Behavior<A>>), Select(Vec<Behavior<A>>), 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
WaitForPressed(Button)
Wait for a button to be pressed.
Returns Success
when the button is pressed,
otherwise it returns Running
.
WaitForReleased(Button)
Wait for a button to be released.
Returns Success
when the button is released,
otherwise it returns Running
.
Wait(f64)
Waits an amount of time before continuing.
f64: Time in seconds
WaitForever
Wait forever.
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.
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