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
WaitForeverWait 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