From 84157fd7d6fd642c6826d1ed014cc2550f467374 Mon Sep 17 00:00:00 2001 From: Nova Date: Sat, 11 Jun 2022 21:58:45 -0400 Subject: [PATCH] fix(field): ensure node doesn't have a field when adding one --- src/nodes/field.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/nodes/field.rs b/src/nodes/field.rs index 941cc69..6aec116 100644 --- a/src/nodes/field.rs +++ b/src/nodes/field.rs @@ -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),