diff --git a/Projects/Superalgos/UI/Spaces/Floating-Space/FloatingLayer.js b/Projects/Superalgos/UI/Spaces/Floating-Space/FloatingLayer.js index 1d44df68b..0bdfa913f 100644 --- a/Projects/Superalgos/UI/Spaces/Floating-Space/FloatingLayer.js +++ b/Projects/Superalgos/UI/Spaces/Floating-Space/FloatingLayer.js @@ -20,6 +20,7 @@ function newFloatingLayer() { let thisObject = { + isProximityPhysicsNeeded: false, addFloatingObject: addFloatingObject, removeFloatingObject: removeFloatingObject, getFloatingObject: getFloatingObject, @@ -283,12 +284,21 @@ function newFloatingLayer() { */ try { + + thisObject.isProximityPhysicsNeeded = false // this might be turned on bu the visiblePhysics downstream if needed. + makeVisible() makeInvisible() visiblePhysics() enginePhysics() - proximityPhysics() + if (thisObject.isProximityPhysicsNeeded === true) { + /* + This is an expensive calculation, so we are going to do it only when we need to. + */ + proximityPhysics() + } + function visiblePhysics() { for (let i = 0; i < visibleFloatingObjects.length; i++) { let floatingObject = visibleFloatingObjects[i] diff --git a/Projects/Superalgos/UI/Spaces/Floating-Space/UiObject.js b/Projects/Superalgos/UI/Spaces/Floating-Space/UiObject.js index cd9b6f6be..7d5910a89 100644 --- a/Projects/Superalgos/UI/Spaces/Floating-Space/UiObject.js +++ b/Projects/Superalgos/UI/Spaces/Floating-Space/UiObject.js @@ -444,6 +444,8 @@ function newUiObject() { if (rightDragging !== true) { return } if (thisObject.payload.chainParent !== undefined) { return } + UI.projects.superalgos.spaces.floatingSpace.floatingLayer.isProximityPhysicsNeeded = true + let nearbyFloatingObjects = thisObject.payload.floatingObject.nearbyFloatingObjects let compatibleTypes @@ -586,6 +588,8 @@ function newUiObject() { if (rightDragging !== true) { return } if (thisObject.payload.referenceParent !== undefined) { return } + UI.projects.superalgos.spaces.floatingSpace.floatingLayer.isProximityPhysicsNeeded = true + let nearbyFloatingObjects = thisObject.payload.floatingObject.nearbyFloatingObjects let compatibleTypes