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

Auto-generated by derive_getters::Getters.

source

pub fn data(&self) -> &LdtkProjectData

LDtk json data and level metadata.

source

pub fn tileset_map(&self) -> &HashMap<i32, Handle<Image>>

Map from tileset uids to image handles for the loaded tileset.

source

pub fn int_grid_image_handle(&self) -> &Option<Handle<Image>>

Image used for rendering int grid colors.

source§

impl LdtkProject

source

pub fn json_data(&self) -> &LdtkJson

Raw ldtk json data.

source

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.

source

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

source§

fn clone(&self) -> LdtkProject

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for LdtkProject

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<(LdtkProjectData, HashMap<i32, Handle<Image>>, Option<Handle<Image>>)> for LdtkProject

source§

fn from( original: (LdtkProjectData, HashMap<i32, Handle<Image>>, Option<Handle<Image>>), ) -> LdtkProject

Converts to this type from the input type.
source§

impl FromReflect for LdtkProject
where 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>

Constructs a concrete instance of Self from a reflected value.
source§

fn take_from_reflect( reflect: Box<dyn Reflect>, ) -> Result<Self, Box<dyn Reflect>>

Attempts to downcast the given value to Self using, constructing the value using from_reflect if that fails. Read more
source§

impl GetTypeRegistration for LdtkProject
where 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

Returns the default TypeRegistration for this type.
source§

fn register_type_dependencies(registry: &mut TypeRegistry)

Registers other types needed by this type. Read more
source§

impl LevelMetadataAccessor for LdtkProject

source§

fn get_level_metadata_by_iid(&self, iid: &String) -> Option<&LevelMetadata>

Returns a reference to the level metadata corresponding to the given level iid.
source§

fn get_raw_level_by_iid(&self, iid: &String) -> Option<&Level>

Immutable access to a level at the given level iid. Read more
source§

fn find_raw_level_by_level_selection( &self, level_selection: &LevelSelection, ) -> Option<&Level>

Find the level matching the given LevelSelection. Read more
source§

impl PartialEq for LdtkProject

source§

fn eq(&self, other: &LdtkProject) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl RawLevelAccessor for LdtkProject

source§

fn worlds(&self) -> &[World]

Slice to this project’s collection of Worlds.
source§

fn root_levels(&self) -> &[Level]

Slice to this project’s collection of root levels.
source§

fn iter_root_levels(&self) -> IterRootLevels<'_>

Iterate through this project’s root levels. Read more
source§

fn iter_world_levels(&self) -> IterWorldLevels<'_>

Iterate through this project’s world levels. Read more
source§

fn iter_raw_levels(&self) -> IterLevels<'_>

Iterate through this project’s levels. Read more
source§

fn iter_root_levels_with_indices(&self) -> IterRootLevelsWithIndices<'_>

Iterate through this project’s root levels enumerated with their LevelIndices. Read more
source§

fn iter_world_levels_with_indices(&self) -> IterWorldLevelsWithIndices<'_>

Iterate through this project’s world levels enumerated with their LevelIndices. Read more
source§

fn iter_raw_levels_with_indices(&self) -> IterLevelsWithIndices<'_>

Iterate through this project’s levels enumerated with their LevelIndices. Read more
source§

fn get_raw_level_at_indices(&self, indices: &LevelIndices) -> Option<&Level>

Immutable access to a level at the given LevelIndices. Read more
source§

impl Reflect for LdtkProject
where 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>

Returns the TypeInfo of the type represented by this value. Read more
source§

fn into_any(self: Box<Self>) -> Box<dyn Any>

Returns the value as a Box<dyn Any>.
source§

fn as_any(&self) -> &dyn Any

Returns the value as a &dyn Any.
source§

fn as_any_mut(&mut self) -> &mut dyn Any

Returns the value as a &mut dyn Any.
source§

fn into_reflect(self: Box<Self>) -> Box<dyn Reflect>

Casts this type to a boxed reflected value.
source§

fn as_reflect(&self) -> &dyn Reflect

Casts this type to a reflected value.
source§

fn as_reflect_mut(&mut self) -> &mut dyn Reflect

Casts this type to a mutable reflected value.
source§

fn clone_value(&self) -> Box<dyn Reflect>

Clones the value as a Reflect trait object. Read more
source§

fn set(&mut self, value: Box<dyn Reflect>) -> Result<(), Box<dyn Reflect>>

Performs a type-checked assignment of a reflected value to this value. Read more
source§

fn try_apply(&mut self, value: &dyn Reflect) -> Result<(), ApplyError>

Tries to apply a reflected value to this value. Read more
source§

fn reflect_kind(&self) -> ReflectKind

Returns a zero-sized enumeration of “kinds” of type. Read more
source§

fn reflect_ref(&self) -> ReflectRef<'_>

Returns an immutable enumeration of “kinds” of type. Read more
source§

fn reflect_mut(&mut self) -> ReflectMut<'_>

Returns a mutable enumeration of “kinds” of type. Read more
source§

fn reflect_owned(self: Box<Self>) -> ReflectOwned

Returns an owned enumeration of “kinds” of type. Read more
source§

fn reflect_partial_eq(&self, value: &dyn Reflect) -> Option<bool>

Returns a “partial equality” comparison result. Read more
source§

