Skip to content

Commit fccf796

Browse files
committed
fix: some zone weirdness ig
1 parent ae29f5b commit fccf796

File tree

2 files changed

+30
-31
lines changed

2 files changed

+30
-31
lines changed

Cargo.lock

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/nodes/spatial/zone.rs

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -16,26 +16,28 @@ use std::sync::{Arc, Weak};
1616
pub fn capture(spatial: &Arc<Spatial>, zone: &Arc<Zone>) {
1717
let old_distance = spatial.zone_distance();
1818
let new_distance = zone.field.distance(spatial, vec3a(0.0, 0.0, 0.0));
19-
if new_distance.abs() < old_distance.abs() {
20-
release(spatial);
21-
*spatial.old_parent.lock() = spatial.get_parent();
22-
*spatial.zone.lock() = Arc::downgrade(zone);
23-
let Some(zone_node) = zone.spatial.node.upgrade() else {
24-
return;
25-
};
26-
let Some(spatial_node) = spatial.node.upgrade() else {
27-
return;
28-
};
29-
let Ok(spatial_alias) = Alias::create(
30-
&spatial_node,
31-
&zone_node.get_client().unwrap(),
32-
SPATIAL_ASPECT_ALIAS_INFO.clone(),
33-
Some(&zone.captured),
34-
) else {
35-
return;
36-
};
37-
let _ = super::zone_client::capture(&zone_node, &spatial_alias);
19+
if new_distance.abs() > old_distance.abs() {
20+
return;
3821
}
22+
23+
release(spatial);
24+
*spatial.old_parent.lock() = spatial.get_parent();
25+
*spatial.zone.lock() = Arc::downgrade(zone);
26+
let Some(zone_node) = zone.spatial.node.upgrade() else {
27+
return;
28+
};
29+
let Some(spatial_node) = spatial.node.upgrade() else {
30+
return;
31+
};
32+
let Ok(spatial_alias) = Alias::create(
33+
&spatial_node,
34+
&zone_node.get_client().unwrap(),
35+
SPATIAL_ASPECT_ALIAS_INFO.clone(),
36+
Some(&zone.captured),
37+
) else {
38+
return;
39+
};
40+
let _ = super::zone_client::capture(&zone_node, &spatial_alias);
3941
}
4042
pub fn release(spatial: &Spatial) {
4143
let Some(spatial_node) = spatial.node.upgrade() else {
@@ -89,11 +91,8 @@ impl Zone {
8991
if distance > 0.0 {
9092
continue;
9193
}
92-
if let Some(zone) = zoneable.zone.lock().upgrade() {
93-
let zoneable_distance = zone.field.distance(&zoneable, [0.0; 3].into());
94-
if zoneable_distance < distance {
95-
continue;
96-
}
94+
if distance < zoneable.zone_distance() {
95+
continue;
9796
}
9897
current_zoneables.add_raw(&zoneable);
9998
}

0 commit comments

Comments
 (0)