From ff9007c0f2f9cf6983a9d5c16ce2aba1b2930375 Mon Sep 17 00:00:00 2001 From: RobertoMaurizzi Date: Thu, 17 Jul 2025 16:54:48 +0800 Subject: [PATCH] register and bundle EntityInstance, make PlayerBundle pub --- src/demo/player.rs | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/demo/player.rs b/src/demo/player.rs index 92bff45..5832f0a 100644 --- a/src/demo/player.rs +++ b/src/demo/player.rs @@ -19,6 +19,7 @@ use crate::{ pub(super) fn plugin(app: &mut App) { app.register_type::(); + app.register_type::(); app.register_type::(); app.load_resource::(); app.register_ldtk_entity::("Player"); @@ -72,16 +73,21 @@ pub(super) fn plugin(app: &mut App) { pub struct Player; #[derive(Default, Bundle, LdtkEntity)] -struct PlayerBundle { +pub struct PlayerBundle { #[sprite_sheet] - sprite_sheet: Sprite, + pub sprite_sheet: Sprite, #[worldly] - worldly: Worldly, + pub worldly: Worldly, #[grid_coords] - grid_coords: GridCoords, - // non-ecsldtk-related components - player_comp: Player, - movement: MovementController, + pub grid_coords: GridCoords, + #[from_entity_instance] + pub entity: EntityInstance, + // EntityInstance gives access to entity-specific fields defined in LDtk as + // EntityInstance.field_instances.get("field_name") + + // non-ecs-ldtk-related components + pub player: Player, + pub movement: MovementController, } fn record_player_directional_input( @@ -107,10 +113,6 @@ fn record_player_directional_input( intent.x += 1.0; } - // Normalize intent so that diagonal movement is the same speed as horizontal / vertical. - // This should be omitted if the input comes from an analog stick instead. - let intent = intent.normalize_or_zero(); - // Apply movement intent to controllers. for mut controller in &mut controller_query { controller.intent = intent;