Newer
Older
mod system;
pub mod ldtk;
pub static mut LDTK_TILE_SCALE: AtomicU32 = AtomicU32::new(32);
pub fn get_ldtk_tile_scale() -> f32 {
unsafe { *LDTK_TILE_SCALE.get_mut() as f32 }
}
pub fn set_ldtk_tile_scale_u32(scale: u32) {
unsafe {
LDTK_TILE_SCALE.store(scale, Ordering::Release);
}
}
pub fn set_ldtk_tile_scale_f32(scale: f32) {
unsafe {
LDTK_TILE_SCALE.store(scale as u32, Ordering::Release);
}
}
mod __plugin {
pub struct MicroLDTKPlugin;
impl Plugin for MicroLDTKPlugin {
fn build(&self, app: &mut App) {
#[cfg(feature = "_supports_ldtk")]
app.add_event::<super::system::LevelDataUpdated>()
.init_asset::<super::ldtk::Project>()
.init_asset::<super::ldtk::Level>()
.init_asset::<super::ldtk::LevelSet>()
.init_asset_loader::<super::ldtk::LdtkLoader>()
.init_asset_loader::<super::ldtk::LdtkLevelLoader>()
.init_resource::<super::assets::TilesetIndex>()
.init_resource::<super::assets::LevelIndex>()
.add_systems(
Update,
(
super::assets::handle_ldtk_project_events,
super::assets::handle_ldtk_level_events,
super::assets::handle_ldtk_level_set_events,
),
);
impl<CameraFilter: QueryFilter + Send + Sync + 'static> MicroLDTKCameraPlugin<CameraFilter> {
pub fn new() -> Self {
Self {
_p: PhantomData::default(),
}
}
}
impl<CameraFilter: QueryFilter + Send + Sync + 'static> Default
for MicroLDTKCameraPlugin<CameraFilter>
{
fn default() -> Self {
Self::new()
}
}
pub struct MicroLDTKCameraPlugin<CameraFilter: QueryFilter> {
impl<CameraFilter: QueryFilter + Send + Sync + 'static> Plugin
for MicroLDTKCameraPlugin<CameraFilter>
{
fn build(&self, app: &mut App) {
app.add_systems(
PostUpdate,
super::camera::lock_camera_to_level::<CameraFilter>,
);
}
}
}
use std::sync::atomic::{AtomicU32, Ordering};
pub use __plugin::{MicroLDTKCameraPlugin, MicroLDTKPlugin};
pub use assets::{LevelIndex, TileMetadata, TilesetIndex};
pub use camera::CameraBounder;
pub use ldtk::{LdtkLoader, LdtkProject};
pub use map_query::{CameraBounds, InstanceRef, MapQuery};
#[cfg(feature = "autotile")]
pub use micro_autotile as autotile;
pub use pregen::{write_layer_to_texture, write_map_to_texture, Rasterise};
pub use system::*;