Struct zengine_asset::AssetManager
source · [−]pub struct AssetManager { /* private fields */ }
Expand description
A Resource that loads assets from the filesystem in the background
The asset manager keeps track of the load state of the assets it manages
The asset manager is a resource, so in order to get a mutable reference in a system you need a ResMut accessor, like this:
use zengine_asset::{AssetManager, Handle};
use zengine_ecs::system::{ResMut};
use zengine_macro::Asset;
fn my_system(mut asset_manager: ResMut<AssetManager>)
{
let asset_handle: Handle<TestAsset> = asset_manager.load("image.png");
}
See the simple_sprite
example for more information.
Implementations
sourceimpl AssetManager
impl AssetManager
sourcepub fn new<T: AssetIo>(asset_io: T) -> Self
pub fn new<T: AssetIo>(asset_io: T) -> Self
Creates a new asset manager with the provided asset I/O
sourcepub fn load<T: Asset, P: Into<AssetPath>>(&mut self, file_path: P) -> Handle<T>
pub fn load<T: Asset, P: Into<AssetPath>>(&mut self, file_path: P) -> Handle<T>
Asynchronous load an Asset at the provided relative path
The absolute path to the asset is "ROOT/ASSET_BASE_PATH/file_path"
where ASSET_BASE_PATH
is the path used during the AssetModule creation.
Its extension is then extracted to search for an AssetLoader.
By default the ROOT
is the directory of the Application.
The asset is loaded asynchronously, and will generally not be available by the time this calls returns. The engine will generate an AssetEvent::Loaded when the asset will be available.
The asset will always fail to load if the provided path doesn’t contain an extension.
sourcepub fn register_loader<T: AssetLoader>(&mut self, loader: T)
pub fn register_loader<T: AssetLoader>(&mut self, loader: T)
Register a new asset loader to the manager
If loader
has one or more supported extensions in conflict with loaders that came before
it, it will replace them.
Trait Implementations
sourceimpl Debug for AssetManager
impl Debug for AssetManager
sourceimpl Default for AssetManager
impl Default for AssetManager
impl Resource for AssetManager
Auto Trait Implementations
impl !RefUnwindSafe for AssetManager
impl Send for AssetManager
impl Sync for AssetManager
impl Unpin for AssetManager
impl !UnwindSafe for AssetManager
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
sourceimpl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
sourcefn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
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
. Read moresourcefn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read moresourcefn 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. Read moresourcefn 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. Read more