0x20ec68ba…9635sent to0xbd11994a…7699·#20,716,204·view on Etherscan
jb_mass_main2("scale",[e.scale.x,e.scale.y,e.scale.z],[t,t,t],[t,t,t],a,i);if(e.userData.animationQueue==undefined){e.userData.animationQueue=[]}e.userData.animationQueue.push(n)}function addNewShape(e,t,a,i,n=false){for(ax of Axis){shapeParams=extraShapes[a];if(ax.name==e){if(n){let t=false;for(let e of ax.pivots){if(e.userData.name.slice(0,a.length)==a){t=true;break}}if(!t){continue}}if(shapeParams.cone){addConeToAxis(ax,t,shapeParams,i,a);return}else{if(a.includes("terrain")){i*=terrainsAppearAndDisappearMultiplier}if(a.includes("knot")){i*=knotsAppearAndDisappearMultiplier}addExtraShapeToAxis(ax,t,a,shapeParams,i)}}}}function rotateAxis(t,a,i,n,r=1,o=.1){for(let e of Axis){if(e.name==t){if(e.mainPivot.userData.animationQueue==undefined){e.mainPivot.userData.animationQueue=[]}if(a!==undefined){a=THREE.MathUtils.degToRad(a);e.mainPivot.userData.animationQueue.push(makeAnimationForQueue("angleX",e.mainPivot.rotation.x,a,a,r,o))}if(i!==undefined){i=THREE.MathUtils.degToRad(i);e.mainPivot.userData.animationQueue.push(makeAnimationForQueue("angleY",e.mainPivot.rotation.y,i,i,r,o))}if(n!==undefined){n=THREE.MathUtils.degToRad(n);e.mainPivot.userData.animationQueue.push(makeAnimationForQueue("angleZ",e.mainPivot.rotation.z,n,n,r,o))}}}}function moveAxis(t,a,i,n,r=1,o=.1){for(let e of Axis){if(e.name==t){if(e.mainPivot.userData.animationQueue==undefined){e.mainPivot.userData.animationQueue=[]}if(a!==undefined){a=THREE.MathUtils.degToRad(a);e.mainPivot.userData.animationQueue.push(makeAnimationForQueue("x",e.mainPivot.position.x,a,a,r,o))}if(i!==undefined){i=THREE.MathUtils.degToRad(i);e.mainPivot.userData.animationQueue.push(makeAnimationForQueue("y",e.mainPivot.position.y,i,i,r,.1))}if(n!==undefined){n=THREE.MathUtils.degToRad(n);e.mainPivot.userData.animationQueue.push(makeAnimationForQueue("z",e.mainPivot.position.z,n,n,r,.1))}}}}function getObjectVertexXYZ(e,a,i){for(let t of Axis){if(t.name==e){for(let e of t.pivots){if(e.userData.name==a){for(child of e.children){let e=child.geometry.getAttribute('position');if(i==undefined){i=rand(0,e.count,1)}let t=new THREE.Vector3(e.getX(i),e.getY(i),e.getZ(i));t.applyMatrix4(child.matrixWorld);return t}}}}}}function addRotationLoop(a,e,n,r){for(let t of Axis){if(t.name==e){for(let e of t.pivots){if(e.userData.name==a){for(let i of e.children){if(i.userData.name==a){let e;let t;if(n=="X"){e="angleX";t=i.rotation.x}else if(n=="Y"){e="angleY";t=i.rotation.y}else if(n=="Z"){e="angleZ";t=i.rotation.z}let a=makeAnimationForQueue(e,t,t+1,t+1,r,undefined);if(i.userData.animationLoop===undefined){i.userData.animationLoop=[]}i.userData.animationLoop.push(a)}}}}}}}function removeRotationLoop(i,e,n){for(let t of Axis){if(t.name==e){for(let e of t.pivots){if(e.userData.name==i){for(let a of e.children){if(a.userData.name==i){if(a.userData.animationLoop){let t;if(n=="X"){t="angleX"}else if(n=="Y"){t="angleY"}else if(n=="Z"){t="angleZ"}for(let e=0;e<a.userData.animationLoop.length;e++){if(a.userData.animationLoop[e].attribute==t){a.userData.animationLoop.splice(e,1);return}}}}}}}}}}async function walletActivityUpdates(e){try{return await getLastBlockReceipts(e)}catch(t){}}function disableAxis(t,a=.01){t.enabled=false;for(let e of t.pivots){if(!e.userData.originalScale){e.userData.originalScale=e.scale.x}updateObjectScale2(e,0,a)}}function enableAxis(e,a=.01){e.enabled=true;for(let t of e.pivots){t.scale.set(0,0,0);updateObjectScale2(t,t.userData.originalScale,a);for(let e of t.children){e.visible=true}}}function axisHasAnimatingPivots(t){for(let e of t.pivots){if(e.userData.animationQueue&&e.userData.animationQueue.length>0){return true}}return false}function setAxisInvisibleAndDisabled(e){e.enabled=false;for(let t of e.pivots){t.userData.originalScale=t.scale.x;t.scale.set(0,0,0);for(let e of t.children){e.visible=false}}}function disappearPivot(e,t=.01,a=false,i=undefined,n=undefined){e.userData.disabled=true;if(a){e.userData.toBeRemovedAfterShrink=true}if(!e.children[0].userData.originalScale){e.children[0].userData.originalScale=JSON.parse(JSON.stringify(e.children[0].scale))}if(e.userData.name.includes("terrain")){t*=terrainsAppearAndDisappearMultiplier}if(e.userData.name.includes("knot")){t*=knotsAppearAndDisappearMultiplier}if(i){e.userData.delayedDisappear=true;setTimeout(()=>{e.userData.shrinkDown=t;e.userData.delayedDisappear=false;e.userData.disappearCallback=n},rand(i[0],i[1],1))}else{e.userData.shrinkDown=t;e.userData.disappearCallback=n}}function disappearObjects(i,n=.01,r=false,o=undefined,s=undefined,l=undefined){let c=0;for(let e=0;e<500;e++){let e=Axis[rand(0,Axis.length-1,1)];if(!e.enabled||!e.pivots||e.pivots.length==0){continue}let t=rand(0,e.pivots.length-1,1);let a=e.pivots[t];if(a.userData.shrinkDown||a.userData.growUp){if(o!="E"){continue}}if(s&&a.userData.shapeType!=s){continue}if(o&&a.userData.name.slice(0,o.length)!=o){continue}if(a.userData.disabled){if(o!="E"&&!r){continue}}if(a.userData.delayedDisappear||a.userData.delayedAppear){continue}disappearPivot(a,n,r,l);c++;if(c>=i){return c}}return c}function disappearObjectsByType(e,t=.01,a=false,i=undefined,n=undefined,r=undefined){let o=0;for(ax of Axis){for(pivot of ax.pivots){if(n&&pivot.userData.shapeType!=n){continue}if(i&&pivot.userData.name.slice(0,i.length)!=i){continue}pivot.userData.growUp=undefined;disappearPivot(pivot,t,a,r);o++;if(e){if(o>=e){return o}}}}return o}function appearObjects(a,i=.01,e=.3,n=undefined){let r=0;for(let e=0;e<500;e++){let e=Axis[rand(0,Axis.length-1,1)];if(!e.enabled||!e.pivots||e.pivots.length==0){continue}let t=e.pivots[rand(0,e.pivots.length-1,1)];if(t.userData.shrinkDown||t.userData.growUp){continue}if(t.userData.delayedDisappear||t.userData.delayedAppear){continue}if(!t.userData.disabled){continue}t.userData.disabled=false;if(t.userData.name.includes("terrain")){i*=terrainsAppearAndDisappearMultiplier}if(t.userData.name.includes("knot")){i*=knotsAppearAndDisappearMultiplier}if(n){t.userData.delayedAppear=true;setTimeout(()=>{t.userData.growUp=i;t.userData.delayedAppear=false},rand(n[0],n[1],1))}else{t.userData.growUp=i}r++;if(r>=a){break}continue}return r}function pickAxis(t,a=[],i=false,n=false){for(let e=0;e<100;e++){let e=rand(0,Axis.length-1,1);if(!Axis[e].pivots||Axis[e].pivots.length==0){continue}if(n&&Axis[e].extraShapes.size==0){continue}if(a.indexOf(e)!=-1||i&&Axis[e].extremeAngle){continue}if(Axis[e].enabled==t){return Axis[e]}}}function getLoopingObjects(){let a=[];for(let t of Axis){if(t.enabled){for(let e of t.pivots){if(e.children[0].userData.animationLoop||e.userData.animationLoop){a.push([t.name,e])}}}}return a}function getNotLoopingObjects(){let a=[];for(let t of Axis){if(t.enabled){for(let e of t.pivots){if(!e.children[0].animationLoop){a.push([t.name,e])}}}}return a}function animateFog(){if(SCENE.scene.fog.userData){if(SCENE.scene.fog.userData.nearTo){if(SCENE.scene.fog.near<SCENE.scene.fog.userData.nearTo){SCENE.scene.fog.near+=dynamicUpdateAnimationSpeeds.fog.speed;SCENE.scene.fog.near=parseFloat(SCENE.scene.fog.near.toFixed(5))}else if(SCENE.scene.fog.near>SCENE.scene.fog.userData.nearTo){SCENE.scene.fog.near-=dynamicUpdateAnimationSpeeds.fog.speed;SCENE.scene.fog.near=parseFloat(SCENE.scene.fog.near.toFixed(5))}else{SCENE.scene.fog.userData.nearTo=undefined}}if(SCENE.scene.fog.userData.farTo){if(SCENE.scene.fog.far<SCENE.scene.fog.userData.farTo){SCENE.scene.fog.far+=dynamicUpdateAnimationSpeeds.fog.speed;SCENE.scene.fog.far=parseFloat(SCENE.scene.fog.far.toFixed(5))}else if(SCENE.scene.fog.far>SCENE.scene.fog.userData.farTo){SCENE.scene.fog.far-=dynamicUpdateAnimationSpeeds.fog.speed;SCENE.scene.fog.far=parseFloat(SCENE.scene.fog.far.toFixed(5))}else{SCENE.scene.fog.userData.farTo=undefined}}if(SCENE.scene.fog.near>SCENE.scene.fog.far){SCENE.scene.fog.far=SCENE.scene.fog.near+1}else if(SCENE.scene.fog.far-SCENE.scene.fog.near<1){SCENE.scene.fog.far=SCENE.scene.fog.near+1}}}function getNShapesWithTypes(){let t=Object.keys(extraShapes);let a={};for(let e of t){a[e]=0}for(let e of Axis){if(e.enabled){for(pivot of e.pivots){if(!pivot.userData.disabled){for(let e of t){if(pivot.userData.shapeType==e){if(a[e]){a[e]++}else{a[e]=1}}}}}}}return a}function pickAxisForShape(t){let a=[];for(let e=0;e<Axis.length;e++){if(Axis[e].enabled&&extraShapes[t].axis.indexOf(e+1)>-1){a.push(e)}}if(a.length>0){return Axis[pick(a)]}}function pivotNotAnimating(e){for(child of e.children){if(child.userData.animationQueue&&child.userData.animationQueue.length>0){return false}}return e.userData.animationQueue&&e.userData.animationQueue.length==0}function pivotIsAppearingOrDisappearing(e){return Boolean(e.userData.shrinkDown||e.userData.growUp||e.userData.delayedDisappear||e.userData.delayedAppear)}function processUpdateTimers(){let t=getCurrentTs();for(let e=0;e<Axis.length;e++){ax=Axis[e];if(e==5||e==6){if(ax.enabled&&ax.TS_ENABLED&&t>ax.TS_ENABLED){disableAxis(ax,dynamicUpdateAnimationSpeeds.axisAppearAndDisappear.speed);ax.TS_ENABLED=undefined}}if(ax.TS_ROTATED&&t>ax.TS_ROTATED){rotateAxis(ax.name,undefined,undefined,ax.originalAngle,dynamicUpdateAnimationSpeeds.axisAngle.speed,dynamicUpdateAnimationSpeeds.axisAngle.curve);ax.TS_ROTATED=undefined}if(ax.TS_ROTATED_EXTREME&&t>ax.TS_ROTATED_EXTREME){rotateAxis(ax.name,undefined,undefined,ax.originalAngle,dynamicUpdateAnimationSpeeds.axisExtremeAngle.speed,dynamicUpdateAnimationSpeeds.axisExtremeAngle.curve);ax.TS_ROTATED_EXTREME=undefined}if(ax.TS_POSITION&&t>ax.TS_POSITION){moveAxis(ax.name,ax.originalPosition[0],ax.originalPosition[1],ax.originalPosition[2],dynamicUpdateAnimationSpeeds.axisPosition.speed,dynamicUpdateAnimationSpeeds.axisPosition.curve);ax.TS_POSITION=undefined}if(ax.TS_NEGATIVESPACE&&t>ax.TS_NEGATIVESPACE){try{removeNegativeSpace(ax);ax.TS_NEGATIVESPACE=undefined}catch(a){}}if(ax.TS_NUMBEROFKNOTS&&t>ax.TS_NUMBEROFKNOTS){let e=0;for(p of ax.pivots){if(p.userData.shapeType=="knot"){e++}}let t=e-ax.originalNumberOfKnots;if(t>0){disappearObjectsByType(300,dynamicUpdateAnimationSpeeds.objectAppearAndDisappear.speed,true,"E","knot")}ax.TS_NUMBEROFKNOTS=undefined}for(let e of ax.pivots){if(e.userData.TS_SPINNING&&t>e.userData.TS_SPINNING){removeRotationLoop(e.userData.name,ax.name,e.userData.spinningAxis);e.userData.TS_SPINNING=undefined}if(ax.TS_KNOTSPQ&&t>ax.TS_KNOTSPQ&&e.userData.name[0]=="E"){extraShapes.knot.p=extraShapes.knot.originalP;extraShapes.knot.q=extraShapes.knot.originalQ;disappearPivot(e,dynamicUpdateAnimationSpeeds.objectAppearAndDisappear.speed,true,undefined,()=>{addNewShape(ax.name,`knot_1`,"knot",dynamicUpdateAnimationSpeeds.objectAppearAndDisappear.speed)});setTimeout(e=>{e.TS_KNOTSPQ=undefined},1e3,ax)}if(e.userData.TS_ROTATIONDIRECTION&&t>e.userData.TS_ROTATIONDIRECTION){switchObjectRotationDirection(e.userData.name,ax.name,dynamicUpdateAnimationSpeeds.axisRotationDirection.speed,dynamicUpdateAnimationSpeeds.axisRotationDirection.curve);e.userData.TS_ROTATIONDIRECTION=undefined}}if(ax.TS_EXTRAOBJECTCLASS&&t>ax.TS_EXTRAOBJECTCLASS){for(pivot of ax.pivots){if(pivot.userData.name.includes("update17")){disappearPivot(pivot,dynamicUpdateAnimationSpeeds.objectAppearAndDisappear.speed,true)}}ax.TS_EXTRAOBJECTCLASS=undefined}}if(SCENE.camera.userData.TS_POSITION&&t>SCENE.camera.userData.TS_POSITION){updateCameraPosition(undefined,undefined,SCENE.camera.userData.originalPositionZ,dynamicUpdateAnimationSpeeds.cameraPosition.speed,dynamicUpdateAnimationSpeeds.cameraPosition.curve);SCENE.camera.userData.TS_POSITION=undefined}if(SCENE.scene.fog.userData.TS_ENABLED&&t>SCENE.scene.fog.userData.TS_ENABLED){if(SCENE.scene.fog.userData.nearTo){}else{SCENE.scene.fog.userData={nearTo:100,farTo:100};SCENE.scene.fog.enabled=false;SCENE.scene.fog.userData.TS_ENABLED=undefined}}}function updateScene(){try{if(document.hidden){return}}catch(c){}addOrRemoveAxisUpdateTimeout=getValueByBlockNumber(addOrRemoveAxisUpdateTimeoutRanges,SCENE.nBlocks);axisAngleUpdateTimeout=getValueByBlockNumber(axisAngleUpdateTimeoutRanges,SCENE.nBlocks);axisExtremeAngleUpdateTimeout=getValueByBlockNumber(axisExtremeAngleUpdateTimeoutRanges,SCENE.nBlocks);axisPositionUpdateTimeout=getValueByBlockNumber(axisPositionUpdateTimeoutRanges,SCENE.nBlocks);objectSpinningUpdateTimeout=getValueByBlockNumber(objectSpinningUpdateTimeoutRanges,SCENE.nBlocks);cameraPositionUpdateTimeout=getValueByBlockNumber(cameraPositionUpdateTimeoutRanges,SCENE.nBlocks);fogUpdateTimeout=getValueByBlockNumber(fogUpdateTimeoutRanges,SCENE.nBlocks);axisRotationDirectionUpdateTimeout=getValueByBlockNumber(axisRotationDirectionUpdateTimeoutRanges,SCENE.nBlocks);objectClassUpdateTimeout=getValueByBlockNumber(objectClassUpdateTimeoutRanges,SCENE.nBlocks);negativeSpaceUpdateTimeout=getValueByBlockNumber(negativeSpaceUpdateTimeoutRanges,SCENE.nBlocks);numberOfKnotsUpdateTimeout=getValueByBlockNumber(numberOfKnotsUpdateTimeoutRanges,SCENE.nBlocks);knotsPQUpdateTimeout=getValueByBlockNumber(knotsPQUpdateTimeoutRanges,SCENE.nBlocks);try{processUpdateTimers()}catch(c){}for(let t of Axis){for(let e of t.pivots){if(e.userData.toBeRemoved&&!(e.userData.growUp||e.userData.shrinkDown)){SCENE.scene.remove(e);e.userData.alreadyRemoved=true}}t.pivots=t.pivots.filter(e=>!e.userData.alreadyRemoved)}let l="";if(l){}var e=SCENE.data.contract.tiers.royalty_received_tier;var t=SCENE.data.contract.tiers.contract_activity_tier;var a=SCENE.data.contract.tiers.sends_tier;var i=SCENE.data.contract.tiers.approvals_tier;l="";let n=shuffle([1,2,3,4,8,9,10,11,14,16,17]);let r=[];let o=true;if(SCENE.data.memory){if(!SCENE.data.memoryPossibleUpdatesRandom){SCENE.data.memoryPossibleUpdatesRandom=n}for(let t=0;t<SCENE.data.memory;t++){SCENE.data.memory--;let e=SCENE.data.memoryPossibleUpdatesRandom.pop();r.push(e);if(t>=1){break}}}else{if(SCENE.data.wallets&&n.length>0){r.push(n.pop());SCENE.data.wallets=undefined;o=false}}if(o==true){if(SCENE.invertedRandomUpdate==true){let e=n.pop();r.push(e);SCENE.invertedRandomUpdate=false}}if(e.changed){r.push(5)}if(t.changed){r.push(13)}if(a.changed){r.push(6)}if(i.changed){r.push(7)}if(r.length==0){r.push(0)}if(r.indexOf(0)!=-1){let a=0;let i=0;for(let t of Axis){for(let e of t.pivots){if(e.userData.disabled){i++}else{a++}}}let e=rand(10,20,1);let t=rand(1,10,1);try{if(a/i<4){t=0}}catch{t=0}l+=`nObjectsToAppear: ${e} nObjectsToDisappear: ${t}`;let n=0;let r=0;n=appearObjects(e,dynamicUpdateAnimationSpeeds.objectAppearAndDisappear.speed);if(t){r=disappearObjects(t,dynamicUpdateAnimationSpeeds.objectAppearAndDisappear.speed)}l+=`Appeared objects:${n} Dissapeared objects:${r} (${a},${i})\n`}if(r.indexOf(1)!=-1){let e=Axis[pick([5,6])];if(e.enabled){disableAxis(e,dynamicUpdateAnimationSpeeds.axisAppearAndDisappear.speed);l+=`Disabled axis:${e.name}\n`}else{enableAxis(e,dynamicUpdateAnimationSpeeds.axisAppearAndDisappear.speed);l+=`Enabled axis:${e.name}\n`;e.TS_ENABLED=getCurrentTs()+addOrRemoveAxisUpdateTimeout}}if(r.indexOf(2)!=-1){let e=pickAxis(true,[],true);if(e==undefined){return}let t=randFromRange(hashOverwrites.axisAngle);let a=THREE.MathUtils.radToDeg(e.mainPivot.rotation.z);if(!e.originalAngle){e.originalAngle=a}rotateAxis(e.name,undefined,undefined,t,dynamicUpdateAnimationSpeeds.axisAngle.speed,dynamicUpdateAnimationSpeeds.axisAngle.curve);l+=`Changed ${e.name} angle from ${a} to ${t}\n`;e.TS_ROTATED=getCurrentTs()+axisAngleUpdateTimeout}if(r.indexOf(3)!=-1){let e=pickAxis(true,[],true);if(e==undefined){return}let t=THREE.MathUtils.radToDeg(e.centralRodRotation[2]);let a=rand(0,1,.001)>.5?rand(-90,-30,1):rand(30,90,1);let i=THREE.MathUtils.radToDeg(e.mainPivot.rotation.z);if(e.originalAngle==undefined){e.originalAngle=i}e.extremeAngle=a;e.axisAngle=[a,a,1];e.extremeAngleEnabledTimestamp=getCurrentTs();rotateAxis(e.name,undefined,undefined,a,dynamicUpdateAnimationSpeeds.axisExtremeAngle.speed,dynamicUpdateAnimationSpeeds.axisExtremeAngle.curve);l+=`Changed ${e.name} extreme angle from ${t} to ${a}\n`;e.TS_ROTATED_EXTREME=getCurrentTs()+axisExtremeAngleUpdateTimeout}if(r.indexOf(4)!=-1){let e=pickAxis(true,[],false);let t=`${e.centraRodPosition[0]} ${e.centraRodPosition[1]} ${e.centraRodPosition[2]}`;if(!e.originalPosition){e.originalPosition=JSON.parse(JSON.stringify(e.centraRodPosition))}let a=undefined;let i=undefined;let n=undefined;let r=rand(0,2,1);if(r==0){a=randFromRange(hashOverwrites.axisX)}else if(r==1){i=randFromRange(hashOverwrites.axisY)}else{n=randFromRange(hashOverwrites.axisZ)}let o=`${a/20} ${i/20} ${n/20}`;moveAxis(e.name,a,i,n,dynamicUpdateAnimationSpeeds.axisPosition.speed,dynamicUpdateAnimationSpeeds.axisPosition.curve);l+=`Changed ${e.name} position from ${t} to ${o}\n`;e.TS_POSITION=getCurrentTs()+axisPositionUpdateTimeout}if(r.indexOf(5)!=-1){let a=tierToValue(tiersStructure.royalty,e.value);let i=pickAxis(true,[],false);for(let t of i.pivots){let e=t.userData.originalRotationSpeed*a;updateObjectRotationSpeed(t.userData.name,i.name,e,dynamicUpdateAnimationSpeeds.objectRotationSpeed.speed,dynamicUpdateAnimationSpeeds.objectRotationSpeed.curve);l+=`Changed ${i.name} ${t.userData.name} rotation speed from ${t.userData.originalRotationSpeed} to ${e}\n`}}if(r.indexOf(6)!=-1){let i=tierToValue(tiersStructure.sends,a.value);for(ax of Axis){if(ax.enabled){for(let a of ax.pivots){let e=a.userData.originalPosition[0];let t=e*i;updateObjectDistanceFromAxis(a.userData.name,ax.name,t,dynamicUpdateAnimationSpeeds.objectPosition.speed,dynamicUpdateAnimationSpeeds.objectPosition.curve);l+=`Changed ${ax.name} ${a.userData.name} distance from axis from ${e} to ${t}\n`}}}}if(r.indexOf(7)!=-1){let e=tierToValue(tiersStructure.approvals,i.value);if(!SCENE.worldPlane.userData.originalScaleX){SCENE.worldPlane.userData.originalScaleX=SCENE.worldPlane.scale.x}let t=SCENE.worldPlane.userData.originalScaleX*e;updateBackgroundGradientScale(t,dynamicUpdateAnimationSpeeds.gradientScale.speed,dynamicUpdateAnimationSpeeds.gradientScale.curve);l+=`Changed gradient scale from ${SCENE.worldPlane.scale.x} to ${t}\n`}if(r.indexOf(8)!=-1){let r=getLoopingObjects().length;let t=getNotLoopingObjects();shuffle(t);let o=randFromRange(spinningObjectsRange);l+=`N spinning objects: ${r} Desired N spinning objects: ${o}\n`;let s=false;for(let e=0;e<500;e++){for(let n of t){let e=n[0];let t=n[1];if(t.userData.name.includes("terrain")){continue}let a=randFromRange(dynamicUpdateAnimationSpeeds.objectRotationSpeed2.speed);let i="Y";if(t.userData.name.includes("cone")){i="Z";a*=conesSpinningSpeedMultiplier}else if(t.userData.name.includes("knot")){a*=knotsSpinningSpeedMultiplier}if(t.children[0].userData.animationLoop==undefined||t.children[0].userData.animationLoop.length==0){addRotationLoop(t.userData.name,e,i,a);l+=`Adding rotation loop to ${e} ${t.userData.name} speed: ${a}\n`;t.userData.spinningAxis=i;t.userData.TS_SPINNING=getCurrentTs()+objectSpinningUpdateTimeout;r++;if(r>=o){s=true;break}break}}if(s){break}}}if(r.indexOf(9)!=-1){if(SCENE.camera.userData.animationQueue&&SCENE.camera.userData.animationQueue.length>0){}else{if(!SCENE.camera.userData.originalPositionZ){SCENE.camera.userData.originalPositionZ=SCENE.camera.position.z}SCENE.camera.userData.positionUpdateTimestamp=getCurrentTs();let e=rand(30,cameraZ-5,1);if(rand(0,1,.01)>.5){e=rand(cameraZ+5,150,1)}updateCameraPosition(undefined,undefined,e,dynamicUpdateAnimationSpeeds.cameraPosition.speed,dynamicUpdateAnimationSpeeds.cameraPosition.curve);l+=`Changed camera position to ${e}\n`;SCENE.camera.userData.TS_POSITION=getCurrentTs()+cameraPositionUpdateTimeout}}if(r.indexOf(10)!=-1){if(!SCENE.scene.fog.enabled){if(SCENE.scene.fog.userData.nearTo){}else{SCENE.scene.fog.userData={nearTo:fogNear,farTo:fogFar};SCENE.scene.fog.enabled=true;l+=`Enabled fog\n`;SCENE.scene.fog.userData.TS_ENABLED=getCurrentTs()+fogUpdateTimeout}}else{if(SCENE.scene.fog.userData.nearTo){}else{SCENE.scene.fog.userData={nearTo:250,farTo:260};SCENE.scene.fog.enabled=false;l+=`Disabled fog\n`}}}if(r.indexOf(11)!=-1){let t=pickAxis(true,[],false);for(let e of t.pivots){t.rotationDirectionSwitchTimestamp=getCurrentTs();switchObjectRotationDirection(e.userData.name,t.name,dynamicUpdateAnimationSpeeds.axisRotationDirection.speed,dynamicUpdateAnimationSpeeds.axisRotationDirection.curve);e.userData.TS_ROTATIONDIRECTION=getCurrentTs()+axisRotationDirectionUpdateTimeout}l+=`Changed axis rotation direction ${t.name} \n`}if(r.indexOf(13)!=-1){let a=0;for(let e of Axis){if(e.enabled){a+=e.pivots.map(e=>!e.userData.disabled).length}}let i=getNShapesWithTypes();if(!SCENE.originalNumberOfShapes){SCENE.originalNumberOfShapes=a;SCENE.originalNumberOfShapesByType=i}let e=tierToValue(tiersStructure.contract,t.value);for(let t of Object.keys(SCENE.originalNumberOfShapesByType)){if(t=="terrain"||t=="knot"){continue}if(SCENE.originalNumberOfShapesByType[t]){var s=SCENE.originalNumberOfShapesByType[t]*e}else{var s=i[t]*e}if(i[t]!=s){l+=`${t} current: ${i[t]} desired: ${s}\n`}if(a<300&&s>i[t]){for(let e=0;e<s-i[t];e++){let e=pickAxisForShape(t);if(!e){continue}setTimeout(()=>{addNewShape(e.name,`E_${t}_${generateUUID()}`,t,dynamicUpdateAnimationSpeeds.objectAppearAndDisappear.speed);l+=`Added shape ${t} to ${e.name} \n`},randFromRange(addOrRemoveObjectsTieredTimeSpreadRange))}}else if(a>20&&s<i[t]){let e=disappearObjects(Math.abs(i[t]-s),dynamicUpdateAnimationSpeeds.objectAppearAndDisappear.speed,true,undefined,t,addOrRemoveObjectsTieredTimeSpreadRange);l+=`Removed ${e}\n`}else{}}}if(r.indexOf(17)!=-1){let a={};let i=[];for(let t of Axis){if(t.enabled){for(let e of t.pivots){if(a[e.userData.shapeType]){a[e.userData.shapeType]++}else{a[e.userData.shapeType]=1}if(e.userData.name.includes("update17")&&i.indexOf(e.userData.shapeType)==-1){i.push(e.userData.shapeType)}}}}if(!SCENE.originalNumberOfShapeTypes){SCENE.originalNumberOfShapeTypes=sizeOfMapping(a)}let e=pick([0,1]);if(e==1&&i.length<=2||i.length==0){for(let i of shuffle(Object.keys(extraShapes))){if(!a[i]){let t=extraShapes[i].numberOfShapes;let a=Axis[pick(extraShapes[i].axis)-1];if(a.pivots.map(e=>e.userData.shapeType==i).length){continue}for(let e=0;e<t;e++){addNewShape(a.name,`E_${i}_update17_${generateUUID()}`,i,dynamicUpdateAnimationSpeeds.objectAppearAndDisappear.speed);a.TS_EXTRAOBJECTCLASS=getCurrentTs()+objectClassUpdateTimeout}break}}}else if(e==0&&i.length>0){let e=pick(i);let t=disappearObjectsByType(undefined,dynamicUpdateAnimationSpeeds.objectAppearAndDisappear.speed,true,undefined,e)}}if(r.indexOf(14)!=-1){let t=pick(["triangle","diamond"]);let a=randFromRange(nObjectsLeftOutsideOfNegativeSpace);let i=pick(diamondNegativeSpaceAngles);for(let e of Axis){if(e.clipPlanes==undefined||e.clipPlanes.length==0){createNegativeSpace(e,t,true,a,i);l+=`Added ${t} negative space to ${e.name}\n`;e.TS_NEGATIVESPACE=getCurrentTs()+negativeSpaceUpdateTimeout}else{if(e.removingNegativeSpace||e.creatingNegativeSpace){}else{removeNegativeSpace(e);l+=`Removed negative space from ${e.name}\n`}}}}if(r.indexOf(16)!=-1){if(extraShapes.knot.originalP==undefined){extraShapes.knot.originalP=extraShapes.knot.p}extraShapes.knot.p=knotsDynamicPRange;if(extraShapes.knot.originalQ==undefined){extraShapes.knot.originalQ=extraShapes.knot.q}extraShapes.knot.q=knotsDynamicQRange;for(let t of Axis){if(!t.addingKnots){for(let e of t.pivots){if(e.userData.name.includes("knot")&&e.userData.name[0]!="E"){if(!pivotIsAppearingOrDisappearing(e)){l+=`Changing q and p of ${t.name} ${e.userData.name}\n`;t.addingKnots=true;disappearPivot(e,dynamicUpdateAnimationSpeeds.objectAppearAndDisappear.speed,true,undefined,()=>{addNewShape(t.name,`E_knot_${generateUUID()}`,"knot",dynamicUpdateAnimationSpeeds.objectAppearAndDisappear.speed)});t.TS_KNOTSPQ=getCurrentTs()+knotsPQUpdateTimeout;setTimeout(()=>{t.addingKnots=false},6e4)}}}}}}}function getPivotsWithSmallShapes(i){for(let a of Axis){if(a.enabled){for(let t=0;t<a.pivots.length;t++){let e=a.pivots[t];if(e.children[0].scale.x<i&&e.children[0].scale.x!=0){}}}}}function processShrinkAndGrow(a){let i=.005;if(a.userData.shapeType=="terrain"||a.userData.shapeType=="smallterrain"){i=.01}if(a.userData.shrinkDown){if(a.userData.shrinkDown<1e-6){a.userData.shrinkDown=1e-6}if(a.userData.shrinkDown>.1){a.userData.shrinkDown=.1}let t=true;for(let e of["x","y","z"]){if(a.children[0].scale[e]>i){a.children[0].scale[e]-=a.userData.shrinkDown;if(a.children[0].scale[e]<i){a.children[0].scale[e]=i}t=false}else{a.children[0].scale[e]=i;a.userData.toBeRemoved=a.userData.toBeRemovedAfterShrink}}if(t){a.userData.shrinkDown=undefined;a.visible=false;if(a.userData.disappearCallback){a.userData.disappearCallback()}}}if(a.userData.growUp){if(a.userData.growUp<1e-6){a.userData.growUp=1e-6}if(a.userData.growUp>.1){a.userData.growUp=.