[−][src]Enum ai_behavior::Behavior
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]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl<A: PartialEq> PartialEq<Behavior<A>> for Behavior<A>
[src]
impl<A> Serialize for Behavior<A> where
A: Serialize,
[src]
A: Serialize,
fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error> where
__S: Serializer,
[src]
__S: Serializer,
impl<'de, A> Deserialize<'de> for Behavior<A> where
A: Deserialize<'de>,
[src]
A: Deserialize<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]
__D: Deserializer<'de>,
Auto Trait Implementations
Blanket Implementations
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
impl<T> From for T
[src]
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = !
try_from
)The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
try_from
)The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> DeserializeOwned for T where
T: Deserialize<'de>,
[src]
T: Deserialize<'de>,