pub struct AssetPack {
pub state: AssetPackState,
pub id: String,
pub name: String,
pub root: PathBuf,
pub meta_dir: PathBuf,
index: HashMap<String, PathBuf>,
script: Option<String>,
}
Expand description
An AssetPack
is a single root folder that contains assets and subfolders.
The asset pack handles the indexing, categorising and loading the assets.
Fields§
§state: AssetPackState
The state the pack is currently in.
This is used to track whether a pack needs to perform operations to be usable, whether some operations failed and so forth.
id: String
The identifier of this string, usually a hash or short ID defined by the creator of the asset pack represented.
This ID is used when referring to files under AssetPack::root
.
name: String
The human-readable name of this AssetPack
.
This is not guaranteed to be unique! If you need to identify this pack, please use AssetPack::id
.
root: PathBuf
The “root” directory under which the assets live for this pack.
This is used internally to generate relative paths (that are portable) from absolute paths used in the asset loader.
meta_dir: PathBuf
The directory in which metadata about the AssetPack
is kept.
This ranges from index metadata, scripts to thumbnails, this directory is not guaranteed to
exist between runs and may be cleaned to recover disk space. The operations in this directory
should be ephemeral by design.
index: HashMap<String, PathBuf>
Internal mapping table between asset identifiers and their physical paths.
Each path value is relative to the AssetPack::root
.
script: Option<String>
A Rhai script that is used during indexing operations to assist in categorising the assets in the pack.
Implementations§
Source§impl AssetPack
impl AssetPack
Sourcepub fn new(
root: &Path,
meta_dir: &Path,
name: Option<String>,
) -> Result<Self, AssetPackError>
pub fn new( root: &Path, meta_dir: &Path, name: Option<String>, ) -> Result<Self, AssetPackError>
Generate a new AssetPack
in the AssetPackState::Created
state.
§Errors
This method may return an error if it fails to canonicalize the root path.
Sourcepub(crate) fn delete(&self) -> Result<(), AssetPackError>
pub(crate) fn delete(&self) -> Result<(), AssetPackError>
Deletes all cache and config for this AssetPack
.
§Errors
Can return AssetPackError::ManifestFile
when it fails to clean up any files.
Sourcepub fn save_manifest(&self) -> Result<(), AssetPackError>
pub fn save_manifest(&self) -> Result<(), AssetPackError>
Attempts to save the manifest for this AssetPack
to disk.
The resulting file will be written under AssetPack::root
.
§Errors
AssetPackError::ManifestFile
when the file/folder for the manifest couldn’t be created.AssetPackError::Serialisation
when serialising the manifest fails.
Sourcepub fn load_manifest(
root: &Path,
meta_dir: &Path,
) -> Result<Self, AssetPackError>
pub fn load_manifest( root: &Path, meta_dir: &Path, ) -> Result<Self, AssetPackError>
Attempts to load an AssetPack
from its manifest in the root
folder.
The resulting AssetPack
will always be in [AssetPackState::Crated
].
§Errors
AssetPackError::ManifestFile
when the file/folder for the manifest couldn’t be opened.AssetPackError::Serialisation
when serialising the manifest fails.
Trait Implementations§
Source§impl Component for AssetPack
impl Component for AssetPack
Source§const STORAGE_TYPE: StorageType = bevy::ecs::component::StorageType::Table
const STORAGE_TYPE: StorageType = bevy::ecs::component::StorageType::Table
Source§type Mutability = Mutable
type Mutability = Mutable
Component<Mutability = Mutable>
],
while immutable components will instead have [Component<Mutability = Immutable>
]. Read moreSource§fn register_required_components(
requiree: ComponentId,
components: &mut ComponentsRegistrator<'_>,
required_components: &mut RequiredComponents,
inheritance_depth: u16,
recursion_check_stack: &mut Vec<ComponentId>,
)
fn register_required_components( requiree: ComponentId, components: &mut ComponentsRegistrator<'_>, required_components: &mut RequiredComponents, inheritance_depth: u16, recursion_check_stack: &mut Vec<ComponentId>, )
Source§fn clone_behavior() -> ComponentCloneBehavior
fn clone_behavior() -> ComponentCloneBehavior
§fn register_component_hooks(hooks: &mut ComponentHooks)
fn register_component_hooks(hooks: &mut ComponentHooks)
Component::on_add
, etc.)ComponentHooks
].§fn on_add() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_add() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
on_add
[ComponentHook
] for this [Component
] if one is defined.§fn on_insert() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_insert() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
on_insert
[ComponentHook
] for this [Component
] if one is defined.§fn on_replace() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_replace() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
on_replace
[ComponentHook
] for this [Component
] if one is defined.§fn on_remove() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_remove() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
on_remove
[ComponentHook
] for this [Component
] if one is defined.§fn on_despawn() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_despawn() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
on_despawn
[ComponentHook
] for this [Component
] if one is defined.§fn map_entities<E>(_this: &mut Self, _mapper: &mut E)where
E: EntityMapper,
fn map_entities<E>(_this: &mut Self, _mapper: &mut E)where
E: EntityMapper,
EntityMapper
]. This is used to remap entities in contexts like scenes and entity cloning.
When deriving [Component
], this is populated by annotating fields containing entities with #[entities]
Read moreAuto Trait Implementations§
impl Freeze for AssetPack
impl RefUnwindSafe for AssetPack
impl Send for AssetPack
impl Sync for AssetPack
impl Unpin for AssetPack
impl UnwindSafe for AssetPack
Blanket Implementations§
§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
§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
§impl<C> Bundle for Cwhere
C: Component,
impl<C> Bundle for Cwhere
C: Component,
fn component_ids( components: &mut ComponentsRegistrator<'_>, ids: &mut impl FnMut(ComponentId), )
§fn register_required_components(
components: &mut ComponentsRegistrator<'_>,
required_components: &mut RequiredComponents,
)
fn register_required_components( components: &mut ComponentsRegistrator<'_>, required_components: &mut RequiredComponents, )
Bundle
].§fn get_component_ids(
components: &Components,
ids: &mut impl FnMut(Option<ComponentId>),
)
fn get_component_ids( components: &Components, ids: &mut impl FnMut(Option<ComponentId>), )
Bundle
]’s component ids. This will be None
if the component has not been registered.§impl<C> BundleFromComponents for Cwhere
C: Component,
impl<C> BundleFromComponents for Cwhere
C: Component,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§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>
, which can then be
downcast
into Box<dyn ConcreteType>
where ConcreteType
implements Trait
.§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>
, which can then be further
downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§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.§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.§impl<T> DowncastSend for T
impl<T> DowncastSend for T
§impl<C> DynamicBundle for Cwhere
C: Component,
impl<C> DynamicBundle for Cwhere
C: Component,
§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>
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