* Get bevy 0.17 compiling and running (#72) * get bevy 0.17 compiling and running * try to fix CI breaking from const assertion for client/server features * fix `bin` -> `lib` for `shared` in CI * typo * fix some collider issues (#73) * Physics/controller improvements (#74) * trying to fix physics prediction * fixed prediction desync * substantial controller improvements * Finish off main bevy 0.17 migration (#75) * fix lookdir issues - airplane moving backwards - player model facing backwards - camera was technically backwards the whole time, and player models were facing the right way; camera is now facing forwards - firing without a target now respects lookdir * fix aim targeting * migrate to bevy_trenchbroom 0.10 crates release * fixed colliders not being adjusted out of worldspace * predict platforms to stop constant rollbacks while riding them * fix key/head drop visuals not working * Fix key/head drop random initial force * fixed static head drops duplicating * fix platform velocity inheritance * fix thrown projectiles not autorotating * fix inconsistent explosion animations * update avian3d to 0.4.1 * fix controller snapping to fixed angle upon switching heads * clean up commented code * fix broken physics positions * Clean comments, fix warnings (#77) * clean comments, fix warnings * fix missing import * steamworks 162 libs * fix mouselook --------- Co-authored-by: extrawurst <mail@rusticorn.com>
38 lines
1.1 KiB
Rust
38 lines
1.1 KiB
Rust
use bevy::{
|
|
ecs::{archetype::Archetypes, component::Components, entity::Entities},
|
|
prelude::*,
|
|
};
|
|
use shared::global_observer;
|
|
|
|
pub fn plugin(app: &mut App) {
|
|
global_observer!(app, report_entity_components);
|
|
}
|
|
|
|
#[derive(Event)]
|
|
pub struct ReportEntityComponents(pub Entity);
|
|
|
|
fn report_entity_components(
|
|
trigger: On<ReportEntityComponents>,
|
|
entities: &Entities,
|
|
components: &Components,
|
|
archetypes: &Archetypes,
|
|
) {
|
|
let Some(location) = entities.get(trigger.event().0) else {
|
|
warn!("failed to report entity components; had no location");
|
|
return;
|
|
};
|
|
let Some(archetype) = archetypes.get(location.archetype_id) else {
|
|
warn!("failed to report entity components; had no archetype");
|
|
return;
|
|
};
|
|
|
|
let mut output = format!("Entity {:?} Components: ", trigger.event().0);
|
|
for &component in archetype.components() {
|
|
if let Some(name) = components.get_name(component) {
|
|
output.push_str(&format!("{name}, "));
|
|
}
|
|
}
|
|
|
|
info!("{}; Caller: {}", output, trigger.caller());
|
|
}
|