Skip to main content

bevy_map_core/
lib.rs

1//! Core data structures for bevy_map_editor
2//!
3//! This crate provides the fundamental types for representing tile-based maps:
4//! - `Level` - A complete map with layers and entities
5//! - `Layer` - A single layer (tiles or objects)
6//! - `Tileset` - Tile atlas configuration with multi-image support
7//! - `EntityInstance` - Placed entities with properties
8//! - `Value` - Generic property value type
9//! - `MapProject` - Self-contained format bundling level and tilesets
10//! - `EntityTypeConfig` - Type-level component configurations (physics, input, sprite)
11
12mod collision;
13mod entity;
14mod entity_type_config;
15mod layer;
16mod level;
17mod project;
18mod tileset;
19mod value;
20mod world;
21
22pub use collision::{CollisionData, CollisionShape, OneWayDirection, PhysicsBody};
23pub use entity::{
24    ComponentOverrides, EntityInstance, InputOverrides, PhysicsOverrides, SpriteOverrides,
25};
26pub use entity_type_config::{
27    ColliderConfig, EntityTypeConfig, InputConfig, InputProfile, PhysicsBodyType, PhysicsConfig,
28    SpriteConfig,
29};
30pub use layer::{
31    tile_flip_x, tile_flip_y, tile_index, tile_with_flips, toggle_flip_x, toggle_flip_y, Layer,
32    LayerData, LayerType, OCCUPIED_CELL, TILE_FLIP_MASK, TILE_FLIP_X, TILE_FLIP_Y, TILE_INDEX_MASK,
33};
34pub use level::Level;
35pub use project::{EditorProject, MapProject, MapProjectBuilder};
36pub use tileset::{TileProperties, Tileset, TilesetImage};
37pub use value::Value;
38pub use world::{ConnectionDirection, LevelConnection, WorldConfig, WorldLayout};