fix(field): ensure node doesn't have a field when adding one

This commit is contained in:
Nova
2022-06-11 21:58:45 -04:00
parent 29c7ccc346
commit 84157fd7d6

View File

@@ -169,6 +169,10 @@ impl BoxField {
node.borrow().spatial.is_some(),
"Node does not have a spatial attached!"
);
ensure!(
node.borrow().field.is_none(),
"Node already has a field attached!"
);
let box_field = BoxField {
space: node.borrow().spatial.as_ref().unwrap().clone(),
size: Cell::new(size),
@@ -226,6 +230,10 @@ impl CylinderField {
node.borrow().spatial.is_some(),
"Node does not have a spatial attached!"
);
ensure!(
node.borrow().field.is_none(),
"Node already has a field attached!"
);
let cylinder_field = CylinderField {
space: node.borrow().spatial.as_ref().unwrap().clone(),
length: Cell::new(length),
@@ -289,6 +297,10 @@ impl SphereField {
node.borrow().spatial.is_some(),
"Node does not have a spatial attached!"
);
ensure!(
node.borrow().field.is_none(),
"Node already has a field attached!"
);
let sphere_field = SphereField {
space: node.borrow().spatial.as_ref().unwrap().clone(),
radius: Cell::new(radius),