pub struct SaveProjectEvent {
pub(crate) project: Entity,
pub(crate) output: PathBuf,
}
Expand description
When this event is sent, the associated project
will be fetched and saved.
As a reaction to this event, a system will build a [bevy::prelude::Query
] that attempts to
fetch all [data::Project
]’s [data::Level
]s (and their descendant [data::Layer
]s along
all their descendants) and then (attempts) to persist them to disk.
The [data::Project
] fetched is queried by the SaveProjectEvent::project
[Entity
],
the user is responsible for only emitting “valid” entities, as this crate will assume they are,
and according to Bevy’s own documentation, this can lead to undefined behaviour if not respected.
Fields§
§project: Entity
The [Entity
] of the [data::Project
] to save.
output: PathBuf
The output path of the savefile that will be created.
Implementations§
Source§impl SaveProjectEvent
impl SaveProjectEvent
Sourcepub fn new(project: Entity, output: PathBuf) -> Self
pub fn new(project: Entity, output: PathBuf) -> Self
Generate a new SaveProjectEvent
that can be dispatched.
Trait Implementations§
Source§impl Debug for SaveProjectEvent
impl Debug for SaveProjectEvent
Source§impl Event for SaveProjectEvent
impl Event for SaveProjectEvent
Source§const AUTO_PROPAGATE: bool = false
const AUTO_PROPAGATE: bool = false
When true, this event will always attempt to propagate when triggered, without requiring a call
to
Trigger::propagate
.Source§type Traversal = ()
type Traversal = ()
The component that describes which Entity to propagate this event to next, when propagation is enabled.
§fn register_component_id(world: &mut World) -> ComponentId
fn register_component_id(world: &mut World) -> ComponentId
Generates the [
ComponentId
] for this event type. Read more§fn component_id(world: &World) -> Option<ComponentId>
fn component_id(world: &World) -> Option<ComponentId>
Fetches the [
ComponentId
] for this event type,
if it has already been generated. Read moreAuto Trait Implementations§
impl Freeze for SaveProjectEvent
impl RefUnwindSafe for SaveProjectEvent
impl Send for SaveProjectEvent
impl Sync for SaveProjectEvent
impl Unpin for SaveProjectEvent
impl UnwindSafe for SaveProjectEvent
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
Return the
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
Mutably borrows from an owned value. Read more
§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>
Converts
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>
Converts
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)
Converts
&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)
Converts
&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<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