pub enum BehaviorExpr {
Show 30 variants
Bool(bool),
Int(i32),
Float(f32),
Vec3([f32; 3]),
Var(String),
Local(String),
Bind(String),
Named(Option<AssetId>),
SelfEntity,
Dt,
Elapsed,
Position(Box<BehaviorExpr>),
Distance(Box<BehaviorExpr>, Box<BehaviorExpr>),
First(String),
Count(String),
Alive(Box<BehaviorExpr>),
Add(Box<BehaviorExpr>, Box<BehaviorExpr>),
Sub(Box<BehaviorExpr>, Box<BehaviorExpr>),
Mul(Box<BehaviorExpr>, Box<BehaviorExpr>),
Div(Box<BehaviorExpr>, Box<BehaviorExpr>),
Normalize(Box<BehaviorExpr>),
Eq(Box<BehaviorExpr>, Box<BehaviorExpr>),
Ne(Box<BehaviorExpr>, Box<BehaviorExpr>),
Lt(Box<BehaviorExpr>, Box<BehaviorExpr>),
Le(Box<BehaviorExpr>, Box<BehaviorExpr>),
Gt(Box<BehaviorExpr>, Box<BehaviorExpr>),
Ge(Box<BehaviorExpr>, Box<BehaviorExpr>),
All(Vec<BehaviorExpr>),
Any(Vec<BehaviorExpr>),
Not(Box<BehaviorExpr>),
}Expand description
A value expression in a Behavior.
Expressions are pure: they read state, entities, and the clock, and never change the world. Arithmetic works on both scalars and vectors, and mixing the two is a build error.
Variants§
Bool(bool)
A boolean literal.
Int(i32)
An integer literal.
Float(f32)
A float literal.
Vec3([f32; 3])
A vector literal.
Var(String)
Reads a world variable.
Local(String)
Reads one of this behavior’s per-entity locals.
Bind(String)
Reads a name bound earlier by a let or for_each node.
Named(Option<AssetId>)
An entity declared in the world, addressed by asset name.
SelfEntity
The entity this behavior instance runs for. Only valid with a scope.
Dt
Seconds elapsed since the previous tick.
Elapsed
Seconds elapsed since the world started.
Position(Box<BehaviorExpr>)
World-space position of an entity.
Distance(Box<BehaviorExpr>, Box<BehaviorExpr>)
Distance between two entities.
First(String)
The first entity of a declared query, or none when it is empty.
Count(String)
How many entities a declared query matched.
Alive(Box<BehaviorExpr>)
Whether an entity is still alive.
Add(Box<BehaviorExpr>, Box<BehaviorExpr>)
Sum of two values.
Sub(Box<BehaviorExpr>, Box<BehaviorExpr>)
Difference of two values.
Mul(Box<BehaviorExpr>, Box<BehaviorExpr>)
Product of two values; a vector may be scaled by a scalar.
Div(Box<BehaviorExpr>, Box<BehaviorExpr>)
Quotient of two values; dividing by zero yields zero.
Normalize(Box<BehaviorExpr>)
A vector rescaled to unit length; a zero vector stays zero.
Eq(Box<BehaviorExpr>, Box<BehaviorExpr>)
Equality test.
Ne(Box<BehaviorExpr>, Box<BehaviorExpr>)
Inequality test.
Lt(Box<BehaviorExpr>, Box<BehaviorExpr>)
Less-than test.
Le(Box<BehaviorExpr>, Box<BehaviorExpr>)
Less-than-or-equal test.
Gt(Box<BehaviorExpr>, Box<BehaviorExpr>)
Greater-than test.
Ge(Box<BehaviorExpr>, Box<BehaviorExpr>)
Greater-than-or-equal test.
All(Vec<BehaviorExpr>)
True when every operand is true.
Any(Vec<BehaviorExpr>)
True when any operand is true.
Not(Box<BehaviorExpr>)
Logical negation.
Trait Implementations§
Source§impl Clone for BehaviorExpr
impl Clone for BehaviorExpr
Source§fn clone(&self) -> BehaviorExpr
fn clone(&self) -> BehaviorExpr
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more