micro_ldtk 0.17.1

Load data from LDTK, index it and make it accessible through Bevy assets, extract and use autotile rules
Documentation
use crate::{get_ldtk_tile_scale, LdtkLayer};
use bevy_asset::Handle;
use bevy_ecs::bundle::Bundle;
use bevy_image::Image;
use bevy_sprite_render::{TileData, TilemapChunk, TilemapChunkTileData};
use glam::UVec2;

impl LdtkLayer {
	pub fn as_chunk(&self, tileset: Handle<Image>) -> impl Bundle {
		let size = self.indexer();

		let chunk = TilemapChunk {
			tileset,
			chunk_size: UVec2::new(size.width() as u32, size.height() as u32),
			tile_display_size: UVec2::splat(get_ldtk_tile_scale() as u32),
			alpha_mode: Default::default(),
		};

		let tile_max = size.width() * size.height();
		let tile_data = TilemapChunkTileData(
			(0..tile_max)
				.map(|i| {
					self.get_tile(size.reverse(i))
						.map(|tile| TileData::from_tileset_index(tile.tile.t as u16))
				})
				.collect(),
		);

        (chunk, tile_data)
	}
}