Struct bevy_ecs_ldtk::assets::LdtkProject
source · pub struct LdtkProject { /* private fields */ }
Expand description
Main asset for loading LDtk project data.
§Accessing level data
This type provides many methods for accessing level data. The correct method for you will vary depending on whether or not you need “complete” level data, and if so, whether or not your project uses internal levels or external levels.
§Raw vs loaded levels
There are a couple main flavors that level data can have - raw and loaded.
Raw levels don’t have any type guarantee that the level data is complete or incomplete.
Level data may be incomplete and contain no layer instances if external levels are enabled.
However, even in this case, a raw level is sufficient if you don’t need any layer data.
Raw levels are represented by the Level
type from LDtk.
See RawLevelAccessor
and LevelMetadataAccessor
for some methods that access raw levels.
On the other hand, loaded levels are type-guaranteed to have complete level data.
Loaded levels are represented by the LoadedLevel
type.
Methods for accessing loaded levels vary depending on if the levels are internal or external.
§Accessing internal and external loaded levels
By default, LDtk stores level data inside the main project file. You have the option to store level data externally, where each level gets its own file. In this case, some of the level data remains available in the project file, but not layer data. See the previous section for more details.
Level data stored so differently on disk results in a similar difference when loaded in memory.
In the external case, an entirely different asset type LdtkExternalLevel
comes into play.
So, methods for accessing loaded levels vary between the two cases.
If you know that your project uses internal levels, you can coerce it as a “standalone project”.
To do this, use LdtkProject::as_standalone
.
With that, you can use these loaded_level
accessors.
If you know that your project uses external levels, you can coerce it as a “parent project”.
To do this, use LdtkProject::as_parent
.
You will also need the LdtkExternalLevel
asset collection.
With these, you can use these external_level
accessors.
Implementations§
source§impl LdtkProject
impl LdtkProject
Auto-generated by derive_getters::Getters
.
sourcepub fn data(&self) -> &LdtkProjectData
pub fn data(&self) -> &LdtkProjectData
LDtk json data and level metadata.
sourcepub fn tileset_map(&self) -> &HashMap<i32, Handle<Image>>
pub fn tileset_map(&self) -> &HashMap<i32, Handle<Image>>
Map from tileset uids to image handles for the loaded tileset.
sourcepub fn int_grid_image_handle(&self) -> &Option<Handle<Image>>
pub fn int_grid_image_handle(&self) -> &Option<Handle<Image>>
Image used for rendering int grid colors.
source§impl LdtkProject
impl LdtkProject
sourcepub fn as_standalone(&self) -> &LdtkJsonWithMetadata<InternalLevels>
pub fn as_standalone(&self) -> &LdtkJsonWithMetadata<InternalLevels>
Unwrap as a LdtkJsonWithMetadata<InternalLevels>
.
For use on internal-levels ldtk projects only.
§Panics
Panics if self.data()
is not LdtkProjectData::Standalone
.
This shouldn’t occur if the project uses internal levels.
sourcepub fn as_parent(&self) -> &LdtkJsonWithMetadata<ExternalLevels>
pub fn as_parent(&self) -> &LdtkJsonWithMetadata<ExternalLevels>
Unwrap as a LdtkJsonWithMetadata<ExternalLevels>
.
For use on external-levels ldtk projects only.
§Panics
Panics if self.data()
is not LdtkProjectData::Parent
.
This shouldn’t occur if the project uses external levels.
Trait Implementations§
source§impl Clone for LdtkProject
impl Clone for LdtkProject
source§fn clone(&self) -> LdtkProject
fn clone(&self) -> LdtkProject
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for LdtkProject
impl Debug for LdtkProject
source§impl From<(LdtkProjectData, HashMap<i32, Handle<Image>>, Option<Handle<Image>>)> for LdtkProject
impl From<(LdtkProjectData, HashMap<i32, Handle<Image>>, Option<Handle<Image>>)> for LdtkProject
source§impl FromReflect for LdtkProjectwhere
Self: Any + Send + Sync,
LdtkProjectData: FromReflect + TypePath + RegisterForReflection,
HashMap<i32, Handle<Image>>: FromReflect + TypePath + RegisterForReflection,
Option<Handle<Image>>: FromReflect + TypePath + RegisterForReflection,
impl FromReflect for LdtkProjectwhere
Self: Any + Send + Sync,
LdtkProjectData: FromReflect + TypePath + RegisterForReflection,
HashMap<i32, Handle<Image>>: FromReflect + TypePath + RegisterForReflection,
Option<Handle<Image>>: FromReflect + TypePath + RegisterForReflection,
source§fn from_reflect(reflect: &dyn Reflect) -> Option<Self>
fn from_reflect(reflect: &dyn Reflect) -> Option<Self>
Self
from a reflected value.source§fn take_from_reflect(
reflect: Box<dyn Reflect>,
) -> Result<Self, Box<dyn Reflect>>
fn take_from_reflect( reflect: Box<dyn Reflect>, ) -> Result<Self, Box<dyn Reflect>>
Self
using,
constructing the value using from_reflect
if that fails. Read moresource§impl GetTypeRegistration for LdtkProjectwhere
Self: Any + Send + Sync,
LdtkProjectData: FromReflect + TypePath + RegisterForReflection,
HashMap<i32, Handle<Image>>: FromReflect + TypePath + RegisterForReflection,
Option<Handle<Image>>: FromReflect + TypePath + RegisterForReflection,
impl GetTypeRegistration for LdtkProjectwhere
Self: Any + Send + Sync,
LdtkProjectData: FromReflect + TypePath + RegisterForReflection,
HashMap<i32, Handle<Image>>: FromReflect + TypePath + RegisterForReflection,
Option<Handle<Image>>: FromReflect + TypePath + RegisterForReflection,
source§fn get_type_registration() -> TypeRegistration
fn get_type_registration() -> TypeRegistration
TypeRegistration
for this type.source§fn register_type_dependencies(registry: &mut TypeRegistry)
fn register_type_dependencies(registry: &mut TypeRegistry)
source§impl LevelMetadataAccessor for LdtkProject
impl LevelMetadataAccessor for LdtkProject
source§fn get_level_metadata_by_iid(&self, iid: &String) -> Option<&LevelMetadata>
fn get_level_metadata_by_iid(&self, iid: &String) -> Option<&LevelMetadata>
source§fn get_raw_level_by_iid(&self, iid: &String) -> Option<&Level>
fn get_raw_level_by_iid(&self, iid: &String) -> Option<&Level>
source§fn find_raw_level_by_level_selection(
&self,
level_selection: &LevelSelection,
) -> Option<&Level>
fn find_raw_level_by_level_selection( &self, level_selection: &LevelSelection, ) -> Option<&Level>
LevelSelection
. Read moresource§impl PartialEq for LdtkProject
impl PartialEq for LdtkProject
source§fn eq(&self, other: &LdtkProject) -> bool
fn eq(&self, other: &LdtkProject) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl RawLevelAccessor for LdtkProject
impl RawLevelAccessor for LdtkProject
source§fn root_levels(&self) -> &[Level]
fn root_levels(&self) -> &[Level]
source§fn iter_root_levels(&self) -> IterRootLevels<'_>
fn iter_root_levels(&self) -> IterRootLevels<'_>
source§fn iter_world_levels(&self) -> IterWorldLevels<'_>
fn iter_world_levels(&self) -> IterWorldLevels<'_>
source§fn iter_raw_levels(&self) -> IterLevels<'_>
fn iter_raw_levels(&self) -> IterLevels<'_>
source§fn iter_root_levels_with_indices(&self) -> IterRootLevelsWithIndices<'_>
fn iter_root_levels_with_indices(&self) -> IterRootLevelsWithIndices<'_>
source§fn iter_world_levels_with_indices(&self) -> IterWorldLevelsWithIndices<'_>
fn iter_world_levels_with_indices(&self) -> IterWorldLevelsWithIndices<'_>
source§fn iter_raw_levels_with_indices(&self) -> IterLevelsWithIndices<'_>
fn iter_raw_levels_with_indices(&self) -> IterLevelsWithIndices<'_>
LevelIndices
. Read moresource§fn get_raw_level_at_indices(&self, indices: &LevelIndices) -> Option<&Level>
fn get_raw_level_at_indices(&self, indices: &LevelIndices) -> Option<&Level>
LevelIndices
. Read moresource§impl Reflect for LdtkProjectwhere
Self: Any + Send + Sync,
LdtkProjectData: FromReflect + TypePath + RegisterForReflection,
HashMap<i32, Handle<Image>>: FromReflect + TypePath + RegisterForReflection,
Option<Handle<Image>>: FromReflect + TypePath + RegisterForReflection,
impl Reflect for LdtkProjectwhere
Self: Any + Send + Sync,
LdtkProjectData: FromReflect + TypePath + RegisterForReflection,
HashMap<i32, Handle<Image>>: FromReflect + TypePath + RegisterForReflection,
Option<Handle<Image>>: FromReflect + TypePath + RegisterForReflection,
source§fn get_represented_type_info(&self) -> Option<&'static TypeInfo>
fn get_represented_type_info(&self) -> Option<&'static TypeInfo>
source§fn as_any_mut(&mut self) -> &mut dyn Any
fn as_any_mut(&mut self) -> &mut dyn Any
&mut dyn Any
.source§fn into_reflect(self: Box<Self>) -> Box<dyn Reflect>
fn into_reflect(self: Box<Self>) -> Box<dyn Reflect>
source§fn as_reflect(&self) -> &dyn Reflect
fn as_reflect(&self) -> &dyn Reflect
source§fn as_reflect_mut(&mut self) -> &mut dyn Reflect
fn as_reflect_mut(&mut self) -> &mut dyn Reflect
source§fn clone_value(&self) -> Box<dyn Reflect>
fn clone_value(&self) -> Box<dyn Reflect>
Reflect
trait object. Read moresource§fn set(&mut self, value: Box<dyn Reflect>) -> Result<(), Box<dyn Reflect>>
fn set(&mut self, value: Box<dyn Reflect>) -> Result<(), Box<dyn Reflect>>
source§fn reflect_kind(&self) -> ReflectKind
fn reflect_kind(&self) -> ReflectKind
source§fn reflect_ref(&self) -> ReflectRef<'_>
fn reflect_ref(&self) -> ReflectRef<'_>
source§fn reflect_mut(&mut self) -> ReflectMut<'_>
fn reflect_mut(&mut self) -> ReflectMut<'_>
source§fn reflect_owned(self: Box<Self>) -> ReflectOwned
fn reflect_owned(self: Box<Self>) -> ReflectOwned
source§fn reflect_partial_eq(&self, value: &dyn Reflect) -> Option<bool>
fn reflect_partial_eq(&self, value: &dyn Reflect) -> Option<bool>
source§fn apply(&mut self, value: &(dyn Reflect + 'static))
fn apply(&mut self, value: &(dyn Reflect + 'static))
source§fn reflect_hash(&self) -> Option<u64>
fn reflect_hash(&self) -> Option<u64>
source§fn debug(&self, f: &mut Formatter<'_>) -> Result<(), Error>
fn debug(&self, f: &mut Formatter<'_>) -> Result<(), Error>
source§fn serializable(&self) -> Option<Serializable<'_>>
fn serializable(&self) -> Option<Serializable<'_>>
source§fn is_dynamic(&self) -> bool
fn is_dynamic(&self) -> bool
source§impl Struct for LdtkProjectwhere
Self: Any + Send + Sync,
LdtkProjectData: FromReflect + TypePath + RegisterForReflection,
HashMap<i32, Handle<Image>>: FromReflect + TypePath + RegisterForReflection,
Option<Handle<Image>>: FromReflect + TypePath + RegisterForReflection,
impl Struct for LdtkProjectwhere
Self: Any + Send + Sync,
LdtkProjectData: FromReflect + TypePath + RegisterForReflection,
HashMap<i32, Handle<Image>>: FromReflect + TypePath + RegisterForReflection,
Option<Handle<Image>>: FromReflect + TypePath + RegisterForReflection,
source§fn field(&self, name: &str) -> Option<&dyn Reflect>
fn field(&self, name: &str) -> Option<&dyn Reflect>
name
as a &dyn Reflect
.source§fn field_mut(&mut self, name: &str) -> Option<&mut dyn Reflect>
fn field_mut(&mut self, name: &str) -> Option<&mut dyn Reflect>
name
as a
&mut dyn Reflect
.source§fn field_at(&self, index: usize) -> Option<&dyn Reflect>
fn field_at(&self, index: usize) -> Option<&dyn Reflect>
index
as a
&dyn Reflect
.source§fn field_at_mut(&mut self, index: usize) -> Option<&mut dyn Reflect>
fn field_at_mut(&mut self, index: usize) -> Option<&mut dyn Reflect>
index
as a &mut dyn Reflect
.source§fn name_at(&self, index: usize) -> Option<&str>
fn name_at(&self, index: usize) -> Option<&str>
index
.source§fn iter_fields(&self) -> FieldIter<'_>
fn iter_fields(&self) -> FieldIter<'_>
source§fn clone_dynamic(&self) -> DynamicStruct
fn clone_dynamic(&self) -> DynamicStruct
DynamicStruct
.source§impl TypePath for LdtkProject
impl TypePath for LdtkProject
source§fn type_path() -> &'static str
fn type_path() -> &'static str
source§fn short_type_path() -> &'static str
fn short_type_path() -> &'static str
source§fn type_ident() -> Option<&'static str>
fn type_ident() -> Option<&'static str>
source§fn crate_name() -> Option<&'static str>
fn crate_name() -> Option<&'static str>
source§impl Typed for LdtkProjectwhere
Self: Any + Send + Sync,
LdtkProjectData: FromReflect + TypePath + RegisterForReflection,
HashMap<i32, Handle<Image>>: FromReflect + TypePath + RegisterForReflection,
Option<Handle<Image>>: FromReflect + TypePath + RegisterForReflection,
impl Typed for LdtkProjectwhere
Self: Any + Send + Sync,
LdtkProjectData: FromReflect + TypePath + RegisterForReflection,
HashMap<i32, Handle<Image>>: FromReflect + TypePath + RegisterForReflection,
Option<Handle<Image>>: FromReflect + TypePath + RegisterForReflection,
source§impl VisitAssetDependencies for LdtkProject
impl VisitAssetDependencies for LdtkProject
fn visit_dependencies(&self, visit: &mut impl FnMut(UntypedAssetId))
impl Asset for LdtkProject
impl StructuralPartialEq for LdtkProject
Auto Trait Implementations§
impl Freeze for LdtkProject
impl !RefUnwindSafe for LdtkProject
impl Send for LdtkProject
impl Sync for LdtkProject
impl Unpin for LdtkProject
impl !UnwindSafe for LdtkProject
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<A> AssetContainer for Awhere
A: Asset,
impl<A> AssetContainer for Awhere
A: Asset,
fn insert(self: Box<A>, id: UntypedAssetId, world: &mut World)
fn asset_type_name(&self) -> &'static str
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<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)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<T> DynamicTypePath for Twhere
T: TypePath,
impl<T> DynamicTypePath for Twhere
T: TypePath,
source§fn reflect_type_path(&self) -> &str
fn reflect_type_path(&self) -> &str
TypePath::type_path
.source§fn reflect_short_type_path(&self) -> &str
fn reflect_short_type_path(&self) -> &str
source§fn reflect_type_ident(&self) -> Option<&str>
fn reflect_type_ident(&self) -> Option<&str>
TypePath::type_ident
.source§fn reflect_crate_name(&self) -> Option<&str>
fn reflect_crate_name(&self) -> Option<&str>
TypePath::crate_name
.source§fn reflect_module_path(&self) -> Option<&str>
fn reflect_module_path(&self) -> Option<&str>
source§impl<S> GetField for Swhere
S: Struct,
impl<S> GetField for Swhere
S: Struct,
source§impl<T> GetPath for T
impl<T> GetPath for T
source§fn reflect_path<'p>(
&self,
path: impl ReflectPath<'p>,
) -> Result<&(dyn Reflect + 'static), ReflectPathError<'p>>
fn reflect_path<'p>( &self, path: impl ReflectPath<'p>, ) -> Result<&(dyn Reflect + 'static), ReflectPathError<'p>>
path
. Read moresource§fn reflect_path_mut<'p>(
&mut self,
path: impl ReflectPath<'p>,
) -> Result<&mut (dyn Reflect + 'static), ReflectPathError<'p>>
fn reflect_path_mut<'p>( &mut self, path: impl ReflectPath<'p>, ) -> Result<&mut (dyn Reflect + 'static), ReflectPathError<'p>>
path
. Read moresource§fn path<'p, T>(
&self,
path: impl ReflectPath<'p>,
) -> Result<&T, ReflectPathError<'p>>where
T: Reflect,
fn path<'p, T>(
&self,
path: impl ReflectPath<'p>,
) -> Result<&T, ReflectPathError<'p>>where
T: Reflect,
path
. Read moresource§fn path_mut<'p, T>(
&mut self,
path: impl ReflectPath<'p>,
) -> Result<&mut T, ReflectPathError<'p>>where
T: Reflect,
fn path_mut<'p, T>(
&mut self,
path: impl ReflectPath<'p>,
) -> Result<&mut T, ReflectPathError<'p>>where
T: Reflect,
path
. Read more