From 37bd44e928fa973b77d549c7f9636b409f017cd6 Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Tue, 21 May 2019 17:20:29 +0200 Subject: [PATCH] Detaching from chainParent Implemented --- FloatingSpace/StrategyPart.js | 30 ++++++++++++++++++++++++++++-- StrategySpace/Workspace.js | 5 +++++ 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/FloatingSpace/StrategyPart.js b/FloatingSpace/StrategyPart.js index dfeae626b..140686c63 100644 --- a/FloatingSpace/StrategyPart.js +++ b/FloatingSpace/StrategyPart.js @@ -47,6 +47,8 @@ function newStrategyPart () { let isHighlighted let highlightCounter = 0 + let previousDistance + let detachFuse = 100 return thisObject function finalize () { @@ -127,8 +129,8 @@ function newStrategyPart () { } if (thisObject.payload.chainParent === undefined) { - thisObject.payload.targetPosition.x = canvas.floatingSpace.container.frame.width / 2, - thisObject.payload.targetPosition.y = canvas.floatingSpace.container.frame.height / 2 + thisObject.payload.targetPosition.x = thisObject.payload.position.x, + thisObject.payload.targetPosition.y = thisObject.payload.position.y } else { thisObject.payload.targetPosition.x = thisObject.payload.chainParent.payload.position.x thisObject.payload.targetPosition.y = thisObject.payload.chainParent.payload.position.y @@ -136,6 +138,30 @@ function newStrategyPart () { iconPhysics() highlightPhisycs() + detachingPhysics() + } + + function detachingPhysics () { + let THRESHOLD + if (thisObject.payload.floatingObject.isPinned === true) { + THRESHOLD = 1.10 + } else { + THRESHOLD = 2.00 + } + + detachFuse-- + if (detachFuse < 0) { + detachFuse = 0 + if (thisObject.payload.chainParent !== undefined) { + let distanceToChainParent = Math.sqrt(Math.pow(thisObject.payload.position.x - thisObject.payload.targetPosition.x, 2) + Math.pow(thisObject.payload.position.y - thisObject.payload.targetPosition.y, 2)) + if (previousDistance !== undefined) { + if (distanceToChainParent / previousDistance > 1.25) { + canvas.strategySpace.workspace.detachNode(thisObject.payload.node) + } + } + previousDistance = distanceToChainParent + } + } } function highlightPhisycs () { diff --git a/StrategySpace/Workspace.js b/StrategySpace/Workspace.js index 094659ad1..631b4d76d 100644 --- a/StrategySpace/Workspace.js +++ b/StrategySpace/Workspace.js @@ -5,6 +5,7 @@ function newWorkspace () { let thisObject = { tradingSystem: undefined, container: undefined, + detachNode: detachNode, getContainer: getContainer, initialize: initialize, finalize: finalize @@ -43,6 +44,10 @@ function newWorkspace () { } + function detachNode (node) { + node.payload.chainParent = undefined + } + function createPart (partType, name, node, parentNode, chainParent, title) { let payload = {} if (chainParent === undefined) {