code review results
Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io>
This commit is contained in:
@@ -1,8 +1,16 @@
|
||||
//! Minimal test to verify Transform change detection works
|
||||
|
||||
use std::sync::{
|
||||
Arc,
|
||||
Mutex,
|
||||
};
|
||||
|
||||
use bevy::prelude::*;
|
||||
use lib::networking::{NetworkedEntity, NetworkedTransform, Synced};
|
||||
use std::sync::{Arc, Mutex};
|
||||
use lib::networking::{
|
||||
NetworkedEntity,
|
||||
NetworkedTransform,
|
||||
Synced,
|
||||
};
|
||||
use uuid::Uuid;
|
||||
|
||||
#[test]
|
||||
@@ -11,33 +19,46 @@ fn test_transform_change_detection_basic() {
|
||||
app.add_plugins(MinimalPlugins);
|
||||
|
||||
// Add the auto_detect system
|
||||
app.add_systems(Update, lib::networking::auto_detect_transform_changes_system);
|
||||
app.add_systems(
|
||||
Update,
|
||||
lib::networking::auto_detect_transform_changes_system,
|
||||
);
|
||||
|
||||
// Add a test system that runs AFTER auto_detect to check if NetworkedEntity was changed
|
||||
// We need to check DURING the frame because change detection is cleared after each frame
|
||||
// Add a test system that runs AFTER auto_detect to check if NetworkedEntity was
|
||||
// changed We need to check DURING the frame because change detection is
|
||||
// cleared after each frame
|
||||
let was_changed = Arc::new(Mutex::new(false));
|
||||
let was_changed_clone = was_changed.clone();
|
||||
|
||||
app.add_systems(Update, move |query: Query<&NetworkedEntity, Changed<NetworkedEntity>>| {
|
||||
let count = query.iter().count();
|
||||
if count > 0 {
|
||||
println!("✓ Test system detected {} changed NetworkedEntity components", count);
|
||||
*was_changed_clone.lock().unwrap() = true;
|
||||
} else {
|
||||
println!("✗ Test system detected 0 changed NetworkedEntity components");
|
||||
}
|
||||
});
|
||||
app.add_systems(
|
||||
Update,
|
||||
move |query: Query<&NetworkedEntity, Changed<NetworkedEntity>>| {
|
||||
let count = query.iter().count();
|
||||
if count > 0 {
|
||||
println!(
|
||||
"✓ Test system detected {} changed NetworkedEntity components",
|
||||
count
|
||||
);
|
||||
*was_changed_clone.lock().unwrap() = true;
|
||||
} else {
|
||||
println!("✗ Test system detected 0 changed NetworkedEntity components");
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
// Spawn an entity with Transform and NetworkedTransform
|
||||
let node_id = Uuid::new_v4();
|
||||
let entity_id = Uuid::new_v4();
|
||||
|
||||
let _entity = app.world_mut().spawn((
|
||||
NetworkedEntity::with_id(entity_id, node_id),
|
||||
NetworkedTransform::default(),
|
||||
Transform::from_xyz(0.0, 0.0, 0.0),
|
||||
Synced,
|
||||
)).id();
|
||||
let _entity = app
|
||||
.world_mut()
|
||||
.spawn((
|
||||
NetworkedEntity::with_id(entity_id, node_id),
|
||||
NetworkedTransform::default(),
|
||||
Transform::from_xyz(0.0, 0.0, 0.0),
|
||||
Synced,
|
||||
))
|
||||
.id();
|
||||
|
||||
// Run one update to clear initial change detection
|
||||
println!("First update (clearing initial change detection)...");
|
||||
@@ -62,5 +83,8 @@ fn test_transform_change_detection_basic() {
|
||||
// Check if our test system detected the change
|
||||
let result = *was_changed.lock().unwrap();
|
||||
println!("Was NetworkedEntity marked as changed? {}", result);
|
||||
assert!(result, "NetworkedEntity should be marked as changed after Transform modification");
|
||||
assert!(
|
||||
result,
|
||||
"NetworkedEntity should be marked as changed after Transform modification"
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user