Struct bevy_landmass::Archipelago
source · pub struct Archipelago<CS: CoordinateSystem> { /* private fields */ }
Expand description
An archipelago, holding the internal state of landmass
.
Implementations§
source§impl<CS: CoordinateSystem> Archipelago<CS>
impl<CS: CoordinateSystem> Archipelago<CS>
sourcepub fn get_agent_options(&self) -> &AgentOptions
pub fn get_agent_options(&self) -> &AgentOptions
Gets the agent options.
sourcepub fn get_agent_options_mut(&mut self) -> &mut AgentOptions
pub fn get_agent_options_mut(&mut self) -> &mut AgentOptions
Gets a mutable borrow to the agent options.
sourcepub fn add_node_type(&mut self, cost: f32) -> Result<NodeType, NewNodeTypeError>
pub fn add_node_type(&mut self, cost: f32) -> Result<NodeType, NewNodeTypeError>
Creates a new node type with the specified cost
. The cost is a
multiplier on the distance travelled along this node (essentially the cost
per meter). Agents will prefer to travel along low-cost terrain. The
returned node type is distinct from all other node types (for this
archipelago).
sourcepub fn set_node_type_cost(
&mut self,
node_type: NodeType,
cost: f32,
) -> Result<(), SetNodeTypeCostError>
pub fn set_node_type_cost( &mut self, node_type: NodeType, cost: f32, ) -> Result<(), SetNodeTypeCostError>
Sets the cost of node_type
to cost
. See
Archipelago::add_node_type
for the meaning of cost.
sourcepub fn get_node_type_cost(&self, node_type: NodeType) -> Option<f32>
pub fn get_node_type_cost(&self, node_type: NodeType) -> Option<f32>
Gets the cost of node_type
. Returns None
if node_type
is not in
this archipelago.
sourcepub fn remove_node_type(&mut self, node_type: NodeType) -> bool
pub fn remove_node_type(&mut self, node_type: NodeType) -> bool
Removes the node type from the archipelago. Returns false if this
archipelago does not contain node_type
or any islands still use this
node type (so the node type cannot be removed). Otherwise, returns true.
sourcepub fn sample_point(
&self,
point: CS::Coordinate,
distance_to_node: f32,
) -> Result<SampledPoint<'_, CS>, SamplePointError>
pub fn sample_point( &self, point: CS::Coordinate, distance_to_node: f32, ) -> Result<SampledPoint<'_, CS>, SamplePointError>
Finds the nearest point on the navigation meshes to (and within
distance_to_node
of) point
.
sourcepub fn find_path(
&self,
start_point: &SampledPoint<'_, CS>,
end_point: &SampledPoint<'_, CS>,
override_node_type_costs: &HashMap<NodeType, f32>,
) -> Result<Vec<CS::Coordinate>, FindPathError>
pub fn find_path( &self, start_point: &SampledPoint<'_, CS>, end_point: &SampledPoint<'_, CS>, override_node_type_costs: &HashMap<NodeType, f32>, ) -> Result<Vec<CS::Coordinate>, FindPathError>
Finds a path from start_point
and end_point
along the navigation
meshes. Only SampledPoint
s from this archipelago are supported. This
should only be used for querying (e.g., finding the walking distance to an
object), not for controlling movement. For controlling movement, use
agents.
Trait Implementations§
source§impl<CS: CoordinateSystem> Component for Archipelago<CS>
impl<CS: CoordinateSystem> Component for Archipelago<CS>
source§const STORAGE_TYPE: StorageType = bevy::ecs::component::StorageType::Table
const STORAGE_TYPE: StorageType = bevy::ecs::component::StorageType::Table
source§fn register_component_hooks(_hooks: &mut ComponentHooks)
fn register_component_hooks(_hooks: &mut ComponentHooks)
ComponentHooks
.source§impl<CS: CoordinateSystem> Default for Archipelago<CS>
impl<CS: CoordinateSystem> Default for Archipelago<CS>
Auto Trait Implementations§
impl<CS> !Freeze for Archipelago<CS>
impl<CS> RefUnwindSafe for Archipelago<CS>
impl<CS> Send for Archipelago<CS>
impl<CS> Sync for Archipelago<CS>
impl<CS> Unpin for Archipelago<CS>
impl<CS> UnwindSafe for Archipelago<CS>
Blanket Implementations§
source§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
source§fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
T
ShaderType
for self
. When used in AsBindGroup
derives, it is safe to assume that all images in self
exist.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
source§impl<C> Bundle for Cwhere
C: Component,
impl<C> Bundle for Cwhere
C: Component,
fn component_ids( components: &mut Components, storages: &mut Storages, ids: &mut impl FnMut(ComponentId), )
unsafe fn from_components<T, F>(ctx: &mut T, func: &mut F) -> C
source§fn get_component_ids(
components: &Components,
ids: &mut impl FnMut(Option<ComponentId>),
)
fn get_component_ids( components: &Components, ids: &mut impl FnMut(Option<ComponentId>), )
source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
source§impl<C> DynamicBundle for Cwhere
C: Component,
impl<C> DynamicBundle for Cwhere
C: Component,
fn get_components(self, func: &mut impl FnMut(StorageType, OwningPtr<'_>))
source§impl<T> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
source§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Self
using data from the given World
.source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§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>
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>
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