| Crates.io | bevy_map_derive |
| lib.rs | bevy_map_derive |
| version | 0.3.1 |
| created_at | 2025-12-21 07:20:05.017281+00 |
| updated_at | 2026-01-20 11:16:40.238801+00 |
| description | Derive macros for bevy_map_editor entity spawning |
| homepage | |
| repository | https://github.com/jbuehler23/bevy_map_editor |
| max_upload_size | |
| id | 1997634 |
| size | 17,596 |
Proc macros for the bevy_map_editor ecosystem.
Part of bevy_map_editor.
#[derive(MapEntity)]Automatically implements entity spawning from map data.
use bevy::prelude::*;
use bevy_map::prelude::*;
#[derive(Component, MapEntity)]
#[map_entity(type_name = "Enemy")]
pub struct Enemy {
#[map_prop]
pub name: String,
#[map_prop(default = 100)]
pub health: i32,
#[map_prop(name = "patrol_path")]
pub path: Option<String>,
#[map_sprite("sprite")]
pub sprite_handle: Option<Handle<Image>>,
}
#[map_entity(...)]| Attribute | Required | Description |
|---|---|---|
type_name = "Name" |
Yes | Entity type name as used in editor |
#[map_prop(...)]| Attribute | Description |
|---|---|
name = "prop_name" |
Override property name (default: field name) |
default = value |
Default value if property missing |
#[map_sprite(...)]Inject sprite handle from map data.
| Usage | Description |
|---|---|
#[map_sprite] |
Use field name as property name |
#[map_sprite("name")] |
Use specified property name |
Field must be Option<Handle<Image>>.
use bevy::prelude::*;
use bevy_map::prelude::*;
#[derive(Component, MapEntity)]
#[map_entity(type_name = "Player")]
pub struct Player {
#[map_prop]
pub name: String,
#[map_prop(default = 5.0)]
pub speed: f32,
#[map_sprite("player_sprite")]
pub sprite: Option<Handle<Image>>,
}
// Register in your app builder
App::new()
.add_plugins(MapRuntimePlugin)
.register_map_entity::<Player>()
// ... other setup
MIT OR Apache-2.0