diff --git a/FloatingSpace/FloatingObject.js b/FloatingSpace/FloatingObject.js index a87910832..f9f6091ab 100644 --- a/FloatingSpace/FloatingObject.js +++ b/FloatingSpace/FloatingObject.js @@ -223,7 +223,7 @@ function newFloatingObject () { function tensionPhysics () { /* Tension Effect */ - if (thisObject.tensionLevel !== TENSION_LEVEL.NO_TENSION) { + if (thisObject.tensionLevel !== TENSION_LEVEL.NO_TENSION && thisObject.isOnFocus !== true) { let parent = thisObject.payload.chainParent if (parent === undefined) { return } if (parent.payload === undefined) { return } @@ -234,6 +234,22 @@ function newFloatingObject () { let axisCount = parentChildren.childrenCount let axisIndex = parentChildren.childIndex let baseAngle = 0 + let tensionLevelAngle + + switch (thisObject.tensionLevel) { + case TENSION_LEVEL.LEVEL_360: + tensionLevelAngle = 360 + break + case TENSION_LEVEL.LEVEL_180: + tensionLevelAngle = 180 + break + case TENSION_LEVEL.LEVEL_90: + tensionLevelAngle = 90 + break + case TENSION_LEVEL.LEVEL_45: + tensionLevelAngle = 45 + break + } if (axisIndex === undefined) { axisCount = 1 @@ -253,9 +269,10 @@ function newFloatingObject () { } } - let angleStep = 360 / axisCount + let separatorAngle = (360 - tensionLevelAngle) / 2 + let angleStep = tensionLevelAngle / axisCount - thisObject.payload.angle = baseAngle + (axisIndex - 1) * angleStep + thisObject.payload.angle = baseAngle + separatorAngle + (axisIndex - 1) * angleStep if (thisObject.payload.angle >= 360) { thisObject.payload.angle = thisObject.payload.angle - 360 }