fn apply(&mut self, value: &(dyn Reflect + 'static))

Applies a reflected value to this value. Read more
source§

fn reflect_hash(&self) -> Option<u64>

Returns a hash of the value (which includes the type). Read more
source§

fn debug(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Debug formatter for the value. Read more
source§

fn serializable(&self) -> Option<Serializable<'_>>

Returns a serializable version of the value. Read more
source§

fn is_dynamic(&self) -> bool

Indicates whether or not this type is a dynamic type. Read more
source§

impl Struct for LdtkProject
where 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>

Returns a reference to the value of the field named name as a &dyn Reflect.
source§

fn field_mut(&mut self, name: &str) -> Option<&mut dyn Reflect>

Returns a mutable reference to the value of the field named name as a &mut dyn Reflect.
source§

fn field_at(&self, index: usize) -> Option<&dyn Reflect>

Returns a reference to the value of the field with index index as a &dyn Reflect.
source§

fn field_at_mut(&mut self, index: usize) -> Option<&mut dyn Reflect>

Returns a mutable reference to the value of the field with index index as a &mut dyn Reflect.
source§

fn name_at(&self, index: usize) -> Option<&str>

Returns the name of the field with index index.
source§

fn field_len(&self) -> usize

Returns the number of fields in the struct.
source§

fn iter_fields(&self) -> FieldIter<'_>

Returns an iterator over the values of the reflectable fields for this struct.
source§

fn clone_dynamic(&self) -> DynamicStruct

Clones the struct into a DynamicStruct.
source§

impl TypePath for LdtkProject
where Self: Any + Send + Sync,

source§

fn type_path() -> &'static str

Returns the fully qualified path of the underlying type. Read more
source§

fn short_type_path() -> &'static str

Returns a short, pretty-print enabled path to the type. Read more
source§

fn type_ident() -> Option<&'static str>

Returns the name of the type, or None if it is anonymous. Read more
source§

fn crate_name() -> Option<&'static str>

Returns the name of the crate the type is in, or None if it is anonymous. Read more
source§

fn module_path() -> Option<&'static str>

Returns the path to the module the type is in, or None if it is anonymous. Read more
source§

impl Typed for LdtkProject
where Self: Any + Send + Sync, LdtkProjectData: FromReflect + TypePath + RegisterForReflection, HashMap<i32, Handle<Image>>: FromReflect + TypePath + RegisterForReflection, Option<Handle<Image>>: FromReflect + TypePath + RegisterForReflection,

source§

fn type_info() -> &'static TypeInfo

Returns the compile-time info for the underlying type.
source§

impl VisitAssetDependencies for LdtkProject

source§

fn visit_dependencies(&self, visit: &mut impl FnMut(UntypedAssetId))

source§

impl Asset for LdtkProject

source§

impl StructuralPartialEq for LdtkProject

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T, U> AsBindGroupShaderType<U> for T
where U: ShaderType, &'a T: for<'a> Into<U>,

source§

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<A> AssetContainer for A
where A: Asset,

source§

fn insert(self: Box<A>, id: UntypedAssetId, world: &mut World)

source§

fn asset_type_name(&self) -> &'static str

source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> Downcast<T> for T

source§

fn downcast(&self) -> &T

source§

impl<T> Downcast for T
where T: Any,

source§

fn into_any(self: Box<T>) -> Box<dyn Any>

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.
source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert 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)

Convert &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)

Convert &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
where T: Any + Send + Sync,

source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynamicTypePath for T
where T: TypePath,

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<S> GetField for S
where S: Struct,

source§

fn get_field<T>(&self, name: &str) -> Option<&T>
where T: Reflect,

Returns a reference to the value of the field named name, downcast to T.
source§

fn get_field_mut<T>(&mut self, name: &str) -> Option<&mut T>
where T: Reflect,

Returns a mutable reference to the value of the field named name, downcast to T.
source§

impl<T> GetPath for T
where T: Reflect + ?Sized,

source§

fn reflect_path<'p>( &self, path: impl ReflectPath<'p>, ) -> Result<&(dyn Reflect + 'static), ReflectPathError<'p>>

Returns a reference to the value specified by path. Read more
source§

fn reflect_path_mut<'p>( &mut self, path: impl ReflectPath<'p>, ) -> Result<&mut (dyn Reflect + 'static), ReflectPathError<'p>>

Returns a mutable reference to the value specified by path. Read more
source§

fn path<'p, T>( &self, path: impl ReflectPath<'p>, ) -> Result<&T, ReflectPathError<'p>>
where T: Reflect,

Returns a statically typed reference to the value specified by path. Read more
source§

fn path_mut<'p, T>( &mut self, path: impl ReflectPath<'p>, ) -> Result<&mut T, ReflectPathError<'p>>
where T: Reflect,

Returns a statically typed mutable reference to the value specified by path. Read more
source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> TypeData for T
where T: 'static + Send + Sync + Clone,

source§

impl<T> Upcast<T> for T

source§

fn upcast(&self) -> Option<&T>

source§

impl<T> WithSubscriber for T

source§

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
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

impl<T> ConditionalSend for T
where T: Send,

source§

impl<T> Settings for T
where T: 'static + Send + Sync,

source§

impl<T> WasmNotSend for T
where T: Send,

source§

impl<T> WasmNotSendSync for T

source§

impl<T> WasmNotSync for T
where T: Sync,