Struct veloren_common_net::synced_components::inner::agent::Agent
pub struct Agent {Show 17 fields
pub rtsim_controller: RtSimController,
pub patrol_origin: Option<Vec3<f32>>,
pub target: Option<Target>,
pub chaser: Chaser,
pub behavior: Behavior,
pub psyche: Psyche,
pub inbox: VecDeque<AgentEvent>,
pub combat_state: ActionState,
pub behavior_state: ActionState,
pub timer: Timer,
pub bearing: Vec2<f32>,
pub sounds_heard: Vec<Sound>,
pub position_pid_controller: Option<PidController<fn(_: Vec3<f32>, _: Vec3<f32>) -> f32, 16>>,
pub flee_from_pos: Option<Pos>,
pub awareness: Awareness,
pub stay_pos: Option<Pos>,
pub rtsim_outbox: Option<VecDeque<NpcInput>>,
}
Expand description
For use with the builder pattern https://doc.rust-lang.org/1.0.0/style/ownership/builders.html
Fields§
§rtsim_controller: RtSimController
§patrol_origin: Option<Vec3<f32>>
§target: Option<Target>
§chaser: Chaser
§behavior: Behavior
§psyche: Psyche
§inbox: VecDeque<AgentEvent>
§combat_state: ActionState
§behavior_state: ActionState
§timer: Timer
§bearing: Vec2<f32>
§sounds_heard: Vec<Sound>
§position_pid_controller: Option<PidController<fn(_: Vec3<f32>, _: Vec3<f32>) -> f32, 16>>
§flee_from_pos: Option<Pos>
Position from which to flee. Intended to be the agent’s position plus a random position offset, to be used when a random flee direction is required and reset each time the flee timer is reset.
awareness: Awareness
§stay_pos: Option<Pos>
§rtsim_outbox: Option<VecDeque<NpcInput>>
Inputs sent up to rtsim
Implementations§
§impl Agent
impl Agent
pub fn with_patrol_origin(self, origin: Vec3<f32>) -> Agent
pub fn with_behavior(self, behavior: Behavior) -> Agent
pub fn with_no_flee_if(self, condition: bool) -> Agent
pub fn set_no_flee(&mut self)
pub fn with_destination(self, pos: Vec3<f32>) -> Agent
pub fn with_idle_wander_factor(self, idle_wander_factor: f32) -> Agent
pub fn with_aggro_range_multiplier(self, aggro_range_multiplier: f32) -> Agent
pub fn with_position_pid_controller( self, pid: PidController<fn(_: Vec3<f32>, _: Vec3<f32>) -> f32, 16>, ) -> Agent
pub fn with_aggro_no_warn(self) -> Agent
pub fn with_aggro_no_warn(self) -> Agent
Makes agent aggressive without warning
pub fn forget_old_sounds(&mut self, time: f64)
pub fn allowed_to_speak(&self) -> bool
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Agent
impl RefUnwindSafe for Agent
impl Send for Agent
impl Sync for Agent
impl Unpin for Agent
impl UnwindSafe for Agent
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more