Struct bevy_embasset::EmbassetPlugin
source · [−]pub struct EmbassetPlugin<F> { /* private fields */ }
Expand description
Bevy plugin that will insert EmbassetIo
instead of the default
AssetServer
added by the AssetPlugin
.
Examples
If you are using the DefaultPlugins
group from Bevy, it can
be added a couple of different ways.
Add Embasset Plugin
Without DefaultPlugins
from Bevy, it’s a simple matter of
adding the plugin:
App::new().add_plugin(EmbassetPlugin::new(add_embasset_assets));
If however, DefaultPlugins
are used, bevy inserts its AssetPlugin
which causes
a little extra work in order to add the plugin:
App::new().add_embasset_plugin(add_embasset_assets);
Or a little more manually:
App::new().add_plugins_with(DefaultPlugins, |group| {
group.add_before::<AssetPlugin, _>(EmbassetPlugin::new(add_embasset_assets))
});
Configure the plugin
The add_embasset_assets
function from above can be generated from a build script (build.rs
):
bevy_embasset::include_all_assets(
&Path::new(&env::var("CARGO_MANIFEST_DIR").unwrap()).join("assets")
);
and includeded in the source:
include!(concat!(env!("OUT_DIR"), "/add_embasset_assets.rs"));
Alternatively, the add_embasset_assets
can be created manually, gaining the ultimate flexibility:
fn add_embasset_assets(io: &mut EmbassetIo){
// add assets manually...
io.add_embedded_asset(Path::new("dummy"), include_bytes!("../assets/.keepme"));
// or add other custom, AssetIo - for handling specific paths...
io.add_handler(AssetIoAlternative::new("dummy://", DummyAssetIo).fallback_on_err());
}
To use the build script, the build
feature needs to be enabled when building it:
[build-dependencies]
bevy-embasset = { version = "*", features = ["build"] }
Implementations
sourceimpl<F> EmbassetPlugin<F> where
F: Fn(&mut EmbassetIo) + Send + Sync + 'static,
impl<F> EmbassetPlugin<F> where
F: Fn(&mut EmbassetIo) + Send + Sync + 'static,
Trait Implementations
sourceimpl<F: Debug> Debug for EmbassetPlugin<F>
impl<F: Debug> Debug for EmbassetPlugin<F>
sourceimpl<F> Plugin for EmbassetPlugin<F> where
F: Fn(&mut EmbassetIo) + Send + Sync + 'static,
impl<F> Plugin for EmbassetPlugin<F> where
F: Fn(&mut EmbassetIo) + Send + Sync + 'static,
Auto Trait Implementations
impl<F> RefUnwindSafe for EmbassetPlugin<F> where
F: RefUnwindSafe,
impl<F> Send for EmbassetPlugin<F> where
F: Send,
impl<F> Sync for EmbassetPlugin<F> where
F: Sync,
impl<F> Unpin for EmbassetPlugin<F> where
F: Unpin,
impl<F> UnwindSafe for EmbassetPlugin<F> where
F: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Convert 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 more
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read more
fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read more
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert &mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more